47 lines
1.6 KiB
Nix
47 lines
1.6 KiB
Nix
{ stdenv, lib, fetchurl, gnugrep, glibc, gawk, coreutils, bridge-utils, iproute
|
|
, dnsmasq, iptables, kmod, utillinux, gnused }:
|
|
|
|
stdenv.mkDerivation rec {
|
|
name = "fanctl-${version}";
|
|
|
|
version = "0.9.0";
|
|
|
|
src = fetchurl {
|
|
url = "https://launchpad.net/ubuntu/+archive/primary/+files/ubuntu-fan_${version}.tar.xz";
|
|
sha256 = "03dv5zzb8fkl9kkbhznxm48d6j3fjms74fn0s1zip2gz53l1s14n";
|
|
};
|
|
|
|
# The Ubuntu package creates a number of state/config directories upon
|
|
# installation, and so the fanctl script expects those directories to exist
|
|
# before being used. Instead, we patch the fanctl script to gracefully handle
|
|
# the fact that the directories might not exist yet.
|
|
# Also, when dnsmasq is given --conf-file="", it will still attempt to read
|
|
# /etc/dnsmasq.conf; if that file does not exist, dnsmasq subsequently fails,
|
|
# so we'll use /dev/null, which actually works as intended.
|
|
patches = [ ./robustness.patch ];
|
|
|
|
postPatch = ''
|
|
substituteInPlace fanctl \
|
|
--replace '@PATH@' \
|
|
'${lib.makeBinPath [
|
|
gnugrep gawk coreutils bridge-utils iproute dnsmasq
|
|
iptables kmod utillinux gnused
|
|
glibc # needed for getent
|
|
]}'
|
|
'';
|
|
|
|
installPhase = ''
|
|
mkdir -p $out/bin $out/man/man8
|
|
cp fanctl.8 $out/man/man8
|
|
cp fanctl $out/bin
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Ubuntu FAN network support enablement";
|
|
homepage = "https://launchpad.net/ubuntu/+source/ubuntu-fan";
|
|
license = licenses.gpl2;
|
|
platforms = platforms.linux;
|
|
maintainers = with maintainers; [ cstrahan ];
|
|
};
|
|
}
|