base16-schemes: unstable-2024-06-21 -> unstable-2024-11-12
[NixPkgs.git] / pkgs / by-name / bu / budgie-session / package.nix
blob407902d824e70b5607907bfadd84e654d9e748bf
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   substituteAll,
6   meson,
7   ninja,
8   pkg-config,
9   adwaita-icon-theme,
10   glib,
11   gtk3,
12   gsettings-desktop-schemas,
13   gnome-desktop,
14   gnome-settings-daemon,
15   dbus,
16   json-glib,
17   libICE,
18   xmlto,
19   docbook_xsl,
20   docbook_xml_dtd_412,
21   python3,
22   libxslt,
23   gettext,
24   makeWrapper,
25   nix-update-script,
26   systemd,
27   xorg,
28   libepoxy,
29   bash,
32 stdenv.mkDerivation (finalAttrs: {
33   pname = "budgie-session";
34   version = "0.9.1";
36   src = fetchFromGitHub {
37     owner = "BuddiesOfBudgie";
38     repo = "budgie-session";
39     rev = "v${finalAttrs.version}";
40     hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI=";
41   };
43   outputs = [
44     "out"
45     "man"
46   ];
48   patches = [
49     (substituteAll {
50       src = ./fix-paths.patch;
51       gsettings = lib.getExe' glib "gsettings";
52       dbusLaunch = lib.getExe' dbus "dbus-launch";
53       bash = lib.getExe bash;
54     })
55   ];
57   nativeBuildInputs = [
58     meson
59     ninja
60     pkg-config
61     gettext
62     makeWrapper
63     xmlto
64     libxslt
65     docbook_xsl
66     docbook_xml_dtd_412
67     python3
68     dbus # for DTD
69   ];
71   buildInputs = [
72     glib
73     gtk3
74     libICE
75     gnome-desktop
76     json-glib
77     xorg.xtrans
78     adwaita-icon-theme
79     gnome-settings-daemon
80     gsettings-desktop-schemas
81     systemd
82     libepoxy
83   ];
85   postPatch = ''
86     chmod +x meson_post_install.py # patchShebangs requires executable file
87     patchShebangs meson_post_install.py
88   '';
90   # `bin/budgie-session` will reset the environment when run in wayland, we
91   # therefor wrap `libexec/budgie-session-binary` instead which is the actual
92   # binary needing wrapping
93   preFixup = ''
94     wrapProgram "$out/libexec/budgie-session-binary" \
95       --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
96       --suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
97       --suffix XDG_CONFIG_DIRS : "${gnome-settings-daemon}/etc/xdg"
98   '';
100   separateDebugInfo = true;
102   passthru = {
103     updateScript = nix-update-script { };
104   };
106   meta = {
107     description = "Session manager for Budgie";
108     homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
109     changelog = "https://github.com/BuddiesOfBudgie/budgie-session/releases/tag/v${finalAttrs.version}";
110     license = lib.licenses.gpl2Plus;
111     maintainers = lib.teams.budgie.members;
112     platforms = lib.platforms.linux;
113   };