From ef3af9f4836f422f762b26dffe3af4351ff07507 Mon Sep 17 00:00:00 2001 From: Felitendo <95575686+Felitendo@users.noreply.github.com> Date: Fri, 24 Jul 2026 02:10:35 +0200 Subject: [PATCH] gearlever-bin: add package (4.6.2-1) --- gearlever-bin/.SRCINFO | 31 +++++++++++++++++++++++ gearlever-bin/PKGBUILD | 25 +++++++++++++++++++ gearlever-bin/pkg.sh | 56 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) create mode 100644 gearlever-bin/.SRCINFO create mode 100644 gearlever-bin/PKGBUILD create mode 100644 gearlever-bin/pkg.sh diff --git a/gearlever-bin/.SRCINFO b/gearlever-bin/.SRCINFO new file mode 100644 index 0000000..3e5e212 --- /dev/null +++ b/gearlever-bin/.SRCINFO @@ -0,0 +1,31 @@ +pkgbase = gearlever-bin + pkgdesc = Manage AppImages with ease (prebuilt) + pkgver = 4.6.2 + pkgrel = 1 + url = https://gearlever.mijorus.it + arch = any + license = GPL-3.0-or-later + depends = gtk4 + depends = libadwaita + depends = glib2 + depends = dconf + depends = hicolor-icon-theme + depends = python + depends = python-gobject + depends = python-dbus + depends = python-requests + depends = python-pyxdg + depends = python-ftputil + depends = python-desktop-entry-lib + depends = 7zip + depends = binutils + depends = squashfs-tools + depends = fuse2 + optdepends = dwarfs: extract AppImages that use a DwarFS filesystem + optdepends = libxml2-legacy: required by the LibreOffice AppImage + provides = gearlever + conflicts = gearlever + source = https://github.com/Felitendo/PKGBUILDS/releases/download/gearlever-bin-4.6.2/gearlever-bin-4.6.2.tar.zst + sha256sums = 319841a5dffd942b6f3b86822ac4d9d52a5b4ee559ea03ee5c2a6318a5161546 + +pkgname = gearlever-bin diff --git a/gearlever-bin/PKGBUILD b/gearlever-bin/PKGBUILD new file mode 100644 index 0000000..10766aa --- /dev/null +++ b/gearlever-bin/PKGBUILD @@ -0,0 +1,25 @@ +# Maintainer: Felitendo +# This PKGBUILD is updated automatically: +# https://github.com/Felitendo/PKGBUILDS + +pkgname=gearlever-bin +pkgver=4.6.2 +pkgrel=1 +pkgdesc="Manage AppImages with ease (prebuilt)" +arch=('any') +url="https://gearlever.mijorus.it" +license=('GPL-3.0-or-later') +depends=('gtk4' 'libadwaita' 'glib2' 'dconf' 'hicolor-icon-theme' 'python' + 'python-gobject' 'python-dbus' 'python-requests' 'python-pyxdg' + 'python-ftputil' 'python-desktop-entry-lib' + '7zip' 'binutils' 'squashfs-tools' 'fuse2') +optdepends=('dwarfs: extract AppImages that use a DwarFS filesystem' + 'libxml2-legacy: required by the LibreOffice AppImage') +provides=('gearlever') +conflicts=('gearlever') +source=("https://github.com/Felitendo/PKGBUILDS/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.zst") +sha256sums=('319841a5dffd942b6f3b86822ac4d9d52a5b4ee559ea03ee5c2a6318a5161546') + +package() { + cp -a "$srcdir/usr" "$pkgdir/" +} diff --git a/gearlever-bin/pkg.sh b/gearlever-bin/pkg.sh new file mode 100644 index 0000000..8effc8b --- /dev/null +++ b/gearlever-bin/pkg.sh @@ -0,0 +1,56 @@ +# gearlever-bin - prebuilt package of https://github.com/mijorus/gearlever +# ("Gear Lever", a GTK4 + LibAdwaita AppImage manager written in Python). +# +# Upstream only publishes a Flatpak bundle, so build_artifact() builds the +# app from the release tarball and the resulting install tree is published as +# a GitHub release asset of this repository, which the PKGBUILD then uses. + +UPSTREAM_REPO="mijorus/gearlever" + +# Installed in CI (pacman) before build_artifact runs. +BUILD_DEPS=(meson ninja glib2 glib2-devel python gettext) + +latest_version() { + # gh instead of curl: unauthenticated GitHub API calls are rate-limited on + # shared CI runner IPs. + gh api "repos/$UPSTREAM_REPO/releases/latest" --jq '.tag_name' | sed 's/^v//' +} + +# build_artifact +build_artifact() { + local ver="$1" outfile="$2" + local workdir destdir srctree + workdir="$(mktemp -d)" + destdir="$(mktemp -d)" + + curl -sfL "https://github.com/$UPSTREAM_REPO/archive/refs/tags/$ver.tar.gz" | tar -xz -C "$workdir" + srctree="$workdir/gearlever-$ver" + + # Arch's 7zip package ships /usr/bin/7z, not the 7zz binary the Flatpak + # bundles, and the ELF-offset helper lives in /usr/lib/gearlever instead of + # somewhere on $PATH. + sed -i -e 's/7zz/7z/g' \ + -e 's|get_appimage_offset|/usr/lib/gearlever/get_appimage_offset|g' \ + "$srctree/src/providers/AppImageProvider.py" + + meson setup "$workdir/build" "$srctree" --prefix=/usr --buildtype=release + meson install -C "$workdir/build" --destdir "$destdir" + + install -Dm755 "$srctree/build-aux/get_appimage_offset.sh" \ + "$destdir/usr/lib/gearlever/get_appimage_offset" + + # src/meson.build uses install_subdir('.'), which drags the meson.build + # files themselves into the install tree. + find "$destdir" -name meson.build -delete + + # These caches are generated by pacman hooks; shipping them would cause + # file conflicts on install. + rm -f "$destdir/usr/share/glib-2.0/schemas/gschemas.compiled" \ + "$destdir/usr/share/applications/mimeinfo.cache" \ + "$destdir/usr/share/icons/hicolor/icon-theme.cache" + + tar --zstd --sort=name --owner=0 --group=0 --numeric-owner --mtime='@0' \ + -cf "$outfile" -C "$destdir" usr + + rm -rf "$workdir" "$destdir" +}