从上游源重建包?

从上游源重建包?

我正在尝试重建一个软件包(具体来说grub2),以解决一些上游已修复但在 Ubuntu 中未修复的错误,并让该软件包正确集成到 Ubuntu 中。该软件包在 Launchpad 和 GNU Savannah 上的 bzr 中托管。

如何将“原始”上游源包转换为“Ubuntu”版本并重新编译/重新打包?我已经弄清楚我可以使用 获得最新的 Ubuntu 版本包源apt-get source,但与上游版本存在显著差异。这里最好的行动方案是什么?

答案1

安装 bzr 和 bzr-builddeb 后,你可能需要尝试这个技巧:

bzr branch ubuntu:yourrelease/grub2
cd grub2
[ -d debian/patches ] && quilt pop -a
bzr commit -m 'reverting all patches' || :
bzr merge-upstream lp:grub2
dch -i
# Here edit the version info to match upstream..
bzr bd

这应该会为您构建一个纯粹来自上游源代码的新 grub2(无补丁)。您可能会发现您需要其中一些补丁,因此值得查看列表并做出决定。

请注意,'ubuntu:yourrelease/grub2' 可能不适用于旧版本的 bzr。如果不行,请尝试 'lp:ubuntu/yourrelease/grub2'

答案2

Ubuntu 中打包的 Grub 版本可能比上游 Grub 分支中的版本旧。

Ubuntu 分支还将有一个“debian/”目录,其中包含软件包的 Debian/Ubuntu 特定元数据,以及可能包含一些带有错误修复反向移植或进一步集成 Ubuntu 的补丁。有关更多信息,请阅读http://developer.ubuntu.com/packaging/html/

答案3

对于我自己的与问题类似的包装要求,我遵循了这种方法: https://wiki.ubuntu.com/PackagingGuide/Complete#Updating_an_Ubuntu_Package

您可能需要关注 pbuilder 链接以加快速度。

至于我,我按照方法中的说明进行操作,直到第 5 步。然后我做了:

apt-get build-dep <package> #since I had not configured pbuilder
dpkg-buildpackage -k<key id> 

相关内容