mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-04 12:03:21 +00:00
f7d585f7ca
This hack was added so that X11 autolaunch support could be enabled even when building without X11. At the time, it was possible to have the autolaunch support without X11 support. But later, this stopped being possible, and so the derivation was changed to only apply the hack when X11 support was enabled. But in that case, the same flag would be added by the build system. So in summary, this hack is only enabled in the case where it's a no-op. Therefore, it can be safely removed.
119 lines
3.4 KiB
Nix
119 lines
3.4 KiB
Nix
{ stdenv
|
|
, lib
|
|
, fetchurl
|
|
, pkg-config
|
|
, expat
|
|
, enableSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isStatic
|
|
, systemd
|
|
, audit
|
|
, libapparmor
|
|
, libX11 ? null
|
|
, libICE ? null
|
|
, libSM ? null
|
|
, x11Support ? (stdenv.isLinux || stdenv.isDarwin)
|
|
, dbus
|
|
, docbook_xml_dtd_44
|
|
, docbook-xsl-nons
|
|
, xmlto
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "dbus";
|
|
version = "1.12.20";
|
|
|
|
src = fetchurl {
|
|
url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
|
|
sha256 = "1zp5gpx61v1cpqf2zwb1cidhp9xylvw49d3zydkxqk6b1qa20xpp";
|
|
};
|
|
|
|
patches = [
|
|
# 'generate.consistent.ids=1' ensures reproducible docs, for further details see
|
|
# http://docbook.sourceforge.net/release/xsl/current/doc/html/generate.consistent.ids.html
|
|
# Also applied upstream in https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/189,
|
|
# expected in version 1.14
|
|
./docs-reproducible-ids.patch
|
|
] ++ (lib.optional stdenv.isSunOS ./implement-getgrouplist.patch);
|
|
|
|
postPatch = ''
|
|
substituteInPlace tools/Makefile.in \
|
|
--replace 'install-localstatelibDATA:' 'disabled:' \
|
|
--replace 'install-data-local:' 'disabled:' \
|
|
--replace 'installcheck-local:' 'disabled:'
|
|
substituteInPlace bus/Makefile.in \
|
|
--replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
|
|
'' + /* cleanup of runtime references */ ''
|
|
substituteInPlace ./dbus/dbus-sysdeps-unix.c \
|
|
--replace 'DBUS_BINDIR "/dbus-launch"' "\"$lib/bin/dbus-launch\""
|
|
substituteInPlace ./tools/dbus-launch.c \
|
|
--replace 'DBUS_DAEMONDIR"/dbus-daemon"' '"/run/current-system/sw/bin/dbus-daemon"'
|
|
'';
|
|
|
|
outputs = [ "out" "dev" "lib" "doc" "man" ];
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config
|
|
docbook_xml_dtd_44
|
|
docbook-xsl-nons
|
|
xmlto
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
expat
|
|
];
|
|
|
|
buildInputs =
|
|
lib.optionals x11Support [
|
|
libX11
|
|
libICE
|
|
libSM
|
|
] ++ lib.optional enableSystemd systemd
|
|
++ lib.optionals stdenv.isLinux [ audit libapparmor ];
|
|
# ToDo: optional selinux?
|
|
|
|
configureFlags = [
|
|
"--enable-user-session"
|
|
"--enable-xml-docs"
|
|
"--libexecdir=${placeholder "out"}/libexec"
|
|
"--datadir=/etc"
|
|
"--localstatedir=/var"
|
|
"--runstatedir=/run"
|
|
"--sysconfdir=/etc"
|
|
"--with-session-socket-dir=/tmp"
|
|
"--with-system-pid-file=/run/dbus/pid"
|
|
"--with-system-socket=/run/dbus/system_bus_socket"
|
|
"--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
|
|
"--with-systemduserunitdir=${placeholder "out"}/etc/systemd/user"
|
|
] ++ lib.optional (!x11Support) "--without-x"
|
|
++ lib.optionals stdenv.isLinux [ "--enable-apparmor" "--enable-libaudit" ];
|
|
|
|
NIX_CFLAGS_LINK = lib.optionalString (!stdenv.isDarwin) "-Wl,--as-needed";
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
doCheck = true;
|
|
|
|
installFlags = [
|
|
"sysconfdir=${placeholder "out"}/etc"
|
|
"datadir=${placeholder "out"}/share"
|
|
];
|
|
|
|
# it's executed from $lib by absolute path
|
|
postFixup = ''
|
|
moveToOutput bin/dbus-launch "$lib"
|
|
ln -s "$lib/bin/dbus-launch" "$out/bin/"
|
|
'';
|
|
|
|
passthru = {
|
|
dbus-launch = "${dbus.lib}/bin/dbus-launch";
|
|
daemon = dbus.out;
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Simple interprocess messaging system";
|
|
homepage = "http://www.freedesktop.org/wiki/Software/dbus/";
|
|
license = licenses.gpl2Plus; # most is also under AFL-2.1
|
|
maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
|
|
platforms = platforms.unix;
|
|
};
|
|
}
|