mate.caja-with-extensions: Reimplement using lndir

This installs missing desktop files and icons and allows dropping
the caja-extensions hardcode gsettings patch.

+65 -30
-29
pkgs/desktops/mate/caja-with-extensions/default.nix
··· 1 - { stdenv 2 - , lib 3 - , makeWrapper 4 - , caja-extensions 5 - , caja 6 - , extensions ? [ caja-extensions ] 7 - , mateUpdateScript 8 - }: 9 - 10 - stdenv.mkDerivation { 11 - pname = "${caja.pname}-with-extensions"; 12 - version = caja.version; 13 - 14 - dontUnpack = true; 15 - 16 - nativeBuildInputs = [ 17 - makeWrapper 18 - ]; 19 - 20 - inherit caja; 21 - 22 - installPhase = '' 23 - mkdir -p $out/bin 24 - makeWrapper $caja/bin/caja $out/bin/caja \ 25 - --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") extensions} 26 - ''; 27 - 28 - inherit (caja.meta); 29 - }
···
+61
pkgs/desktops/mate/caja/with-extensions.nix
···
··· 1 + { stdenv 2 + , lib 3 + , glib 4 + , wrapGAppsHook 5 + , xorg 6 + , caja 7 + , cajaExtensions 8 + , extensions ? [ ] 9 + , useDefaultExtensions ? true 10 + }: 11 + 12 + let 13 + selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions); 14 + in 15 + stdenv.mkDerivation { 16 + pname = "${caja.pname}-with-extensions"; 17 + version = caja.version; 18 + 19 + src = null; 20 + 21 + nativeBuildInputs = [ 22 + glib 23 + wrapGAppsHook 24 + ]; 25 + 26 + buildInputs = lib.forEach selectedExtensions (x: x.buildInputs) ++ selectedExtensions 27 + ++ [ caja ] ++ caja.buildInputs; 28 + 29 + dontUnpack = true; 30 + dontConfigure = true; 31 + dontBuild = true; 32 + 33 + preferLocalBuild = true; 34 + allowSubstitutes = false; 35 + 36 + installPhase = '' 37 + runHook preInstall 38 + 39 + mkdir -p $out 40 + ${xorg.lndir}/bin/lndir -silent ${caja} $out 41 + 42 + dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service" 43 + rm -f $out/share/applications/* "$out/$dbus_service_path" 44 + for file in ${caja}/share/applications/*; do 45 + substitute "$file" "$out/share/applications/$(basename $file)" \ 46 + --replace-fail "${caja}" "$out" 47 + done 48 + substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \ 49 + --replace-fail "${caja}" "$out" 50 + 51 + runHook postInstall 52 + ''; 53 + 54 + preFixup = lib.optionalString (selectedExtensions != [ ]) '' 55 + gappsWrapperArgs+=( 56 + --set CAJA_EXTENSION_DIRS ${lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions} 57 + ) 58 + ''; 59 + 60 + inherit (caja.meta); 61 + }
+4 -1
pkgs/desktops/mate/default.nix
··· 14 caja = callPackage ./caja { }; 15 caja-dropbox = callPackage ./caja-dropbox { }; 16 caja-extensions = callPackage ./caja-extensions { }; 17 - caja-with-extensions = callPackage ./caja-with-extensions { }; 18 engrampa = callPackage ./engrampa { }; 19 eom = callPackage ./eom { }; 20 libmatekbd = callPackage ./libmatekbd { }; ··· 96 pluma 97 ]; 98 99 }; 100 101 in lib.makeScope pkgs.newScope packages
··· 14 caja = callPackage ./caja { }; 15 caja-dropbox = callPackage ./caja-dropbox { }; 16 caja-extensions = callPackage ./caja-extensions { }; 17 + caja-with-extensions = callPackage ./caja/with-extensions.nix { }; 18 engrampa = callPackage ./engrampa { }; 19 eom = callPackage ./eom { }; 20 libmatekbd = callPackage ./libmatekbd { }; ··· 96 pluma 97 ]; 98 99 + cajaExtensions = [ 100 + caja-extensions 101 + ]; 102 }; 103 104 in lib.makeScope pkgs.newScope packages