Bug 285430 - x11-wm/xfce4-panel: 4.20.x regression with window button images (program icons)
Summary: x11-wm/xfce4-panel: 4.20.x regression with window button images (program icons)
Status: Closed DUPLICATE of bug 285185
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-xfce (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-03-15 10:05 UTC by Harald Schmalzbauer
Modified: 2025-03-18 10:36 UTC (History)
3 users (show)

See Also:
madpilot: maintainer-feedback+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Harald Schmalzbauer 2025-03-15 10:05:37 UTC
To my shame, xfce4 is almost as important to me as FreeBSD, but I know close to nothing about it - it simply worked over the decades :-) Huge thanks!

The 4.20 update introduced an unpleasant regression in the built-in "Window Buttons" panel item, which wasn't fixed in 4.20.2 or 4.20.3.
For some reason, the application icons are covered by solid color, at least with Thunar. When I launch Thunar, the file manager icon flashes for a fraction of a second, then the Window Button turns grey, like all the other buttons. Only with Thunar I can see the icon flashing, all other applications start with grey button from the beginning.

PANEL_DEBUG=1 xfce4-panel
only shows the following warning:
»(xfce4-panel:95637): Gtk-WARNING **: 20:21:10.913: Could not load a pixbuf from icon theme.
This may indicate that pixbuf loaders or the mime database could not be found.«

This warning also shows up with 4.18.6, but our last in-tree x11-wm/xfce4-panel port works fine despite that warning, so I guess this is not a indicator of the root cause.
The issue occurred with 4.20.0 and reverting only x11-wm/xfce4-panel (to 4.18.6) shows no issues with leaving the rest of xfce4 up to date.  Given users are on x11 rather than wayland of course...
Comment 1 Guido Falsi freebsd_committer freebsd_triage 2025-03-15 11:40:49 UTC
Hi,

Thanks for reporting the issue.

I also did notice some changes with XFCE behaviour recently, but it has not been overly annoying for me, so I disregarded it.

Now that you point out I notice a pattern, and the error message you report points me toward a specific change in the ports tree, if you read the commit message at [1] you'll notice support for certain formats in the pixbuf library has been disabled by default. So it is failing to load some files. The timeline somewhat fits with when these issues started happening on my PCs.

I'm adding vishin (author of this commit) to this bug so he is aware.

I'll test here enabling the OTHERS option on gdx-pixbuf to see if the situation improves here.

@Harald You could do the same.


@vishin if that's the case, would you be willing to enable the OTHERS option by default?




[1] https://cgit.freebsd.org/ports/commit/?id=1cc132d0291de0eebc0cdc5b05fa9e57b982f5bc
Comment 2 Guido Falsi freebsd_committer freebsd_triage 2025-03-15 11:44:34 UTC
@vishin

If enabling the whole OTHERS option looks overkill, would you accept a patch enabling only some relatively more common formats, like XPM (heavily used in X11 applications and XFCE) and XBM?

I guess adding just these two would fix most issues.
Comment 3 Guido Falsi freebsd_committer freebsd_triage 2025-03-15 11:52:57 UTC
@vishwin

Ah now I see, they are all wrapped up in an "OTHERS" option in their meson build system, so adding a granular option for XPM would not be so easy, and would require patching upstream code, which I'd rather avoid.

