openfortivpn: allow config in /etc/openfortivpn

openfortivpn would look in the nix store for config files, which
obviously doesn't work, so make it go to /etc/openfortivpn instead so
we *can* configure it system-wide.

Also add systemd units on Linux.
This commit is contained in:
Peter Hoeg 2020-09-09 11:41:19 +08:00
parent f4e6fecebc
commit b55e4b764d

View file

@ -1,34 +1,48 @@
{ stdenv, fetchFromGitHub, autoreconfHook, openssl, ppp, pkgconfig }: { stdenv, lib, fetchFromGitHub, autoreconfHook, pkgconfig
, openssl, ppp
, systemd ? null }:
with stdenv.lib; let
withSystemd = stdenv.isLinux && !(systemd == null);
let repo = "openfortivpn"; in
version = "1.14.1"; stdenv.mkDerivation rec {
pname = "openfortivpn";
in stdenv.mkDerivation { version = "1.14.1";
name = "${repo}-${version}";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "adrienverge"; owner = "adrienverge";
inherit repo; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "1r9lp19fmqx9dw33j5967ydijbnacmr80mqnhbbxyqiw4k5c10ds"; sha256 = "1r9lp19fmqx9dw33j5967ydijbnacmr80mqnhbbxyqiw4k5c10ds";
}; };
# we cannot write the config file to /etc and as we don't need the file, so drop it
postPatch = ''
substituteInPlace Makefile.am \
--replace '$(DESTDIR)$(confdir)' /tmp
'';
nativeBuildInputs = [ autoreconfHook pkgconfig ]; nativeBuildInputs = [ autoreconfHook pkgconfig ];
buildInputs = [ openssl ppp ];
NIX_CFLAGS_COMPILE = "-Wno-error=unused-function"; buildInputs = [
openssl ppp
]
++ lib.optional withSystemd systemd;
configureFlags = [ "--with-pppd=${ppp}/bin/pppd" ]; configureFlags = [
"--sysconfdir=/etc"
"--with-pppd=${ppp}/bin/pppd"
]
++ lib.optional withSystemd "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system";
enableParallelBuilding = true; enableParallelBuilding = true;
meta = { meta = with stdenv.lib; {
description = "Client for PPP+SSL VPN tunnel services"; description = "Client for PPP+SSL VPN tunnel services";
homepage = "https://github.com/adrienverge/openfortivpn"; homepage = "https://github.com/adrienverge/openfortivpn";
license = stdenv.lib.licenses.gpl3; license = licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.madjar ]; maintainers = with maintainers; [ madjar ];
platforms = with stdenv.lib.platforms; linux ++ darwin; platforms = with platforms; linux ++ darwin;
}; };
} }