Hello community,

here is the log from the commit of package xdm for openSUSE:Factory checked in 
at 2017-10-20 14:41:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/xdm (Old)
 and      /work/SRC/openSUSE:Factory/.xdm.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "xdm"

Fri Oct 20 14:41:37 2017 rev:61 rq:534975 version:1.1.11

Changes:
--------
--- /work/SRC/openSUSE:Factory/xdm/xdm.changes  2017-07-28 09:40:18.398259333 
+0200
+++ /work/SRC/openSUSE:Factory/.xdm.new/xdm.changes     2017-10-20 
14:41:40.380022458 +0200
@@ -1,0 +2,25 @@
+Wed Oct 18 15:01:24 UTC 2017 - sndir...@suse.com
+
+- reintroduced /etc/X11/xdm/keytable script and the hook-up in
+  /usr/lib/X11/display-manager to setup X11 keymaps, since YaST
+  is not able to use localectl already during installation due to
+  dbus and appropriate systemd services not running :-( 
+  (bsc#1046436)
+
+-------------------------------------------------------------------
+Thu Oct 12 10:08:28 UTC 2017 - dims...@opensuse.org
+
+- Have update-alternatives handle Xinit's integration of the
+  displaymanager, replacing /etc/sysconfig/displaymanager.
+- Add a dummy entry for 'console' - which is special-cased in the
+  display-manager script to 'exit early'. In order for it to become
+  an option for update-alternatives, the target needs to exist.
+- Update /usr/lib/X11/display-manager to get the
+  default-displaymanager from the update-alternative setting
+  instead of reading it from /etc/sysconfig/displaymanager.
+- Remove DISPLAYMANAGER from displaymanager.sysconfig template.
+- Add xdm-with-update-alternative.patch so the needed changes can
+  be applied for suse_version >= 1330 only, not breaking Leap 42.x.
+- All that together solves boo#1053863.
+
+-------------------------------------------------------------------

New:
----
  xdm-with-update-alternative.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ xdm.spec ++++++
--- /var/tmp/diff_new_pack.9pqYk1/_old  2017-10-20 14:41:41.019992513 +0200
+++ /var/tmp/diff_new_pack.9pqYk1/_new  2017-10-20 14:41:41.023992326 +0200
@@ -44,10 +44,12 @@
 Source4:        display-manager.service
 Source5:        xsession.desktop
 Patch1:         xdm-tolerant-hostname-changes.diff
+# PATCH-FEATURE-OPENSUSE xdm-with-update-alternative.patch 
dims...@opensuse.org -- Choice of default DM by means of u-a
+Patch2:         xdm-with-update-alternative.patch
 # needed for patch0, patch2, patch3, patch4
 BuildRequires:  libtool
 BuildRequires:  pam-devel
-BuildRequires:  pkg-config
+BuildRequires:  pkgconfig
 BuildRequires:  pkgconfig(x11)
 BuildRequires:  pkgconfig(xau)
 BuildRequires:  pkgconfig(xaw7)
@@ -72,7 +74,6 @@
 Recommends:     dbus-1-x11
 # This was part of the xorg-x11 package up to version 7.6
 Conflicts:      xorg-x11 <= 7.6
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %if !%with_systemd
 Patch0:         xdm-consolekit.diff
 %endif
@@ -117,6 +118,8 @@
 pushd xdm
 %patch1 -p1
 popd
+# Special note: patch 2 is applied in install section; tagging it here for the 
source validator only
+#patch2 -p1
 
 %build
 # needed for patch0
@@ -137,6 +140,9 @@
 pushd %{buildroot}
 # SuSE default XDM configuration
 tar xf %{SOURCE1}
+%if 0%{?suse_version} >= 1330
+patch -p1 < %{PATCH2}
+%endif
 %if %dm_fallbacks
 tar xf %{SOURCE3}
 %endif
@@ -171,6 +177,14 @@
        EOF
 chmod 0755 %{buildroot}%{_sbindir}/rcxdm
 %endif
+%if 0%{?suse_version} >= 1330
+# prepare for defaul-dm to be chosen by means of update-alternatives
+mkdir -p %{buildroot}%{_sysconfdir}/alternatives
+touch %{buildroot}%{_sysconfdir}/alternatives/default-displaymanager
+ln -s %{_sysconfdir}/alternatives/default-displaymanager 
%{buildroot}%{_libexecdir}/X11/displaymanagers/default-displaymanager
+# Inject a dummy 'console' selection - which used to be choice in 
/etc/sysconfig/displaymanager
+touch %{buildroot}%{_libexecdir}/X11/displaymanagers/console
+%endif
 
 %post
 %if 0%{?suse_version} < 1315
@@ -184,9 +198,15 @@
 %ifarch aarch64 ppc64le
 if ! [ -c /dev/fb* -o -d /dev/dri ]; then
     sed -i -e 
"s+DISPLAYMANAGER_STARTS_XSERVER=.*+DISPLAYMANAGER_STARTS_XSERVER=\"no\"+g" \
-              /etc/sysconfig/displaymanager
+              %{_sysconfdir}/sysconfig/displaymanager
 fi
 %endif
+%if 0%{?suse_version} >= 1330
+%{_sbindir}/update-alternatives --install 
%{_libexecdir}/X11/displaymanagers/default-displaymanager \
+  default-displaymanager %{_libexecdir}/X11/displaymanagers/console 5
+%{_sbindir}/update-alternatives --install 
%{_libexecdir}/X11/displaymanagers/default-displaymanager \
+  default-displaymanager %{_libexecdir}/X11/displaymanagers/xdm 10
+%endif
 
 %pre
 %if !0%{?suse_version} < 1315
@@ -200,6 +220,12 @@
 # Do not restart DM on update (bnc#886641)
 %service_del_postun -n display-manager.service
 %endif
+%if 0%{?suse_version} >= 1330
+[ -f %{_libexecdir}/X11/displaymanagers/console ] || 
%{_sbindir}/update-alternatives \
+  --remove default-displaymanager %{_libexecdir}/X11/displaymanagers/console
+[ -f %{_libexecdir}/X11/displaymanagers/xdm ] || 
%{_sbindir}/update-alternatives \
+  --remove default-displaymanager %{_libexecdir}/X11/displaymanagers/xdm
+%endif
 
 %preun
 %if !0%{?suse_version} < 1315
@@ -212,6 +238,11 @@
 %doc HOWTO.xdm
 %dir %{_dminitdir}
 %{_dminitdir}/xdm
+%if 0%{?suse_version} >= 1330
+%{_dminitdir}/console
+%{_libexecdir}/X11/displaymanagers/default-displaymanager
+%ghost %{_sysconfdir}/alternatives/default-displaymanager
+%endif
 %if %dm_fallbacks
 %{_dminitdir}/entrance.fallback
 %{_dminitdir}/gdm.fallback

++++++ xdm-with-update-alternative.patch ++++++
diff -ur xdm.old/usr/lib/X11/display-manager xdm.new/usr/lib/X11/display-manager
--- xdm.old/usr/lib/X11/display-manager 2017-02-06 14:19:33.541035000 +0100
+++ xdm.new/usr/lib/X11/display-manager 2017-10-12 15:44:06.592204792 +0200
@@ -109,6 +109,8 @@
 
 #set -x
 
+# DISPLAYMANAGER used to be set in /etc/sysconfig/displaymanager, but the 
default is now set by update-alternatives
+DISPLAYMANAGER=$(realpath --relative-base=/usr/lib/X11/displaymanagers 
/usr/lib/X11/displaymanagers/default-displaymanager)
 DM=${DISPLAYMANAGER##*/}
 
 case "$DM" in
@@ -127,6 +129,7 @@
        do
            name="${i}_vars"
            PIDFILE=/var/run/$i.pid;
+           type $name > /dev/null || continue;
            $name $DM && break;
        done
        if [ -z "$DISPLAYMANAGER" -o ! -x "$DISPLAYMANAGER" ]
diff -ur xdm.old/var/adm/fillup-templates/sysconfig.displaymanager 
xdm.new/var/adm/fillup-templates/sysconfig.displaymanager
--- xdm.old/var/adm/fillup-templates/sysconfig.displaymanager   2017-01-04 
11:15:56.259500000 +0100
+++ xdm.new/var/adm/fillup-templates/sysconfig.displaymanager   2017-10-12 
16:35:23.775259305 +0200
@@ -1,14 +1,6 @@
 ## Path:       Desktop/Display manager
 ## Description:        settings to generate a proper displaymanager config
 
-## Type:       string(kdm,xdm,gdm,wdm,entrance,console,lightdm,sddm)
-## Default:    ""
-#
-# Here you can set the default Display manager 
(kdm/xdm/gdm/wdm/entrance/console).
-# all changes in this file require a restart of the displaymanager
-#
-DISPLAYMANAGER=""
-
 ## Type:       yesno
 ## Default:    no
 #
++++++ xdm.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/etc/X11/xdm/keytable new/etc/X11/xdm/keytable
--- old/etc/X11/xdm/keytable    1970-01-01 01:00:00.000000000 +0100
+++ new/etc/X11/xdm/keytable    2017-10-18 16:58:19.074036000 +0200
@@ -0,0 +1,59 @@
+#! /bin/bash
+
+if [ $UID -ne 0 ]; then
+  echo "You need to be root to run this program"
+  exit 0
+fi
+
+vconsole_conf_file=/etc/vconsole.conf
+previous_x11conf_file=/etc/X11/xorg.conf.d/90-keytable.conf
+systemd_x11conf_file=/etc/X11/xorg.conf.d/00-keyboard.conf
+keyboard_map_systemd=/usr/share/systemd/kbd-model-map
+
+function setkeyboard {
+  echo "Command: localectl set-keymap $1"
+  # xorg.conf.d snippet is only written if a valid snippet is already
+  # available, so create an us sample if neccessary
+  if [ ! -f $systemd_x11conf_file ]; then
+    localectl set-x11-keymap us
+  fi
+  
+  # check systemd mapping
+  NEWKEYMAP=$(echo "$1" | sed "s/ $//" )
+  opts=$(grep -P "^$NEWKEYMAP\t" "$keyboard_map_systemd" | sed -re 
"s/[^\t]*//" -e "s/[\t]+/ /g" )
+  if [ -z "$opts" ]; then
+     echo "W: Cannot find mapping for $NEWKEYMAP in $keyboard_map_systemd"
+     echo "W: This will result in an 'us' X keyboard layout as default"
+  else
+     echo "I: Using systemd $keyboard_map_systemd mapping"
+  fi
+  
+  localectl set-keymap $1
+  if [ -f $systemd_x11conf_file ]; then
+    if [ -f $previous_x11conf_file ]; then
+      if  [ $systemd_x11conf_file -nt $previous_x11conf_file ]; then
+        rm -f $previous_x11conf_file
+      fi
+    fi
+    exit 0
+  else
+    echo "$systemd_x11conf_file has not been created!" 
+  fi
+}
+
+if [ -f $vconsole_conf_file ]; then
+  echo "$vconsole_conf_file available"
+  . $vconsole_conf_file
+  if [ ! -z $KEYMAP ]; then
+    echo "KEYMAP: $KEYMAP"
+    options="$KEYMAP $KEYMAP_TOGGLE"
+    setkeyboard "$options"
+  else
+    echo "KEYMAP not set"
+  fi 
+else
+  echo "$vconsole_conf_file not available"
+fi
+
+echo "Keyboard layout could not be set"
+exit 1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/usr/lib/X11/display-manager 
new/usr/lib/X11/display-manager
--- old/usr/lib/X11/display-manager     2017-02-06 14:19:33.541035000 +0100
+++ new/usr/lib/X11/display-manager     2017-10-18 16:59:26.687226000 +0200
@@ -144,6 +144,11 @@
 case "$1" in
     start)
 
+       # use system keyboard as global X keyboard configuration
+       if [ -x /etc/X11/xdm/keytable ]; then
+          /etc/X11/xdm/keytable
+        fi
+
        [ -n "$STARTPROC" ] && $STARTPROC
        echo -n "Starting service $DM"
        # Don't start xdm if no Xserver is configured and xdm is not 


Reply via email to