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
stdenv.mkDerivation rec {
pname = "openfortivpn";
version = "1.14.1";
in stdenv.mkDerivation {
name = "${repo}-${version}";
src = fetchFromGitHub {
owner = "adrienverge";
inherit repo;
repo = pname;
rev = "v${version}";
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 ];
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;
meta = {
meta = with stdenv.lib; {
description = "Client for PPP+SSL VPN tunnel services";
homepage = "https://github.com/adrienverge/openfortivpn";
license = stdenv.lib.licenses.gpl3;
maintainers = [ stdenv.lib.maintainers.madjar ];
platforms = with stdenv.lib.platforms; linux ++ darwin;
license = licenses.gpl3;
maintainers = with maintainers; [ madjar ];
platforms = with platforms; linux ++ darwin;
};
}