Files
nixpkgs/pkgs/development/libraries/dbus/make-dbus-conf.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

51 lines
1.6 KiB
Nix

{
runCommand,
libxslt,
dbus,
findXMLCatalogs,
serviceDirectories ? [ ],
suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper",
apparmor ? "disabled", # one of enabled, disabled, required
}:
/*
DBus has two configuration parsers -- normal and "trivial", which is used
for suid helper. Unfortunately the latter doesn't support <include>
directive. That means that we can't just place our configuration to
*-local.conf -- it needs to be in the main configuration file.
*/
runCommand "dbus-1"
{
inherit serviceDirectories suidHelper apparmor;
preferLocalBuild = true;
allowSubstitutes = false;
nativeBuildInputs = [
libxslt.bin
findXMLCatalogs
];
buildInputs = [
dbus.out
];
}
''
mkdir -p $out
xsltproc --nonet \
--stringparam serviceDirectories "$serviceDirectories" \
--stringparam suidHelper "$suidHelper" \
--stringparam apparmor "$apparmor" \
${./make-system-conf.xsl} ${dbus}/share/dbus-1/system.conf \
> $out/system.conf
xsltproc --nonet \
--stringparam serviceDirectories "$serviceDirectories" \
--stringparam apparmor "$apparmor" \
${./make-session-conf.xsl} ${dbus}/share/dbus-1/session.conf \
> $out/session.conf
# check if files are empty or only contain space characters
grep -q '[^[:space:]]' "$out/system.conf" || (echo "\"$out/system.conf\" was generated incorrectly and is empty, try building again." && exit 1)
grep -q '[^[:space:]]' "$out/session.conf" || (echo "\"$out/session.conf\" was generated incorrectly and is empty, try building again." && exit 1)
''