Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
- name: Install Dependencies
run: |
apt update
apt install -y meson pkg-config gnome-settings-daemon gnome-settings-daemon-dev gnome-keyring orca
apt install -y meson pkg-config gnome-settings-daemon gnome-settings-daemon-dev gnome-keyring orca systemd-dev

- name: Build
run: |
Expand Down
10 changes: 10 additions & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,16 @@ gsd_components = [
'org.gnome.SettingsDaemon.XSettings',
]

keyring_components = [
'gnome-keyring-daemon',
'gcr-ssh-agent'
]

desktop_components = [
'orca',
'io.elementary.settings-daemon'
]

subdir('po')

if get_option('mimeapps-list')
Expand Down
131 changes: 66 additions & 65 deletions session/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -34,74 +34,75 @@ configure_file(
install_dir: datadir / 'gnome-session' / 'sessions'
)

autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart')

gsd_dir = gsd_dep.get_pkgconfig_variable('prefix')
desktop_file_install = find_program('desktop-file-install')

foreach component : gsd_components
original_filename = component + '.desktop'
if (gsd_dep.version().version_compare('< 49'))
autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart')
gsd_dir = gsd_dep.get_pkgconfig_variable('prefix')
desktop_file_install = find_program('desktop-file-install')

foreach component : gsd_components
original_filename = component + '.desktop'

if get_option('detect-program-prefixes') == true
original_autostart_file = join_paths(gsd_dir, 'etc/xdg/autostart', original_filename)
else
original_autostart_file = join_paths(autostartdir, original_filename)
endif

patched_filename = 'pantheon-' + component + '.desktop'

custom_target('create-gsd-autostart' + patched_filename,
input: original_autostart_file,
output: patched_filename,
command: [
desktop_file_install,
'--set-key=OnlyShowIn',
'--set-value=Pantheon',
'--vendor=pantheon',
'--dir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: autostartdir,
)
endforeach

gnome_keyring = find_program('gnome-keyring-daemon')
orca = find_program('orca')

if get_option('detect-program-prefixes') == true
original_autostart_file = join_paths(gsd_dir, 'etc/xdg/autostart', original_filename)
# TODO: use fs module in meson 0.53.0
gnome_keyring_prefix = gnome_keyring.path().split('/bin')[0]
orca_prefix = orca.path().split('/bin')[0]

autostarts = {
'gnome-keyring-pkcs11': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-pkcs11.desktop'),
'gnome-keyring-secrets': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-secrets.desktop'),
'gnome-keyring-ssh': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-ssh.desktop'),
'orca-autostart': join_paths(orca_prefix, 'etc/xdg/autostart', 'orca-autostart.desktop'),
}
else
original_autostart_file = join_paths(autostartdir, original_filename)
autostarts = {
'gnome-keyring-pkcs11': join_paths(autostartdir, 'gnome-keyring-pkcs11.desktop'),
'gnome-keyring-secrets': join_paths(autostartdir, 'gnome-keyring-secrets.desktop'),
'gnome-keyring-ssh': join_paths(autostartdir, 'gnome-keyring-ssh.desktop'),
'orca-autostart': join_paths(autostartdir, 'orca-autostart.desktop'),
}
endif

patched_filename = 'pantheon-' + component + '.desktop'

custom_target('create-gsd-autostart' + patched_filename,
input: original_autostart_file,
output: patched_filename,
command: [
desktop_file_install,
'--set-key=OnlyShowIn',
'--set-value=Pantheon',
'--vendor=pantheon',
'--dir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: autostartdir,
)
endforeach

gnome_keyring = find_program('gnome-keyring-daemon')
orca = find_program('orca')

if get_option('detect-program-prefixes') == true
# TODO: use fs module in meson 0.53.0
gnome_keyring_prefix = gnome_keyring.path().split('/bin')[0]
orca_prefix = orca.path().split('/bin')[0]

autostarts = {
'gnome-keyring-pkcs11': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-pkcs11.desktop'),
'gnome-keyring-secrets': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-secrets.desktop'),
'gnome-keyring-ssh': join_paths(gnome_keyring_prefix, 'etc/xdg/autostart', 'gnome-keyring-ssh.desktop'),
'orca-autostart': join_paths(orca_prefix, 'etc/xdg/autostart', 'orca-autostart.desktop'),
}
else
autostarts = {
'gnome-keyring-pkcs11': join_paths(autostartdir, 'gnome-keyring-pkcs11.desktop'),
'gnome-keyring-secrets': join_paths(autostartdir, 'gnome-keyring-secrets.desktop'),
'gnome-keyring-ssh': join_paths(autostartdir, 'gnome-keyring-ssh.desktop'),
'orca-autostart': join_paths(autostartdir, 'orca-autostart.desktop'),
}
foreach name, autostart : autostarts
custom_target('create-autostart-' + name,
input: autostart,
output: 'pantheon-' + name + '.desktop',
command: [
desktop_file_install,
'--set-key=OnlyShowIn',
'--set-value=Pantheon',
'--vendor=pantheon',
'--dir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: autostartdir,
)
endforeach
endif

foreach name, autostart : autostarts
custom_target('create-autostart-' + name,
input: autostart,
output: 'pantheon-' + name + '.desktop',
command: [
desktop_file_install,
'--set-key=OnlyShowIn',
'--set-value=Pantheon',
'--vendor=pantheon',
'--dir=@OUTDIR@',
'@INPUT@',
],
install: true,
install_dir: autostartdir,
)
endforeach
24 changes: 18 additions & 6 deletions systemd/meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,39 @@ if systemd_userunitdir == ''
systemd_userunitdir = dep_systemd.get_pkgconfig_variable('systemduserunitdir', define_variable: ['prefix', get_option('prefix')])
endif

desktop_plain = 'pantheon'
desktop_targets = 'targets'
desktop_sockets = 'sockets'
desktop_services = 'services'

shell_component = {
desktop_plain: 'io.elementary.gala',
desktop_targets: 'io.elementary.gala',
}

required_components = {
desktop_plain: gsd_components,
desktop_targets: gsd_components,
desktop_sockets: keyring_components,
desktop_services: desktop_components
}

gnome_session_wanted_targets = []
foreach component: required_components[desktop_plain]
gnome_session_wanted_sockets = []
gnome_session_wanted_services = []
foreach component: required_components[desktop_targets]
gnome_session_wanted_targets += 'Wants=@0@.target'.format(component)
endforeach
foreach component: required_components[desktop_sockets]
gnome_session_wanted_sockets += 'Wants=@0@.socket'.format(component)
endforeach
foreach component: required_components[desktop_services]
gnome_session_wanted_services += 'Wants=@0@.service'.format(component)
endforeach

session_config = configure_file(
input: 'gnome.session.conf.in',
output: 'session.conf',
configuration: {
'requires_component': shell_component[desktop_plain],
'wants_required_components': '\n'.join(gnome_session_wanted_targets),
'requires_component': shell_component[desktop_targets],
'wants_required_components': '\n'.join(gnome_session_wanted_targets, gnome_session_wanted_sockets, gnome_session_wanted_services),
},
install_dir: systemd_userunitdir / 'gnome-session@pantheon.target.d',
)
Expand Down