diff --git a/gnu/local.mk b/gnu/local.mk index aef8378d70..c6ae97533d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1081,6 +1081,7 @@ dist_patch_DATA = \ %D%/packages/patches/calls-disable-sip-test.patch \ %D%/packages/patches/camlboot-dynamically-allocate-stack-signal.patch \ %D%/packages/patches/capstone-fix-python-constants.patch \ + %D%/packages/patches/cartridges-fix-non-parallel-build.patch \ %D%/packages/patches/catdoc-CVE-2017-11110.patch \ %D%/packages/patches/chez-irregex-import-cond-expand.patch \ %D%/packages/patches/chez-scheme-bin-sh.patch \ diff --git a/gnu/packages/gnome-circle.scm b/gnu/packages/gnome-circle.scm index 0552c81b6f..613747612f 100644 --- a/gnu/packages/gnome-circle.scm +++ b/gnu/packages/gnome-circle.scm @@ -196,6 +196,74 @@ to with the goal of improving your focus and enhancing your productivity. You can also use it to fall asleep in a noisy environment.") (license license:gpl3+))) +(define-public cartridges + (package + (name "cartridges") + (version "2.13.1") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://codeberg.org/kramo/cartridges.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1vykylz4wm8zvccqsfvfy02hrnm2lygv8yrwmkhdj0l44fqqlqsm")) + (patches + ;; See . + (search-patches "cartridges-fix-non-parallel-build.patch")))) + (build-system meson-build-system) + (arguments + (list + #:configure-flags + #~(list "-Dtiff_compression=jpeg") ;webp compression leads to error + #:glib-or-gtk? #t + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'skip-gnome-post-install + (lambda _ + (substitute* "meson.build" + (("gtk_update_icon_cache: true") + "gtk_update_icon_cache: false") + (("update_desktop_database: true") + "update_desktop_database: false")))) + (add-after 'install 'wrap-program + (lambda* (#:key inputs #:allow-other-keys) + (wrap-program (string-append #$output "/bin/cartridges") + `("GUIX_PYTHONPATH" = + (,(string-append #$output "/lib/python3.11/site-packages:" + (getenv "GUIX_PYTHONPATH")))) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) + `("GDK_PIXBUF_MODULE_FILE" = + (,(getenv "GDK_PIXBUF_MODULE_FILE"))) + `("PATH" ":" prefix + (,(dirname (search-input-file inputs "/bin/gtk4-launch")) + ,(dirname (search-input-file inputs "/bin/xdg-open")))))))))) + (native-inputs + (list blueprint-compiler + gettext-minimal + gobject-introspection + `(,glib "bin") + pkg-config)) + (inputs + (list adwaita-icon-theme + bash-minimal + gtk + `(,gtk "bin") ;for gtk-launch + libadwaita + python + python-pillow + python-pygobject + python-pyyaml + python-requests + xdg-utils)) ;for xdg-open + (home-page "https://apps.gnome.org/Cartridges/") + (synopsis "Game launcher for GNOME") + (description "Cartridges is a game launcher for multiple game libraries. +It can import and launch games from Steam, Lutris, Heroic, Bottles, itch, +Legendary, RetroArch, Flatpak and desktop files.") + (license license:gpl3+))) + (define-public deja-dup (package (name "deja-dup") diff --git a/gnu/packages/patches/cartridges-fix-non-parallel-build.patch b/gnu/packages/patches/cartridges-fix-non-parallel-build.patch new file mode 100644 index 0000000000..c40f1bcb3c --- /dev/null +++ b/gnu/packages/patches/cartridges-fix-non-parallel-build.patch @@ -0,0 +1,57 @@ +From e3924e08382e180764b8118a3f002fc39fc02e96 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?No=C3=A9=20Lopez?= +Date: Thu, 29 Jan 2026 22:40:37 +0100 +Subject: [PATCH] data/meson.build: Correct dependencies for + cartridges.gresource.xml.in. + +--- + data/meson.build | 26 +++++++++++++------------- + 1 file changed, 13 insertions(+), 13 deletions(-) + +diff --git a/data/meson.build b/data/meson.build +index ea17413..5c5b782 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -17,19 +17,6 @@ blueprints = custom_target( + ], + ) + +-gnome.compile_resources( +- 'cartridges', +- configure_file( +- input: 'cartridges.gresource.xml.in', +- output: 'cartridges.gresource.xml', +- configuration: conf, +- ), +- gresource_bundle: true, +- install: true, +- install_dir: pkgdatadir, +- dependencies: blueprints, +-) +- + if host_machine.system() == 'windows' + desktop_file = configure_file( + input: 'page.kramo.Cartridges.desktop.in', +@@ -82,6 +69,19 @@ else + ) + endif + ++gnome.compile_resources( ++ 'cartridges', ++ configure_file( ++ input: 'cartridges.gresource.xml.in', ++ output: 'cartridges.gresource.xml', ++ configuration: conf, ++ ), ++ gresource_bundle: true, ++ install: true, ++ install_dir: pkgdatadir, ++ dependencies: [blueprints, appstream_file], ++) ++ + if host_machine.system() != 'windows' + appstreamcli = find_program('appstreamcli', required: false) + if appstreamcli.found() +-- +2.52.0 +