在使用git-buildpackage时,有两种获取上游源的方法:
我的团队正在研究如何打包Oracle Java。我们用git开发我们的软件包,并希望使用gbp。显然,选项(1)是不可能的,因为没有来源。但是选项(2)也是不可行的,因为它意味着将巨大(200MB+)档案导入到git中。
因为Debian的策略是反对专有软件,所以您不会发现关于这个用例的太多文档。不过,一定有办法的。
dpkg-buildpackage也是不够的,因为不受欢迎。现在,您需要使用uscan和debian/watch或git-buildpackage。
发布于 2018-07-12 21:30:03
git buildpackage和大型文件没有问题。
你凭什么认为有?当将“大型”tarball导入到git存储库时,您预期会出现哪些问题?它们与gbp有关吗?或者仅仅是git处理大二进制块的方式(这实际上是一个完全不同的问题)。如果您真正关心的是大型存储库的大小,您可能希望签出git-lfs或类似的。
因为Debian的策略是反对专有软件,所以您不会发现关于这个用例的太多文档。
用例是什么?拥有庞大的发行版tarball并不是专有软件所独有的。(想想游戏.有数以百万计的数据提供牙线游戏)。
因此,您的选择是:-要么包括大型上游tarball,要么将它们重新打包以丢弃您不需要的东西(例如,用于W32、W64和BeOS的预编译二进制文件在Debian包的上下文中通常是无用的,但会极大地炸掉包装尺寸)。提取上游tarball (uscan)的标准工具包括在导入新的上游版本时自动删除文件的机制。
get-源程序被废弃。
那又怎么样?您所引用的文章明确指出,它“存在于debian/rules文件中是绝对好的”。此外,git-orig-source与uscan的问题与您所描述的问题是正交的。这两种方法都是从远程位置获取源、开始打包新版本的方法。没有在构建过程中使用来获取缺少的上游源(您可能会感到困惑,因为get-orig-source是Makefile目标。但是,除了希望获取源的人手动调用之外,这个目标实际上从未被调用过)。
dpkg-buildpackage也是不够的。
为什么不行?如果您在dpkg构建包可以找到它的地方有原始-tarball,那么您当然可以使用它。
gbp是一个很好的集成工作流工具,它将Debian打包(/debian中的所有内容)和上游快照保存在一个存储库中。
这可能不一定是您想要的工作流(例如,因为您明确不希望在打包存储库中包含上游源)。
在这种情况下,gbp可能不是合适的工具。
幸运的是,没有任何东西迫使你使用这个工具。可以随意使用git-dpm、dpkg-buildpackage或手动滚动您自己的包,而不需要任何帮助。
https://stackoverflow.com/questions/51307623
复制相似问题