From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3) Gecko/20041020 Galeon/1.3.18 Description of problem: When updating the system from U3 to U4 using apt, I get the following output: ... 79:librsvg2 ########################################### [ 42%] /var/tmp/rpm-tmp.23030: line 2: /usr/bin/update-gdk-pixbuf-loaders: No such file or directory error: %post(librsvg2-2.2.3-6) scriptlet failed, exit status 127 ... After this update, we end up with 2 packages: [root@emyn root]# rpm -q librsvg2 librsvg2-2.2.3-2 librsvg2-2.2.3-6 When installing the older package, it seemed to haved suffered from this too: [root@emyn root]# rpm -e librsvg2-2.2.3-2 /var/tmp/rpm-tmp.19397: line 2: gdk-pixbuf-query-loaders: command not found error: %postun(librsvg2-2.2.3-2) scriptlet failed, exit status 127 The problem which we experienced with our repositories too, is related to a change from /usr/bin/gdk-pixbuf-query-loaders to /usr/bin/gdk-pixbuf-query-loaders-32. For this, the new tool /usr/bin/update-gdk-pixbuf-loaders has been made. What we do in our packages is: %post /usr/bin/update-gdk-pixbuf-loaders . &>/dev/null || : ### Backward compatibility for gtk < 2.4.13-9 [ -x %{_bindir}/gdk-pixbuf-query-loaders ] && \ %{_bindir}/gdk-pixbuf-query-loaders > \ %{_sysconfdir}/gtk-2.0/gdk-pixbuf.loaders || : Version-Release number of selected component (if applicable): librsvg2-2.2.3-6 How reproducible: Always Steps to Reproduce: 1... 2. 3. Additional info:
Same here: /var/tmp/rpm-tmp.48163: line 2: gdk-pixbuf-query-loaders: command not found error: %postun(librsvg2-2.2.3-2) scriptlet failed, exit status 127
A few comments: (1) update-gdk-pixbuf-loaders is in gtk2-2.2.4-12, so a "Prereq: gtk2 >= 2.2.4-12", or maybe better a "Prereq: /usr/bin/update-gdk-pixbuf-loaders" should be included in the package. (2) Non-standard commands used in the pre/post scripts should always be prereq'ed, IMHO. (3) Even if update-gdk-pixbuf-loaders exists, it fails! This is because the %post(un) scripts use %{_arch}-%{_host_vendor}-%{_host_os}, while gtk2 uses %{_host} and the difference is the use of i386 resp. i686 in the name. So the librsvg2 scripts should use %{_host} too.
Hmmm... related to my previous comment (3) I now see: (4) The new gtk2 contains a directory /etc/gtk-2.0/i686-redhat-linux-gnu, this seems to be wrong, as it contains the architecture of the *build* host (i686), not that of the *target* host (i386 in the case of gtk2). So, using %{_host} as suggested in (3) would fail again on architectures that are not the same as the build host (like athlon).
Correction of my comment (4): As %{_host} is only interpreted on the build host, installing on athlon will not fail. But, still, I think using %{_host} for file naming is not recommended for packages that are not bound to a specific (sub)architecture.
See also my bug #143950 for gtk2 that I just filed.
This problem now blocks 'rpm -Fhv gtk2-2.2.4-15.i386.rpm' unless one manually does 'rpm -e librsvg2-2.2.3-2' first. As a result, up2date and its cousins probably fail to push the latest gtk2 update.
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2006-0040.html