nixpkgs/pkgs/applications/misc/seatd/default.nix
Adam Joseph 42815b4a0c treewide: systemdSupport: use lib.meta.availableOn
Many packages have some kind of flag indicating whether or not to build with
systemd support.  Most of these default to `stdenv.isLinux`, but systemd does
not build on (and is marked `broken` for) `isStatic`.  Only a few packages have
the needed `&& !isStatic` in the default value for their parameter.

This commit moves the logic for the default value of these flags into
`systemd.meta.{platforms,badPlatforms}` and evaluates those conditions using
`lib.meta.availableOn`.

This provides three benefits:

1. The default values are set correctly (i.e. including `&& isStatic`)

2. The default values are set consistently

3. The way is paved for any future non-Linux systemd platforms (FreeBSD is
   reported to have experimental systemd support)
2023-01-22 00:27:19 -08:00

45 lines
1.1 KiB
Nix

{ fetchFromSourcehut
, lib
, meson
, ninja
, pkg-config
, scdoc
, stdenv
, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
}:
stdenv.mkDerivation rec {
pname = "seatd";
version = "0.7.0";
src = fetchFromSourcehut {
owner = "~kennylevinsen";
repo = "seatd";
rev = version;
sha256 = "sha256-m8xoL90GI822FTgCXuVr3EejLAMUStkPKVoV7w8ayIE=";
};
outputs = [ "bin" "out" "dev" "man" ];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson ninja pkg-config scdoc ];
buildInputs = lib.optionals systemdSupport [ systemd ];
mesonFlags = [
"-Dlibseat-logind=${if systemdSupport then "systemd" else "disabled"}"
"-Dlibseat-builtin=enabled"
"-Dserver=enabled"
];
meta = with lib; {
description = "A universal seat management library";
changelog = "https://git.sr.ht/~kennylevinsen/seatd/refs/${version}";
homepage = "https://sr.ht/~kennylevinsen/seatd/";
license = licenses.mit;
platforms = with platforms; freebsd ++ linux ++ netbsd;
maintainers = with maintainers; [ emantor ];
};
}