···1findGdkPixbufLoaders() {
23- 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"
16 fi
17-18- # note, this is not a search path
19- export GDK_PIXBUF_MODULE_FILE=$(readlink -e "$loadersDir/loaders.cache")
20-21 fi
2223}
···1findGdkPixbufLoaders() {
23+ # 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"
000012 fi
000013 fi
1415}
+8-1
pkgs/development/libraries/librsvg/default.nix
···34 # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to
35 # point to this file in a wrapper.
36 postConfigure = ''
37- GDK_PIXBUF=$out/lib/gdk-pixbuf
38 mkdir -p $GDK_PIXBUF/loaders
39 sed -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \
40 -i gdk-pixbuf-loader/Makefile
···42 -i gdk-pixbuf-loader/Makefile
43 sed -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" \
44 -i gdk-pixbuf-loader/Makefile
000000045 '';
46}
···34 # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to
35 # point to this file in a wrapper.
36 postConfigure = ''
37+ GDK_PIXBUF=$out/lib/gdk-pixbuf-2.0/2.10.0
38 mkdir -p $GDK_PIXBUF/loaders
39 sed -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \
40 -i gdk-pixbuf-loader/Makefile
···42 -i gdk-pixbuf-loader/Makefile
43 sed -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" \
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
52 '';
53}