git: 3ed44d9da9a5 - main - x11/gdm: udpate to 47.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 11 Jun 2025 10:08:25 UTC
The branch main has been updated by bapt:
URL: https://cgit.FreeBSD.org/ports/commit/?id=3ed44d9da9a554e59cec3d972c5965d9ac09f028
commit 3ed44d9da9a554e59cec3d972c5965d9ac09f028
Author: Olivier Duchateau <duchateau.olivier@gmail.com>
AuthorDate: 2025-06-11 09:53:26 +0000
Commit: Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2025-06-11 10:07:11 +0000
x11/gdm: udpate to 47.0
PR: 286697
---
x11/gdm/Makefile | 110 ++---
x11/gdm/distinfo | 6 +-
.../15_org.gnome.login-screen.gschema.override | 3 +
x11/gdm/files/Makefile.am | 18 -
x11/gdm/files/client.conf.in | 2 -
x11/gdm/files/configure.ac | 154 -------
x11/gdm/files/daemon_Makefile.am | 33 --
x11/gdm/files/gdm-autologin.in | 6 +-
x11/gdm/files/gdm-password.in | 6 +-
x11/gdm/files/gdm.in | 4 +-
x11/gdm/files/patch-build-aux_find-x-server.sh | 13 +
x11/gdm/files/patch-common_gdm-common.c | 487 +--------------------
x11/gdm/files/patch-common_gdm-common.h | 39 +-
x11/gdm/files/patch-common_gdm-log.c | 2 +-
.../files/patch-daemon_gdm-display-access-file.c | 17 +-
x11/gdm/files/patch-daemon_gdm-display.c | 16 -
.../files/patch-daemon_gdm-launch-environment.c | 21 +
.../files/patch-daemon_gdm-local-display-factory.c | 124 +++---
x11/gdm/files/patch-daemon_gdm-manager.c | 90 ++--
x11/gdm/files/patch-daemon_gdm-server.c | 14 +-
.../files/patch-daemon_gdm-session-worker-job.c | 2 +-
x11/gdm/files/patch-daemon_gdm-session-worker.c | 212 +++++----
x11/gdm/files/patch-daemon_gdm-session.c | 32 +-
x11/gdm/files/patch-daemon_gdm-wayland-session.c | 36 ++
x11/gdm/files/patch-daemon_gdm-x-session.c | 18 +-
x11/gdm/files/patch-daemon_main.c | 2 +-
x11/gdm/files/patch-daemon_meson.build | 6 +-
x11/gdm/files/patch-data_gdm.conf-custom.in | 12 +
x11/gdm/files/patch-data_meson.build | 173 +++++---
x11/gdm/files/patch-libgdm_gdm-sessions.c | 38 ++
x11/gdm/files/patch-libgdm_gdm-user-switching.c | 48 --
x11/gdm/files/patch-meson.build | 95 ++--
x11/gdm/pkg-install | 2 -
x11/gdm/pkg-message | 2 +-
x11/gdm/pkg-plist | 25 +-
35 files changed, 659 insertions(+), 1209 deletions(-)
diff --git a/x11/gdm/Makefile b/x11/gdm/Makefile
index 24bd485364b5..761c2de67f9e 100644
--- a/x11/gdm/Makefile
+++ b/x11/gdm/Makefile
@@ -1,59 +1,55 @@
PORTNAME= gdm
-PORTVERSION= 42.0
-PORTREVISION= 7
+PORTVERSION= 47.0
CATEGORIES= x11 gnome
MASTER_SITES= GNOME
DIST_SUBDIR= gnome
MAINTAINER= gnome@FreeBSD.org
COMMENT= GNOME display manager
-WWW= https://www.gnome.org/projects/gdm/
+WWW= https://gitlab.gnome.org/GNOME/gdm
-LICENSE= GPLv2
+LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-BUILD_DEPENDS= iso-codes>=0:misc/iso-codes \
- itstool:textproc/itstool \
- zenity>=3.0.0:x11/zenity
+PORTSCOUT= limit:^47\.
+
+BUILD_DEPENDS= iso-codes>0:misc/iso-codes \
+ xorg-server>0:x11-servers/xorg-server \
+ itstool:textproc/itstool
LIB_DEPENDS= libaccountsservice.so:sysutils/accountsservice \
libcanberra-gtk3.so:audio/libcanberra-gtk3 \
libcanberra.so:audio/libcanberra \
libck-connector.so:sysutils/consolekit2 \
- libfribidi.so:converters/fribidi
-RUN_DEPENDS= at-spi2-core>=0:accessibility/at-spi2-core \
- gnome-icon-theme-symbolic>=0:x11-themes/gnome-icon-theme-symbolic \
- gnome-keyring-3:security/gnome-keyring \
- gnome-session>=3.0.0:x11/gnome-session \
- gnome-settings-daemon>=3.0.0:sysutils/gnome-settings-daemon \
- iso-codes>=0:misc/iso-codes \
- polkit-gnome>=0.105:sysutils/polkit-gnome \
- zenity>=3.0.0:x11/zenity
+ libjson-glib-1.0.so:devel/json-glib
+RUN_DEPENDS= gnome-keyring-3:security/gnome-keyring \
+ gnome-session>0:x11/gnome-session \
+ gnome-settings-daemon>0:sysutils/gnome-settings-daemon \
+ iso-codes>0:misc/iso-codes
# used in scripts
RUN_DEPENDS+= setxkbmap:x11/setxkbmap \
xhost:x11/xhost \
xmodmap:x11/xmodmap \
xrdb:x11/xrdb \
xsetroot:x11/xsetroot \
- xterm:x11/xterm
+ xterm:x11/xterm \
+ zenity:x11/zenity
USERS= gdm
GROUPS= gdm video
-PORTSCOUT= limitw:1,even
-
USES= cpe gettext gnome localbase:ldflags meson pathfix \
pkgconfig tar:xz xorg
CPE_VENDOR= gnome
CPE_PRODUCT= gnome_display_manager
-USE_GNOME= cairo dconf gtk30 intltool introspection
+USE_GNOME= atk dconf gdkpixbuf glib20 gtk30 introspection:build
USE_LDCONFIG= yes
USE_XORG= x11 xau xcb xdmcp xorgproto
USE_RC_SUBR= gdm
USE_GNOME_SUBR= yes
-GLIB_SCHEMAS= org.gnome.login-screen.gschema.xml
+GLIB_SCHEMAS= org.gnome.login-screen.gschema.xml \
+ 15_org.gnome.login-screen.gschema.override
MESON_ARGS= -Dat-spi-registryd-dir=${PREFIX}/libexec \
-Dcustom-conf=${PREFIX}/etc/gdm/custom.conf \
- -Ddbus-sys=${PREFIX}/etc/dbus-1/system.d \
-Ddefault-pam-config=none \
-Ddmconfdir=${PREFIX}/share/xsessions \
-Dgdm-xsession=true \
@@ -61,24 +57,21 @@ MESON_ARGS= -Dat-spi-registryd-dir=${PREFIX}/libexec \
-Dinitial-vt=09 \
-Dlang-file=${PREFIX}/etc/gdm/locale.conf \
-Dlibaudit=disabled \
- -Dlog-dir=/var/log/gdm \
-Dpid-file=/var/run/gdm.pid \
-Dplymouth=disabled \
-Dscreenshot-dir=/var/run/gdm/greeter \
-Dselinux=disabled \
- -Dsysconfsubdir=gdm \
-Dsystemd-journal=false \
-Duser-display-server=false \
+ -Dudev-dir=${PREFIX}/lib/udev/rules.d \
-Duser=gdm \
- -Dwayland-support=false \
- -Dworking-dir=/var/db/gdm \
+ -Dworking-dir=/var/cache/gdm \
-Dxauth-dir=/var/run/gdm
# this is a hack until we can get our own pam dir and dir in order.
CPPFLAGS+= -DHAS_SA_LEN -DWITH_CONSOLE_KIT=1
-INSTALL_TARGET= install-strip
-SUB_FILES+= client.conf gdm-autologin gdm-launch-environment gdm-password \
+SUB_FILES+= gdm-autologin gdm-launch-environment gdm-password \
locale.conf
GDMDIR?= ${PREFIX}/etc/gdm
@@ -92,48 +85,33 @@ IPV6_MESON_TRUE= ipv6
.include <bsd.port.options.mk>
post-patch:
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|g' \
- -e 's|%%LOCALBASE%%|${LOCALBASE}|g' \
- -e 's|/bin/bash|/bin/sh|g' \
- ${WRKSRC}/daemon/gdm-session-worker.c
@${REINPLACE_CMD} -e 's|/usr/X11R6|${LOCALBASE}|g' \
-e 's|/usr/bin/X|${LOCALBASE}/bin/X|g' \
-e 's|/usr/bin/Xorg|${LOCALBASE}/bin/Xorg|g' \
- ${WRKSRC}/meson.build ${WRKSRC}/daemon/*.c ${WRKSRC}/po/*.po
+ ${WRKSRC}/meson.build
+ @${REINPLACE_CMD} -e 's|/usr/bin/|${LOCALBASE}/bin/|g' \
+ ${WRKSRC}/daemon/gdm-local-display-factory.c
@${REINPLACE_CMD} -e 's|/at-spi-registryd|/at-spi2-registryd|g' \
${WRKSRC}/chooser/gdm-host-chooser.c \
${WRKSRC}/chooser/chooser-main.c
@${REINPLACE_CMD} -e 's|/etc/X11|${LOCALBASE}/etc/X11|g' \
${WRKSRC}/data/Init.in \
- ${WRKSRC}/data/PostLogin \
- ${WRKSRC}/data/PostSession.in \
- ${WRKSRC}/data/PreSession.in \
${WRKSRC}/data/Xsession.in
- @${RM} ${WRKSRC}/data/applications/gdm-simple-greeter.desktop \
- ${WRKSRC}/data/applications/gdm-simple-greeter.desktop.in \
- ${WRKSRC}/data/applications/gnome-shell.desktop \
-post-install:
- ${MV} ${STAGEDIR}${PREFIX}/etc/gdm/custom.conf \
- ${STAGEDIR}${PREFIX}/etc/gdm/custom.conf.sample
- ${MV} ${STAGEDIR}${PREFIX}/etc/gdm/PostSession/Default \
- ${STAGEDIR}${PREFIX}/etc/gdm/PostSession/Default.sample
- ${MV} ${STAGEDIR}${PREFIX}/etc/gdm/PreSession/Default \
- ${STAGEDIR}${PREFIX}/etc/gdm/PreSession/Default.sample
- ${MV} ${STAGEDIR}${PREFIX}/etc/gdm/Init/Default \
- ${STAGEDIR}${PREFIX}/etc/gdm/Init/Default.sample
- ${MV} ${STAGEDIR}${PREFIX}/etc/gdm/Xsession \
- ${STAGEDIR}${PREFIX}/etc/gdm/Xsession.sample
- ${MV} ${STAGEDIR}${PREFIX}/etc/dbus-1/system.d/gdm.conf \
- ${STAGEDIR}${PREFIX}/etc/dbus-1/system.d/gdm.conf.sample
-
- ${MKDIR} ${STAGEDIR}${PREFIX}/share/xsessions
- ${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/Sessions
- ${MKDIR} ${STAGEDIR}${PREFIX}/etc/dm/Sessions
-
- ${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home
- ${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse/
+# Force X11 session (support of Wayland is not yet complete!)
+ @${REINPLACE_CMD} -e 's|wayland|xorg|' \
+ ${WRKSRC}/data/gdm.schemas.in
+
+pre-install:
+ ${MKDIR} ${STAGEDIR}/var/cache/gdm
+ ${MKDIR} ${STAGEDIR}/var/log/gdm
+ ${MKDIR} ${STAGEDIR}/var/run/gdm/greeter
+ #${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home
+ #${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse
+ #${MKDIR} ${STAGEDIR}${PREFIX}/etc/gdm/home/.config
+
+post-install:
${INSTALL_DATA} ${WRKDIR}/gdm-autologin \
${STAGEDIR}${PREFIX}/etc/pam.d/gdm-autologin.sample
${INSTALL_DATA} ${WRKDIR}/gdm-launch-environment \
@@ -141,19 +119,13 @@ post-install:
${INSTALL_DATA} ${WRKDIR}/gdm-password \
${STAGEDIR}${PREFIX}/etc/pam.d/gdm-password.sample
- ${INSTALL_DATA} ${WRKDIR}/client.conf \
- ${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse/client.conf.sample
+ #${INSTALL_DATA} ${WRKDIR}/client.conf \
+ # ${STAGEDIR}${PREFIX}/etc/gdm/home/.pulse/client.conf.sample
${INSTALL_DATA} ${WRKDIR}/locale.conf \
${STAGEDIR}${PREFIX}/etc/gdm/locale.conf.sample
- ${MKDIR} ${STAGEDIR}/var/cache/gdm
- ${MKDIR} ${STAGEDIR}/var/log/gdm
- ${MKDIR} ${STAGEDIR}/var/run/gdm
- ${MKDIR} ${STAGEDIR}/var/run/gdm/greeter
-
- @${RM} ${STAGEDIR}${PREFIX}/lib/udev/rules.d/61-gdm.rules
- @${RMDIR} ${STAGEDIR}${PREFIX}/lib/udev/rules.d
- @${RMDIR} ${STAGEDIR}${PREFIX}/lib/udev
+ ${INSTALL_DATA} ${FILESDIR}/15_org.gnome.login-screen.gschema.override \
+ ${STAGEDIR}${PREFIX}/share/glib-2.0/schemas/
.include <bsd.port.mk>
diff --git a/x11/gdm/distinfo b/x11/gdm/distinfo
index a80583954905..f69f6eab0f2e 100644
--- a/x11/gdm/distinfo
+++ b/x11/gdm/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1647984111
-SHA256 (gnome/gdm-42.0.tar.xz) = a328ac976937bec179971ff07829a1246b98ce724181c128ae32a0ba47ad3855
-SIZE (gnome/gdm-42.0.tar.xz) = 811200
+TIMESTAMP = 1744645483
+SHA256 (gnome/gdm-47.0.tar.xz) = c5858326bfbcc8ace581352e2be44622dc0e9e5c2801c8690fd2eed502607f84
+SIZE (gnome/gdm-47.0.tar.xz) = 936172
diff --git a/x11/gdm/files/15_org.gnome.login-screen.gschema.override b/x11/gdm/files/15_org.gnome.login-screen.gschema.override
new file mode 100644
index 000000000000..7ddb43edbb3e
--- /dev/null
+++ b/x11/gdm/files/15_org.gnome.login-screen.gschema.override
@@ -0,0 +1,3 @@
+[org.gnome.login-screen]
+enable-fingerprint-authentication=false
+enable-smartcard-authentication=false
diff --git a/x11/gdm/files/Makefile.am b/x11/gdm/files/Makefile.am
deleted file mode 100644
index 6bb317816bc5..000000000000
--- a/x11/gdm/files/Makefile.am
+++ /dev/null
@@ -1,18 +0,0 @@
-$OpenBSD: patch-Makefile_am,v 1.1 2016/10/31 16:15:46 ajacoutot Exp $
-
-REVERT - Linux-PAM
-From 714b6af29b916ac7da0cdab6f83460574ed49cf2 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Mon, 15 Aug 2016 13:48:00 -0400
-Subject: pam_gdm: add stub pam module
-
---- Makefile.am.orig 2017-10-30 16:21:02.000000000 +0100
-+++ Makefile.am 2018-01-14 12:30:07.298406000 +0100
-@@ -7,7 +7,6 @@ SUBDIRS = \
- daemon \
- libgdm \
- utils \
-- pam_gdm \
- po \
- tests \
- $(NULL)
diff --git a/x11/gdm/files/client.conf.in b/x11/gdm/files/client.conf.in
deleted file mode 100644
index ef886bff7259..000000000000
--- a/x11/gdm/files/client.conf.in
+++ /dev/null
@@ -1,2 +0,0 @@
-autospawn = no
-daemon-binary = /usr/bin/true
diff --git a/x11/gdm/files/configure.ac b/x11/gdm/files/configure.ac
deleted file mode 100644
index 80b14caaa4d2..000000000000
--- a/x11/gdm/files/configure.ac
+++ /dev/null
@@ -1,154 +0,0 @@
-$OpenBSD: patch-configure_ac,v 1.12 2017/04/17 13:17:07 ajacoutot Exp $
-
-REVERT - Linux-PAM
-From 714b6af29b916ac7da0cdab6f83460574ed49cf2 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Mon, 15 Aug 2016 13:48:00 -0400
-Subject: pam_gdm: add stub pam module
-
-REVERT - OpenBSD does not have a systemd implementation (we need ConsoleKit)
-From 1ac67f522f5690c27023d98096ca817f12f7eb88 Mon Sep 17 00:00:00 2001
-From: Ray Strode <rstrode@redhat.com>
-Date: Fri, 12 Jun 2015 13:28:01 -0400
-Subject: drop consolekit support
-
-https://bugzilla.gnome.org/show_bug.cgi?id=722482
-
---- configure.ac.orig 2017-10-30 16:21:11.000000000 +0100
-+++ configure.ac 2018-01-14 13:01:16.646216000 +0100
-@@ -232,12 +232,6 @@ AM_CONDITIONAL(ENABLE_EXHERBO_PAM_CONFIG, test x$with_
- AM_CONDITIONAL(ENABLE_LFS_PAM_CONFIG, test x$with_default_pam_config = xlfs)
- AM_CONDITIONAL(ENABLE_ARCH_PAM_CONFIG, test x$with_default_pam_config = xarch)
-
--AC_CHECK_HEADERS([security/pam_modules.h security/pam_modutil.h security/pam_ext.h],
-- [have_pam=yes],
-- [if test "x$have_pam" = xyes ; then
-- AC_MSG_ERROR([PAM development files not found.])
-- fi])
--
- AC_ARG_ENABLE(console-helper,
- AS_HELP_STRING([--enable-console-helper],
- [Enable PAM console helper @<:@default=auto@:>@]),,
-@@ -263,7 +257,15 @@ AC_ARG_WITH(tcp-wrappers,
- [Use TCP Wrappers @<:@default=auto@:>@]),,
- with_tcp_wrappers=auto)
-
-+AC_ARG_WITH(console-kit,
-+ AS_HELP_STRING([--with-console-kit],
-+ [Add ConsoleKit support @<:@default=auto@:>@]),,
-+ with_console_kit=no)
-
-+AC_ARG_WITH(systemd,
-+ AS_HELP_STRING([--with-systemd],
-+ [Add systemd support @<:@default=auto@:>@]),
-+ [with_systemd=$withval], [with_systemd=auto])
- AC_ARG_WITH([systemdsystemunitdir],
- AS_HELP_STRING([--with-systemdsystemunitdir=DIR],
- [Directory for systemd service files]),
-@@ -548,6 +550,8 @@ fi
- if test "x$supports_pam_extensions" = "xyes" ; then
- AM_CONDITIONAL(SUPPORTS_PAM_EXTENSIONS, true)
- AC_DEFINE(SUPPORTS_PAM_EXTENSIONS, 1, [Define if PAM supports GDMs custom extensions])
-+else
-+ AM_CONDITIONAL(SUPPORTS_PAM_EXTENSIONS, false)
- fi
-
- AC_CHECK_LIB(keyutils, keyctl_read, [
-@@ -655,14 +659,8 @@ dnl --------------------------------------------------
- dnl - Check for utmp stuff
- dnl ---------------------------------------------------------------------------
-
--AC_CHECK_HEADERS(utmp.h utmpx.h libutil.h sys/param.h)
--AC_CHECK_FUNCS([getutxent updwtmpx updwtmp])
--AC_CHECK_LIB(util, login, [
-- AC_DEFINE(HAVE_LOGIN, 1, [Define if have login])
-- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ])
--AC_CHECK_LIB(util, logout, [
-- AC_DEFINE(HAVE_LOGOUT, 1, [Define if have logout])
-- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ])
-+AC_CHECK_HEADERS(utmp.h utmpx.h util.h sys/param.h)
-+AC_CHECK_FUNCS([getutxent getttyent updwtmpx updwtmp])
- AC_CHECK_LIB(util, logwtmp, [
- AC_DEFINE(HAVE_LOGWTMP, 1, [Define if have logwtmp])
- EXTRA_DAEMON_LIBS="$EXTRA_DAEMON_LIBS -lutil" ])
-@@ -911,12 +909,42 @@ AC_SUBST(XINERAMA_LIBS)
- CPPFLAGS="$xinerama_save_cppflags"
-
- dnl ---------------------------------------------------------------------------
-+dnl - Check for ConsoleKit support
-+dnl ---------------------------------------------------------------------------
-+
-+use_console_kit=no
-+if test "x$with_console_kit" != "xno" ; then
-+ use_console_kit=yes
-+ AC_DEFINE(WITH_CONSOLE_KIT, 1, [Define to enable ConsoleKit support])
-+fi
-+AM_CONDITIONAL(WITH_CONSOLE_KIT, test x$use_console_kit = xyes)
-+AC_SUBST(WITH_CONSOLE_KIT)
-+
-+dnl ---------------------------------------------------------------------------
- dnl - Check for systemd support
- dnl ---------------------------------------------------------------------------
-
- PKG_CHECK_MODULES(SYSTEMD,
-- [libsystemd])
-+ [libsystemd-login >= 186 libsystemd-daemon],
-+ [have_systemd=yes], [have_systemd=no])
-
-+if test "x$with_systemd" = "xauto" ; then
-+ if test x$have_systemd = xno ; then
-+ use_systemd=no
-+ else
-+ use_systemd=yes
-+ fi
-+else
-+ use_systemd="$with_systemd"
-+fi
-+
-+if test "x$use_systemd" != "xno" ; then
-+ if test "x$have_systemd" = "xno"; then
-+ AC_MSG_ERROR([Systemd support explicitly required, but systemd not found])
-+ fi
-+
-+ AC_DEFINE(WITH_SYSTEMD, 1, [Define to enable systemd support])
-+fi
- AC_SUBST(SYSTEMD_CFLAGS)
- AC_SUBST(SYSTEMD_LIBS)
-
-@@ -1111,6 +1139,14 @@ fi
- AC_SUBST(GDM_CUSTOM_CONF)
- AC_SUBST(GDM_OLD_CONF, '${gdmconfdir}/gdm.conf')
-
-+AC_ARG_WITH(consolekit-directory,
-+ [AC_HELP_STRING([--with-consolekit-directory],
-+ [Specify the directory of ck-get-x11-display-device @<:@default=libexecdir@:>@])],,
-+ [with_consolekit_directory="\${libexecdir}"])
-+
-+CONSOLEKIT_DIR=$with_consolekit_directory
-+AC_SUBST(CONSOLEKIT_DIR)
-+
- AC_ARG_WITH(gnome-settings-daemon-directory,
- [AC_HELP_STRING([--with-gnome-settings-daemon-directory],
- [Specify the directory of gnome-settings-daemon used by the chooser @<:@default=libexecdir@:>@])],,
-@@ -1601,6 +1637,7 @@ echo "
- dmconfdir: ${dmconfdir}
- localstatedir: ${localstatedir}
- datadir: ${datadir}
-+ consolekit location: ${with_consolekit_directory}
- gnome-settings-daemon location: ${with_gnome_settings_daemon_directory}
- gnome-session-check-accel location: ${with_check_accelerated_directory}
- source code location: ${srcdir}
-@@ -1631,6 +1668,8 @@ echo \
- " Xinerama support: ${XINERAMA_SUPPORT}
- XDMCP support: ${XDMCP_SUPPORT}
- SELinux support: ${use_selinux}
-+ ConsoleKit support: ${use_console_kit}
-+ systemd support: ${use_systemd}
- systemd unit dir: ${with_systemdsystemunitdir}
- plymouth support: ${use_plymouth}
- wayland support: ${enable_wayland_support}
-@@ -1639,3 +1678,4 @@ echo \
- Enable documentation: ${enable_documentation}
- Install GDM's Xsession: ${enable_gdm_xsession}
- "
-+
diff --git a/x11/gdm/files/daemon_Makefile.am b/x11/gdm/files/daemon_Makefile.am
deleted file mode 100644
index 72d55fb06926..000000000000
--- a/x11/gdm/files/daemon_Makefile.am
+++ /dev/null
@@ -1,33 +0,0 @@
---- daemon/Makefile.am.orig 2017-10-30 16:21:02.000000000 +0100
-+++ daemon/Makefile.am 2018-01-14 12:30:11.501517000 +0100
-@@ -21,6 +21,7 @@ AM_CPPFLAGS = \
- -DGDM_SCREENSHOT_DIR=\"$(GDM_SCREENSHOT_DIR)\" \
- -DGDM_CACHE_DIR=\""$(localstatedir)/cache/gdm"\" \
- -DGDM_SESSION_DEFAULT_PATH=\"$(GDM_SESSION_DEFAULT_PATH)\" \
-+ -DCONSOLEKIT_DIR=\"$(CONSOLEKIT_DIR)\" \
- $(DISABLE_DEPRECATED_CFLAGS) \
- $(DAEMON_CFLAGS) \
- $(XLIB_CFLAGS) \
-@@ -267,6 +268,11 @@ EXTRA_gdm_SOURCES = \
- $(XDMCP_SOURCES) \
- $(NULL)
-
-+CONSOLE_KIT_SOURCES = \
-+ $(NULL)
-+
-+EXTRA_gdm_SOURCES += $(CONSOLE_KIT_SOURCES)
-+
- gdm_LDADD = \
- $(top_builddir)/common/libgdmcommon.la \
- $(XLIB_LIBS) \
-@@ -277,6 +283,10 @@ gdm_LDADD = \
- $(JOURNALD_LIBS) \
- $(EXTRA_DAEMON_LIBS) \
- $(NULL)
-+
-+if WITH_CONSOLE_KIT
-+gdm_SOURCES += $(CONSOLE_KIT_SOURCES)
-+endif
-
- CLEANFILES = \
- gdm-display-glue.c \
diff --git a/x11/gdm/files/gdm-autologin.in b/x11/gdm/files/gdm-autologin.in
index 9e89fd1fcbbb..78a423679762 100644
--- a/x11/gdm/files/gdm-autologin.in
+++ b/x11/gdm/files/gdm-autologin.in
@@ -4,8 +4,8 @@
auth required pam_permit.so
-auth optional /usr/local/lib/pam_ck_connector.so
-auth optional /usr/local/lib/pam_gnome_keyring.so
+auth optional %%PREFIX%%/lib/pam_ck_connector.so
+auth optional %%PREFIX%%/lib/pam_gnome_keyring.so
account required pam_nologin.so
account include system
@@ -13,4 +13,4 @@ account include system
password include system
session include system
-session optional /usr/local/lib/pam_gnome_keyring.so auto_start
+session optional %%PREFIX%%/lib/pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/gdm-password.in b/x11/gdm/files/gdm-password.in
index 3b7b48e2e9b9..65bfa040422f 100644
--- a/x11/gdm/files/gdm-password.in
+++ b/x11/gdm/files/gdm-password.in
@@ -4,8 +4,8 @@
auth include system
-auth optional /usr/local/lib/pam_ck_connector.so
-auth optional /usr/local/lib/pam_gnome_keyring.so
+auth optional %%PREFIX%%/lib/pam_ck_connector.so
+auth optional %%PREFIX%%/lib/pam_gnome_keyring.so
account required pam_nologin.so
account include system
@@ -13,4 +13,4 @@ account include system
password include system
session include system
-session optional /usr/local/lib/pam_gnome_keyring.so auto_start
+session optional %%PREFIX%%/lib/pam_gnome_keyring.so auto_start
diff --git a/x11/gdm/files/gdm.in b/x11/gdm/files/gdm.in
index 5a0fcc2d76a9..16b6c4aeae13 100644
--- a/x11/gdm/files/gdm.in
+++ b/x11/gdm/files/gdm.in
@@ -32,9 +32,9 @@ gdm_start()
fi
echo "Starting ${name}."
- # we need to remove locking files under $gdm_home/.cache/gnome-shell/
+ # we need to remove locking files under /var/cache/gdm/.cache/gnome-shell/
# until XDG_RUNTIME_DIR can be set and used
- rm -fr %%PREFIX%%/etc/gdm/home/.cache/gnome-shell/runtime-state*
+ rm -fr /var/cache/gdm/.cache/gnome-shell/runtime-state*
# make sure there is no pam configuration for gdm service in base system
if ! checkyesno gdm_preserve_base_pam_conf && [ -f /etc/pam.d/gdm ]; then
diff --git a/x11/gdm/files/patch-build-aux_find-x-server.sh b/x11/gdm/files/patch-build-aux_find-x-server.sh
new file mode 100644
index 000000000000..ca3f15693fe5
--- /dev/null
+++ b/x11/gdm/files/patch-build-aux_find-x-server.sh
@@ -0,0 +1,13 @@
+--- build-aux/find-x-server.sh.orig 2023-05-05 18:12:53 UTC
++++ build-aux/find-x-server.sh
+@@ -29,6 +29,10 @@ elif test -x /usr/openwin/bin/Xsun; then
+ echo "/usr/openwin/bin/Xsun"
+ elif test -x /opt/X11R6/bin/X; then
+ echo "/opt/X11R6/bin/X"
++elif test -x /usr/local/bin/Xorg; then
++ echo "/usr/local/bin/Xorg"
++elif test -x /usr/local/bin/X; then
++ echo "/usr/local/bin/X"
+ else
+ echo ""
+ fi
diff --git a/x11/gdm/files/patch-common_gdm-common.c b/x11/gdm/files/patch-common_gdm-common.c
index cb4900ae4994..1ee91d606f3e 100644
--- a/x11/gdm/files/patch-common_gdm-common.c
+++ b/x11/gdm/files/patch-common_gdm-common.c
@@ -1,488 +1,43 @@
---- common/gdm-common.c.orig 2022-01-12 14:15:56 UTC
+--- common/gdm-common.c.orig 2023-09-14 15:27:04 UTC
+++ common/gdm-common.c
-@@ -36,7 +36,9 @@
+@@ -36,8 +36,13 @@
#include "gdm-common.h"
-+#ifdef WITH_SYSTEMD
++#if defined(WITH_SYSTEMD)
#include <systemd/sd-login.h>
++#elif defined(WITH_CONSOLE_KIT)
++#include <ConsoleKit/sd-login.h>
+#endif
++
#define GDM_DBUS_NAME "org.gnome.DisplayManager"
#define GDM_DBUS_LOCAL_DISPLAY_FACTORY_PATH "/org/gnome/DisplayManager/LocalDisplayFactory"
-@@ -352,6 +354,412 @@ create_transient_display (GDBusConnection *connection,
- return TRUE;
- }
+ #define GDM_DBUS_LOCAL_DISPLAY_FACTORY_INTERFACE "org.gnome.DisplayManager.LocalDisplayFactory"
+@@ -368,15 +373,22 @@ gdm_activate_session_by_id (GDBusConnection *connectio
+ g_return_val_if_fail (session_id != NULL, FALSE);
-+#ifdef WITH_CONSOLE_KIT
-+int
-+sd_seat_can_graphical(const char *seat)
-+{
-+ // XXX
-+ return 1;
-+}
-+
-+int
-+sd_session_get_service(const char *session,
-+ char **service)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const char *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetSessionService",
-+ NULL,
-+ G_VARIANT_TYPE ("(s)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to determine session service: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(s)", &value);
-+ g_variant_unref (reply);
-+
-+ *service = g_strdup (value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_session_get_uid(const char *session,
-+ uid_t *uid)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+ uid_t local_uid;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetUnixUser",
-+ NULL,
-+ G_VARIANT_TYPE ("(u)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to get session for unix service: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(u)", &local_uid);
-+ g_variant_unref (reply);
-+
-+ *uid = local_uid;
-+
-+ return 0;
-+}
-+
-+int
-+sd_seat_get_sessions(const char *seat,
-+ char ***sessions,
-+ uid_t **uid,
-+ unsigned int *n_uids)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ GVariantIter *iter;
-+ gchar *value = NULL;
-+ glong nchild;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (seat == NULL || !g_variant_is_object_path (seat))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ seat,
-+ CK_SEAT_INTERFACE,
-+ "GetSessions",
-+ NULL,
-+ G_VARIANT_TYPE ("(ao)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to list sessions: %s", local_error->message);
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(ao)", &iter);
-+ g_variant_unref (reply);
-+
-+ nchild = g_variant_iter_n_children(iter);
-+ *sessions = calloc(nchild, sizeof(gchar *));
-+ if (*sessions == NULL) {
-+ g_warning ("Unable to allocate memory for sessions array: %s", g_strerror(errno));
-+ return -ENOMEM;
-+ }
-+
-+ while (g_variant_iter_next (iter, "o", &value)) {
-+ (*sessions)[nchild - 1] = g_strdup(value);
-+ }
-+ (*sessions)[nchild] = NULL;
-+
-+ g_variant_iter_free (iter);
-+
-+ return 0;
-+}
-+
-+int
-+sd_session_get_seat(const char *session,
-+ char **seat)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const char *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetSeatId",
-+ NULL, /* parameters */
-+ G_VARIANT_TYPE ("(o)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to determine seat: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(o)", &value);
-+ g_variant_unref (reply);
-+
-+ *seat = g_strdup(value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_pid_get_session(pid_t pid, char **session)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const char *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ CK_MANAGER_PATH,
-+ CK_MANAGER_INTERFACE,
-+ "GetSessionForUnixProcess",
-+ g_variant_new ("(u)", pid),
-+ G_VARIANT_TYPE ("(o)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to list sessions: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(o)", &value);
-+ g_variant_unref (reply);
-+
-+ *session = g_strdup (value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_session_get_type(const char *session, char **type)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const char *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetSessionType",
-+ NULL,
-+ G_VARIANT_TYPE ("(s)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to determine session type: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(s)", &value);
-+ g_variant_unref (reply);
-+
-+ *type = g_strdup (value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_session_get_class(const char *session, char **class)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const gchar *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetSessionClass",
-+ NULL,
-+ G_VARIANT_TYPE ("(s)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to determine session class: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(s)", &value);
-+ g_variant_unref (reply);
-+
-+ *class = g_strdup(value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_session_get_state(const char *session, char **state)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ const char *value;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ if (session == NULL || !g_variant_is_object_path (session))
-+ return -ENXIO;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ session,
-+ CK_SESSION_INTERFACE,
-+ "GetSessionState",
-+ NULL,
-+ G_VARIANT_TYPE ("(s)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
-+ if (reply == NULL) {
-+ g_warning ("Unable to determine session state: %s", local_error ? local_error->message : "");
-+ g_error_free (local_error);
-+ return -ENXIO;
-+ }
-+
-+ g_variant_get (reply, "(s)", &value);
-+ g_variant_unref (reply);
-+
-+ *state = g_strdup (value);
-+
-+ return 0;
-+}
-+
-+int
-+sd_uid_get_sessions(uid_t uid, int require_active, char ***sessions)
-+{
-+ GError *local_error = NULL;
-+ GVariant *reply;
-+ GVariantIter *iter;
-+ gchar *value = NULL;
-+ glong nchild;
-+ g_autoptr(GDBusConnection) connection = NULL;
-+
-+ connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &local_error);
-+ if (connection == NULL) {
-+ g_warning ("Failed to connect to the D-Bus daemon: %s", local_error->message);
-+ return -ENXIO;
-+ }
-+
-+ reply = g_dbus_connection_call_sync (connection,
-+ CK_NAME,
-+ CK_MANAGER_PATH,
-+ CK_MANAGER_INTERFACE,
-+ "GetSessionsForUnixUser",
-+ g_variant_new ("(u)", uid),
-+ G_VARIANT_TYPE ("(ao)"),
-+ G_DBUS_CALL_FLAGS_NONE,
-+ -1,
-+ NULL, &local_error);
*** 1904 LINES SKIPPED ***