nixpkgs/pkgs/by-name/bu/budgie-session/package.nix
2024-07-14 15:33:01 -04:00

115 lines
2.3 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
substituteAll,
meson,
ninja,
pkg-config,
gnome,
adwaita-icon-theme,
glib,
gtk3,
gsettings-desktop-schemas,
gnome-desktop,
dbus,
json-glib,
libICE,
xmlto,
docbook_xsl,
docbook_xml_dtd_412,
python3,
libxslt,
gettext,
makeWrapper,
nix-update-script,
systemd,
xorg,
libepoxy,
bash,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "budgie-session";
version = "0.9.1";
src = fetchFromGitHub {
owner = "BuddiesOfBudgie";
repo = "budgie-session";
rev = "v${finalAttrs.version}";
hash = "sha256-mz+Yh3NK2Tag+MWVofFFXYYXspxhmYBD6YCiuATpZSI=";
};
outputs = [
"out"
"man"
];
patches = [
(substituteAll {
src = ./fix-paths.patch;
gsettings = lib.getExe' glib "gsettings";
dbusLaunch = lib.getExe' dbus "dbus-launch";
bash = lib.getExe bash;
})
];
nativeBuildInputs = [
meson
ninja
pkg-config
gettext
makeWrapper
xmlto
libxslt
docbook_xsl
docbook_xml_dtd_412
python3
dbus # for DTD
];
buildInputs = [
glib
gtk3
libICE
gnome-desktop
json-glib
xorg.xtrans
adwaita-icon-theme
gnome.gnome-settings-daemon
gsettings-desktop-schemas
systemd
libepoxy
];
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
'';
# `bin/budgie-session` will reset the environment when run in wayland, we
# therefor wrap `libexec/budgie-session-binary` instead which is the actual
# binary needing wrapping
preFixup = ''
wrapProgram "$out/libexec/budgie-session-binary" \
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
'';
separateDebugInfo = true;
passthru = {
updateScript = nix-update-script { };
};
meta = {
description = "Session manager for Budgie";
homepage = "https://github.com/BuddiesOfBudgie/budgie-session";
changelog = "https://github.com/BuddiesOfBudgie/budgie-session/releases/tag/v${finalAttrs.version}";
license = lib.licenses.gpl2Plus;
maintainers = lib.teams.budgie.members;
platforms = lib.platforms.linux;
};
})