pantheon.elementary-default-settings: 5.1.0 -> 5.1.1

* downstream patch meson
This commit is contained in:
worldofpeace 2019-10-05 01:16:12 -04:00
parent 60302e5793
commit 9b8c532a59
4 changed files with 364 additions and 39 deletions

View File

@ -0,0 +1,309 @@
From f728ac670d8f6bb7600a007d92034b711471fab6 Mon Sep 17 00:00:00 2001
From: worldofpeace <worldofpeace@protonmail.ch>
Date: Sat, 13 Jul 2019 19:06:20 -0400
Subject: [PATCH 1/2] Build with Meson
Has the following meson build options:
* default-wallpaper
* plank-dockitems
* default-gsettings-overrides
All default to true.
We also split the default-settings gsettings override into another that
only sets plank's default dockitems. This is installed when plank-dockitems
is true. We need to have this because those settings are dependent on
those dockitems actually being installed and we have it optional.
---
accountsservice/create-symlink.py | 24 ++++++
accountsservice/meson.build | 25 ++++++
.../appcenter.blacklist | 0
.../default-testpage.pdf | Bin
settings.ini => gtk/settings.ini | 0
.inputrc => inputrc/.inputrc | 0
meson.build | 79 ++++++++++++++++++
meson/post_install.py | 12 +++
meson_options.txt | 14 ++++
...e => default-settings.gschema.override.in} | 3 +-
overrides/meson.build | 21 +++++
overrides/plank-dockitems.gschema.override | 2 +
.../sessioninstaller.desktop | 0
13 files changed, 178 insertions(+), 2 deletions(-)
create mode 100644 accountsservice/create-symlink.py
create mode 100644 accountsservice/meson.build
rename appcenter.blacklist => appcenter/appcenter.blacklist (100%)
rename default-testpage.pdf => cups/default-testpage.pdf (100%)
rename settings.ini => gtk/settings.ini (100%)
rename .inputrc => inputrc/.inputrc (100%)
create mode 100644 meson.build
create mode 100755 meson/post_install.py
create mode 100644 meson_options.txt
rename overrides/{default-settings.gschema.override => default-settings.gschema.override.in} (92%)
create mode 100644 overrides/meson.build
create mode 100644 overrides/plank-dockitems.gschema.override
rename sessioninstaller.desktop => sessioninstaller/sessioninstaller.desktop (100%)
diff --git a/accountsservice/create-symlink.py b/accountsservice/create-symlink.py
new file mode 100644
index 0000000..e502134
--- /dev/null
+++ b/accountsservice/create-symlink.py
@@ -0,0 +1,24 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+
+if len(sys.argv) < 3:
+ print('Usage: create-symlink.py SOURCE DESTINATION')
+ sys.exit(1)
+
+src = sys.argv[1]
+dest = sys.argv[2]
+
+if 'MESON_INSTALL_DESTDIR_PREFIX' in os.environ:
+ src = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], src)
+ dest = os.path.join(os.environ['MESON_INSTALL_DESTDIR_PREFIX'], dest)
+
+if os.path.isabs(src):
+ src = os.path.relpath(src, os.path.dirname(os.path.realpath(dest)))
+
+if not os.path.exists(dest):
+ print('Creating symbolic link: ' + dest + ' -> ' + src)
+ if not os.path.exists(os.path.dirname(dest)):
+ os.makedirs(os.path.dirname(dest))
+ os.symlink(src, dest)
diff --git a/accountsservice/meson.build b/accountsservice/meson.build
new file mode 100644
index 0000000..6d18459
--- /dev/null
+++ b/accountsservice/meson.build
@@ -0,0 +1,25 @@
+dbus_dep = dependency('dbus-1')
+dbus_interfaces_dir = dbus_dep.get_pkgconfig_variable('interfaces_dir', define_variable: ['datadir', datadir])
+
+install_data(
+ 'io.elementary.pantheon.AccountsService.xml',
+ install_dir: dbus_interfaces_dir
+)
+
+
+polkit_dep = dependency('polkit-gobject-1')
+polkit_actiondir = polkit_dep.get_pkgconfig_variable('actiondir', define_variable: ['prefix', prefix])
+
+install_data(
+ 'io.elementary.pantheon.AccountsService.policy',
+ install_dir: polkit_actiondir
+)
+
+act_dep = dependency('accountsservice')
+act_interfacesdir = act_dep.get_pkgconfig_variable('interfacesdir', define_variable: ['datadir', datadir])
+
+meson.add_install_script(
+ 'create-symlink.py',
+ join_paths(dbus_interfaces_dir, 'io.elementary.pantheon.AccountsService.xml'),
+ join_paths(act_interfacesdir, 'io.elementary.pantheon.AccountsService.xml'),
+)
diff --git a/appcenter.blacklist b/appcenter/appcenter.blacklist
similarity index 100%
rename from appcenter.blacklist
rename to appcenter/appcenter.blacklist
diff --git a/default-testpage.pdf b/cups/default-testpage.pdf
similarity index 100%
rename from default-testpage.pdf
rename to cups/default-testpage.pdf
diff --git a/settings.ini b/gtk/settings.ini
similarity index 100%
rename from settings.ini
rename to gtk/settings.ini
diff --git a/.inputrc b/inputrc/.inputrc
similarity index 100%
rename from .inputrc
rename to inputrc/.inputrc
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000..7740a34
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,79 @@
+project(
+ 'elementary-default-settings',
+ version: '5.1.0',
+ default_options: 'sysconfdir=/etc',
+)
+
+prefix = get_option('prefix')
+datadir = join_paths(prefix, get_option('datadir'))
+sysconfdir = get_option('sysconfdir')
+
+meson.add_install_script('meson/post_install.py', datadir)
+
+# Planks Default DockItems
+if get_option('plank-dockitems')
+ install_subdir(
+ 'plank',
+ install_dir: join_paths(sysconfdir, 'skel', '.config')
+ )
+endif
+
+# Setup system wide global environment for applications
+install_subdir(
+ 'profile.d',
+ install_dir: join_paths(sysconfdir, 'profile.d'),
+ strip_directory : true
+)
+
+# elementary Plymouth Theme
+install_subdir(
+ 'plymouth/elementary',
+ install_dir: join_paths(datadir, 'plymouth', 'themes')
+)
+
+install_data(
+ 'plymouth/ubuntu-text.plymouth',
+ install_dir: join_paths(datadir, 'plymouth', 'themes')
+)
+
+# Sudo password feedback in terminals
+install_data(
+ 'sudoers.d/pwfeedback',
+ install_dir: join_paths(sysconfdir, 'sudoers.d')
+)
+
+# CUPS Printing testpage
+install_data(
+ 'cups/default-testpage.pdf',
+ install_dir: join_paths(datadir, 'cups', 'data')
+)
+
+# GTK3 Settings
+install_data(
+ 'gtk/settings.ini',
+ install_dir: join_paths(sysconfdir, 'gtk-3.0')
+)
+
+# So SessionInstaller can have an Icon
+install_data(
+ 'sessioninstaller/sessioninstaller.desktop',
+ install_dir: join_paths(datadir, 'applications')
+)
+
+# Default Appcenter Blacklist
+install_data(
+ 'appcenter/appcenter.blacklist',
+ install_dir: join_paths(sysconfdir, 'appcenter')
+)
+
+# Configuration file of GNU readline
+install_data(
+ 'inputrc/.inputrc',
+ install_dir: join_paths(sysconfdir, 'skel')
+)
+
+# Default gsettings overrides
+subdir('overrides')
+
+# AccountsService extension for Greeter.
+subdir('accountsservice')
diff --git a/meson/post_install.py b/meson/post_install.py
new file mode 100755
index 0000000..c6b5617
--- /dev/null
+++ b/meson/post_install.py
@@ -0,0 +1,12 @@
+#!/usr/bin/env python3
+
+import os
+import sys
+import subprocess
+
+if 'DESTDIR' not in os.environ:
+ default_settings_datadir = sys.argv[1]
+
+ print('Compiling GSettings schemas...')
+ subprocess.call(['glib-compile-schemas',
+ os.path.join(default_settings_datadir, 'glib-2.0', 'schemas')])
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000..8fd19ba
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,14 @@
+option('default-wallpaper',
+ type: 'string',
+ value: '/usr/share/backgrounds/elementaryos-default',
+ description: 'Path to default wallpaper to use in Pantheon.')
+
+option('plank-dockitems',
+ type: 'boolean',
+ value: true,
+ description: 'Install default Pantheon Plank dockitems')
+
+option('default-gsettings-overrides',
+ type: 'boolean',
+ value: true,
+ description: 'Install default Pantheon GSettings Overrides')
diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override.in
similarity index 92%
rename from overrides/default-settings.gschema.override
rename to overrides/default-settings.gschema.override.in
index 1aef29c..69d272b 100644
--- a/overrides/default-settings.gschema.override
+++ b/overrides/default-settings.gschema.override.in
@@ -1,5 +1,4 @@
[net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
hide-delay=250
hide-mode='window-dodge'
show-dock-item=false
@@ -11,7 +10,7 @@ triggers=['<Control>space']
[org.gnome.desktop.background]
draw-background=true
picture-options='zoom'
-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
+picture-uri='file://@DEFAULT_WALLPAPER@'
primary-color='#000000'
show-desktop-icons=false
diff --git a/overrides/meson.build b/overrides/meson.build
new file mode 100644
index 0000000..ad80644
--- /dev/null
+++ b/overrides/meson.build
@@ -0,0 +1,21 @@
+if get_option('default-gsettings-overrides')
+ default_wallpaper = get_option('default-wallpaper')
+
+ wallpaper_configuration = configuration_data()
+ wallpaper_configuration.set('DEFAULT_WALLPAPER', default_wallpaper)
+
+ settings_override = configure_file(
+ input: 'default-settings.gschema.override.in',
+ output: '@BASENAME@',
+ configuration: wallpaper_configuration,
+ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
+ )
+endif
+
+# Install conditionally because it's dependent on our dockitems being installed
+if get_option('plank-dockitems')
+ install_data(
+ 'plank-dockitems.gschema.override',
+ install_dir: join_paths(datadir, 'glib-2.0', 'schemas')
+ )
+endif
diff --git a/overrides/plank-dockitems.gschema.override b/overrides/plank-dockitems.gschema.override
new file mode 100644
index 0000000..72b38d4
--- /dev/null
+++ b/overrides/plank-dockitems.gschema.override
@@ -0,0 +1,2 @@
+[net.launchpad.plank.dock.settings]
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
diff --git a/sessioninstaller.desktop b/sessioninstaller/sessioninstaller.desktop
similarity index 100%
rename from sessioninstaller.desktop
rename to sessioninstaller/sessioninstaller.desktop
--
2.23.0

View File

@ -1,25 +0,0 @@
diff --git a/overrides/default-settings.gschema.override b/overrides/default-settings.gschema.override
index 1aef29c..08de164 100644
--- a/overrides/default-settings.gschema.override
+++ b/overrides/default-settings.gschema.override
@@ -1,5 +1,5 @@
[net.launchpad.plank.dock.settings]
-dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.pantheon.mail.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem','io.elementary.appcenter.dockitem']
+dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']
hide-delay=250
hide-mode='window-dodge'
show-dock-item=false
@@ -8,13 +8,6 @@ theme='Gtk+'
[org.freedesktop.ibus.general.hotkey]
triggers=['<Control>space']
-[org.gnome.desktop.background]
-draw-background=true
-picture-options='zoom'
-picture-uri='file:///usr/share/backgrounds/elementaryos-default'
-primary-color='#000000'
-show-desktop-icons=false
-
[org.gnome.desktop.datetime]
automatic-timezone=true

View File

@ -1,11 +1,20 @@
{ stdenv
, fetchFromGitHub
, pantheon
, meson
, ninja
, nixos-artwork
, glib
, pkgconfig
, dbus
, polkit
, accountsservice
, python3
}:
stdenv.mkDerivation rec {
pname = "elementary-default-settings";
version = "5.1.0";
version = "5.1.1";
repoName = "default-settings";
@ -13,7 +22,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
sha256 = "0l73py4rr56i4dalb2wh1c6qiwmcjkm0l1j75jp5agcnxldh5wym";
sha256 = "10sdy8v34y6bgb3mabwy7k3b5dbqrnab504dvhashpfxr9n9xncy";
};
passthru = {
@ -24,24 +33,54 @@ stdenv.mkDerivation rec {
};
patches = [
./correct-override.patch
# https://github.com/elementary/default-settings/pull/119
./0001-Build-with-Meson.patch
];
dontBuild = true;
dontConfigure = true;
nativeBuildInputs = [
accountsservice
dbus
glib # polkit requires
meson
ninja
pkgconfig
polkit
python3
];
installPhase = ''
mkdir -p $out/etc/gtk-3.0
cp -av settings.ini $out/etc/gtk-3.0
mesonFlags = [
"--sysconfdir=${placeholder "out"}/etc"
"-Ddefault-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png"
"-Dplank-dockitems=false"
];
mkdir -p $out/share/glib-2.0/schemas
cp -av overrides/default-settings.gschema.override $out/share/glib-2.0/schemas/20-io.elementary.desktop.gschema.override
postPatch = ''
chmod +x meson/post_install.py
patchShebangs meson/post_install.py
'';
mkdir $out/etc/wingpanel.d
cp -avr ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
preInstall = ''
# Install our override for plank dockitems.
# This is because we don't have Pantheon's mail or Appcenter.
# See: https://github.com/NixOS/nixpkgs/issues/58161
schema_dir=$out/share/glib-2.0/schemas
install -D ${./overrides/plank-dockitems.gschema.override} $schema_dir/plank-dockitems.gschema.override
mkdir -p $out/share/elementary/config/plank/dock1
cp -avr ${./launchers} $out/share/elementary/config/plank/dock1/launchers
# Our launchers that use paths at /run/current-system/sw/bin
mkdir -p $out/etc/skel/.config/plank/dock1
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
# Whitelist wingpanel indicators to be used in the greeter
# TODO: is this needed or installed upstream?
install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
'';
postFixup = ''
# https://github.com/elementary/default-settings/issues/55
rm -rf $out/share/plymouth
rm -rf $out/share/cups
rm -rf $out/share/applications
'';
meta = with stdenv.lib; {

View File

@ -0,0 +1,2 @@
[net.launchpad.plank.dock.settings]
dock-items=['gala-multitaskingview.dockitem','org.gnome.Epiphany.dockitem','org.gnome.Geary.dockitem','io.elementary.calendar.dockitem','io.elementary.music.dockitem','io.elementary.videos.dockitem','io.elementary.photos.dockitem','io.elementary.switchboard.dockitem']