Skip to content
Commits on Source (47)
==============
Version 3.38.0
==============
- Crasher fix
- build goo updates
- systemd unit file improvements
- Translation updates
===============
Version 3.37.90
===============
......
......@@ -9,10 +9,9 @@ providing graphical log-ins and managing local and remote displays.
To build and install GDM from source, just execute the following commands:
```
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install
$ meson _build
$ ninja -C _build
$ sudo ninja -C _build install
```
## Contributing
......
......@@ -576,10 +576,11 @@ get_display_and_details_for_bus_sender (GdmManager *self,
lookup_by_session_id,
(gpointer) session_id);
out:
if (out_display != NULL) {
*out_display = display;
}
out:
g_free (session_id);
}
......@@ -811,7 +812,7 @@ gdm_manager_handle_register_session (GdmDBusManager *manager,
GVariant *details)
{
GdmManager *self = GDM_MANAGER (manager);
GdmDisplay *display;
GdmDisplay *display = NULL;
const char *sender;
GDBusConnection *connection;
......@@ -2515,7 +2516,7 @@ gdm_manager_start (GdmManager *manager)
#ifdef WITH_PLYMOUTH
/* Quit plymouth if xdmcp is the only display */
if (!manager->priv->show_local_greeter && manager->priv->plymouth_is_running) {
plymouth_quit_with_transition ();
plymouth_quit_without_transition ();
manager->priv->plymouth_is_running = FALSE;
}
#endif
......
......@@ -25,8 +25,6 @@ KillMode=mixed
Restart=always
IgnoreSIGPIPE=no
BusName=org.gnome.DisplayManager
StandardOutput=syslog
StandardError=inherit
EnvironmentFile=-${LANG_CONFIG_FILE}
ExecReload=/bin/kill -SIGHUP $MAINPID
KeyringMode=shared
......
[GNOME Session]
Name=Display Manager
# Keep in sync with gnome-session@gnome-login.target.d/session.conf
RequiredComponents=org.gnome.Shell;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.ScreensaverProxy;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;
RequiredComponents=@gnome_required_components@;
......@@ -34,10 +34,10 @@ configure_file(
)
configure_file(
input: 'gdm.conf-custom.in',
output: 'custom.conf',
output: gdm_custom_conf.split('/')[-1],
copy: true,
install_mode: 'rw-r--r--',
install_dir: gdmconfdir,
install_dir: run_command(find_program('dirname'), gdm_custom_conf).stdout().strip(),
)
# GSettings schema
......@@ -61,12 +61,38 @@ gdm_schema = configure_file(
install_data('locale.alias',
install_dir: get_option('datadir') / 'gdm',
)
gdm_gnome_shell_component = 'org.gnome.Shell'
gdm_gnome_session_required_components = [
'org.gnome.SettingsDaemon.A11ySettings',
'org.gnome.SettingsDaemon.Color',
'org.gnome.SettingsDaemon.Datetime',
'org.gnome.SettingsDaemon.Housekeeping',
'org.gnome.SettingsDaemon.Keyboard',
'org.gnome.SettingsDaemon.MediaKeys',
'org.gnome.SettingsDaemon.Power',
'org.gnome.SettingsDaemon.PrintNotifications',
'org.gnome.SettingsDaemon.Rfkill',
'org.gnome.SettingsDaemon.ScreensaverProxy',
'org.gnome.SettingsDaemon.Sharing',
'org.gnome.SettingsDaemon.Smartcard',
'org.gnome.SettingsDaemon.Sound',
'org.gnome.SettingsDaemon.Wacom',
]
gdm_gnome_user_session_wanted_components = gdm_gnome_session_required_components
gdm_gnome_user_session_wanted_components += [
'org.gnome.SettingsDaemon.XSettings',
]
configure_file(
input: 'gnome-login.session.in',
output: '@BASENAME@',
configuration: {
'libexecdir': gdm_prefix / get_option('libexecdir'),
'check_accelerated_dir': check_accelerated_dir,
'gnome_required_components': ';'.join(
[ gdm_gnome_shell_component ] + gdm_gnome_session_required_components),
},
install_dir: get_option('datadir') / 'gnome-session' / 'sessions',
)
......@@ -165,16 +191,25 @@ configure_file(
format: 'cmake'
)
install_data(
'session.conf',
rename: join_paths('gnome-session@gnome-login.target.d', 'session.conf'),
install_dir: systemd_userunitdir,
gdm_gnome_session_wanted_targets = []
foreach component: gdm_gnome_user_session_wanted_components
gdm_gnome_session_wanted_targets += 'Wants=@0@.target'.format(component)
endforeach
configure_file(
input: 'session.conf.in',
output: 'session.conf',
configuration: {
'requires_component': gdm_gnome_shell_component,
'wants_required_components': '\n'.join(gdm_gnome_session_wanted_targets),
},
install_dir: systemd_userunitdir / 'gnome-session@gnome-login.target.d',
)
# XSession
if get_option('gdm-xsession')
configure_file(
input: 'XSession.in',
input: 'Xsession.in',
output: '@BASENAME@',
configuration: {
'libexecdir': gdm_prefix / get_option('libexecdir'),
......
[Unit]
# Keep in sync with gnome-login.session
Wants=org.gnome.SettingsDaemon.A11ySettings.target
Wants=org.gnome.SettingsDaemon.Color.target
Wants=org.gnome.SettingsDaemon.Datetime.target
Wants=org.gnome.SettingsDaemon.Housekeeping.target
Wants=org.gnome.SettingsDaemon.Keyboard.target
Wants=org.gnome.SettingsDaemon.MediaKeys.target
Wants=org.gnome.SettingsDaemon.Power.target
Wants=org.gnome.SettingsDaemon.PrintNotifications.target
Wants=org.gnome.SettingsDaemon.Rfkill.target
Wants=org.gnome.SettingsDaemon.ScreensaverProxy.target
Wants=org.gnome.SettingsDaemon.Sharing.target
Wants=org.gnome.SettingsDaemon.Smartcard.target
Wants=org.gnome.SettingsDaemon.Sound.target
Wants=org.gnome.SettingsDaemon.Wacom.target
Wants=org.gnome.SettingsDaemon.XSettings.target
Requires=org.gnome.Shell.target
[Unit]
@wants_required_components@
Requires=@requires_component@.target
gdm3 (3.38.0-1ubuntu1) groovy; urgency=medium
* Merge with debian, containing new upstream release:
- Crasher fix
- build goo updates
- systemd unit file improvements
- Translation updates
* debian/patches: Refreshed (removing applied one)
* Remaining changes with debian:
+ README.Debian: update for correct paths in Ubuntu
+ control.in:
- Don't recommend desktop-base
- Build depend on libgudev-1.0-dev
- Depend on bash for config_error_dialog.patch
- Update Vcs field
- Recomends libpam-fprintd (instead of Suggests)
+ rules:
- Don't override default user/group
- -Dgdm-xsession=true to install upstream Xsession script
- override dh_installinit with --no-start to avoid session being killed
+ rules, README.Debian, gdm3.8.pod:
Use upstream custom.conf instead of daemon.conf
+ gdm3.{postinst,postrm}: rename user and group back to gdm
+ gdm3.postinst, gdm3.prerm: don't kill gdm on upgrade
+ gdm3.*.pam: Make pam_env read ~/.pam_environment
+ gdm3.install:
- Stop installing default.desktop. It adds unnecessary clutter
("System Default") to the session chooser.
- Don't install debian/Xsession
+ Add run_xsession.d.patch
+ Add xresources_is_a_dir.patch
- Fix loading from /etc/X11/Xresources/*
+ Add nvidia_prime.patch:
- Add hook to run prime-offload (as root) and prime-switch if
nvidia-prime is installed
+ Add revert_override_LANG_with_accountservices.patch:
- On Ubuntu accountservices only stores the language and not the
full locale as needed by LANG.
+ Add dont_set_language_env.patch:
- Don't run the set_up_session_language() function, since it
overrides variable values set by ~/.pam_environment
+ Add config_error_dialog.patch:
- Show warning dialog in case of error in ~/.profile etc. and
don't let a syntax error make the login fail
+ Add debian/patches/revert_nvidia_wayland_blacklist.patch:
- Don't blacklist nvidia for wayland
+ Add gdm3.service-wait-for-drm-device-before-trying-to-start-i.patch:
- Wait for the first valid gdm device on pre-start
+ Add debian/default.pa
- Disable Bluetooth audio devices in PulseAudio from gdm3.
+ debian/gdm3.install
- Added details of the default.pa file
+ debian/gdm3.postinst
- Added installation of default.pa and creation of dir if it doesn't
exist.
+ debian/greeter.dconf-defaults: Don't set Debian settings in the
greeter's dconf DB
-- Marco Trevisan (Treviño) <marco@ubuntu.com> Wed, 16 Sep 2020 11:01:05 +0200
gdm3 (3.38.0-1) experimental; urgency=medium
* Team upload
* New upstream release
* Remove patches that were applied upstream (in some cases differently)
* Remove special case for s390x.
gjs and gnome-shell now exist there, so we no longer need to avoid
depending on them. In particular this makes the GNOME metapackages
installable on that architecture again. (Closes: #970245)
-- Simon McVittie <smcv@debian.org> Sun, 13 Sep 2020 18:03:34 +0100
gdm3 (3.37.90-2) experimental; urgency=medium
* Team upload
[ Simon McVittie ]
* Add patch to remove deprecated StandardOutput=syslog from systemd unit
* Build-Depend on systemd, for /usr/share/pkgconfig/systemd.pc
[ Iain Lane ]
* debian/control: Bump depends on gnome-{session,settings-daemon,shell}
We require the newly rearranged systemd units that are in these
versions.
* debian/control: Make gdm depend on gnome-session-common ≥ 3.37.0-2~
This is where the systemd units live now.
-- Simon McVittie <smcv@debian.org> Wed, 09 Sep 2020 00:51:41 +0100
gdm3 (3.37.90-1ubuntu1) groovy; urgency=medium
[ Marco Trevisan (Treviño) ]
......
From: Simon McVittie <smcv@debian.org>
Date: Fri, 28 Aug 2020 10:26:39 +0100
Subject: data: Remove deprecated StandardOutput=syslog
This is now equivalent to StandardOutput=journal, and recent versions
of systemd log a warning for it. Instead of updating it to journal,
remove it: the default if not specified is to respect the
DefaultStandardOutput setting from /etc/systemd/system.conf, which
in turn defaults to journal. Removing the explicit setting here means
gdm is included if a sysadmin edits system.conf to change the logging
destination for (almost) all system services at the same time, which
seems desirable.
Similarly, StandardError defaults to DefaultStandardError, which
in turn defaults to inherit, so we don't need to override it here.
Bug: https://gitlab.gnome.org/GNOME/gdm/-/issues/623
Forwarded: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/108
Signed-off-by: Simon McVittie <smcv@debian.org>
---
data/gdm.service.in | 2 --
1 file changed, 2 deletions(-)
diff --git a/data/gdm.service.in b/data/gdm.service.in
index fbbfb52..17e8a8d 100644
--- a/data/gdm.service.in
+++ b/data/gdm.service.in
@@ -25,8 +25,6 @@ KillMode=mixed
Restart=always
IgnoreSIGPIPE=no
BusName=org.gnome.DisplayManager
-StandardOutput=syslog
-StandardError=inherit
EnvironmentFile=-${LANG_CONFIG_FILE}
ExecReload=/bin/kill -SIGHUP $MAINPID
KeyringMode=shared
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Fri, 28 Aug 2020 13:57:33 +0200
Subject: meson: Don't look for non-existent journald dependency
Systemd journal library is provided by libsystemd, given that such API has
more than 8 years, is probably not needed to convert this into a feature and
check for a required systemd version in case it's enabled.
So, just set ENABLE_SYSTEMD_JOURNAL just reading the option.
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
---
meson.build | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 08aa1af..a0d4f90 100644
--- a/meson.build
+++ b/meson.build
@@ -96,7 +96,6 @@ endif
# systemd
systemd_dep = dependency('systemd')
libsystemd_dep = dependency('libsystemd')
-journald_dep = dependency('journald', required: get_option('systemd-journal'))
systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
# Plymouth
@@ -218,7 +217,7 @@ conf.set('HAVE_KEYUTILS', keyutils_dep.found())
conf.set('SUPPORTS_PAM_EXTENSIONS', pam_extensions_supported)
conf.set('HAVE_SELINUX', libselinux_dep.found())
conf.set('ENABLE_USER_DISPLAY_SERVER', get_option('user-display-server'))
-conf.set('ENABLE_SYSTEMD_JOURNAL', journald_dep.found())
+conf.set('ENABLE_SYSTEMD_JOURNAL', get_option('systemd-journal'))
conf.set('ENABLE_WAYLAND_SUPPORT', get_option('wayland-support'))
conf.set('ENABLE_PROFILING', get_option('profiling'))
conf.set('GDM_INITIAL_VT', get_option('initial-vt'))
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Mon, 31 Aug 2020 14:56:16 +0200
Subject: meson: Fix Xsession input file name
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
Applied-Upstream: 3.37.92
---
data/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/data/meson.build b/data/meson.build
index 11a70d4..2a0741d 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -174,7 +174,7 @@ install_data(
# XSession
if get_option('gdm-xsession')
configure_file(
- input: 'XSession.in',
+ input: 'Xsession.in',
output: '@BASENAME@',
configuration: {
'libexecdir': gdm_prefix / get_option('libexecdir'),
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <marco@ubuntu.com>
Date: Fri, 28 Aug 2020 05:19:16 +0200
Subject: meson: Fix keyutils pkg-config name
Keyutils includes a .pc file as mentioned in commit 141f8bc244, however its
name was wrongly changed from 'libkeyutils' during the meson port
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
---
meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson.build b/meson.build
index b210a18..866e1fe 100644
--- a/meson.build
+++ b/meson.build
@@ -50,7 +50,7 @@ gtk_dep = dependency('gtk+-3.0', version: '>= 2.91.1')
libcanberra_gtk_dep = dependency('libcanberra-gtk3', version: '>= 0.4')
accountsservice_dep = dependency('accountsservice', version: '>= 0.6.35')
xcb_dep = dependency('xcb')
-keyutils_dep = dependency('keyutils', required: false)
+keyutils_dep = dependency('libkeyutils', required: false)
libselinux_dep = dependency('libselinux', required: get_option('selinux'))
# udev
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <marco@ubuntu.com>
Date: Fri, 28 Aug 2020 05:19:16 +0200
Subject: meson: Obey at -Dcustom-conf option when installing custom.conf
No matter what parameter was passed to gdm, the custom.conf was always
installed in $gdmcomnfdir/custom.conf, even if the config.h was using the
configured path.
Ensure that we use the passed argument, setting its name as configure_file
output and its path as the install_dir.
Unfortunately we've to be hackish here, using coreutils too,s until we
require meson 0.53 (and can use its FS module).
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
---
data/meson.build | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/data/meson.build b/data/meson.build
index b24f7c0..11a70d4 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -34,10 +34,10 @@ configure_file(
)
configure_file(
input: 'gdm.conf-custom.in',
- output: 'custom.conf',
+ output: run_command(find_program('basename'), gdm_custom_conf).stdout().strip(),
copy: true,
install_mode: 'rw-r--r--',
- install_dir: gdmconfdir,
+ install_dir: run_command(find_program('dirname'), gdm_custom_conf).stdout().strip(),
)
# GSettings schema
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <marco@ubuntu.com>
Date: Fri, 28 Aug 2020 05:19:16 +0200
Subject: meson: Use correct rules path when getting udevdir from pkg-config
When udev is installed we compute the udevdir from pkg-config, however that
is only the parent folder of the rules.d, so in any case consider it a
prefix.
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
---
meson.build | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/meson.build b/meson.build
index 866e1fe..08aa1af 100644
--- a/meson.build
+++ b/meson.build
@@ -56,10 +56,11 @@ libselinux_dep = dependency('libselinux', required: get_option('selinux'))
# udev
if udev_dir == ''
if udev_dep.found()
- udev_dir = udev_dep.get_pkgconfig_variable('udevdir')
+ udev_prefix = udev_dep.get_pkgconfig_variable('udevdir')
else
- udev_dir = gdm_prefix / 'lib' / 'udev' / 'rules.d'
+ udev_prefix = gdm_prefix / 'lib' / 'udev'
endif
+ udev_dir = udev_prefix / 'rules.d'
endif
# X11
From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
Date: Fri, 28 Aug 2020 13:59:56 +0200
Subject: meson_options: Enable systemd-journal by default
This was already the case in autotools, as it used to be a feature that was
set to auto and disabled only in the case there was no libsystemd.
Now, being systemd a required gdm component, there's no point to use it as
a feature, but still give the packagers the ability to toggle it.
Origin: https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/107
Forwarded: yes
---
meson_options.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meson_options.txt b/meson_options.txt
index 040fe38..9a9f76e 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -27,7 +27,7 @@ option('selinux', type: 'feature', value: 'auto', description: 'Add SELinux supp
option('solaris', type: 'boolean', value: false, description: 'Build for Solaris')
option('split-authentication', type: 'boolean', value: true, description: 'Enable multiple simultaneous PAM conversations during login.')
option('sysconfsubdir', type: 'string', value: 'gdm', description: 'Directory name used under sysconfdir.')
-option('systemd-journal', type: 'boolean', value: false, description: 'Add journald support.')
+option('systemd-journal', type: 'boolean', value: true, description: 'Add journald support.')
option('systemdsystemunitdir', type: 'string', value: '', description: 'Directory for systemd service files.')
option('systemduserunitdir', type: 'string', value: '', description: 'Directory for systemd user service files.')
option('tcp-wrappers', type: 'boolean', value: false, description: 'Use TCP wrappers.')
data-Remove-deprecated-StandardOutput-syslog.patch
16_xserver_path.patch
90_config_comments.patch
91_dconf_database_path.patch
92_systemd_unit.patch
93_translate-default-desktop.patch
94_retain_xorg_log.patch
meson-Fix-keyutils-pkg-config-name.patch
meson-Obey-at-Dcustom-conf-option-when-installing-custom..patch
meson-Use-correct-rules-path-when-getting-udevdir-from-pk.patch
meson-Don-t-look-for-non-existent-journald-dependency.patch
meson-Fix-Xsession-input-file-name.patch
meson_options-Enable-systemd-journal-by-default.patch
ubuntu/run_xsession.d.patch
ubuntu/xresources_is_a_dir.patch
ubuntu/nvidia_prime.patch
......
......@@ -92,10 +92,10 @@ index 0000000..08cb7b9
+ zenity --warning --no-wrap --text="$TEXT"
+fi
diff --git a/data/meson.build b/data/meson.build
index 71380af..bbaa0d9 100644
index 05429d5..c8e9797 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -178,8 +178,13 @@ if get_option('gdm-xsession')
@@ -213,8 +213,13 @@ if get_option('gdm-xsession')
output: '@BASENAME@',
configuration: {
'libexecdir': gdm_prefix / get_option('libexecdir'),
......
......@@ -13,19 +13,19 @@ Forwarded: not-needed
create mode 100644 utils/gdm-wait-for-drm.c
diff --git a/data/gdm.service.in b/data/gdm.service.in
index 98f4cdf..6f98a2e 100644
index 066d763..ea7f219 100644
--- a/data/gdm.service.in
+++ b/data/gdm.service.in
@@ -33,3 +33,4 @@ EnvironmentFile=-${LANG_CONFIG_FILE}
@@ -31,3 +31,4 @@ EnvironmentFile=-${LANG_CONFIG_FILE}
ExecReload=/usr/share/gdm/generate-config
ExecReload=/bin/kill -SIGHUP $MAINPID
KeyringMode=shared
+ExecStartPre=${libexecdir}/gdm-wait-for-drm
diff --git a/data/meson.build b/data/meson.build
index bbaa0d9..ddc707e 100644
index c8e9797..6d253e6 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -136,6 +136,7 @@ gdm_rules = configure_file(
@@ -162,6 +162,7 @@ gdm_rules = configure_file(
# DBus service files
service_config = configuration_data()
service_config.set('sbindir', gdm_prefix / get_option('sbindir'))
......
......@@ -86,7 +86,7 @@ index 0000000..5a61c3c
+ $primeswitch
+fi
diff --git a/data/meson.build b/data/meson.build
index 2a0741d..71380af 100644
index 05a2011..05429d5 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -3,7 +3,7 @@ subdir('autostart')
......