diff options
Diffstat (limited to 'pkgs/desktops/pantheon/desktop/elementary-greeter')
4 files changed, 154 insertions, 0 deletions
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch new file mode 100644 index 000000000000..626e56ce5960 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/01-sysconfdir-install.patch @@ -0,0 +1,25 @@ +From 2384bee55a46eac44eb9d329be4c2a097e053ae1 Mon Sep 17 00:00:00 2001 +From: worldofpeace <worldofpeace@users.noreply.github.com> +Date: Tue, 17 Jul 2018 07:04:18 -0400 +Subject: [PATCH 1/1] 'sysconfdir' will be etc not /etc for install + +--- + data/meson.build | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/data/meson.build b/data/meson.build +index 7621b03..7c08eaf 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -20,7 +20,7 @@ i18n.merge_file ( + + install_data( + meson.project_name() + '.conf', +- install_dir: join_paths(get_option('sysconfdir'), 'lightdm') ++ install_dir: join_paths(get_option('prefix'), 'etc', 'lightdm') + ) + + install_data( +-- +2.17.1 + diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix new file mode 100644 index 000000000000..303aae6882b8 --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -0,0 +1,103 @@ +{ stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, makeWrapper, meson +, ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon +, gnome-desktop, mutter, gobject-introspection, elementary-icon-theme, wingpanel-with-indicators +, elementary-gtk-theme, nixos-artwork, elementary-default-settings, lightdm, numlockx +, clutter-gtk, libGL, dbus, wrapGAppsHook }: + +stdenv.mkDerivation rec { + pname = "greeter"; + version = "3.3.1"; + + name = "elementary-${pname}-${version}"; + + src = fetchFromGitHub { + owner = "elementary"; + repo = pname; + rev = version; + sha256 = "1vkq4z0hrmvzv4sh2qkxjajdxcycd1zj97a3pc8n4yb858pqfyzc"; + }; + + passthru = { + updateScript = pantheon.updateScript { + repoName = pname; + attrPath = "elementary-${pname}"; + }; + }; + + nativeBuildInputs = [ + desktop-file-utils + gobject-introspection + meson + ninja + pkgconfig + vala + wrapGAppsHook + ]; + + buildInputs = [ + clutter-gtk + elementary-icon-theme + elementary-gtk-theme + elementary-settings-daemon + gnome-desktop + granite + gtk3 + libgee + libGL + lightdm + mutter + wingpanel-with-indicators + ]; + + patches = [ + (substituteAll { + src = ./gsd.patch; + elementary-settings-daemon = "${elementary-settings-daemon}/libexec"; + }) + (substituteAll { + src = ./numlockx.patch; + inherit numlockx; + }) + ./01-sysconfdir-install.patch + ]; + + mesonFlags = [ + # A hook does this but after wrapGAppsHook so the files never get wrapped. + "--sbindir=${placeholder "out"}/bin" + # baked into the program for discovery of the greeter configuration + "--sysconfdir=/etc" + ]; + + preFixup = '' + gappsWrapperArgs+=( + # GTK+ reads default settings (such as icons and themes) from elementary's settings.ini here + --prefix XDG_CONFIG_DIRS : "${elementary-default-settings}/etc" + + # dbus-launch needed in path + --prefix PATH : "${dbus}/bin" + + # for `wingpanel -g` + --prefix PATH : "${wingpanel-with-indicators}/bin" + + # TODO: they should be using meson for this + # See: https://github.com/elementary/greeter/blob/19c0730fded4e9ddec5a491f0e78f83c7c04eb59/src/PantheonGreeter.vala#L451 + --prefix PATH : "$out/bin" + ) + ''; + + postFixup = '' + substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \ + --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter" + + substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \ + --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png" + ''; + + meta = with stdenv.lib; { + description = "LightDM Greeter for Pantheon"; + homepage = https://github.com/elementary/greeter; + license = licenses.gpl3Plus; + platforms = platforms.linux; + maintainers = pantheon.maintainers; + }; +} diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch new file mode 100644 index 000000000000..1770d54aee0d --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/gsd.patch @@ -0,0 +1,13 @@ +diff --git a/src/meson.build b/src/meson.build +index 2450c1a..a908d11 100644 +--- a/src/meson.build ++++ b/src/meson.build +@@ -1,7 +1,7 @@ + conf_data = configuration_data() + conf_data.set('CONF_DIR', join_paths(get_option('sysconfdir'), 'lightdm')) + conf_data.set('GETTEXT_PACKAGE', meson.project_name()) +-conf_data.set('GSD_DIR', '/usr/lib/gnome-settings-daemon/') ++conf_data.set('GSD_DIR', '@elementary-settings-daemon@') + conf_data.set('VERSION', meson.project_version()) + config_header = configure_file ( + input: 'config.vala.in', diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch b/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch new file mode 100644 index 000000000000..2c7766b4284c --- /dev/null +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/numlockx.patch @@ -0,0 +1,13 @@ +diff --git a/src/PantheonGreeter.vala b/src/PantheonGreeter.vala +index 11aa4c0..ae7bf7e 100644 +--- a/src/PantheonGreeter.vala ++++ b/src/PantheonGreeter.vala +@@ -163,7 +163,7 @@ public class PantheonGreeter : Gtk.Window { + warning (e.message); + } + if (activate_numlock) { +- Granite.Services.System.execute_command ("/usr/bin/numlockx on"); ++ Granite.Services.System.execute_command ("@numlockx@/bin/numlockx on"); + } + + var screensaver_timeout = 60; |