about summary refs log tree commit diff
path: root/pkgs/desktops/xfce
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2015-10-01 14:17:46 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2015-10-01 14:17:46 +0200
commitb23038dd801fcbfad2980664758d820b29abebae (patch)
treea743ff1a9428dea20b791e9556a32a077293ad41 /pkgs/desktops/xfce
parent96e1b7eaf9eaaa3592906a97e0c3cc4a4552769c (diff)
parent562851a0680c35ecc34e59976e2f8eabe142dca6 (diff)
Merge remote-tracking branch 'origin/master' into systemd-219
Diffstat (limited to 'pkgs/desktops/xfce')
-rw-r--r--pkgs/desktops/xfce/core/thunar-archive-plugin.nix25
-rw-r--r--pkgs/desktops/xfce/core/thunar.nix2
-rw-r--r--pkgs/desktops/xfce/core/thunarx_plugins_directory.patch48
-rw-r--r--pkgs/desktops/xfce/core/xfdesktop.nix4
-rw-r--r--pkgs/desktops/xfce/default.nix5
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/archive/default.nix58
-rw-r--r--pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix41
7 files changed, 155 insertions, 28 deletions
diff --git a/pkgs/desktops/xfce/core/thunar-archive-plugin.nix b/pkgs/desktops/xfce/core/thunar-archive-plugin.nix
deleted file mode 100644
index 62a90578bd304..0000000000000
--- a/pkgs/desktops/xfce/core/thunar-archive-plugin.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, thunar, intltool, exo, gtk, udev, libxfce4ui, libxfce4util, xfconf }:
-
-stdenv.mkDerivation rec {
-  name  = "thunar-archive-plugin-${version}";
-  maj_ver = "0.3";
-  version = "${maj_ver}.1";
-
-  src = fetchurl {
-    url = "mirror://xfce/src/thunar-plugins/${name}/${maj_ver}/${name}.tar.bz2";
-    sha256 = "1sxw09fwyn5sr6ipxk7r8gqjyf41c2v7vkgl0l6mhy5mcb48f27z";
-  };
-
-  buildInputs = [ pkgconfig thunar intltool exo gtk udev libxfce4ui libxfce4util xfconf ];
-  enableParallelBuilding = true;
-
-  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
-
-  meta = {
-    homepage = http://foo-projects.org/~benny/projects/thunar-archive-plugin/;
-    description = "The Thunar Archive Plugin allows you to create and extract archive files using the file context menus in the Thunar file manager";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.iElectric ];
-  };
-}
diff --git a/pkgs/desktops/xfce/core/thunar.nix b/pkgs/desktops/xfce/core/thunar.nix
index 6e47945445961..1ddab2b075250 100644
--- a/pkgs/desktops/xfce/core/thunar.nix
+++ b/pkgs/desktops/xfce/core/thunar.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
+  patches = [ ./thunarx_plugins_directory.patch ];
+
   buildInputs = [
     pkgconfig intltool
     gtk dbus_glib libstartup_notification libnotify libexif pcre udev
diff --git a/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch
new file mode 100644
index 0000000000000..e1431d86b147d
--- /dev/null
+++ b/pkgs/desktops/xfce/core/thunarx_plugins_directory.patch
@@ -0,0 +1,48 @@
+diff --git a/thunarx/thunarx-provider-factory.c b/thunarx/thunarx-provider-factory.c
+index 31b8835..a3e7f4e 100644
+--- a/thunarx/thunarx-provider-factory.c
++++ b/thunarx/thunarx-provider-factory.c
+@@ -141,12 +141,19 @@ static GList*
+ thunarx_provider_factory_load_modules (ThunarxProviderFactory *factory)
+ {
+   ThunarxProviderModule *module;
++  const gchar           *thunar_dir;
+   const gchar           *name;
+   GList                 *modules = NULL;
+   GList                 *lp;
+   GDir                  *dp;
+ 
+-  dp = g_dir_open (THUNARX_DIRECTORY, 0, NULL);
++  thunar_dir = g_getenv("THUNARX_MODULE_DIR");
++  if (NULL == thunar_dir)
++    {
++      thunar_dir = THUNARX_DIRECTORY;
++    }
++
++  dp = g_dir_open (thunar_dir, 0, NULL);
+   if (G_LIKELY (dp != NULL))
+     {
+       /* determine the types for all existing plugins */
+diff --git a/thunarx/thunarx-provider-module.c b/thunarx/thunarx-provider-module.c
+index 023ad2a..6c21997 100644
+--- a/thunarx/thunarx-provider-module.c
++++ b/thunarx/thunarx-provider-module.c
+@@ -174,10 +174,17 @@ static gboolean
+ thunarx_provider_module_load (GTypeModule *type_module)
+ {
+   ThunarxProviderModule *module = THUNARX_PROVIDER_MODULE (type_module);
++  const gchar           *thunar_dir;
+   gchar                 *path;
++    
++  thunar_dir = g_getenv("THUNARX_MODULE_DIR");
++  if (NULL == thunar_dir)
++    {
++      thunar_dir = THUNARX_DIRECTORY;
++    }
+ 
+   /* load the module using the runtime link editor */
+-  path = g_build_filename (THUNARX_DIRECTORY, type_module->name, NULL);
++  path = g_build_filename (thunar_dir, type_module->name, NULL);
+   module->library = g_module_open (path, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL);
+   g_free (path);
+ 
diff --git a/pkgs/desktops/xfce/core/xfdesktop.nix b/pkgs/desktops/xfce/core/xfdesktop.nix
index 4402e61a2fb68..e5d04879008e7 100644
--- a/pkgs/desktops/xfce/core/xfdesktop.nix
+++ b/pkgs/desktops/xfce/core/xfdesktop.nix
@@ -4,11 +4,11 @@
 stdenv.mkDerivation rec {
   p_name  = "xfdesktop";
   ver_maj = "4.12";
-  ver_min = "2";
+  ver_min = "3";
 
   src = fetchurl {
     url = "mirror://xfce/src/xfce/${p_name}/${ver_maj}/${name}.tar.bz2";
-    sha256 = "c9788883163b57bac39d12e5f8310c869d176454879defb78b67f8e9f1ad5225";
+    sha256 = "a8a8d93744d842ca6ac1f9bd2c8789ee178937bca7e170e5239cbdbef30520ac";
   };
   name = "${p_name}-${ver_maj}.${ver_min}";
 
diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix
index f2a9f848342c7..5fdab2ab81e69 100644
--- a/pkgs/desktops/xfce/default.nix
+++ b/pkgs/desktops/xfce/default.nix
@@ -26,7 +26,10 @@ xfce_self = rec { # the lines are very long but it seems better than the even-od
   libxfcegui4     = callPackage ./core/libxfcegui4.nix { };
   thunar          = callPackage ./core/thunar.nix { };
   thunar_volman   = callPackage ./core/thunar-volman.nix { }; # ToDo: probably inside Thunar now
-  thunar_archive_plugin  = callPackage ./core/thunar-archive-plugin.nix { };
+  thunar-archive-plugin 
+                  = callPackage ./thunar-plugins/archive { };
+  thunar-dropbox-plugin 
+                  = callPackage ./thunar-plugins/dropbox { };
   tumbler         = callPackage ./core/tumbler.nix { };
   xfce4panel      = callPackage ./core/xfce4-panel.nix { }; # ToDo: impure plugins from /run/current-system/sw/lib/xfce4
   xfce4session    = callPackage ./core/xfce4-session.nix { };
diff --git a/pkgs/desktops/xfce/thunar-plugins/archive/default.nix b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
new file mode 100644
index 0000000000000..78e5f5002cd43
--- /dev/null
+++ b/pkgs/desktops/xfce/thunar-plugins/archive/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, pkgconfig, xfce4_dev_tools
+, gtk
+, thunar
+, exo, libxfce4util, libxfce4ui
+, xfconf, udev, libnotify
+}:
+
+stdenv.mkDerivation rec {
+  p_name  = "thunar-archive-plugin";
+  ver_maj = "0.3";
+  ver_min = "1";
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  src = fetchFromGitHub {
+    owner = "xfce-mirror";
+    repo = p_name;
+    rev = "72b23eefc348bee31e06a04f968e430bc7dfa51e";
+    sha256 = "0l8715x23qmk0jkywiza3qx0xxmafxi4grp7p82kkc5df5ccs8kx";
+  };
+
+  buildInputs = [
+    pkgconfig
+    xfce4_dev_tools
+    thunar
+    exo gtk libxfce4util libxfce4ui
+    xfconf udev libnotify
+  ];
+
+  preConfigure = ''
+    ./autogen.sh
+  '';
+
+  /*
+    File roller `*.desktop` situation
+    ---------------------------------
+
+    For some odd reason, in nix os, gnome file-roller's desktop file has the non-standard name
+    `org.gnome.FileRoller.desktop`. In order to be compatible with this odd context, create
+    a `*.tap` file of the same name.
+
+    IMPORTANT: Adapt or remove the symbolic link if the situation changes.
+  */
+  preFixup = ''
+    pushd $out/libexec/thunar-archive-plugin > /dev/null
+    ln -s ./file-roller.tap org.gnome.FileRoller.tap
+    popd > /dev/null
+    rm $out/share/icons/hicolor/icon-theme.cache
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://foo-projects.org/~benny/projects/thunar-archive-plugin/;
+    description = "Thunar plugin providing file context menus for archives";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
new file mode 100644
index 0000000000000..cf83386fa261e
--- /dev/null
+++ b/pkgs/desktops/xfce/thunar-plugins/dropbox/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, fetchurl, pkgconfig
+, gtk
+, thunar, python2
+}:
+
+stdenv.mkDerivation rec {
+  p_name  = "thunar-dropbox-plugin";
+  ver_maj = "0.2";
+  ver_min = "1";
+  name = "${p_name}-${ver_maj}.${ver_min}";
+
+  src = fetchurl {
+    url = "http://softwarebakery.com/maato/files/thunar-dropbox/thunar-dropbox-${ver_maj}.${ver_min}.tar.bz2";
+    sha256 = "08vhzzzwshyz371yl7fzfylmhvchhv3s5kml3dva4v39jhvrpnkf";
+  };
+
+  buildInputs = [
+    pkgconfig
+    gtk
+    thunar python2
+  ];
+
+  configurePhase = "python2 waf configure --prefix=$out";
+
+  buildPhase = "python2 waf";
+
+  installPhase = ''
+    python2 waf install
+  '';
+
+  preFixup = "rm $out/share/icons/hicolor/icon-theme.cache";
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://softwarebakery.com/maato/thunar-dropbox.html;
+    description = "A plugin for thunar that adds context-menu items from dropbox";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}