From 52e2bbc30ca09882753021b3c32c7de30b973b22 Mon Sep 17 00:00:00 2001 From: Bobby Rong Date: Tue, 3 Dec 2024 20:45:29 +0800 Subject: [PATCH] cinnamon-screensaver: 6.2.1 -> 6.4.0 https://github.com/linuxmint/cinnamon-screensaver/compare/6.2.1...6.4.0 --- .../by-name/ci/cinnamon-screensaver/package.nix | 17 +++++++++++++---- .../preserve-existing-gi-typelib-path.patch | 14 ++++++++++++++ 2 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 pkgs/by-name/ci/cinnamon-screensaver/preserve-existing-gi-typelib-path.patch diff --git a/pkgs/by-name/ci/cinnamon-screensaver/package.nix b/pkgs/by-name/ci/cinnamon-screensaver/package.nix index 7ea3f4a0a13f..23e963088e19 100644 --- a/pkgs/by-name/ci/cinnamon-screensaver/package.nix +++ b/pkgs/by-name/ci/cinnamon-screensaver/package.nix @@ -28,15 +28,21 @@ stdenv.mkDerivation rec { pname = "cinnamon-screensaver"; - version = "6.2.1"; + version = "6.4.0"; src = fetchFromGitHub { owner = "linuxmint"; repo = pname; rev = version; - hash = "sha256-f1Z3fmtCokWNLJwsTOAIAZB3lwFfqakJJco3umyEaYk="; + hash = "sha256-XlEu/aBwNeu+CC6IRnFTF6LUnb7VY2+OOGsdCvQYweA="; }; + patches = [ + # Do not override GI_TYPELIB_PATH set by wrapGAppsHook3. + # https://github.com/linuxmint/cinnamon-screensaver/pull/456#discussion_r1702738776. + ./preserve-existing-gi-typelib-path.patch + ]; + nativeBuildInputs = [ pkg-config wrapGAppsHook3 @@ -80,8 +86,6 @@ stdenv.mkDerivation rec { # cscreensaver hardcodes absolute paths everywhere. Nuke from orbit. find . -type f -exec sed -i \ -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \ - -e s,/usr/lib/cinnamon-screensaver,$out/lib,g \ - -e s,/usr/share/cinnamon-screensaver,$out/share,g \ -e s,/usr/share/iso-flag-png,${iso-flags-png-320x240}/share/iso-flags-png,g \ {} + ''; @@ -93,6 +97,11 @@ stdenv.mkDerivation rec { ) ''; + postFixup = '' + # Shared objects can't be wrapped. + mv $out/libexec/cinnamon-screensaver/{.libcscreensaver.so-wrapped,libcscreensaver.so} + ''; + meta = with lib; { homepage = "https://github.com/linuxmint/cinnamon-screensaver"; description = "Cinnamon screen locker and screensaver program"; diff --git a/pkgs/by-name/ci/cinnamon-screensaver/preserve-existing-gi-typelib-path.patch b/pkgs/by-name/ci/cinnamon-screensaver/preserve-existing-gi-typelib-path.patch new file mode 100644 index 000000000000..7cb1b9a94868 --- /dev/null +++ b/pkgs/by-name/ci/cinnamon-screensaver/preserve-existing-gi-typelib-path.patch @@ -0,0 +1,14 @@ +diff --git a/src/binfile.in b/src/binfile.in +index 0674567..1faba9c 100644 +--- a/src/binfile.in ++++ b/src/binfile.in +@@ -5,7 +5,7 @@ if [ "$XDG_SESSION_TYPE" = "wayland" ]; then + exit 1 + fi + +-export GI_TYPELIB_PATH="@typelibdir@" +-export LD_LIBRARY_PATH="@pkglibdir@" ++export GI_TYPELIB_PATH="@typelibdir@${GI_TYPELIB_PATH:+:}$GI_TYPELIB_PATH" ++export LD_LIBRARY_PATH="@pkglibdir@${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH" + + exec @install_dir@/@target@ "$@"