Flatpak (flatpak-build) 构建子模块时出现致命错误

Flatpak (flatpak-build) fatal error when building submodules

开始,当使用 OpenSUSE Tumbleweed 时,我无法 flatpak-builder 编译子模块依赖项。我第一次注意到这个问题是在使用 Vala 依赖项 Gee 和 GXml 在 Gnome Builder 中开发控制台应用程序时。

作为测试,我安装了org.gnome.Books.json and issued the following command (as documented here):

$ flatpak-builder --repo=repo books-app org.gnome.Books.json 

结果与我在开发自己的应用程序时观察到的结果相同,致命错误:

Initializing build dir
Committing stage init to cache
Starting build of org.gnome.Books
fuse: failed to exec fusermount: Permission denied

<more stuff>

Cloning into '/home/robin/Projects-CSim/org.gnome.books/.flatpak-builder/build/gnome-online-accounts-1/telepathy-account-widgets'...
Submodule path 'telepathy-account-widgets': checked out '7d944b79961dfb6291110ceb27597a224d329b36'
error: Build directory /home/<user>/Projects/org.gnome.books/.flatpak-builder/rofiles/rofiles-D4R4cZ not initialized, use flatpak build-init
Error: module gnome-online-accounts: module gnome-online-accounts: Child process exited with code 1

实际上它无法构建第一个子模块。这与我在项目中从 Gnome-Builder 调用时观察到的行为相同;它下载但未能构建第一个子模块 - 在那种情况下它是 libgee-0.8.

我仔细检查了 Flatpak (V0.10.4) 安装 here,但找不到解决方案。我从文档中了解到调用 flatpak-builder 应该会自动调用 flatpak build-init.

这令人担忧,因为 Gnome-Builder 似乎使用 Flatpak 作为默认打包程序。有什么建议吗?

问题不在于 Flatpak。这是 Flatpak 和 fuse 之间的冲突。出于某种原因,命令行中的 valac 或介子不会发生这种情况,只有 Flatpak。

here我们找到解决办法:

# chmod +x /usr/bin/fusermount

这是 OpenSUSE Tumbleweed 的特性吗?在任何情况下,进行此更改后,Flatpak 都会按预期构建子模块。太棒了!

不确定这方面的安全性,但是欢迎任何意见。