gdkpixbuf: simplify setup hook, don't create per-package loaders.cache

+17 -18
+9 -17
pkgs/development/libraries/gdk-pixbuf/setup-hook.sh
··· 1 1 findGdkPixbufLoaders() { 2 2 3 - if [ -n "$out" ] && [ -z "$IN_NIX_SHELL" ]; then 4 - 5 - # set pixbuf loaders.cache for this package 6 - 7 - local loadersDir="$out/lib/gdk-pixbuf-loaders-2.0/$name" 8 - mkdir -p "$loadersDir" 9 - 10 - if [ -f "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]; then 11 - cat "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" >> "$loadersDir/loaders.cache" 12 - fi 13 - 14 - if [ -f "$1/lib/gdk-pixbuf/loaders.cache" ]; then 15 - cat "$1/lib/gdk-pixbuf/loaders.cache" >> "$loadersDir/loaders.cache" 3 + # choose the longest loaders.cache 4 + local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" 5 + if [ -f "$loadersCache" ]; then 6 + if [ -f "$GDK_PIXBUF_MODULE_FILE" ]; then 7 + if [ $(cat "$loadersCache"|wc -l) -gt $(cat "$GDK_PIXBUF_MODULE_FILE"|wc -l) ]; then 8 + export GDK_PIXBUF_MODULE_FILE="$loadersCache" 9 + fi 10 + else 11 + export GDK_PIXBUF_MODULE_FILE="$loadersCache" 16 12 fi 17 - 18 - # note, this is not a search path 19 - export GDK_PIXBUF_MODULE_FILE=$(readlink -e "$loadersDir/loaders.cache") 20 - 21 13 fi 22 14 23 15 }
+8 -1
pkgs/development/libraries/librsvg/default.nix
··· 34 34 # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to 35 35 # point to this file in a wrapper. 36 36 postConfigure = '' 37 - GDK_PIXBUF=$out/lib/gdk-pixbuf 37 + GDK_PIXBUF=$out/lib/gdk-pixbuf-2.0/2.10.0 38 38 mkdir -p $GDK_PIXBUF/loaders 39 39 sed -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \ 40 40 -i gdk-pixbuf-loader/Makefile ··· 42 42 -i gdk-pixbuf-loader/Makefile 43 43 sed -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" \ 44 44 -i gdk-pixbuf-loader/Makefile 45 + ''; 46 + 47 + # Merge gdkpixbuf and librsvg loaders 48 + postInstall = '' 49 + mv $GDK_PIXBUF/loaders.cache $GDK_PIXBUF/loaders.cache.tmp 50 + cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache 51 + rm $GDK_PIXBUF/loaders.cache.tmp 45 52 ''; 46 53 }