nixpkgs/pkgs/os-specific/linux/fanctl/default.nix
2015-08-22 14:14:56 -04:00

48 lines
1.4 KiB
Nix

{ stdenv, lib, fetchbzr, makeWrapper, bridge-utils, iproute, dnsmasq, iptables, kmod, utillinux }:
let stateDir = "/var/lib/fan-networking";
in stdenv.mkDerivation rec {
name = "fanctl-${version}";
version = "0.3.0";
src = fetchbzr {
url = "https://code.launchpad.net/~ubuntu-branches/ubuntu/vivid/ubuntu-fan/vivid-updates";
rev = 2;
sha256 = "1vcr2rg99g7sx1zynhiggjzc9y9z591i4535hbm21dysy3cisp7i";
};
buildInputs = [ makeWrapper ];
# When given --conf-file="", dnsmasq still attempts to read /etc/dnsmasq.conf;
# if that files does not exist, dnsmasq subsequently fails,
# so we'll use /dev/null.
#
# Also, make sure the state directory before starting dnsmasq.
buildPhase = ''
substituteInPlace fanctl \
--replace '--conf-file= ' \
'--conf-file=/dev/null ' \
--replace '/var/lib/misc' \
'${stateDir}'
sed -i '/dnsmasq -u/i \
mkdir -p ${stateDir}' fanctl
'';
installPhase = ''
mkdir -p $out/bin $out/man/man8
cp fanctl.8 $out/man/man8
cp fanctl $out/bin
wrapProgram $out/bin/fanctl --prefix PATH : \
${lib.makeSearchPath "bin" [ bridge-utils iproute dnsmasq iptables kmod utillinux ]};
'';
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 ];
};
}