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

Bug#1119890: plasma-workspace: Should plasma-workspace still Depend on x11-xserver-utils?



Hi Aurélien,

On Mon Nov 3, 2025 at 8:44 AM CET, Aurélien COUDERC wrote:
> Le 1 novembre 2025 21:51:49 GMT+01:00, Diederik de Haas <didi.debian@cknow.org> a écrit :
>>Then I noticed that 'cpp' and all its Depends and Recommends got
>>installed and that is due to x11-xserver-utils getting installed, which
>>is (currently?) a Depends of plasma-workspace.
>
> Yes that looks a bit overkill.
>
>>If I look at x11-xserver-utils' package description, I see various tools
>>which are useful for an Xorg environment.
>>But now that we have/are switched to Wayland, that seems less/not
>>important? I can be wrong ofc.
>
>>So I'm wondering if it's still required or could possibly be downgraded
>>to Recommends?
>
> So. While we've switched to Wayland as the default for a long time now
> (bookworm), I still want to ensure that the Xorg session is guaranteed
> to work for people who may still need it.

Of course.

> I've had a brief look and I don't see an easy way to split the
> plasma-workspace package into Wayland and an X11 parts.
>
> So what would help is analysing :
> - why that dependency exists : the x11-xserver-utils mainly ships
>   binaries plus some Xvidtune conf file. It would be helpful to identify
>   if any of these binaries is still called by any of plasma-workspace's
>   source code

```
diederik@bagend:~/dev/kde/plasma-workspace$ grep --exclude-dir=".git" -rnE "iceauth|sessreg|showrgb|xcmsdb|xgamma|xhost|xkeystone|xmodmap|xrandr|xrdb|xrefresh|xset|xsetmode|xsetpointer|xsetroot|xstdcmap|xvidtune"
libkworkspace/outputorderwatcher.h:99:    int m_xrandrExtensionOffset;
libkworkspace/outputorderwatcher.cpp:171:    m_xrandrExtensionOffset = reply->first_event;
libkworkspace/outputorderwatcher.cpp:290:    if (responseType == m_xrandrExtensionOffset + XCB_RANDR_NOTIFY) {
ksmserver/server.cpp:532:    iceAuthFile.setFileTemplate(runtimeDirectory + QStringLiteral("/iceauth_XXXXXX"));
ksmserver/README:148:Authorization is done using 'iceauth', with MIT-MAGIC-COOKIE as used
kcms/krdb/krdb.cpp:3:   cats specially written application default files and uses xrdb -merge to
kcms/krdb/krdb.cpp:428:            queryProc << QStringLiteral("xrdb") << QStringLiteral("-query");
kcms/krdb/krdb.cpp:448:                loadProc << QStringLiteral("xrdb") << QStringLiteral("-quiet") << QStringLiteral("-load") << QStringLiteral("-nocpp");
kcms/krdb/krdb.cpp:466:    proc << QStringLiteral("xrdb") << QStringLiteral("-merge") << tmpFile.fileName();
kcms/krdb/krdb.cpp:468:    proc << u"xrdb"_s << u"-quiet"_s << u"-merge"_s << tmpFile.fileName();
kcms/kfontinst/dbus/fontinst_x11:37:xset fp rehash
kcms/fonts/fonts.cpp:138:        proc.start(u"xrdb"_s, QStringList{u"-quiet"_s, u"-remove"_s, u"-nocpp"_s});
kcms/fonts/fontinit.cpp:30:    p.start(QStringLiteral("xrdb"), {QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp")});
```

A quick look at 'ksmserver/README' gave *me* the impression it may be a
bit (out)dated.
For the rest it seems 'xrdb' and fonts may be 'problematic'.

Checking kwin for the same 'words', but different expression:
```
diederik@bagend:~/dev/kde/kwin$ grep --exclude-dir=".git" -rnE "$(dpkg -L x11-xserver-utils | awk -F '/' '{if($0 ~ /\/usr\/bin\//) print $4}' | sed 's/\n/\|/')"
src/xwayland/xwayland.h:95:    XrandrEventFilter *m_xrandrEventsFilter = nullptr;
src/xwayland/xwayland.cpp:448:    delete m_xrandrEventsFilter;
src/xwayland/xwayland.cpp:449:    m_xrandrEventsFilter = nullptr;
src/xwayland/xwayland.cpp:491:    delete m_xrandrEventsFilter;
src/xwayland/xwayland.cpp:492:    m_xrandrEventsFilter = new XrandrEventFilter(this);
src/activation.cpp:429:        // the screen test is rather superfluous for xrandr & twinview since the geometry would differ -> TODO: might be dropped
src/main.cpp:376:        // rerun the fonts kcm init that does the appropriate xrdb call with the new settings
src/kcms/tabbox/kwintabboxsettings.kcfgc:1:File=kwintabboxsettings.kcfg
src/kcms/tabbox/kwintabboxconfigform.cpp:13:#include "kwintabboxsettings.h"
src/kcms/tabbox/main.cpp:45:#include "kwintabboxsettings.h"
src/kcms/tabbox/CMakeLists.txt:15:kconfig_add_kcfg_files(kcm_kwintabbox_PART_SRCS kwintabboxsettings.kcfgc kwinswitcheffectsettings.kcfgc)
src/kcms/tabbox/kwintabboxdata.cpp:13:#include "kwintabboxsettings.h"
```

The 'tabbox' results seems not relevant ('xset' != 'xsettings').
I noticed that 'xwayland.h' does have this:

```
#if !KWIN_BUILD_X11
#error Do not include on non-X11 builds
#endif
```

But otherwise I did not (really) look into the source code files.

> - try removing the x11-xserver-utils package (with some kind of dpkg
>   force flag) and see what breaks and if the X11 session is still fully
>   functional

My suggestion to change it to 'Recommends' would install it by default,
but does allow it to be removed. But I only had the (kwin-)wayland
scenario in mind. For X11 it seems logical to also require x11-*-utils.

> - as for why x11-xserver-utils has the explicit dependency to cpp I
>   found this [2] : xrdb needs it.

I'm pretty sure I researched that before too ;-)
And as noted above, 'xrdb' is potentially 'problematic'.

> - it would be nice to also check whether / why x11-utils is still needed as a dependency

I compared x11-utils Depends with a Forky Sway based system and found
only these were not installed:
- libxaw7
- libxft2
- libxkbfile1
- libxmu6
- libxmuu1
- libxt6t64
- libxxf86dga1

Which seem to have a minor footprint.

> [1] <https://packages.debian.org/sid/amd64/x11-xserver-utils/filelist>
> [2] <https://salsa.debian.org/xorg-team/app/x11-xserver-utils/-/commit/d251a8ca189c07129110297eb3202e55cc6e78c2>

Cheers,
  Diederik

Attachment: signature.asc
Description: PGP signature


Reply to: