summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <halfline@gmail.com>2020-08-31 13:28:02 +0000
committerRay Strode <halfline@gmail.com>2020-08-31 13:28:02 +0000
commit62d36172381147e5bff30b44eab3fdb09c9bc9cb (patch)
tree733ab9389e99fd25c32318206219f87184fb6f5b
parent5cafcd22c246291b72037a84cc894b53af9913ef (diff)
parenta798460abcba6e3257bf83441dd2b5aa53491646 (diff)
downloadgdm-62d36172381147e5bff30b44eab3fdb09c9bc9cb.tar.gz
Merge branch 'meson-fixes' into 'master'
Meson fixes See merge request GNOME/gdm!107
-rw-r--r--README.md7
-rw-r--r--data/gnome-login.session.in3
-rw-r--r--data/meson.build49
-rw-r--r--data/session.conf19
-rw-r--r--data/session.conf.in4
-rw-r--r--meson.build77
-rw-r--r--meson_options.txt2
7 files changed, 122 insertions, 39 deletions
diff --git a/README.md b/README.md
index 38dd80eb..63737c16 100644
--- a/README.md
+++ b/README.md
@@ -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
diff --git a/data/gnome-login.session.in b/data/gnome-login.session.in
index fd9d45aa..63470962 100644
--- a/data/gnome-login.session.in
+++ b/data/gnome-login.session.in
@@ -1,4 +1,3 @@
[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@;
diff --git a/data/meson.build b/data/meson.build
index b24f7c0b..05a20117 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: 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'),
diff --git a/data/session.conf b/data/session.conf
deleted file mode 100644
index 560f8dce..00000000
--- a/data/session.conf
+++ /dev/null
@@ -1,19 +0,0 @@
-[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
diff --git a/data/session.conf.in b/data/session.conf.in
new file mode 100644
index 00000000..7bfa3652
--- /dev/null
+++ b/data/session.conf.in
@@ -0,0 +1,4 @@
+[Unit]
+@wants_required_components@
+
+Requires=@requires_component@.target
diff --git a/meson.build b/meson.build
index b210a187..16e5a9c8 100644
--- a/meson.build
+++ b/meson.build
@@ -50,16 +50,17 @@ 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
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
@@ -95,8 +96,17 @@ 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)
+if meson.version().version_compare('>= 0.53')
+ systemd_multiseat_x = find_program('systemd-multi-seat-x',
+ required: false,
+ dirs: [
+ systemd_dep.get_pkgconfig_variable('systemdutildir'),
+ '/lib/systemd',
+ '/usr/lib/systemd',
+ ])
+else
+ systemd_multiseat_x = find_program('systemd-multi-seat-x', required: false)
+endif
systemd_x_server = systemd_multiseat_x.found()? systemd_multiseat_x.path() : '/lib/systemd/systemd-multi-seat-x'
# Plymouth
plymouth_dep = dependency('ply-boot-client', required: get_option('plymouth'))
@@ -217,7 +227,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'))
@@ -263,3 +273,58 @@ if xdmcp_dep.found()
subdir('chooser')
endif
subdir('docs')
+
+if meson.version().version_compare('>= 0.53')
+summary({
+ 'datadir': gdm_prefix / get_option('datadir'),
+ 'sysconfdir': gdm_prefix / get_option('sysconfdir'),
+ 'bindir': gdm_prefix / get_option('bindir'),
+ 'libdir': gdm_prefix / get_option('libdir'),
+ 'libexecdir': gdm_prefix / get_option('libexecdir'),
+ 'logdir': get_option('log-dir'),
+ 'System DBus': dbus_sys_dir,
+ 'DM conf': dmconfdir,
+ 'GDM conf': gdmconfdir,
+ 'GDM Screenshot ': gdm_screenshot_dir,
+ 'GDM Xauth': gdm_xauth_dir,
+ 'GDM RanOnceMarker': ran_once_marker_dir,
+ 'GDM Run': gdm_run_dir,
+ 'GDM PID file': gdm_pid_file,
+ 'GDM Defaults config': gdm_defaults_conf,
+ 'GDM Custom config': gdm_custom_conf,
+ 'GDM Runtime config': gdm_runtime_conf,
+ 'GDM Session default path': get_option('default-path'),
+ 'GDM Working dir': working_dir,
+ 'GNOME locale': gdm_prefix / get_option('datadir') / get_option('localedir'),
+ 'GNOME Settings Daemon': gnome_settings_daemon_dir,
+ 'AT SPI registryd': at_spi_registryd_dir,
+ 'Check Accelerated': check_accelerated_dir,
+ 'Lang config file': lang_config_file,
+ 'Pam MOD': pam_mod_dir,
+ 'Udev rules': udev_dir,
+ 'XServer': x_bin,
+ 'XPath': x_path,
+ 'Systemd XServer': systemd_x_server,
+ },
+ section: 'Paths',
+)
+
+summary({
+ 'ADT': have_adt,
+ 'PAM Syslog': have_pam_syslog,
+ 'Supports PAM Extensions': pam_extensions_supported,
+ 'SeLinux': libselinux_dep.found(),
+ 'Use UserDisplayServer': get_option('user-display-server'),
+ 'Use SystemdJournal': get_option('systemd-journal'),
+ 'Use WaylandSupport': get_option('wayland-support'),
+ 'Use Profiling': get_option('profiling'),
+ 'Initial VT': get_option('initial-vt'),
+ 'Username': get_option('user'),
+ 'Groupname': get_option('group'),
+ 'Plymouth': plymouth_dep.found(),
+ 'Use ipv6': get_option('ipv6'),
+ },
+ section: 'Features',
+ bool_yn: true,
+)
+endif
diff --git a/meson_options.txt b/meson_options.txt
index 040fe383..49550bc1 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: 'Use 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.')