3

如何使用 flatpak-builder 构建本地资源和依赖项?

我可以建立本地资源

flatpak build ../dictionary ./configure --prefix=/app

我可以使用 .json 提取和构建具有依赖关系的应用程序

flatpak-builder --repo=repo dictionary2 org.gnome.Dictionary.json

但是没有办法建立依赖关系和本地资源?我没有找到像 dir 或其他类型的源类型,只有存档,git(没有 hg?)...

4

2 回答 2

2

flatpak-builder旨在通过一个入口点自动化整个构建过程:JSON 清单。

它从 Git、Bazaar 或 tarball 获得的所有其他内容。请注意,对于这些,该"url"属性可能是一个以 . 开头的本地 URL file://

(确实不支持 Hg。如果这对您很重要,请随时提出请求。)

除此之外,还有一些源类型(参见flatpak-manifest(5)手册页),可用于修改提取的源:

  • file它指向要在提取的源中复制的本地文件;
  • patch指向要应用于提取的源的本地补丁文件;
  • script它从一组命令中在提取的源中创建一个脚本;
  • shell它通过运行一系列命令来修改提取的源;

添加dir源类型可能很有用。

但是(我只开发了几个应用程序,并为代码贡献了 2 或 3 个补丁,所以我可能完全错了)必须小心,因为这很容易使构建完全无法重现,这是一件flatpak-builder很难实现的事情。

例如,当使用本地file源时,flatpak-builder将对该文件的内容进行 base64-econde 并将其用作文件的data:text/plain;charset=utf8;base64,<content>URL,该文件存储在最终构建中包含的清单中。

源可能需要类似的东西dir(tar 文件夹然后 base64 编码 tar 的内容?),否则将无法重现构建。我刚刚被告知(在提交这个答案之后)这在 Git master 中发生了变化,有利于一个新的flatpak-builder --bundle-sources选项。这可能会使支持具有dir源类型的可重现构建变得更容易。

无论如何,请随时围绕上游错误跟踪器中dir的新源类型开始对话。:)

于 2017-05-10T08:41:14.307 回答
1

如果你想使用它,有一个实验性的 cli 工具https://gitlab.com/csoriano/flatpak-dev-cli

您可以阅读文档

简而言之,这就是您使用 flatpak 作为开发工作台所需要的

https://github.com/albfan/gnome-builder/wiki/flatpak

于 2017-05-10T12:16:19.353 回答