summary refs log tree commit diff
path: root/pkgs/tools/networking/openfortivpn
diff options
context:
space:
mode:
authorPeter Hoeg <peter@hoeg.com>2020-09-09 11:41:19 +0800
committerPeter Hoeg <peter@hoeg.com>2020-10-05 14:48:10 +0800
commitb55e4b764dbee941538aec1a5e33cc5fbf8b9be6 (patch)
tree4fdc8620dc9505a45039d35c7061caf4fc177e26 /pkgs/tools/networking/openfortivpn
parentf4e6fecebcaa11bbcd2bcdb68d8c35b94a7e02a0 (diff)
downloadnixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar.gz
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar.bz2
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar.lz
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar.xz
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.tar.zst
nixpkgs-b55e4b764dbee941538aec1a5e33cc5fbf8b9be6.zip
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.
Diffstat (limited to 'pkgs/tools/networking/openfortivpn')
-rw-r--r--pkgs/tools/networking/openfortivpn/default.nix44
1 files changed, 29 insertions, 15 deletions
diff --git a/pkgs/tools/networking/openfortivpn/default.nix b/pkgs/tools/networking/openfortivpn/default.nix
index 40fc9e90662..0a1680bfdb5 100644
--- a/pkgs/tools/networking/openfortivpn/default.nix
+++ b/pkgs/tools/networking/openfortivpn/default.nix
@@ -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";
-    version = "1.14.1";
-
-in stdenv.mkDerivation {
-  name = "${repo}-${version}";
+in
+stdenv.mkDerivation rec {
+  pname = "openfortivpn";
+  version = "1.14.1";
 
   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;
   };
 }