{ lib, stdenv , fetchgit , autoreconfHook , pkg-config , ell , coreutils , docutils , readline , openssl , python3Packages }: stdenv.mkDerivation rec { pname = "iwd"; version = "1.12"; src = fetchgit { url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; rev = version; sha256 = "sha256-o3Vc5p/AFZwbkEWJZzO6wWAJ/BmSh0eKxdnjm5B9BFU="; }; outputs = [ "out" "man" ] ++ lib.optional (stdenv.hostPlatform == stdenv.buildPlatform) "test"; nativeBuildInputs = [ autoreconfHook docutils pkg-config python3Packages.wrapPython ]; buildInputs = [ ell python3Packages.python readline ]; checkInputs = [ openssl ]; # wrapPython wraps the scripts in $test. They pull in gobject-introspection, # which doesn't cross-compile. pythonPath = lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ python3Packages.dbus-python python3Packages.pygobject3 ]; configureFlags = [ "--enable-external-ell" "--enable-wired" "--localstatedir=/var/" "--with-dbus-busdir=${placeholder "out"}/share/dbus-1/system-services/" "--with-dbus-datadir=${placeholder "out"}/share/" "--with-systemd-modloaddir=${placeholder "out"}/etc/modules-load.d/" # maybe "--with-systemd-unitdir=${placeholder "out"}/lib/systemd/system/" "--with-systemd-networkdir=${placeholder "out"}/lib/systemd/network/" ]; postUnpack = '' patchShebangs . ''; doCheck = true; postInstall = '' mkdir -p $out/share cp -a doc $out/share/ cp -a README AUTHORS TODO $out/share/doc/ '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) '' mkdir -p $test/bin cp -a test/* $test/bin/ ''; preFixup = '' wrapPythonPrograms ''; postFixup = '' substituteInPlace $out/share/dbus-1/system-services/net.connman.ead.service \ --replace /bin/false ${coreutils}/bin/false substituteInPlace $out/share/dbus-1/system-services/net.connman.iwd.service \ --replace /bin/false ${coreutils}/bin/false ''; enableParallelBuilding = true; meta = with lib; { homepage = "https://git.kernel.org/pub/scm/network/wireless/iwd.git"; description = "Wireless daemon for Linux"; license = licenses.lgpl21Plus; platforms = platforms.linux; maintainers = with maintainers; [ dtzWill fpletz ]; }; }