[Libguestfs] another GTK3 regression...

Laszlo Ersek lersek at redhat.com
Fri Sep 30 13:15:38 UTC 2022


On 09/30/22 14:11, Richard W.M. Jones wrote:
> On Fri, Sep 30, 2022 at 12:56:40PM +0200, Laszlo Ersek wrote:
>> On 09/30/22 11:46, Daniel P. Berrangé wrote:
>>> On Fri, Sep 30, 2022 at 10:33:02AM +0100, Richard W.M. Jones wrote:
>>>>
>>>> Hmm, here's an interesting stackoverflow posting ...
>>>>
>>>> https://stackoverflow.com/questions/3301023/gtk-spinner-not-appearing
>>>>
>>>> The first point is "Make sure librsvg is installed".  librsvg is _not_
>>>> installed in the ISO.  Laszlo, can you try building an ISO with this
>>>> package explicitly added to the deps?
>>>
>>> Yes, that could be it.  The widget is rendered using CSS and the
>>> Adwaita CSS rule references "process-working-symbolic" as the
>>> icon, and that icon is only shipped in SVG format AFAICT.
>>
>> (1) sorry, I've been in write-only mode for a long while now. That's why
>> we've apparently arrived at nearly the same conclusions thus far,
>> duplicating (triplicating?) our efforts. That said, I'm glad we did
>> arrive at the same ideas.
>>
>> (2) A number of surprises:
>>
>> (2a) p2v already spells out icewm[-lite] as a depencency, just not when
>> the VM boot disk image / ISO image is based on Fedora (more precisely:
>> for SUSE). When building on Fedora, the WM included is Metacity instead
>> (and the launch script starts metacity vs. icewm accordingly.)
> 
> It seems like SUSE developer Cédric Bosdonnat made that addition.  He
> actually removed metacity and replaced it with icewm-lite
> (commit cebcf47f6) and then made the change to the launch script to
> select the right WM (commit 75c24c710).  However he didn't make any
> corresponding change to Fedora so we now have both.

[out of order]

> BTW we used to use matchbox (see commit 47a3518b28).

I ended up tracking down the same set of commits, with git-blame.

In particular, 47a3518b28e0 says that matchbox was replaced with
metacity because the latter supported multiple top-level windows; IceWM
trivially supports those as well, and is also light-weight.

(I guess I should just get the patches on the list, rather than rewrite
the commit messages in emails, piecemeal :))

> 
> icewm is available in RHEL 9.  I don't know if there's any reason to
> prefer metacity over icewm.  Usually when looking at virt-p2v
> dependencies, we tended to prefer, in order:
> 
>  - availability in RHEL

IceWM is in EPEL9.

> 
>  - small size
> 
>  - functionality

IceWM is small, and (IMO) much more functional than Metacity.

> 
>> (2b) There is a makefile dependency bug in virt-p2v; I'm going to post
>> the patch for that.
>>
>>> diff --git a/Makefile.am b/Makefile.am
>>> index 02ff1bb2eebd..2881fc947b24 100644
>>> --- a/Makefile.am
>>> +++ b/Makefile.am
>>> @@ -328,7 +328,7 @@ $(BLANK_DISK):
>>>         $(top_builddir)/run guestfish -N $@=part exit
>>>
>>>  virt-p2v.img: \
>>> -           dependencies.m4 \
>>> +           $(dependencies_files) \
>>>             issue \
>>>             launch-virt-p2v \
>>>             p2v.service \
>>> @@ -373,7 +373,7 @@ stamp-test-virt-p2v-pxe-data-files: \
>>>         touch $@
>>>
>>>  test-virt-p2v-pxe.img: \
>>> -           dependencies.m4 \
>>> +           $(dependencies_files) \
>>>             issue \
>>>             launch-virt-p2v \
>>>             p2v.service \
> 
> Yes, seems like a mistake.
> 
>> Namely, even after I modified "dependencies.m4", the disk image did not
>> get correctly regenerated for "run-virt-p2v-in-a-vm". While the image
>> *was* regenerated, the intermediate (OS-filtered) deps files were not,
>> and so the change I had made to "dependencies.m4" did not affect the
>> actual package installation command line.
> 
> Is there another missing dep or did you track down the reason for that?

I mean the above dependency updates are the fix.

> 
>> (2c) I learned about metacity already being present when I launched an
>> xterm window from the first dialog of p2v, and attempted to run icewm.
>> IceWM complained that another window manager was already present; that
>> was when I found metacity in the process list (pstree).
>>
>> (2d) I started icewm with "icewm --replace" (as recommended by the error
>> message from (2c)), and lo and behold, two changes had come into effect:
>>
>> - the spinner started working
> 
> This is strange ..?  Did librsvg get installed at some point?

Since Daniel is asking the same -- librsvg2 is not installed in the
problematic build of the ISO (with metacity). I'm currently checking if,
when using IceWM, it is present...

Yes, it is!

I still like IceWM much more -- I'm not a sworn enemy of Metacity, so we
could just add the librsvg2 dependency explicitly, but it really irks me
that with Metacity, there isn't *any* task bar-like widget on the
screen; no Activities button in the upper left corner, no overview of
windows -- honestly, even though I could move windows around by their
captions (no WM decorations, of course), for the longest time I had
believed that there was *no* WM at all in place.

Laszlo

> 
>> - I actually got an actual Task Bar, where I could see all the windows:
>>   virt-p2v, the GTK debug windows (plural), the XTerm window, and (in
>>   the Tray area) even nm-applet! This is not a small improvement: QEMU
>>   doesn't let me easily inject Alt-Tab, so switching between windows in
>>   the VM environment has been a huge chore (made worse by the many GTK
>>   debug windows).
> 
> Yup.
> 
>> (2e) That is, elaborating on the second bullet from (2d), not only is
>> metacity (or else, our setup/usage of metacity) bugged enough to break
>> the spinner, it even (i) does not offer a functional task bar, (b) does
>> not show nm-applet -- there is no tray area!
>>
>> I'm of the opinion that we should just get rid of metacity altogether,
>> and use icewm. I don't know why metacity is not working, but I consider
>> metacity a seriously substandard WM anyway, so let's just get rid of it?
> 
> Sure.  I don't think we have any particular affinity to metacity.  It
> does however depend on icewm being and staying in RHEL long term.
> 
> BTW we used to use matchbox (see commit 47a3518b28).
> 
> Rich.
> 



More information about the Libguestfs mailing list