Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 67 lines 1.5 kB view raw
1{ 2 stdenv, 3 lib, 4 glib, 5 wrapGAppsHook3, 6 xorg, 7 caja, 8 cajaExtensions, 9 extensions ? [ ], 10 useDefaultExtensions ? true, 11}: 12 13let 14 selectedExtensions = extensions ++ (lib.optionals useDefaultExtensions cajaExtensions); 15in 16stdenv.mkDerivation { 17 pname = "${caja.pname}-with-extensions"; 18 version = caja.version; 19 20 src = null; 21 22 nativeBuildInputs = [ 23 glib 24 wrapGAppsHook3 25 ]; 26 27 buildInputs = 28 lib.forEach selectedExtensions (x: x.buildInputs) 29 ++ selectedExtensions 30 ++ [ caja ] 31 ++ caja.buildInputs; 32 33 dontUnpack = true; 34 dontConfigure = true; 35 dontBuild = true; 36 37 preferLocalBuild = true; 38 allowSubstitutes = false; 39 40 installPhase = '' 41 runHook preInstall 42 43 mkdir -p $out 44 ${xorg.lndir}/bin/lndir -silent ${caja} $out 45 46 dbus_service_path="share/dbus-1/services/org.mate.freedesktop.FileManager1.service" 47 rm -f $out/share/applications/* "$out/$dbus_service_path" 48 for file in ${caja}/share/applications/*; do 49 substitute "$file" "$out/share/applications/$(basename $file)" \ 50 --replace-fail "${caja}" "$out" 51 done 52 substitute "${caja}/$dbus_service_path" "$out/$dbus_service_path" \ 53 --replace-fail "${caja}" "$out" 54 55 runHook postInstall 56 ''; 57 58 preFixup = lib.optionalString (selectedExtensions != [ ]) '' 59 gappsWrapperArgs+=( 60 --set CAJA_EXTENSION_DIRS ${ 61 lib.concatMapStringsSep ":" (x: "${x.outPath}/lib/caja/extensions-2.0") selectedExtensions 62 } 63 ) 64 ''; 65 66 inherit (caja) meta; 67}