
- c-stdaux has new commits on its "v1" branch, which makes the fetcher fail due to a hash mismatch. Fetch the "v1.2.0" tag instead. - Also point the other dependencies at git tags instead of branches for consistency and to avoid future problems if they also get new commits. - The head of the c-rbtree "v3" branch has not been tagged yet. Instead of downgrading this package to the "v3.1.0" tag, point the fetcher at the specific git revision.
96 lines
3.2 KiB
Nix
96 lines
3.2 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, docutils
|
|
, meson
|
|
, ninja
|
|
, pkg-config
|
|
, dbus
|
|
, linuxHeaders
|
|
, systemd
|
|
}:
|
|
|
|
let
|
|
dep = { pname, version, hash, rev ? version, buildInputs ? [ ] }:
|
|
stdenv.mkDerivation {
|
|
inherit pname version;
|
|
src = fetchFromGitHub {
|
|
owner = "c-util";
|
|
repo = pname;
|
|
inherit hash rev;
|
|
};
|
|
nativeBuildInputs = [ meson ninja pkg-config ];
|
|
inherit buildInputs;
|
|
};
|
|
|
|
# These libraries are not used outside of dbus-broker.
|
|
#
|
|
# If that changes, we can always break them out, but they are essentially
|
|
# part of the dbus-broker project, just in separate repositories.
|
|
c-dvar = dep { pname = "c-dvar"; version = "v1.0.0"; hash = "sha256-P7y7gUHXQn2eyS6IcV7m7yGy4VGtQ2orgBkS7Y729ZY="; buildInputs = [ c-stdaux c-utf8 ]; };
|
|
c-ini = dep { pname = "c-ini"; version = "v1.0.0"; hash = "sha256-VKxoGexMcquakMmiH5IJt0382TjkV1FLncTSyEqf4X0="; buildInputs = [ c-list c-rbtree c-stdaux c-utf8 ]; };
|
|
c-list = dep { pname = "c-list"; version = "v3.1.0"; hash = "sha256-fp3EAqcbFCLaT2EstLSzwP2X13pi2EFpFAullhoCtpw="; };
|
|
# TODO: Fetch c-rbtree from a tag after its next release
|
|
c-rbtree = dep { pname = "c-rbtree"; version = "unstable-2022-07-07"; rev = "431a4746705223673e43940ca1ad9b5f52473a4b"; hash = "sha256-ExSPgNqhTjSwRgYfZOAyoaehOpFNHKFqPYkcCfptkrs="; buildInputs = [ c-stdaux ]; };
|
|
c-shquote = dep { pname = "c-shquote"; version = "v1.0.0"; hash = "sha256-Ze1enX0VJ6Xi5e4EhWzaiHc7PnuaifrUP+JuJnauv5c="; buildInputs = [ c-stdaux ]; };
|
|
c-stdaux = dep { pname = "c-stdaux"; version = "v1.2.0"; hash = "sha256-/D+IFdqn1XHDfdOsDnLMO5IHQ5B4P4ELyMpRcPBg/4s="; };
|
|
c-utf8 = dep { pname = "c-utf8"; version = "v1.0.0"; hash = "sha256-QEnjmfQ6kxJdsHfyRgXAlP+oGrKLYQ0m9r+D2L+pizI="; buildInputs = [ c-stdaux ]; };
|
|
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "dbus-broker";
|
|
version = "32";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "bus1";
|
|
repo = "dbus-broker";
|
|
rev = "v${version}";
|
|
hash = "sha256-PVdRyg/t6D3HjSHeap5L8AiEm39iSO5qXohLw2UAUYY=";
|
|
};
|
|
|
|
patches = [ ./paths.patch ];
|
|
|
|
nativeBuildInputs = [ docutils meson ninja pkg-config ];
|
|
|
|
buildInputs = [
|
|
c-dvar
|
|
c-ini
|
|
c-list
|
|
c-rbtree
|
|
c-shquote
|
|
c-stdaux
|
|
c-utf8
|
|
dbus
|
|
linuxHeaders
|
|
systemd
|
|
];
|
|
|
|
mesonFlags = [
|
|
# while we technically support 4.9 and 4.14, the NixOS module will throw an
|
|
# error when using a kernel that's too old
|
|
"-D=linux-4-17=true"
|
|
"-D=system-console-users=gdm,sddm,lightdm"
|
|
];
|
|
|
|
PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
|
|
PKG_CONFIG_SYSTEMD_SYSTEMDUSERUNITDIR = "${placeholder "out"}/lib/systemd/user";
|
|
PKG_CONFIG_SYSTEMD_CATALOGDIR = "${placeholder "out"}/lib/systemd/catalog";
|
|
|
|
postInstall = ''
|
|
install -Dm444 $src/README.md $out/share/doc/dbus-broker/README
|
|
|
|
sed -i $out/lib/systemd/{system,user}/dbus-broker.service \
|
|
-e 's,^ExecReload.*busctl,ExecReload=${systemd}/bin/busctl,'
|
|
'';
|
|
|
|
doCheck = true;
|
|
|
|
meta = with lib; {
|
|
description = "Linux D-Bus Message Broker";
|
|
homepage = "https://github.com/bus1/dbus-broker/wiki";
|
|
license = licenses.asl20;
|
|
maintainers = with maintainers; [ peterhoeg ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|