Public bug reported: This bug is related to https://bugs.launchpad.net/ubuntu/+source/gnome- desktop3/+bug/1795668 and to the question in Ubuntu Stackexchange https://askubuntu.com/questions/1088539/custom-thumbnailers-don-t-work- on-ubuntu-18-10-and-18-04
The recent hardening on thumbnailers by using bubblewrap is causing a problem with user-installed thumbnailers. Consider this (for example) thumbnailer to add a small Dilbert icon to the GIMP .xcf files: #!/bin/bash tmpfile1=$(tempfile --directory /tmp --prefix xcft --suffix .png) trap 'rm -rf $tmpfile1' INT EXIT TERM die() { echo >&2 "$@" rm -rf $tmpfile1 exit 1 } # The script will be called with parameters : -s %s %u %o # -s %s: vertical size, %u: input url, %o: output file if [ $1 = "-s" ]; then size=$2 uin=$3 fout=$4 else size=32 #default size uin=$1 fout=$2 fi # uin es una url, eliminar "file://" fin="${uin#file://*}" /usr/bin/gnome-xcf-thumbnailer -s $size "$fin" $tmpfile1 || die "gnome-xcf-thumbnailer failed" /usr/bin/composite-im6.q16 -gravity southeast \ \( -resize $((size/2))x$((size/2)) /usr/share/gimp/2.0/images/wilber.png \) \ \( -resize $sizex$size $tmpfile1 \) "$fout" || die "convert failed" rm -rf $tmpfile1 exit 0 It used to work before the last update to use bubblewrap, and now doesn't work anymore. I tried to dig into https://github.com/GNOME /gnome-desktop/blob/master/libgnome-desktop/gnome-desktop-thumbnail- script.c to see what happens, and I concluded that the "reinforced" thumbnail generator do this: mkdir /tmp/temporary bwrap --ro-bind /usr /usr \ --ro-bind /etc/ld.so.cache /etc/ld.so.cache \ --ro-bind /bin /bin \ --ro-bind /lib64 /lib64 \ --ro-bind /lib /lib \ --ro-bind /sbin /sbin \ --proc /proc \ --dev /dev \ --chdir / \ --setenv GIO_USE_VFS local \ --unshare-all \ --die-with-parent \ --bind /tmp/temporary /tmp \ --ro-bind /home/romano/software/thumbnailers/test/rgttiwm.xcf /tmp/gnome-desktop-file-to-thumbnail.xcf \ /usr/bin/xcf-thumb -s 128 file:///tmp/gnome-desktop-file-to-thumbnail.xcf /tmp/gnome-desktop-thumbnailer.png # cp /tmp/temporary/gnome-desktop-thumbnailer.png test.png ...and this way, my thumbnailer did succeed in creating the PNG with the correct preview. But when called internally by gnome, it fails, and creates a strange "~/.cache/thumbnailer/fail" file containing the following: �PNG IHDRĉd�EtEXtThumb::URIfile:///home/romano/software/thumbnailers/test/rgttiwm.xcf����tEXtThumb::MTime1380735765�y�O tEXtSoftwareGNOME::ThumbnailFactoryo [...] ** Affects: gnome-desktop3 (Ubuntu) Importance: Undecided Status: New ** Tags: bubblewrap thumbnails -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-desktop3 in Ubuntu. https://bugs.launchpad.net/bugs/1808702 Title: Bubblewrap integration broke user thumbnailers Status in gnome-desktop3 package in Ubuntu: New Bug description: This bug is related to https://bugs.launchpad.net/ubuntu/+source /gnome-desktop3/+bug/1795668 and to the question in Ubuntu Stackexchange https://askubuntu.com/questions/1088539/custom- thumbnailers-don-t-work-on-ubuntu-18-10-and-18-04 The recent hardening on thumbnailers by using bubblewrap is causing a problem with user-installed thumbnailers. Consider this (for example) thumbnailer to add a small Dilbert icon to the GIMP .xcf files: #!/bin/bash tmpfile1=$(tempfile --directory /tmp --prefix xcft --suffix .png) trap 'rm -rf $tmpfile1' INT EXIT TERM die() { echo >&2 "$@" rm -rf $tmpfile1 exit 1 } # The script will be called with parameters : -s %s %u %o # -s %s: vertical size, %u: input url, %o: output file if [ $1 = "-s" ]; then size=$2 uin=$3 fout=$4 else size=32 #default size uin=$1 fout=$2 fi # uin es una url, eliminar "file://" fin="${uin#file://*}" /usr/bin/gnome-xcf-thumbnailer -s $size "$fin" $tmpfile1 || die "gnome-xcf-thumbnailer failed" /usr/bin/composite-im6.q16 -gravity southeast \ \( -resize $((size/2))x$((size/2)) /usr/share/gimp/2.0/images/wilber.png \) \ \( -resize $sizex$size $tmpfile1 \) "$fout" || die "convert failed" rm -rf $tmpfile1 exit 0 It used to work before the last update to use bubblewrap, and now doesn't work anymore. I tried to dig into https://github.com/GNOME /gnome-desktop/blob/master/libgnome-desktop/gnome-desktop-thumbnail- script.c to see what happens, and I concluded that the "reinforced" thumbnail generator do this: mkdir /tmp/temporary bwrap --ro-bind /usr /usr \ --ro-bind /etc/ld.so.cache /etc/ld.so.cache \ --ro-bind /bin /bin \ --ro-bind /lib64 /lib64 \ --ro-bind /lib /lib \ --ro-bind /sbin /sbin \ --proc /proc \ --dev /dev \ --chdir / \ --setenv GIO_USE_VFS local \ --unshare-all \ --die-with-parent \ --bind /tmp/temporary /tmp \ --ro-bind /home/romano/software/thumbnailers/test/rgttiwm.xcf /tmp/gnome-desktop-file-to-thumbnail.xcf \ /usr/bin/xcf-thumb -s 128 file:///tmp/gnome-desktop-file-to-thumbnail.xcf /tmp/gnome-desktop-thumbnailer.png # cp /tmp/temporary/gnome-desktop-thumbnailer.png test.png ...and this way, my thumbnailer did succeed in creating the PNG with the correct preview. But when called internally by gnome, it fails, and creates a strange "~/.cache/thumbnailer/fail" file containing the following: �PNG IHDRĉd�EtEXtThumb::URIfile:///home/romano/software/thumbnailers/test/rgttiwm.xcf����tEXtThumb::MTime1380735765�y�O tEXtSoftwareGNOME::ThumbnailFactoryo [...] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-desktop3/+bug/1808702/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp