After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 789020 - msiextract can't extract files: "Error opening file: is a directory"
msiextract can't extract files: "Error opening file: is a directory"
Status: RESOLVED FIXED
Product: msitools
Classification: Other
Component: tools
0.96
Other Linux
: Normal normal
: 1.0
Assigned To: msitools maintainer(s)
msitools maintainer(s)
Depends on:
Blocks:
 
 
Reported: 2017-10-15 16:53 UTC by MTest31
Modified: 2017-10-18 15:29 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Patch with a fix (1.05 KB, patch)
2017-10-18 15:27 UTC, MTest31
committed Details | Review

Description MTest31 2017-10-15 16:53:35 UTC
msiextract seems to not be able to extract files from some msi archives. Do the following:

wget https://download.visualstudio.microsoft.com/download/pr/100107594/d176ecb4240a304d1a2af2391e8965d4/Windows%20SDK%20Desktop%20Libs%20x64-x86_en-us.msi
wget https://download.visualstudio.microsoft.com/download/pr/100107594/d176ecb4240a304d1a2af2391e8965d4/58314d0646d7e1a25e97c902166c3155.cab
msiextract Windows\ SDK\ Desktop\ Libs\ x64-x86_en-us.msi

You'll get an error "Error opening file: is a directory"

I'm using msitools version 0.96.

Most likely the reason is that the msi file references an empty cab file name: if you run msidump on the file, you'll see that Media.idt contains the following content:

DiskId  LastSequence    DiskPrompt      Cabinet VolumeLabel     Source
i2      i4      L64     S255    S32     S72
Media   DiskId
1       0
2       372             58314d0646d7e1a25e97c902166c3155.cab

Maybe ignore any empty cab file names?
Comment 1 MTest31 2017-10-18 15:27:54 UTC
Created attachment 361817 [details] [review]
Patch with a fix