# --------------------------------------------------------------------------- # Written from scratch for dank-ws-copr (2026-10-08). AppManager is not packaged in Fedora, EPEL, # Flathub or any el10 COPR; upstream ships an AppImage and a meson build. This spec builds the # v3.8.0 source tarball with meson. # # Every build dependency is in CentOS Stream 10 itself (AppStream + CRB): libadwaita-devel 1.6.10 # (CRB, meson wants >= 1.6), gtk4-devel 4.16, json-glib-devel, libgee-devel (CRB, not EPEL), # libsoup3-devel, libsecret-devel, gnutls-devel, vala and meson (CRB). No EPEL package is needed. # # Changes vs. a plain `meson setup`: # - -Dbundle_dwarfs/-Dbundle_zsync/-Dbundle_unsquashfs=false: those options download prebuilt # binaries (or build unsquashfs from a downloaded tarball) at build time, which Copr's offline # builders can't do and which we don't want in a distro package anyway. AppManager finds # unsquashfs on $PATH, so the system squashfs-tools is used (Requires). dwarfsextract (needed # only for DwarFS-based AppImages) and zsync2 (delta updates; it falls back to full downloads) # are not packaged on el10. EPEL's legacy zsync 0.6.3 is deliberately not pulled in: it has no # HTTPS support, so it would only fail and fall back. # - The build-time precompiled gschemas.compiled is dropped: installed as-is it would replace the # system-wide compiled schema cache with one that only knows AppManager's schema. glib2's file # trigger recompiles the cache from the installed .gschema.xml instead. # --------------------------------------------------------------------------- %global appid com.github.AppManager Name: app-manager Version: 3.8.0 Release: 1%{?dist} Summary: macOS-style AppImage installer and manager License: GPL-3.0-or-later URL: https://github.com/kem-a/AppManager Source0: %{url}/archive/v%{version}/AppManager-%{version}.tar.gz BuildRequires: gcc BuildRequires: meson >= 0.64.0 BuildRequires: vala BuildRequires: gettext BuildRequires: desktop-file-utils BuildRequires: libappstream-glib BuildRequires: pkgconfig(libadwaita-1) >= 1.6 BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-unix-2.0) BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(json-glib-1.0) BuildRequires: pkgconfig(gee-0.8) BuildRequires: pkgconfig(libsoup-3.0) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(gnutls) >= 3.6.13 # unsquashfs: extracts SquashFS AppImages (icons, desktop files, "extracted" install mode) Requires: squashfs-tools Requires: hicolor-icon-theme # Running FUSE-mounted AppImages: libfuse.so.2 + fusermount for the classic AppImageKit runtime, # fusermount3 for the static type2 runtime. Not needed to install/extract, so only recommended. Recommends: fuse Recommends: fuse-libs Recommends: fuse3 %description AppManager is a GTK4/libadwaita desktop application that installs AppImages with a macOS-style drag-and-drop window: it moves them into a managed directory, extracts their icon and desktop entry so they appear in the application menu, keeps track of them, checks for and applies updates (GitHub/GitLab releases, zsync update info) and uninstalls them cleanly. It registers itself as the handler for .AppImage files and appimg:// links. %prep %autosetup -n AppManager-%{version} %build %meson \ -Dbundle_dwarfs=false \ -Dbundle_zsync=false \ -Dbundle_unsquashfs=false %meson_build %install %meson_install rm -f %{buildroot}%{_datadir}/glib-2.0/schemas/gschemas.compiled %find_lang %{name} %check %meson_test desktop-file-validate %{buildroot}%{_datadir}/applications/%{appid}.desktop appstream-util validate-relax --nonet %{buildroot}%{_metainfodir}/%{appid}.metainfo.xml %files -f %{name}.lang %license LICENSE %doc README.md %{_bindir}/app-manager %{_datadir}/applications/%{appid}.desktop %{_metainfodir}/%{appid}.metainfo.xml %{_datadir}/glib-2.0/schemas/%{appid}.gschema.xml %{_datadir}/icons/hicolor/scalable/apps/%{appid}.svg %changelog * Thu Oct 08 2026 Karl Fischer - 3.8.0-1 - Initial dank-ws-copr package (meson build of the v3.8.0 source tarball) - Disable the bundled dwarfs/zsync2/unsquashfs downloads; use the system squashfs-tools - Drop the build-time gschemas.compiled so the system schema cache stays intact