如何为自定义PPA打补丁酿造适量的葡萄酒?

我一直在手动为我的机器应用补丁,但我想将其放入PPA供我的朋友和亲戚使用。
目前,我按照以下步骤进行操作:
1. 通过apt-get source从上游PPA获取最新的源代码。 2. 使用patch来应用我的非官方、不受支持的补丁。 3. 使用dpkg-buildpackage -rfakeroot -uc -b创建一个软件包。
这对于创建一个在我的本地机器上运行的软件包是可以的。然而,现在我想通过PPA将这个定制版本分发给其他人。
这个过程是否足够,或者是否有更正确和/或更容易维护的过程,特别适用于Wine?

这个回答可能会提供一些有用的资源,可以在这里找到 - http://ubuntu.stackexchange.com/questions/320/how-do-i-create-my-own-php-5-3-3-package-ppa/323#323 - andol
6个回答

你的示例步骤非常接近,但这是我建议的:
  1. 使用apt-get source wine命令获取源代码,并进入新目录
  2. 查找wine软件包所基于的补丁系统:what-patch;在这种情况下,它告诉我们wine软件包使用quilt进行补丁管理
  3. 由于我们使用的是quilt,将自定义的补丁添加到quilt系列中:
    QUILT_PATCHES=debian/patches quilt import <your-patchfile.patch>
    如果有多个补丁,请按照要应用的顺序逐个执行此操作。
  4. debian/changelog文件中添加适当的条目 - 您需要修改版本号以确保您的PPA版本与官方版本区分开来。通常,您应该增加最后一个版本号,并在其后添加波浪符(~)和您的自定义版本字符串(例如~jbowtie1)。dch -i命令也可以帮助您完成此操作。
  5. 构建源代码包:
    debuild -S
  6. 将源代码包上传到PPA构建系统:
    dput ppa:<your-ppa> ../wine*.changes
    其中<your-ppa>参数在您要上传到的PPA的launchpad页面上指定(您需要事先创建此页面)。
通常在进行 dput 命令之前做一次测试构建是个好主意-pbuilder 命令可以让你重新创建 PPA 构建系统会对你的软件包进行的操作(即,从一个干净的安装开始,添加所需的依赖,然后进行构建)。
在这种情况下,你需要先设置 pbuilder(参见https://wiki.ubuntu.com/PbuilderHowto),然后在执行 dput 之前执行以下命令:
sudo pbuilder build ../*.dsc

这个非常完美。如果我使用edit-patch,第三步会有所不同吗?还是我最好学习quilt的细节呢? - jbowtie
如果您使用edit-patch,您将需要将现有的补丁作为一个单独的步骤应用。但结果将是相同的,所以这真的取决于您自己。 - Jeremy Kerr
在将软件包首次上传到您的PPA时,请使用debuild -S -sa命令。"-sa"选项会始终附加原始源代码。 - blueyed

Ubuntu Packaging Guide 包含了所有关于如何为Ubuntu打包的信息,包括如何处理补丁的方法。


你能告诉我指南中更具体的部分吗?我无法从指南中理解如何专门打包葡萄酒补丁。 - jbowtie
1酒补丁就像其他软件包中的补丁一样。你应该使用像quilt这样的补丁系统来添加补丁。这样一来,当补丁被上游接受后,你可以轻松地从软件包中移除它们。第四章讨论了不同的补丁系统。 - txwikinger



Ubuntu Tweak 包含了一个用于 Wine 的 PPA,一旦在 Ubuntu Tweak 中选择了它,它将通过定期更新保持最新状态。


我知道Wine PPA,但我想创建自己的PPA,其中包括一些自定义补丁。 - jbowtie

从winehq网站上:
通过转到系统->管理->软件源,打开“软件源”菜单。然后选择“第三方软件”选项卡,点击“添加”。
然后,复制并粘贴下面的行。 ppa:ubuntu-wine/ppa
然后运行sudo apt-get update,在完成后运行sudo apt-get install wine。