diff options
author | Ray Strode <halfline@gmail.com> | 2020-08-31 13:28:02 +0000 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2020-08-31 13:28:02 +0000 |
commit | 62d36172381147e5bff30b44eab3fdb09c9bc9cb (patch) | |
tree | 733ab9389e99fd25c32318206219f87184fb6f5b | |
parent | 5cafcd22c246291b72037a84cc894b53af9913ef (diff) | |
parent | a798460abcba6e3257bf83441dd2b5aa53491646 (diff) | |
download | gdm-62d36172381147e5bff30b44eab3fdb09c9bc9cb.tar.gz |
Merge branch 'meson-fixes' into 'master'
Meson fixes
See merge request GNOME/gdm!107
-rw-r--r-- | README.md | 7 | ||||
-rw-r--r-- | data/gnome-login.session.in | 3 | ||||
-rw-r--r-- | data/meson.build | 49 | ||||
-rw-r--r-- | data/session.conf | 19 | ||||
-rw-r--r-- | data/session.conf.in | 4 | ||||
-rw-r--r-- | meson.build | 77 | ||||
-rw-r--r-- | meson_options.txt | 2 |
7 files changed, 122 insertions, 39 deletions
@@ -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.') |