{ stdenv, lib, fetchFromGitHub , meson, m4, gperf, gettext, pkgconfig, libxslt, ninja , libcap, libudev , enablePam ? true, pam , docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45 }: stdenv.mkDerivation rec { name = "elogind-${version}"; version = "239.2"; src = fetchFromGitHub { owner = "elogind"; repo = "elogind"; rev = "v${version}"; sha256 = "17khwbzqmkfd3hcscs51kzdpvq9p2llm08vbpsdhy9yxgwfzlfa6"; }; postPatch = '' for f in man/*.xml; do substituteInPlace $f \ --replace http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd ${docbook_xml_dtd_42}/xml/dtd/docbook/docbookx.dtd \ --replace http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd ${docbook_xml_dtd_45}/xml/dtd/docbook/docbookx.dtd done patchShebangs . set -x ''; preConfigure = '' mesonFlagsArray+=(-Drootprefix=$out) mesonFlagsArray+=(-Dsysconfdir=$out/etc) mesonFlagsArray+=(-Dpamconfdir=$out/etc/pam.d) mesonFlagsArray+=(-Dcgroup-controller=elogind) ''; buildInputs = [ libcap libudev ] ++ lib.optional enablePam pam; nativeBuildInputs = [ meson m4 gperf gettext pkgconfig libxslt ninja docbook_xsl ]; strictDeps = true; meta = with lib; { homepage = https://github.com/elogind/elogind; description = "logind, extracted to a standalone package"; license = licenses.lgpl21Plus; maintainers = with maintainers; [ qyliss ]; platforms = platforms.linux; }; }