summary refs log tree commit diff
diff options
context:
space:
mode:
authorromildo <malaquias@gmail.com>2017-08-18 00:19:58 -0300
committerromildo <malaquias@gmail.com>2017-08-18 00:19:58 -0300
commitb5eab8f94334aa01086a42704565b5e610e4b302 (patch)
treef2d0cb79b13082bb93c9955c3e3e48c01341aa01
parent1a0465290033818638adc56c3c35b6724eaa39ac (diff)
downloadnixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar.gz
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar.bz2
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar.lz
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar.xz
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.tar.zst
nixpkgs-b5eab8f94334aa01086a42704565b5e610e4b302.zip
cajaWithExtensions: init at 1.18.3
-rw-r--r--pkgs/desktops/mate/caja/caja-extension-dirs.patch30
-rw-r--r--pkgs/desktops/mate/caja/cajaWithExtensions.nix11
-rw-r--r--pkgs/desktops/mate/caja/default.nix4
-rw-r--r--pkgs/desktops/mate/default.nix3
4 files changed, 48 insertions, 0 deletions
diff --git a/pkgs/desktops/mate/caja/caja-extension-dirs.patch b/pkgs/desktops/mate/caja/caja-extension-dirs.patch
new file mode 100644
index 00000000000..7490a368efd
--- /dev/null
+++ b/pkgs/desktops/mate/caja/caja-extension-dirs.patch
@@ -0,0 +1,30 @@
+diff --git a/libcaja-private/caja-module.c b/libcaja-private/caja-module.c
+index 023c22e..414913b 100644
+--- a/libcaja-private/caja-module.c
++++ b/libcaja-private/caja-module.c
+@@ -258,11 +258,25 @@ caja_module_setup (void)
+ {
+     static gboolean initialized = FALSE;
+     GList *res;
++    gchar *caja_extension_dirs;
++    gchar **dir_vector;
+ 
+     if (!initialized)
+     {
+         initialized = TRUE;
+ 
++        caja_extension_dirs = (gchar *) g_getenv ("CAJA_EXTENSION_DIRS");
++
++        if (caja_extension_dirs)
++        {
++            dir_vector = g_strsplit (caja_extension_dirs, G_SEARCHPATH_SEPARATOR_S, 0);
++
++            for (gchar **dir = dir_vector; *dir != NULL; ++ dir)
++                load_module_dir (*dir);
++
++            g_strfreev(dir_vector);
++        }
++
+         load_module_dir (CAJA_EXTENSIONDIR);
+ 
+         eel_debug_call_at_shutdown (free_module_objects);
diff --git a/pkgs/desktops/mate/caja/cajaWithExtensions.nix b/pkgs/desktops/mate/caja/cajaWithExtensions.nix
new file mode 100644
index 00000000000..cb315d7f09a
--- /dev/null
+++ b/pkgs/desktops/mate/caja/cajaWithExtensions.nix
@@ -0,0 +1,11 @@
+{ buildEnv, makeWrapper, caja, extensions ? [] }:
+
+buildEnv {
+  name = "cajaWithExtensions-${caja.version}";
+  meta = caja.meta // { description = "File manager (including extensions) for the MATE desktop"; };
+  paths = [ caja ] ++ extensions;
+  buildInputs = [ makeWrapper ];
+  postBuild = ''
+    wrapProgram "$out/bin/caja" --set CAJA_EXTENSION_DIRS "$out/lib/caja/extensions-2.0"
+  '';
+}
diff --git a/pkgs/desktops/mate/caja/default.nix b/pkgs/desktops/mate/caja/default.nix
index 07c7d0662a9..8f38a5ef7e6 100644
--- a/pkgs/desktops/mate/caja/default.nix
+++ b/pkgs/desktops/mate/caja/default.nix
@@ -26,6 +26,10 @@ stdenv.mkDerivation rec {
     mate.mate-desktop
   ];
 
+  patches = [
+    ./caja-extension-dirs.patch
+  ];
+  
   configureFlags = [ "--disable-update-mimedb" ];
   
   meta = {
diff --git a/pkgs/desktops/mate/default.nix b/pkgs/desktops/mate/default.nix
index 5131af9a685..58b4f405cc8 100644
--- a/pkgs/desktops/mate/default.nix
+++ b/pkgs/desktops/mate/default.nix
@@ -3,6 +3,9 @@ rec {
   atril = callPackage ./atril { };
   caja = callPackage ./caja { };
   caja-extensions = callPackage ./caja-extensions { };
+  cajaWithExtensions = callPackage ./caja/cajaWithExtensions.nix {
+    extensions = [ caja-extensions ];
+  };
   eom = callPackage ./eom { };
   pluma = callPackage ./pluma { };
   mate-common = callPackage ./mate-common { };