This bug was fixed in the package gdm3 - 47.0-1ubuntu2.24.10.1

---------------
gdm3 (47.0-1ubuntu2.24.10.1) oracular; urgency=medium

  [ Marco Trevisan (Treviño) ]
  * debian: Prepare for ubuntu/oracular branching

  [ Nathan Pratta Teodosio ]
  * Rewrite xresources_is_a_dir.patch.
    To fix failure to load files in /etc/X11/Xresources (in case the latter is
    a directory instead of a regular file). (LP: #1955850)

 -- Marco Trevisan (Treviño) <ma...@ubuntu.com>  Tue, 03 Dec 2024
00:03:20 +0100

** Changed in: gdm3 (Ubuntu Oracular)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gdm3 in Ubuntu.
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 Released

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


-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : desktop-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to