nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 136 lines 3.2 kB view raw
1{ 2 lib, 3 stdenv, 4 fetchFromGitHub, 5 nix-update-script, 6 linkFarm, 7 replaceVars, 8 elementary-greeter, 9 pkg-config, 10 meson, 11 ninja, 12 vala, 13 desktop-file-utils, 14 gtk3, 15 granite, 16 libgee, 17 libhandy, 18 gala, 19 gnome-desktop, 20 gnome-settings-daemon, 21 mutter, 22 elementary-icon-theme, 23 wingpanel-with-indicators, 24 elementary-gtk-theme, 25 nixos-artwork, 26 lightdm, 27 gdk-pixbuf, 28 dbus, 29 accountsservice, 30 wayland-scanner, 31 wrapGAppsHook3, 32}: 33 34stdenv.mkDerivation rec { 35 pname = "elementary-greeter"; 36 version = "8.0.1"; 37 38 src = fetchFromGitHub { 39 owner = "elementary"; 40 repo = "greeter"; 41 rev = version; 42 sha256 = "sha256-T/tI8WRVbTLdolDYa98M2Vm26p0xhGiai74lXAlpQ8k="; 43 }; 44 45 patches = [ 46 ./sysconfdir-install.patch 47 # Needed until https://github.com/elementary/greeter/issues/360 is fixed 48 (replaceVars ./hardcode-fallback-background.patch { 49 default_wallpaper = "${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}"; 50 }) 51 ]; 52 53 depsBuildBuild = [ pkg-config ]; 54 55 nativeBuildInputs = [ 56 desktop-file-utils 57 meson 58 ninja 59 pkg-config 60 vala 61 wayland-scanner 62 wrapGAppsHook3 63 ]; 64 65 buildInputs = [ 66 accountsservice 67 elementary-icon-theme 68 gala # for io.elementary.desktop.background 69 gnome-desktop 70 gnome-settings-daemon 71 gdk-pixbuf 72 granite 73 gtk3 74 libgee 75 libhandy 76 lightdm 77 mutter 78 ]; 79 80 mesonFlags = [ 81 # A hook does this but after wrapGAppsHook3 so the files never get wrapped. 82 "--sbindir=${placeholder "out"}/bin" 83 # baked into the program for discovery of the greeter configuration 84 "--sysconfdir=/etc" 85 "-Dgsd-dir=${gnome-settings-daemon}/libexec/" # trailing slash is needed 86 ]; 87 88 preFixup = '' 89 gappsWrapperArgs+=( 90 # dbus-launch needed in path 91 --prefix PATH : "${dbus}/bin" 92 93 # for `io.elementary.wingpanel -g` 94 --prefix PATH : "${wingpanel-with-indicators}/bin" 95 96 # for the compositor 97 --prefix PATH : "$out/bin" 98 99 # the GTK theme is hardcoded 100 --prefix XDG_DATA_DIRS : "${elementary-gtk-theme}/share" 101 102 # the icon theme is hardcoded 103 --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS" 104 ) 105 ''; 106 107 postFixup = '' 108 # Use NixOS default wallpaper 109 substituteInPlace $out/etc/lightdm/io.elementary.greeter.conf \ 110 --replace "#default-wallpaper=/usr/share/backgrounds/elementaryos-default" \ 111 "default-wallpaper=${nixos-artwork.wallpapers.simple-dark-gray.gnomeFilePath}" 112 113 substituteInPlace $out/share/xgreeters/io.elementary.greeter.desktop \ 114 --replace "Exec=io.elementary.greeter" "Exec=$out/bin/io.elementary.greeter" 115 ''; 116 117 passthru = { 118 updateScript = nix-update-script { }; 119 120 xgreeters = linkFarm "pantheon-greeter-xgreeters" [ 121 { 122 path = "${elementary-greeter}/share/xgreeters/io.elementary.greeter.desktop"; 123 name = "io.elementary.greeter.desktop"; 124 } 125 ]; 126 }; 127 128 meta = with lib; { 129 description = "LightDM Greeter for Pantheon"; 130 homepage = "https://github.com/elementary/greeter"; 131 license = licenses.gpl3Plus; 132 platforms = platforms.linux; 133 teams = [ teams.pantheon ]; 134 mainProgram = "io.elementary.greeter"; 135 }; 136}