qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 04/10] Add a script to extract VSS SDK header


From: Laszlo Ersek
Subject: Re: [Qemu-devel] [PATCH v4 04/10] Add a script to extract VSS SDK headers on POSIX system
Date: Wed, 26 Jun 2013 12:52:16 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130513 Thunderbird/17.0.6

On 06/25/13 17:01, Paolo Bonzini wrote:
> Il 25/06/2013 17:01, Laszlo Ersek ha scritto:
>> On 06/06/13 17:06, Tomoki Sekiyama wrote:
>>
>>> +if ! command -v msiextract > /dev/null; then
>>> +  echo 'msiextract not found. Please install msitools.' >&2
>>> +  exit 1
>>> +fi
>>
>> (This is not a review comment -- I'm trying to test it:)
>>
>> What msiextract version (and dependencies, like libgcab, libgsf etc) are
>> you using? I'm unable to extract "vsssdk.msi"; msiextract spews a bunch
>> of assertion failures.
>>
>> 2e39646b7850a12673bc66ade85fece3  setup.exe
>> 433eb024ed0c669dd1563d952ca41091  vsssdk.msi
>>
>> My versions (RHEL-6.4.z distro):
>> - msitools-0.92 (built from source)
>> - gcab-0.4 (built from source)
>> - libgsf-1.14.15-5.el6 (patch in [1] doesn't seem to help, it only
>> changes the kinds of asserts that fail)
>> - glib2-2.22.5-7.el6
>> - libuuid-2.17.2-12.9.el6_4.3
> 
> The attached patch may help building a newer libgsf on RHEL6.

It did help building it, however the runtime error has stayed. I'm
starting to worry this is a more fundamental issue, namely in glib.

The first errors I'm getting on the msiextract stderr are:

  (msiextract:28858): GLib-GObject-WARNING **: invalid cast from
  `GDataInputStream' to `GSeekable'

  (msiextract:28858): GLib-GIO-CRITICAL **: g_seekable_seek: assertion
  `G_IS_SEEKABLE (seekable)' failed

(The second clearly being a consequence of the first.)

Problem is, the first warning is "wrong". According to the current, live
glib docs <https://developer.gnome.org/gio/stable/GDataInputStream.html>,

  GDataInputStream implements GSeekable.

The NEWS file in glib states,

  Overview of changes from GLib 2.32.1 to 2.33.1
  ==============================================
  [...]
  * GIO:
   - implement GSeekable for the data and buffered stream classes

Commits:

  git log --oneline --reverse 2.32.1..2.33.1 | grep -i seekable
  90739ba Make GBufferedInputStream implement GSeekable
  43895e3 Make GBufferedOutputStream implement GSeekable
  a44e801 Make GDataOutputStream implement GSeekable

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=673034

GDataOutputStream and GBufferedOutputStream are both direct descendants
of GFilterOutputStream, and they both implement the GSeekable interface
in isolation.

However GDataInputStream is derived from GBufferedInputStream (it the
former is not the sibling of the latter, as for output).
GBufferedInputStream was made to implement GSeekable explicitly, and
GDataInputStream gets it via inheritance. (In 2.33.1, that is.)

I guess I'll extract the MSI once on F19 and stash the contents...

Thanks!
Laszlo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]