Red Hat Bugzilla – Bug 977894
libgsf fails to parse valid MSI files (patch available)
Last modified: 2013-06-26 06:53:56 EDT
*** Description of problem:
In order to review and test the qemu series at <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg00959.html>, I need to run "msiextract" on a Windows installer file.
I installed gcab-0.4 and msitools-0.92 from source. When I run
** (msiextract:30909): CRITICAL **: libmsi_istream_new: assertion `dup'
(msiextract:30909): gcab-CRITICAL **: gcab_cabinet_load: assertion
`G_IS_INPUT_STREAM (stream)' failed
Turns out this is a known problem in libgsf (a dependency of msitools); an unshipped upstream patch is available from Paolo Bonzini. See <https://bugzilla.gnome.org/show_bug.cgi?id=689706>.
*** Version-Release number of selected component (if applicable):
*** How reproducible:
*** Steps to Reproduce:
1. Download "setup.exe" from <http://www.microsoft.com/en-us/download/details.aspx?id=23490>.
2. Extract "vsssdk.msi" from "setup.exe" using the script in <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg00966.html>.
3. Try to extract "vsssdk.msi" with msitools-0.92, built against libgsf-1.14.15-5.el6.
*** Actual results:
*** Expected results:
Extraction should work.
*** Additional info:
The brew build <https://brewweb.devel.redhat.com/buildinfo?buildID=252310> seems to backport this patch. However it only references a gnome BZ, not a Red Hat BZ.
The fix in that build has also not been pushed to dist-git.
The patch is not unshipped, just not backported to RHEL.
Is it available in a tarball release? I was working from <https://wiki.gnome.org/action/recall/msitools?action=recall&rev=6>.
Yes, it is in 1.14.26 (see https://git.gnome.org/browse/libgsf/log/?id=LIBGSF_1_14_26 close to the bottom).
Since the broken out patch didn't fix my problem, maybe this BZ should concern upgrading libgsf to 1.14.26, rather than backporting one patch.
OTOH 1.14.26 requires a higher glib2 than what's available in RHEL-6 (as you were kind enough to point out and patch the dependency as well, highly appreciated!), so any such upgrade will probably need your patch too <http://lists.nongnu.org/archive/html/qemu-devel/2013-06/msg04498.html>.
I'll try to test it as soon as I can. Thanks.
Turns out (see thread linked above) that updating libgsf is insufficient, msiextract (or the updated libgsf itself) would further depend on a very recent glib2 release (2.33.1). That's probably too intrusive for RHEL-6. OTOH upgrading just libgsf is useless, so closing this as WONTFIX. Thanks.