pantheon.elementary-session-settings: build with meson

This commit is contained in:
worldofpeace 2019-10-05 04:55:01 -04:00
parent 614c493592
commit 7e7a155a9c
2 changed files with 297 additions and 15 deletions

View file

@ -13,6 +13,9 @@
, elementary-settings-daemon
, runtimeShell
, writeText
, meson
, ninja
, git
}:
let
@ -77,17 +80,23 @@ stdenv.mkDerivation rec {
sha256 = "1vrjm7bklkfv0dyafm312v4hxzy6lb7p1ny4ijkn48kr719gc71k";
};
passthru = {
updateScript = pantheon.updateScript {
inherit repoName;
attrPath = pname;
};
};
postPatch = ''
${git}/bin/git apply --verbose ${./meson.patch}
'';
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [
meson
ninja
];
installPhase = ''
mesonFlags = [
"-Ddefaults-list=false"
"-Dpatched-gsd-autostarts=false"
"-Dpatched-ubuntu-autostarts=false"
"-Dfallback-session=GNOME"
];
postInstall = ''
mkdir -p $out/share/applications
cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
@ -98,15 +107,9 @@ stdenv.mkDerivation rec {
cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
mkdir -p $out/share/gnome-session/sessions
cp -av gnome-session/pantheon.session $out/share/gnome-session/sessions
mkdir -p $out/libexec
substitute ${executable} $out/libexec/pantheon --subst-var out
chmod +x $out/libexec/pantheon
mkdir -p $out/share/xsessions
cp -av xsessions/pantheon.desktop $out/share/xsessions
'';
postFixup = ''
@ -123,6 +126,13 @@ stdenv.mkDerivation rec {
done
'';
passthru = {
updateScript = pantheon.updateScript {
inherit repoName;
attrPath = pname;
};
};
meta = with stdenv.lib; {
description = "Session settings for elementary";
homepage = https://github.com/elementary/session-settings;

View file

@ -0,0 +1,272 @@
From 0a20ad6a31c74f4f96e9ed3613ec6c16a94ede39 Mon Sep 17 00:00:00 2001
From: worldofpeace <worldofpeace@protonmail.ch>
Date: Thu, 8 Aug 2019 11:25:37 -0400
Subject: [PATCH] Build with Meson (#13)
---
applications/meson.build | 4 ++++
...ettingsDaemon.A11ySettings-pantheon.desktop | 0
...e.SettingsDaemon.Clipboard-pantheon.desktop | 0
...gnome.SettingsDaemon.Color-pantheon.desktop | 0
...me.SettingsDaemon.Datetime-pantheon.desktop | 0
...ettingsDaemon.Housekeeping-pantheon.desktop | 0
...me.SettingsDaemon.Keyboard-pantheon.desktop | 0
...e.SettingsDaemon.MediaKeys-pantheon.desktop | 0
...gnome.SettingsDaemon.Mouse-pantheon.desktop | 0
...gnome.SettingsDaemon.Power-pantheon.desktop | 0
...sDaemon.PrintNotifications-pantheon.desktop | 0
...nome.SettingsDaemon.Rfkill-pantheon.desktop | 0
...ome.SettingsDaemon.Sharing-pantheon.desktop | 0
...e.SettingsDaemon.Smartcard-pantheon.desktop | 0
...gnome.SettingsDaemon.Sound-pantheon.desktop | 0
...gnome.SettingsDaemon.Wacom-pantheon.desktop | 0
...e.SettingsDaemon.XSettings-pantheon.desktop | 0
autostart/meson.build | 18 ++++++++++++++++++
.../gnome-keyring-gpg-pantheon.desktop | 0
.../gnome-keyring-pkcs11-pantheon.desktop | 0
.../gnome-keyring-secrets-pantheon.desktop | 0
.../gnome-keyring-ssh-pantheon.desktop | 0
.../onboard-autostart-pantheon.desktop | 0
.../orca-autostart-pantheon.desktop | 0
.../user-dirs-update-gtk-pantheon.desktop | 0
gnome-session/meson.build | 11 +++++++++++
.../{pantheon.session => pantheon.session.in} | 2 +-
meson.build | 14 ++++++++++++++
meson_options.txt | 11 +++++++++++
xsessions/meson.build | 4 ++++
30 files changed, 63 insertions(+), 1 deletion(-)
create mode 100644 applications/meson.build
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Color-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Datetime-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Mouse-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Power-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sharing-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Sound-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.Wacom-pantheon.desktop (100%)
rename autostart/{ => gsd}/org.gnome.SettingsDaemon.XSettings-pantheon.desktop (100%)
create mode 100644 autostart/meson.build
rename autostart/{ => ubuntu}/gnome-keyring-gpg-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/gnome-keyring-pkcs11-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/gnome-keyring-secrets-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/gnome-keyring-ssh-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/onboard-autostart-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/orca-autostart-pantheon.desktop (100%)
rename autostart/{ => ubuntu}/user-dirs-update-gtk-pantheon.desktop (100%)
create mode 100644 gnome-session/meson.build
rename gnome-session/{pantheon.session => pantheon.session.in} (94%)
create mode 100644 meson.build
create mode 100644 meson_options.txt
create mode 100644 xsessions/meson.build
diff --git a/applications/meson.build b/applications/meson.build
new file mode 100644
index 0000000..d03b92b
--- /dev/null
+++ b/applications/meson.build
@@ -0,0 +1,4 @@
+install_data(
+ 'defaults.list',
+ install_dir: join_paths(datadir, 'applications')
+)
diff --git a/autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.A11ySettings-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Clipboard-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Color-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Color-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Datetime-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Housekeeping-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Keyboard-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.MediaKeys-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Mouse-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Power-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Power-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.PrintNotifications-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Rfkill-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Sharing-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Smartcard-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Sound-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Sound-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.Wacom-pantheon.desktop
diff --git a/autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop b/autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
similarity index 100%
rename from autostart/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
rename to autostart/gsd/org.gnome.SettingsDaemon.XSettings-pantheon.desktop
diff --git a/autostart/meson.build b/autostart/meson.build
new file mode 100644
index 0000000..265088b
--- /dev/null
+++ b/autostart/meson.build
@@ -0,0 +1,18 @@
+autostartdir = join_paths(get_option('sysconfdir'), 'xdg', 'autostart')
+
+if get_option('patched-gsd-autostarts')
+ install_subdir(
+ 'gsd',
+ install_dir: autostartdir,
+ strip_directory: true
+ )
+endif
+
+
+if get_option('patched-ubuntu-autostarts')
+ install_subdir(
+ 'ubuntu',
+ install_dir: autostartdir,
+ strip_directory: true
+ )
+endif
diff --git a/autostart/gnome-keyring-gpg-pantheon.desktop b/autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
similarity index 100%
rename from autostart/gnome-keyring-gpg-pantheon.desktop
rename to autostart/ubuntu/gnome-keyring-gpg-pantheon.desktop
diff --git a/autostart/gnome-keyring-pkcs11-pantheon.desktop b/autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
similarity index 100%
rename from autostart/gnome-keyring-pkcs11-pantheon.desktop
rename to autostart/ubuntu/gnome-keyring-pkcs11-pantheon.desktop
diff --git a/autostart/gnome-keyring-secrets-pantheon.desktop b/autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
similarity index 100%
rename from autostart/gnome-keyring-secrets-pantheon.desktop
rename to autostart/ubuntu/gnome-keyring-secrets-pantheon.desktop
diff --git a/autostart/gnome-keyring-ssh-pantheon.desktop b/autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
similarity index 100%
rename from autostart/gnome-keyring-ssh-pantheon.desktop
rename to autostart/ubuntu/gnome-keyring-ssh-pantheon.desktop
diff --git a/autostart/onboard-autostart-pantheon.desktop b/autostart/ubuntu/onboard-autostart-pantheon.desktop
similarity index 100%
rename from autostart/onboard-autostart-pantheon.desktop
rename to autostart/ubuntu/onboard-autostart-pantheon.desktop
diff --git a/autostart/orca-autostart-pantheon.desktop b/autostart/ubuntu/orca-autostart-pantheon.desktop
similarity index 100%
rename from autostart/orca-autostart-pantheon.desktop
rename to autostart/ubuntu/orca-autostart-pantheon.desktop
diff --git a/autostart/user-dirs-update-gtk-pantheon.desktop b/autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
similarity index 100%
rename from autostart/user-dirs-update-gtk-pantheon.desktop
rename to autostart/ubuntu/user-dirs-update-gtk-pantheon.desktop
diff --git a/gnome-session/meson.build b/gnome-session/meson.build
new file mode 100644
index 0000000..b9245a1
--- /dev/null
+++ b/gnome-session/meson.build
@@ -0,0 +1,11 @@
+fallback_session = get_option('fallback-session')
+
+session_configuration = configuration_data()
+session_configuration.set('FALLBACK_SESSION', fallback_session)
+
+pantheon_session = configure_file(
+ input: 'pantheon.session.in',
+ output: '@BASENAME@',
+ configuration: session_configuration,
+ install_dir: join_paths(datadir, 'gnome-session', 'sessions')
+)
diff --git a/gnome-session/pantheon.session b/gnome-session/pantheon.session.in
similarity index 94%
rename from gnome-session/pantheon.session
rename to gnome-session/pantheon.session.in
index 1626393..7bc1814 100644
--- a/gnome-session/pantheon.session
+++ b/gnome-session/pantheon.session.in
@@ -1,5 +1,5 @@
[GNOME Session]
Name=Pantheon
RequiredComponents=gala;gala-daemon;org.gnome.SettingsDaemon.A11ySettings;org.gnome.SettingsDaemon.Clipboard;org.gnome.SettingsDaemon.Color;org.gnome.SettingsDaemon.Datetime;org.gnome.SettingsDaemon.Housekeeping;org.gnome.SettingsDaemon.Keyboard;org.gnome.SettingsDaemon.MediaKeys;org.gnome.SettingsDaemon.Mouse;org.gnome.SettingsDaemon.Power;org.gnome.SettingsDaemon.PrintNotifications;org.gnome.SettingsDaemon.Rfkill;org.gnome.SettingsDaemon.Sharing;org.gnome.SettingsDaemon.Smartcard;org.gnome.SettingsDaemon.Sound;org.gnome.SettingsDaemon.Wacom;org.gnome.SettingsDaemon.XSettings;
-FallbackSession=ubuntu
+FallbackSession=@FALLBACK_SESSION@
DesktopName=Pantheon
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..a7d3195
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,14 @@
+project('elementary-session-settings',
+ version: '5.0.3',
+ default_options: 'sysconfdir=/etc')
+
+prefix = get_option('prefix')
+datadir = join_paths(prefix, get_option('datadir'))
+
+if get_option('defaults-list')
+ subdir('applications')
+endif
+
+subdir('autostart')
+subdir('gnome-session')
+subdir('xsessions')
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..4c5ac2d
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,11 @@
+option('defaults-list', type : 'boolean', value: true,
+ description : 'Install defaults.list')
+
+option('patched-gsd-autostarts', type : 'boolean', value: true,
+ description : 'Install patched GNOME Settings Daemon autostarts')
+
+option('patched-ubuntu-autostarts', type : 'boolean', value: true,
+ description : 'Install patched Ubuntu autostarts')
+
+option('fallback-session', type : 'string', value: 'ubuntu',
+ description : 'Fallback session to use for Pantheon')
diff --git a/xsessions/meson.build b/xsessions/meson.build
new file mode 100644
index 0000000..d144291
--- /dev/null
+++ b/xsessions/meson.build
@@ -0,0 +1,4 @@
+install_data(
+ 'pantheon.desktop',
+ install_dir: join_paths(datadir, 'xsessions')
+)