nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5 testers,
6 wrapGAppsHook3,
7 bash-completion,
8 blueprint-compiler,
9 dbus,
10 dbus-glib,
11 fish,
12 gdk-pixbuf,
13 glib,
14 gobject-introspection,
15 gtk4-layer-shell,
16 gtk4,
17 gvfs,
18 json-glib,
19 libadwaita,
20 libgee,
21 libnotify,
22 libpulseaudio,
23 librsvg,
24 meson,
25 ninja,
26 pkg-config,
27 python3,
28 scdoc,
29 vala,
30 wayland-scanner,
31 xvfb-run,
32 sassc,
33 pantheon,
34 nix-update-script,
35}:
36
37stdenv.mkDerivation (finalAttrs: {
38 pname = "SwayNotificationCenter";
39 version = "0.12.1";
40
41 src = fetchFromGitHub {
42 owner = "ErikReider";
43 repo = "SwayNotificationCenter";
44 tag = "v${finalAttrs.version}";
45 hash = "sha256-4DDlQRHG90ee4Tu9y0lkY6hZxhPFyJmacbWJMErfFlk=";
46 };
47
48 # build pkg-config is required to locate the native `scdoc` input
49 depsBuildBuild = [ pkg-config ];
50
51 nativeBuildInputs = [
52 bash-completion
53 blueprint-compiler
54 # cmake # currently conflicts with meson
55 fish
56 glib
57 gobject-introspection
58 meson
59 ninja
60 pkg-config
61 python3
62 sassc
63 scdoc
64 vala
65 wrapGAppsHook3
66 ];
67
68 buildInputs = [
69 dbus
70 dbus-glib
71 gdk-pixbuf
72 glib
73 gtk4-layer-shell
74 gtk4
75 gvfs
76 json-glib
77 libadwaita
78 libgee
79 libnotify
80 libpulseaudio
81 librsvg
82 pantheon.granite7
83 # systemd # ends with broken permission
84 wayland-scanner
85 ];
86
87 postPatch = ''
88 chmod +x build-aux/meson/postinstall.py
89 patchShebangs build-aux/meson/postinstall.py
90 substituteInPlace src/functions.vala --replace "/usr/local/etc/xdg/swaync" "$out/etc/xdg/swaync"
91 '';
92
93 passthru.tests.version = testers.testVersion {
94 package = finalAttrs.finalPackage;
95 command = "${xvfb-run}/bin/xvfb-run swaync --version";
96 };
97 passthru.updateScript = nix-update-script { };
98
99 meta = {
100 description = "Simple notification daemon with a GUI built for Sway";
101 homepage = "https://github.com/ErikReider/SwayNotificationCenter";
102 changelog = "https://github.com/ErikReider/SwayNotificationCenter/releases/tag/v${finalAttrs.version}";
103 license = lib.licenses.gpl3;
104 platforms = lib.platforms.linux;
105 mainProgram = "swaync";
106 maintainers = with lib.maintainers; [
107 berbiche
108 pedrohlc
109 ];
110 };
111})