使用bazel的内置pkg_deb规则,我创建了一个debian软件包。我想将此deb文件上传到我的PPA,但我发现这很有挑战性。
据我所知,bazel创建了PPA不允许的“二进制debian软件包”。相反,我必须将其转换为“源debian软件包”。这样做对我来说并不明显。我在网上找到的示例显示了非常简单的项目,这些项目具有量身定制的Makefile,可以满足Ubuntu的启动板的需求。当您将某些内容上传到PPA时,我认为它是在沙盒环境中构建的(我想这是"reproducible builds"计划的一部分)。
我正在寻找上载基于bazel构建的debian文件的最简单方法。由于bazel通过规则抽象了很多构建细节,因此我不清楚我是否可以将其转换为某种Makefile,或者是否有办法完全避免这种情况。
有人有没有用淡褐色构建Deb并将其上传到PPA的经验?或更笼统地说,采用二进制debian软件包并使其成为满足PPA要求的源debian软件包?
我想我必须编写类似于bazel项目正在执行的自定义规则:https://github.com/bazelbuild/bazel/blob/e67c961905792cd63950c6f6efc33275ad243c49/scripts/packages/debian/BUILD#L119,但是很难给出有意义的编译命令。
PPA可以做任何想做的事,因为对于PPA中可以包含的内容没有任何规定。 Debian的软件包存储库中有rules for upstream sources,其中不包含二进制Blob。解决此问题的理想方法是从源代码构建时将apt
拉入Bazel,但从2020年中期开始Bazel can't be used in Debian upstream either。