[Bug 1955850] Re: /etc/X11/Xresources no longer loaded, error in patch
Nathan Teodosio
1955850 at bugs.launchpad.net
Tue Dec 3 08:29:19 UTC 2024
** Description changed:
+ Impact
+ ------
+
+ Files in the /etc/X11/Xresources directory stopped being automatically
+ loaded into the X resource database by GDM.
+
+ This typically causes changes in the user interface of multiple
+ programs; There are also parameters for fonts, including sclaing
+ (Xft.dpi) and mouse pointer size (XCursor.size). There is of course no
+ exhaustively listing the impact as each program can use arbitrary
+ entries in the database and alter its behavior as desired, not only
+ limited to the GUI (e.g. XTerm*saveLines).
+
+ Test case
+ ---------
+
+ *Install the GDM update from proposed.
+ *Create the file /etc/X11/Xresources/m with the following contents:
+ XTerm*Foreground: white
+ XTerm*Background: darkblue
+ *[This will kill your graphical session in a standard Ubuntu setup] Execute 'systemctl restart gdm'.
+ *Log in as usual.
+ *Start XTerm.
+
+ XTerm launches, has a dark blue background and a white font.
+
+ Regression potential
+ --------------------
+
+ The main potential here is that files in that directory that were not
+ loaded before (because they did not match a pattern) would now be.
+
+ Original report
+ ---------------
+
After upgrading from 21.04 to 21.10, my /etc/X11/Xresources/ directory
no longer loads on login.
Looking at the sources, I think this can be traced to:
- - Switching from a custom Xsession file to the upstream Xsession file in 3.38.0-1ubuntu1, combined with
- - An oversight in `debian/patches/ubuntu/xresources_is_a_dir.patch`
+ - Switching from a custom Xsession file to the upstream Xsession file in 3.38.0-1ubuntu1, combined with
+ - An oversight in `debian/patches/ubuntu/xresources_is_a_dir.patch`
Looking at [that patch](https://salsa.debian.org/gnome-
team/gdm/-/blob/ubuntu/master/debian/patches/ubuntu/xresources_is_a_dir.patch),
it has:
```diff
--- a/data/Xsession.in
+++ b/data/Xsession.in
@@ -122,6 +122,13 @@ fi
-
- if [ -f "$sysresources" ]; then
- xrdb -nocpp -merge "$sysresources"
+
+ if [ -f "$sysresources" ]; then
+ xrdb -nocpp -merge "$sysresources"
+elif [ -d "$sysresources" ]; then
+ # directory of Xresources files on Debian/Ubuntu
+ for i in `ls "$sysresources"` ; do
+ if [ -r "$sysresources/$i" -a -f "$sysresources/$i" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then
+ xrdb -nocpp -merge "$sysresources/$i"
+ fi
+ done
- fi
-
- if [ -f "$userresources" ]; then
+ fi
+
+ if [ -f "$userresources" ]; then
```
However, looking a few lines further up in [the original Xsession.in
file](https://salsa.debian.org/gnome-
team/gdm/-/blob/ubuntu/master/data/Xsession.in#L97), I see:
```sh
if [ -f /etc/X11/Xresources ]; then
- sysresources=/etc/X11/Xresources
+ sysresources=/etc/X11/Xresources
else
- sysresources=/usr/etc/X11/Xresources
+ sysresources=/usr/etc/X11/Xresources
fi
```
In other words, if `/etc/X11/Xresources` is a directory, the
`sysresources` variable is never set correctly, so the patch should also
modify this part of the script.
I have observed this broken behavior on version 41~rc-0ubuntu2, but
looking at the ubuntu/master branch (as linked above), it still seems
broken there.
I'm currently testing this patch:
```diff
--- Xsession.orig 2021-12-27 22:05:09.038863375 +0100
+++ Xsession 2021-12-27 22:05:33.143057433 +0100
@@ -111,7 +111,7 @@
- usermodmap="$HOME/.Xmodmap"
- userxkbmap="$HOME/.Xkbmap"
-
+ usermodmap="$HOME/.Xmodmap"
+ userxkbmap="$HOME/.Xkbmap"
+
-if [ -f /etc/X11/Xresources ]; then
+if [ -e /etc/X11/Xresources ]; then
- sysresources=/etc/X11/Xresources
- else
- sysresources=/usr/etc/X11/Xresources
+ sysresources=/etc/X11/Xresources
+ else
+ sysresources=/usr/etc/X11/Xresources
```
I don't know if it works yet, since I need to log out for that, and
close my browser, so need to submit this report first ;-)
```
$ lsb_release -rd
Description: Ubuntu 21.10
Release: 21.10
$ apt-cache policy gdm3
gdm3:
- Installed: 41~rc-0ubuntu2
- Candidate: 41~rc-0ubuntu2
- Version table:
- *** 41~rc-0ubuntu2 500
- 500 http://nl.archive.ubuntu.com/ubuntu impish/main amd64 Packages
- 100 /var/lib/dpkg/status
+ Installed: 41~rc-0ubuntu2
+ Candidate: 41~rc-0ubuntu2
+ Version table:
+ *** 41~rc-0ubuntu2 500
+ 500 http://nl.archive.ubuntu.com/ubuntu impish/main amd64 Packages
+ 100 /var/lib/dpkg/status
```
** Changed in: gdm3 (Ubuntu Noble)
Importance: Undecided => Low
** Changed in: gdm3 (Ubuntu Oracular)
Importance: Undecided => Low
--
You received this bug notification because you are a member of Ubuntu
Sponsors, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1955850
Title:
/etc/X11/Xresources no longer loaded, error in patch
Status in gdm3 package in Ubuntu:
Fix Released
Status in gdm3 source package in Noble:
Fix Committed
Status in gdm3 source package in Oracular:
Fix Committed
Bug description:
Impact
------
Files in the /etc/X11/Xresources directory stopped being automatically
loaded into the X resource database by GDM.
This typically causes changes in the user interface of multiple
programs; There are also parameters for fonts, including sclaing
(Xft.dpi) and mouse pointer size (XCursor.size). There is of course no
exhaustively listing the impact as each program can use arbitrary
entries in the database and alter its behavior as desired, not only
limited to the GUI (e.g. XTerm*saveLines).
Test case
---------
*Install the GDM update from proposed.
*Create the file /etc/X11/Xresources/m with the following contents:
XTerm*Foreground: white
XTerm*Background: darkblue
*[This will kill your graphical session in a standard Ubuntu setup] Execute 'systemctl restart gdm'.
*Log in as usual.
*Start XTerm.
XTerm launches, has a dark blue background and a white font.
Regression potential
--------------------
The main potential here is that files in that directory that were not
loaded before (because they did not match a pattern) would now be.
Original report
---------------
After upgrading from 21.04 to 21.10, my /etc/X11/Xresources/ directory
no longer loads on login.
Looking at the sources, I think this can be traced to:
- Switching from a custom Xsession file to the upstream Xsession file in 3.38.0-1ubuntu1, combined with
- An oversight in `debian/patches/ubuntu/xresources_is_a_dir.patch`
Looking at [that patch](https://salsa.debian.org/gnome-
team/gdm/-/blob/ubuntu/master/debian/patches/ubuntu/xresources_is_a_dir.patch),
it has:
```diff
--- a/data/Xsession.in
+++ b/data/Xsession.in
@@ -122,6 +122,13 @@ fi
if [ -f "$sysresources" ]; then
xrdb -nocpp -merge "$sysresources"
+elif [ -d "$sysresources" ]; then
+ # directory of Xresources files on Debian/Ubuntu
+ for i in `ls "$sysresources"` ; do
+ if [ -r "$sysresources/$i" -a -f "$sysresources/$i" ] && expr "$i" : '^[[:alnum:]_-]\+$' > /dev/null; then
+ xrdb -nocpp -merge "$sysresources/$i"
+ fi
+ done
fi
if [ -f "$userresources" ]; then
```
However, looking a few lines further up in [the original Xsession.in
file](https://salsa.debian.org/gnome-
team/gdm/-/blob/ubuntu/master/data/Xsession.in#L97), I see:
```sh
if [ -f /etc/X11/Xresources ]; then
sysresources=/etc/X11/Xresources
else
sysresources=/usr/etc/X11/Xresources
fi
```
In other words, if `/etc/X11/Xresources` is a directory, the
`sysresources` variable is never set correctly, so the patch should
also modify this part of the script.
I have observed this broken behavior on version 41~rc-0ubuntu2, but
looking at the ubuntu/master branch (as linked above), it still seems
broken there.
I'm currently testing this patch:
```diff
--- Xsession.orig 2021-12-27 22:05:09.038863375 +0100
+++ Xsession 2021-12-27 22:05:33.143057433 +0100
@@ -111,7 +111,7 @@
usermodmap="$HOME/.Xmodmap"
userxkbmap="$HOME/.Xkbmap"
-if [ -f /etc/X11/Xresources ]; then
+if [ -e /etc/X11/Xresources ]; then
sysresources=/etc/X11/Xresources
else
sysresources=/usr/etc/X11/Xresources
```
I don't know if it works yet, since I need to log out for that, and
close my browser, so need to submit this report first ;-)
```
$ lsb_release -rd
Description: Ubuntu 21.10
Release: 21.10
$ apt-cache policy gdm3
gdm3:
Installed: 41~rc-0ubuntu2
Candidate: 41~rc-0ubuntu2
Version table:
*** 41~rc-0ubuntu2 500
500 http://nl.archive.ubuntu.com/ubuntu impish/main amd64 Packages
100 /var/lib/dpkg/status
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1955850/+subscriptions
More information about the Ubuntu-sponsors
mailing list