Well, I'm sure we will work something out. Will require some thinking.
Comment 4 Harald Schmalzbauer 2025-03-15 12:02:55 UTC
(In reply to Guido Falsi from comment #3)

Thanks for your attention, highly appreciated! Unfortunately time I need to keep my setup as it is for the next few days, will get back to it after finishing job(7).

P.S.: Will open a separate PR about missing etc/xdg/autostart/xscreensaver.desktop since 4.20.0 update (see https://gitlab.xfce.org/xfce/xfce4-session/-/commit/9a63a6224466c17243fb192a70920133d1f2d3d3 - maybe you're at it anyways somehow...  sorry for mixing topics)
Comment 5 Guido Falsi freebsd_committer freebsd_triage 2025-03-15 12:10:18 UTC
(In reply to Harald Schmalzbauer from comment #4)

Not sure what is the problem with xscreensaver.desktop not being installed.

XFCE installs the desktop file for its own screensaver/locker.

xscreensaver is an external program not maintained or installed by XFCE, if a .desktop file is expected for it it should come from its distribution or port.

As the history of that bug report shows, it is a relic of a very old time before xfce had its own screensaver.
Comment 6 Guido Falsi freebsd_committer freebsd_triage 2025-03-16 09:49:21 UTC
I confirm enabling the OTHERS option in graphics/gdk-pixbuf2 makes the issue disappear.

My interpretation is that most of the missing graphics happens to be XPM, which is used a lot in X11 programs.

@vishwin how should we address this? Do we enable OTHERS by default or try to create a granular option for XPM files?
Comment 7 Harald Schmalzbauer 2025-03-16 10:04:38 UTC
(In reply to Guido Falsi from comment #6)
Thanks a lot!

I just want to note that for me mainly SVG icons were missing.
At least for the urxvt windows I'm sure it's SVG only, because I made them myself.

Hopefully I can get back to this by next weekend, but maybe will be overcome by events by then.. Thanks!
Comment 8 Guido Falsi freebsd_committer freebsd_triage 2025-03-16 10:20:21 UTC
I made a few tests right now and, with OTHER active, svg works fine, but I don't know if that is related to gdk-pixbuf2 right now.

Looks probable though.
Comment 9 Harald Schmalzbauer 2025-03-16 10:22:28 UTC
(In reply to Guido Falsi from comment #8)

How did you test?  I could simply do the same here (with gdk-pixbuf2 package w/o OTHERS oprion).
Comment 10 Guido Falsi freebsd_committer freebsd_triage 2025-03-16 10:23:40 UTC
(In reply to Harald Schmalzbauer from comment #9)

Starting a program that should use an svg image, also, I use whisker menu, I tried giving it an svg image for icon.
Comment 11 Harald Schmalzbauer 2025-03-16 10:31:27 UTC
(In reply to Guido Falsi from comment #10)

Setup here:
xfce4-whiskermenu-plugin-2.9.2
gdk-pixbuf2-2.42.12 (without OTHERS option enabled)

Since whiskermenu is an external plugin, I guess it doesn't relate to
xfce4-panel-4.18.6 (last in-tree version not having issues showing window button icons)

If I enter 'urxvt' in the whisker menu search, all SVG-only icons are present.

Did x11-wm/xfce4-panel not use gdk-pixbuf2 before 4.20.x?
xfce4-panel-4.18.6 shows all window buttons despite gdk-pixbuf2 without OTHERS...
Comment 12 Guido Falsi freebsd_committer freebsd_triage 2025-03-16 10:55:11 UTC
AFAIK XFCE has always used gdk-pixbuf, so I don't know what changed.

But could be influenced by some cache, also, have you restarted all software between tests?
Comment 13 Charlie Li freebsd_committer freebsd_triage 2025-03-17 02:50:05 UTC
(In reply to Guido Falsi from comment #6)
I have a separate port over in bug 285185 that is part of a commit sequence involving gdk-pixbuf generally. Upstream has been firm about divesting themselves from the affected loaders so not inclined to enable OTHERS by default, but one of the upstream maintainers separated the bits out into a dedicated repository from which the port is based.
Comment 14 Harald Schmalzbauer 2025-03-17 07:46:08 UTC

*** This bug has been marked as a duplicate of bug 285185 ***
Comment 15 commit-hook freebsd_committer freebsd_triage 2025-03-18 10:36:03 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0a5479b86b57ac3bf092233ac587cc76f9b2c77a

commit 0a5479b86b57ac3bf092233ac587cc76f9b2c77a
Author:     Guido Falsi <madpilot@FreeBSD.org>
AuthorDate: 2025-03-18 10:31:46 +0000
Commit:     Guido Falsi <madpilot@FreeBSD.org>
CommitDate: 2025-03-18 10:34:58 +0000

    x11/libxfce4menu: Depend on gdkpixbufextra

    XFCE uses XPM images and other "uncommon" formats, force a dependency
    on gdkpixbufextra to ensure it is installed at runtime whenever any
    XFCE component is installed to avoid graphic glitches.

    PR:             285185, 285430

 x11/libxfce4menu/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)