added extra/flatpak

This commit is contained in:
Kevin Mihelich 2022-11-18 00:23:39 +00:00
parent 27135a0c51
commit 09d53b0f58
3 changed files with 187 additions and 0 deletions

112
extra/flatpak/PKGBUILD Normal file
View file

@ -0,0 +1,112 @@
# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - move socat to makedepends
# - set -Dtests=false
pkgbase=flatpak
pkgname=(flatpak flatpak-docs)
pkgver=1.15.1
pkgrel=1
epoch=1
pkgdesc="Linux application sandboxing and distribution framework (formerly xdg-app)"
url="https://flatpak.org"
arch=(x86_64)
license=(LGPL)
depends=(dbus glib2 curl polkit libxau ostree json-glib libseccomp libarchive
python bubblewrap appstream xdg-dbus-proxy systemd fuse3 libmalcontent)
makedepends=(gobject-introspection gtk-doc git docbook-xsl xmlto
python-pyparsing meson socat)
checkdepends=(valgrind socat)
options=(debug)
_commit=47ea3934c0e055605b8dff93edad2136141e48ec # tags/1.15.1^0
source=(
"git+https://github.com/flatpak/flatpak#commit=$_commit"
git+https://gitlab.gnome.org/GNOME/libglnx.git
git+https://github.com/projectatomic/bubblewrap
git+https://github.com/flatpak/xdg-dbus-proxy
git+https://gitlab.gnome.org/alexl/variant-schema-compiler.git
https://dl.flathub.org/repo/flathub.flatpakrepo
fusermount3.diff
flatpak-bindir.sh
)
sha256sums=('SKIP'
'SKIP'
'SKIP'
'SKIP'
'SKIP'
'3371dd250e61d9e1633630073fefda153cd4426f72f4afa0c3373ae2e8fea03a'
'023c2bb5f355095e87357e625ef85119b5e15b3d0a4ad07ce858ed1a8f99a57a'
'1824cb4eb1cc88702cb2b9f1c55b6dfdf20fca5eab83f6e8e532099281328745')
pkgver() {
cd flatpak
git describe --tags | sed 's/[^-]*-g/r&/;s/-/+/g'
}
prepare() {
cd flatpak
# Support fuse3
# https://bugs.archlinux.org/task/75623
git apply -3 ../fusermount3.diff
git submodule init
git submodule set-url libglnx "$srcdir/libglnx"
git submodule set-url bubblewrap "$srcdir/bubblewrap"
git submodule set-url dbus-proxy "$srcdir/xdg-dbus-proxy"
git submodule set-url variant-schema-compiler "$srcdir/variant-schema-compiler"
git -c protocol.file.allow=always submodule update
}
build() {
local meson_options=(
-D dbus_config_dir=/usr/share/dbus-1/system.d
-D selinux_module=disabled
-D system_bubblewrap=bwrap
-D system_dbus_proxy=xdg-dbus-proxy
-D tests=false
)
arch-meson flatpak build "${meson_options[@]}"
meson compile -C build
}
check() {
meson test -C build --print-errorlogs
}
_pick() {
local p="$1" f d; shift
for f; do
d="$srcdir/$p/${f#$pkgdir/}"
mkdir -p "$(dirname "$d")"
mv "$f" "$d"
rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
done
}
package_flatpak() {
depends+=(xdg-desktop-portal libostree-1.so)
provides=(libflatpak.so)
meson install -C build --destdir "$pkgdir"
install -Dt "$pkgdir/etc/profile.d" -m644 flatpak-bindir.sh
install -Dt "$pkgdir/etc/flatpak/remotes.d" flathub.flatpakrepo
# Fixup mode to match polkit
install -d -o root -g 102 -m 750 "$pkgdir/usr/share/polkit-1/rules.d"
_pick docs "$pkgdir"/usr/share/{doc,gtk-doc}
}
package_flatpak-docs() {
pkgdesc+=" (documentation)"
depends=()
mv docs/* "$pkgdir"
}
# vim:set sw=2 sts=-1 et:

View file

@ -0,0 +1,9 @@
if [ -n "$XDG_DATA_HOME" ] && [ -d "$XDG_DATA_HOME/flatpak/exports/bin" ]; then
append_path "$XDG_DATA_HOME/flatpak/exports/bin"
elif [ -n "$HOME" ] && [ -d "$HOME/.local/share/flatpak/exports/bin" ]; then
append_path "$HOME/.local/share/flatpak/exports/bin"
fi
if [ -d /var/lib/flatpak/exports/bin ]; then
append_path /var/lib/flatpak/exports/bin
fi

View file

@ -0,0 +1,66 @@
diff --git i/common/flatpak-dir.c w/common/flatpak-dir.c
index 01362a2b..2b17c6f8 100644
--- i/common/flatpak-dir.c
+++ w/common/flatpak-dir.c
@@ -2109,7 +2109,7 @@ flatpak_dir_revokefs_fuse_unmount (OstreeRepo **repo,
fusermount = g_subprocess_new (G_SUBPROCESS_FLAGS_NONE,
error,
- "fusermount", "-u", "-z", mnt_dir,
+ "fusermount3", "-u", "-z", mnt_dir,
NULL);
if (g_subprocess_wait_check (fusermount, NULL, error))
{
diff --git i/tests/can-use-fuse.c w/tests/can-use-fuse.c
index fb6e2000..759f0d84 100644
--- i/tests/can-use-fuse.c
+++ w/tests/can-use-fuse.c
@@ -53,23 +53,23 @@ check_fuse (void)
return FALSE;
}
- fusermount = g_find_program_in_path ("fusermount");
+ fusermount = g_find_program_in_path ("fusermount3");
if (fusermount == NULL)
{
- cannot_use_fuse = g_strdup ("fusermount not found in PATH");
+ cannot_use_fuse = g_strdup ("fusermount3 not found in PATH");
return FALSE;
}
if (!g_file_test (fusermount, G_FILE_TEST_IS_EXECUTABLE))
{
cannot_use_fuse = g_strdup_printf ("%s not executable", fusermount);
return FALSE;
}
if (!g_file_test ("/etc/mtab", G_FILE_TEST_EXISTS))
{
- cannot_use_fuse = g_strdup ("fusermount won't work without /etc/mtab");
+ cannot_use_fuse = g_strdup ("fusermount3 won't work without /etc/mtab");
return FALSE;
}
diff --git i/tests/libtest.sh w/tests/libtest.sh
index 36d39ac4..e78d94ca 100644
--- i/tests/libtest.sh
+++ w/tests/libtest.sh
@@ -542,7 +542,7 @@ skip_one_without_bwrap () {
}
skip_without_fuse () {
- fusermount --version >/dev/null 2>&1 || skip "no fusermount"
+ fusermount3 --version >/dev/null 2>&1 || skip "no fusermount3"
capsh --print | grep -q 'Bounding set.*[^a-z]cap_sys_admin' || \
skip "No cap_sys_admin in bounding set, can't use FUSE"
@@ -608,7 +608,7 @@ commit_to_path () {
cleanup () {
/bin/kill -9 $DBUS_SESSION_BUS_PID
gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye >&2 || true
- fusermount -u $XDG_RUNTIME_DIR/doc >&2 || :
+ fusermount3 -u $XDG_RUNTIME_DIR/doc >&2 || :
kill $(jobs -p) &> /dev/null || true
if test -n "${TEST_SKIP_CLEANUP:-}"; then
echo "# Skipping cleanup of ${TEST_DATA_DIR}"