···11findGdkPixbufLoaders() {
2233- if [ -n "$out" ] && [ -z "$IN_NIX_SHELL" ]; then
44-55- # set pixbuf loaders.cache for this package
66-77- local loadersDir="$out/lib/gdk-pixbuf-loaders-2.0/$name"
88- mkdir -p "$loadersDir"
99-1010- if [ -f "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" ]; then
1111- cat "$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache" >> "$loadersDir/loaders.cache"
1212- fi
1313-1414- if [ -f "$1/lib/gdk-pixbuf/loaders.cache" ]; then
1515- cat "$1/lib/gdk-pixbuf/loaders.cache" >> "$loadersDir/loaders.cache"
33+ # choose the longest loaders.cache
44+ local loadersCache="$1/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"
55+ if [ -f "$loadersCache" ]; then
66+ if [ -f "$GDK_PIXBUF_MODULE_FILE" ]; then
77+ if [ $(cat "$loadersCache"|wc -l) -gt $(cat "$GDK_PIXBUF_MODULE_FILE"|wc -l) ]; then
88+ export GDK_PIXBUF_MODULE_FILE="$loadersCache"
99+ fi
1010+ else
1111+ export GDK_PIXBUF_MODULE_FILE="$loadersCache"
1612 fi
1717-1818- # note, this is not a search path
1919- export GDK_PIXBUF_MODULE_FILE=$(readlink -e "$loadersDir/loaders.cache")
2020-2113 fi
22142315}
+8-1
pkgs/development/libraries/librsvg/default.nix
···3434 # The loaders.cache can be used by setting GDK_PIXBUF_MODULE_FILE to
3535 # point to this file in a wrapper.
3636 postConfigure = ''
3737- GDK_PIXBUF=$out/lib/gdk-pixbuf
3737+ GDK_PIXBUF=$out/lib/gdk-pixbuf-2.0/2.10.0
3838 mkdir -p $GDK_PIXBUF/loaders
3939 sed -e "s#gdk_pixbuf_moduledir = .*#gdk_pixbuf_moduledir = $GDK_PIXBUF/loaders#" \
4040 -i gdk-pixbuf-loader/Makefile
···4242 -i gdk-pixbuf-loader/Makefile
4343 sed -e "s#\$(GDK_PIXBUF_QUERYLOADERS)#GDK_PIXBUF_MODULEDIR=$GDK_PIXBUF/loaders \$(GDK_PIXBUF_QUERYLOADERS)#" \
4444 -i gdk-pixbuf-loader/Makefile
4545+ '';
4646+4747+ # Merge gdkpixbuf and librsvg loaders
4848+ postInstall = ''
4949+ mv $GDK_PIXBUF/loaders.cache $GDK_PIXBUF/loaders.cache.tmp
5050+ cat ${gdk_pixbuf}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache $GDK_PIXBUF/loaders.cache.tmp > $GDK_PIXBUF/loaders.cache
5151+ rm $GDK_PIXBUF/loaders.cache.tmp
4552 '';
4653}