summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/desktops/gnome-3/core/baobab/default.nix18
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix2
-rw-r--r--pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh10
-rw-r--r--pkgs/desktops/gnome-3/core/yelp/default.nix18
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix2
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/setup-hook.sh19
6 files changed, 51 insertions, 18 deletions
diff --git a/pkgs/desktops/gnome-3/core/baobab/default.nix b/pkgs/desktops/gnome-3/core/baobab/default.nix
index b905a05474d3..07805644d906 100644
--- a/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -1,14 +1,13 @@
-{ stdenv, intltool, fetchurl, vala, libgtop, pkgconfig, gtk3, glib
-, bash, makeWrapper, itstool, libxml2, gnome3 }:
-
-# TODO: icons and theme still does not work
-# use packaged gnome3.gnome_icon_theme_symbolic 
+{ stdenv, intltool, fetchurl, vala, libgtop
+, pkgconfig, gtk3, glib, hicolor_icon_theme
+, bash, makeWrapper, itstool, libxml2
+, gnome3, librsvg, gdk_pixbuf }:
 
 stdenv.mkDerivation rec {
   name = "baobab-3.10.1";
 
   src = fetchurl {
-    url = "https://download.gnome.org/sources/baobab/3.10/${name}.tar.xz";
+    url = "mirror://gnome/sources/baobab/3.10/${name}.tar.xz";
     sha256 = "23ce8e4847ce5f1c8230e757532d94c84e6e273d6ec8fca20eecaed5f96563f9";
   };
 
@@ -19,15 +18,18 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-I${gnome3.glib}/include/gio-unix-2.0";
 
   propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard ];
+  propagatedBuildInputs = [ gdk_pixbuf gnome3.gnome_icon_theme librsvg
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
 
   buildInputs = [ vala pkgconfig gtk3 glib libgtop intltool itstool libxml2
                   gnome3.gsettings_desktop_schemas makeWrapper ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
+  installFlags = "gsettingsschemadir=\${out}/share/baobab/glib-2.0/schemas/";
 
   postInstall = ''
     wrapProgram "$out/bin/baobab" \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/baobab:$XDG_ICON_DIRS"
   '';
 
   preFixup = ''
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
index 474a2ccb9a45..5b16f827ae00 100644
--- a/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1xinbgkkvlhazj887ajcl13i7kdc1wcca02jwxzvjrvchjsp4m66";
   };
 
+  setupHook = ./setup-hook.sh;
+
   nativeBuildInputs = [ pkgconfig intltool iconnamingutils gtk ];
 
   meta = with stdenv.lib; {
diff --git a/pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh b/pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh
new file mode 100644
index 000000000000..d7156f3d4630
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/gnome-icon-theme/setup-hook.sh
@@ -0,0 +1,10 @@
+make_gtk_applications_find_icon_themes() {
+
+    # where to find icon themes
+    if [ -d "$1/share/icons" ]; then
+      addToSearchPath XDG_ICON_DIRS $1/share
+    fi
+	
+}
+
+envHooks+=(make_gtk_applications_find_icon_themes)
diff --git a/pkgs/desktops/gnome-3/core/yelp/default.nix b/pkgs/desktops/gnome-3/core/yelp/default.nix
index ee98f96bc270..d84bd288707d 100644
--- a/pkgs/desktops/gnome-3/core/yelp/default.nix
+++ b/pkgs/desktops/gnome-3/core/yelp/default.nix
@@ -1,18 +1,18 @@
 { stdenv, intltool, fetchurl, webkitgtk, pkgconfig, gtk3, glib
 , file, librsvg, hicolor_icon_theme, gnome3, gdk_pixbuf
-, bash, makeWrapper, itstool, libxml2, libxslt, icu  }:
+, bash, makeWrapper, itstool, libxml2, libxslt, icu }:
 
 stdenv.mkDerivation rec {
   name = "yelp-3.10.1";
 
   src = fetchurl {
-    url = "https://download.gnome.org/sources/yelp/3.10/${name}.tar.xz";
+    url = "mirror://gnome/sources/yelp/3.10/${name}.tar.xz";
     sha256 = "17736479b7d0b1128c7d6cb3073f2b09e4bbc82670731b2a0d3a3219a520f816";
   };
 
-  propagatedUserEnvPkgs = [ librsvg gdk_pixbuf gnome3.gnome_themes_standard
-                            gnome3.gnome_icon_theme hicolor_icon_theme
-                            gnome3.gnome_icon_theme_symbolic ];
+  propagatedUserEnvPkgs = [ gnome3.gnome_themes_standard  ];
+  propagatedBuildInputs = [ librsvg gdk_pixbuf gnome3.gnome_icon_theme
+                            hicolor_icon_theme gnome3.gnome_icon_theme_symbolic ];
 
   preConfigure = "substituteInPlace ./configure --replace /usr/bin/file ${file}/bin/file";
 
@@ -20,14 +20,12 @@ stdenv.mkDerivation rec {
                   libxml2 libxslt icu file makeWrapper gnome3.yelp_xsl
                   gnome3.gsettings_desktop_schemas ];
 
-  installFlags = "gsettingsschemadir=\${out}/share/${name}/glib-2.0/schemas/";
+  installFlags = "gsettingsschemadir=\${out}/share/yelp/glib-2.0/schemas/";
 
   postInstall = ''
-    mkdir -p $out/lib/yelp/gdk-pixbuf-2.0/2.10.0
-    cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache ${librsvg}/lib/gdk-pixbuf/loaders.cache > $out/lib/yelp/gdk-pixbuf-2.0/2.10.0/loaders.cache
     wrapProgram "$out/bin/yelp" \
-      --set GDK_PIXBUF_MODULE_FILE `readlink -e $out/lib/yelp/gdk-pixbuf-2.0/2.10.0/loaders.cache` \
-      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.gnome_icon_theme_symbolic}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gnome_icon_theme}/share:${hicolor_icon_theme}/share:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/${name}"
+      --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share:${gnome3.gnome_themes_standard}/:${gnome3.gnome_themes_standard}/share:${gnome3.yelp_xsl}/share/yelp-xsl:${gnome3.gsettings_desktop_schemas}/share:$out/share:$out/share/yelp:$XDG_ICON_DIRS"
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index 7a06f08aea60..cd3e76316186 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
     sha256 = "0ldhpdalbyi6q5k1dz498i9hqcsd51yxq0f91ck9p0h4v38blfx1";
   };
 
+  setupHook = ./setup-hook.sh;
+
   # !!! We might want to factor out the gdk-pixbuf-xlib subpackage.
   buildInputs = [ libX11 libintlOrEmpty ];
 
diff --git a/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh b/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
new file mode 100644
index 000000000000..280d9aa4f1ba
--- /dev/null
+++ b/pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
@@ -0,0 +1,19 @@
+make_gtk_applications_find_pixbuf_loaders() {
+
+    # set pixbuf loaders.cache for this package
+	mkdir -p "$out/lib/$name/gdk-pixbuf"
+	
+	if [ -f "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]; then
+		cat "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" >> "$out/lib/$name/gdk-pixbuf/loaders.cache"
+	fi
+
+	if [ -f "$1/lib/gdk-pixbuf/loaders.cache" ]; then
+		cat "$1/lib/gdk-pixbuf/loaders.cache" >> "$out/lib/$name/gdk-pixbuf/loaders.cache"
+	fi
+	
+	# note, this is not a search path
+	export GDK_PIXBUF_MODULE_FILE=$(readlink -e "$out/lib/$name/gdk-pixbuf/loaders.cache")
+
+}
+
+envHooks+=(make_gtk_applications_find_pixbuf_loaders)