about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorworldofpeace <worldofpeace@protonmail.ch>2019-10-05 04:55:01 -0400
committerworldofpeace <worldofpeace@protonmail.ch>2019-10-05 06:00:49 -0400
commit7e7a155a9cea3422444cd74f26a16b35bc2c3224 (patch)
tree23c8d46cf49b69994393899e1d3805e09961f59d /pkgs
parent614c493592660156a500902bf755c1066841070d (diff)
downloadnixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar.gz
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar.bz2
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar.lz
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar.xz
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.tar.zst
nixlib-7e7a155a9cea3422444cd74f26a16b35bc2c3224.zip
pantheon.elementary-session-settings: build with meson
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix40
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch272
2 files changed, 297 insertions, 15 deletions
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index a264af51c569..ab7333212a05 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -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;
diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
new file mode 100644
index 000000000000..39d155656612
--- /dev/null
+++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/meson.patch
@@ -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')
++)