Merge pull request #173937 from KFearsoff/openvpn3-master
openvpn3: refactor the build
This commit is contained in:
commit
4af74fa1fb
5 changed files with 168 additions and 0 deletions
|
@ -6709,6 +6709,13 @@
|
||||||
githubId = 8211181;
|
githubId = 8211181;
|
||||||
name = "Kevin Kandlbinder";
|
name = "Kevin Kandlbinder";
|
||||||
};
|
};
|
||||||
|
kfears = {
|
||||||
|
email = "kfearsoff@gmail.com";
|
||||||
|
github = "KFearsoff";
|
||||||
|
githubId = 66781795;
|
||||||
|
matrix = "@kfears:matrix.org";
|
||||||
|
name = "KFears";
|
||||||
|
};
|
||||||
kfollesdal = {
|
kfollesdal = {
|
||||||
email = "kfollesdal@gmail.com";
|
email = "kfollesdal@gmail.com";
|
||||||
github = "kfollesdal";
|
github = "kfollesdal";
|
||||||
|
|
|
@ -197,6 +197,7 @@
|
||||||
./programs/npm.nix
|
./programs/npm.nix
|
||||||
./programs/noisetorch.nix
|
./programs/noisetorch.nix
|
||||||
./programs/oblogout.nix
|
./programs/oblogout.nix
|
||||||
|
./programs/openvpn3.nix
|
||||||
./programs/pantheon-tweaks.nix
|
./programs/pantheon-tweaks.nix
|
||||||
./programs/partition-manager.nix
|
./programs/partition-manager.nix
|
||||||
./programs/plotinus.nix
|
./programs/plotinus.nix
|
||||||
|
|
33
nixos/modules/programs/openvpn3.nix
Normal file
33
nixos/modules/programs/openvpn3.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.programs.openvpn3;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options.programs.openvpn3 = {
|
||||||
|
enable = mkEnableOption "the openvpn3 client";
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
services.dbus.packages = with pkgs; [
|
||||||
|
openvpn3
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.openvpn = {
|
||||||
|
isSystemUser = true;
|
||||||
|
uid = config.ids.uids.openvpn;
|
||||||
|
group = "openvpn";
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.openvpn = {
|
||||||
|
gid = config.ids.gids.openvpn;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
openvpn3
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
125
pkgs/tools/networking/openvpn3/default.nix
Normal file
125
pkgs/tools/networking/openvpn3/default.nix
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, asio
|
||||||
|
, autoconf-archive
|
||||||
|
, autoreconfHook
|
||||||
|
, fetchpatch
|
||||||
|
, glib
|
||||||
|
, gtest
|
||||||
|
, jsoncpp
|
||||||
|
, libcap_ng
|
||||||
|
, libnl
|
||||||
|
, libuuid
|
||||||
|
, lz4
|
||||||
|
, openssl
|
||||||
|
, pkg-config
|
||||||
|
, protobuf
|
||||||
|
, python3
|
||||||
|
, tinyxml-2
|
||||||
|
, wrapGAppsHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
openvpn3-core = fetchFromGitHub {
|
||||||
|
owner = "OpenVPN";
|
||||||
|
repo = "openvpn3";
|
||||||
|
rev = "7765540e581c48721752bcad0b3d74b8397b1f73";
|
||||||
|
sha256 = "sha256-v/suF/tWfuukQO1wFiHRzC7ZW+3Gh1tav6qj0uYUP4E=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "openvpn3";
|
||||||
|
# also update openvpn3-core
|
||||||
|
version = "17_beta";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "OpenVPN";
|
||||||
|
repo = "openvpn3-linux";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-ITSnC105YNYFW1M2bOASFemPZAh+HETIzX2ofABWTho=";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
# remove when v18_beta hits
|
||||||
|
(fetchpatch {
|
||||||
|
name = "dont-hardcode-gio.patch";
|
||||||
|
url = "https://github.com/OpenVPN/openvpn3-linux/commit/f7d6d3ae1d52b18b398d3d3b6e21c720c98d0e89.patch";
|
||||||
|
sha256 = "sha256-Bo5uaHadMTDROpwM7Y5aXhCoGUrsAAkSxeXLLhvOeEg=";
|
||||||
|
})
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
rm -r ./vendor/googletest
|
||||||
|
cp -r ${gtest.src} ./vendor/googletest
|
||||||
|
rm -r ./openvpn3-core
|
||||||
|
ln -s ${openvpn3-core} ./openvpn3-core
|
||||||
|
|
||||||
|
chmod -R +w ./vendor/googletest
|
||||||
|
shopt -s globstar
|
||||||
|
|
||||||
|
patchShebangs **/*.py **/*.sh ./src/python/{openvpn2,openvpn3-as,openvpn3-autoload} \
|
||||||
|
./distro/systemd/openvpn3-systemd ./src/tests/dbus/netcfg-subscription-test
|
||||||
|
|
||||||
|
echo "3.git:v${version}:unknown" > openvpn3-core-version
|
||||||
|
'';
|
||||||
|
|
||||||
|
preAutoreconf = ''
|
||||||
|
substituteInPlace ./update-version-m4.sh --replace 'VERSION="$(git describe --always --tags)"' "VERSION=v${version}"
|
||||||
|
./update-version-m4.sh
|
||||||
|
'';
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
autoconf-archive
|
||||||
|
autoreconfHook
|
||||||
|
python3.pkgs.docutils
|
||||||
|
python3.pkgs.jinja2
|
||||||
|
pkg-config
|
||||||
|
wrapGAppsHook
|
||||||
|
python3.pkgs.wrapPython
|
||||||
|
] ++ pythonPath;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
asio
|
||||||
|
glib
|
||||||
|
jsoncpp
|
||||||
|
libcap_ng
|
||||||
|
libnl
|
||||||
|
libuuid
|
||||||
|
lz4
|
||||||
|
openssl
|
||||||
|
protobuf
|
||||||
|
tinyxml-2
|
||||||
|
];
|
||||||
|
|
||||||
|
# runtime deps
|
||||||
|
pythonPath = with python3.pkgs; [
|
||||||
|
dbus-python
|
||||||
|
pygobject3
|
||||||
|
];
|
||||||
|
|
||||||
|
dontWrapGApps = true;
|
||||||
|
preFixup = ''
|
||||||
|
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||||
|
'';
|
||||||
|
postFixup = ''
|
||||||
|
wrapPythonPrograms
|
||||||
|
'';
|
||||||
|
|
||||||
|
configureFlags = [
|
||||||
|
"--enable-bash-completion"
|
||||||
|
"--enable-addons-aws"
|
||||||
|
"--disable-selinux-build"
|
||||||
|
"--disable-build-test-progs"
|
||||||
|
];
|
||||||
|
|
||||||
|
NIX_LDFLAGS = "-lpthread";
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "OpenVPN 3 Linux client";
|
||||||
|
license = licenses.agpl3Plus;
|
||||||
|
homepage = "https://github.com/OpenVPN/openvpn3-linux/";
|
||||||
|
maintainers = with maintainers; [ shamilton kfears ];
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
|
@ -9065,6 +9065,8 @@ with pkgs;
|
||||||
openvpn_24
|
openvpn_24
|
||||||
openvpn;
|
openvpn;
|
||||||
|
|
||||||
|
openvpn3 = callPackage ../tools/networking/openvpn3 { };
|
||||||
|
|
||||||
openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
|
openvpn_learnaddress = callPackage ../tools/networking/openvpn/openvpn_learnaddress.nix { };
|
||||||
|
|
||||||
openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix {
|
openvpn-auth-ldap = callPackage ../tools/networking/openvpn/openvpn-auth-ldap.nix {
|
||||||
|
|
Loading…
Reference in a new issue