diff --git a/pkgs/by-name/gn/gnome-robots/package.nix b/pkgs/by-name/gn/gnome-robots/package.nix index dfe37b8dff4c..72b8725d3da6 100644 --- a/pkgs/by-name/gn/gnome-robots/package.nix +++ b/pkgs/by-name/gn/gnome-robots/package.nix @@ -1,73 +1,116 @@ { lib, stdenv, + cargo, + desktop-file-utils, fetchurl, - pkg-config, + glib, gnome, - gtk3, - wrapGAppsHook3, - librsvg, - gsound, - gettext, + gtk4, itstool, + libadwaita, + librsvg, libxml2, - libgnome-games-support, - libgee, + gst_all_1, meson, ninja, - vala, - python3, - desktop-file-utils, - adwaita-icon-theme, + pkg-config, + rustc, + rustPlatform, + wrapGAppsHook4, + _experimental-update-script-combinators, + common-updater-scripts, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "gnome-robots"; - version = "40.0"; + version = "41.1"; src = fetchurl { - url = "mirror://gnome/sources/gnome-robots/${lib.versions.major version}/gnome-robots-${version}.tar.xz"; - hash = "sha256-b78viFdQ8aURCnJPjzWt3ZvGEYTuMc8MDLiZU+T0yxE="; + url = "mirror://gnome/sources/gnome-robots/${lib.versions.major finalAttrs.version}/gnome-robots-${finalAttrs.version}.tar.xz"; + hash = "sha256-K4BQcFrIPpOL56iREyYB62XHk/IJzX6RDGzWQphzBHg="; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit (finalAttrs) src; + name = "gnome-robots-${finalAttrs.version}"; + hash = "sha256-rn/rs0D2qKDYf8oxpegQalPQIVuT8rSrHTzeZqWGn44="; }; nativeBuildInputs = [ pkg-config meson ninja - vala - python3 - libxml2 - wrapGAppsHook3 - gettext + cargo + rustc + rustPlatform.cargoSetupHook + gtk4 # for gtk4-update-icon-cache + wrapGAppsHook4 itstool desktop-file-utils ]; buildInputs = [ - gtk3 + glib + gtk4 + libadwaita librsvg - gsound - libgnome-games-support - libgee - adwaita-icon-theme + libxml2 + # Sound playback, not checked at build time. + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good ]; postPatch = '' - chmod +x build-aux/meson_post_install.py - patchShebangs build-aux/meson_post_install.py + # https://gitlab.gnome.org/GNOME/gnome-robots/-/merge_requests/38 + substituteInPlace data/icons/meson.build \ + --replace-fail 'gtk-update-icon-cache' 'gtk4-update-icon-cache' + ''; + + preFixup = '' + # Seal GStreamer plug-ins so that we can notice when they are missing. + gappsWrapperArgs+=(--set "GST_PLUGIN_SYSTEM_PATH_1_0" "$GST_PLUGIN_SYSTEM_PATH_1_0") + unset GST_PLUGIN_SYSTEM_PATH_1_0 ''; passthru = { - updateScript = gnome.updateScript { packageName = "gnome-robots"; }; + updateScript = + let + updateSource = gnome.updateScript { + packageName = "gnome-robots"; + }; + + updateLockfile = { + command = [ + "sh" + "-c" + '' + PATH=${ + lib.makeBinPath [ + common-updater-scripts + ] + } + update-source-version gnome-robots --ignore-same-version --source-key=cargoDeps > /dev/null + '' + ]; + # Experimental feature: do not copy! + supportedFeatures = [ "silent" ]; + }; + in + _experimental-update-script-combinators.sequence [ + updateSource + updateLockfile + ]; }; meta = with lib; { homepage = "https://gitlab.gnome.org/GNOME/gnome-robots"; - changelog = "https://gitlab.gnome.org/GNOME/gnome-robots/-/blob/${version}/NEWS?ref_type=tags"; + changelog = "https://gitlab.gnome.org/GNOME/gnome-robots/-/blob/${finalAttrs.version}/NEWS?ref_type=tags"; description = "Avoid the robots and make them crash into each other"; mainProgram = "gnome-robots"; maintainers = teams.gnome.members; license = licenses.gpl3Plus; platforms = platforms.unix; }; -} +}) diff --git a/pkgs/by-name/go/gom/package.nix b/pkgs/by-name/go/gom/package.nix index 7d902ec5ee24..11b7745baf60 100644 --- a/pkgs/by-name/go/gom/package.nix +++ b/pkgs/by-name/go/gom/package.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { pname = "gom"; - version = "0.4"; + version = "0.5.3"; outputs = [ "out" @@ -23,8 +23,8 @@ stdenv.mkDerivation rec { ]; src = fetchurl { - url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "17ca07hpg7dqxjn0jpqim3xqcmplk2a87wbwrrlq3dd3m8381l38"; + url = "mirror://gnome/sources/gom/${lib.versions.majorMinor version}/gom-${version}.tar.xz"; + sha256 = "Bp0JCfvca00n7feoeTZhlOOrUIsDVIv1uJ/2NUbSAXc="; }; patches = [ @@ -54,8 +54,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = gnome.updateScript { - packageName = pname; - versionPolicy = "odd-unstable"; + packageName = "gom"; }; }; diff --git a/pkgs/by-name/gx/gxml/package.nix b/pkgs/by-name/gx/gxml/package.nix index dc9a8b2f53b9..771c4f6039ea 100644 --- a/pkgs/by-name/gx/gxml/package.nix +++ b/pkgs/by-name/gx/gxml/package.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "gxml"; - version = "0.20.3"; + version = "0.20.4"; outputs = [ "out" @@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: { owner = "GNOME"; repo = "gxml"; rev = finalAttrs.version; - hash = "sha256-GlctGxsLyQ2kPV3oBmusRiouG4PPncBTh3vgxhVaQOo="; + hash = "sha256-/gaWuUytBsvAsC95ee6MtTW6g3ltGbkD+JWqrAjJLDc="; }; nativeBuildInputs = [ @@ -47,8 +47,11 @@ stdenv.mkDerivation (finalAttrs: { postPatch = '' # https://gitlab.gnome.org/GNOME/gxml/-/merge_requests/24 + # https://gitlab.gnome.org/GNOME/gxml/-/merge_requests/28 substituteInPlace gxml/gxml.pc.in \ - --replace-fail "includedir=@prefix@/include" "includedir=${placeholder "dev"}/include" + --replace-fail "includedir=@prefix@/include" "includedir=${placeholder "dev"}/include" \ + --replace-fail ">=2" ">= 2" \ + --replace-fail ">=0" ">= 0" ''; doCheck = true;