From 446e01f62eb4b898564e7eb77a8219e580071329 Mon Sep 17 00:00:00 2001 From: azban Date: Thu, 26 Mar 2026 11:37:41 -0600 Subject: [PATCH] openvpn3: 25 -> 27 (cherry picked from commit 4c6f13b25944ab8283e046d9f627b6b538b652ee) --- pkgs/by-name/op/openvpn3/package.nix | 27 +++++++++++++++---- .../op/openvpn3/v25-latest-linux-fix.patch | 27 ------------------- 2 files changed, 22 insertions(+), 32 deletions(-) delete mode 100644 pkgs/by-name/op/openvpn3/v25-latest-linux-fix.patch diff --git a/pkgs/by-name/op/openvpn3/package.nix b/pkgs/by-name/op/openvpn3/package.nix index 58e4e73c1284..1e02705d6a55 100644 --- a/pkgs/by-name/op/openvpn3/package.nix +++ b/pkgs/by-name/op/openvpn3/package.nix @@ -1,9 +1,11 @@ { lib, stdenv, + fetchurl, fetchFromGitHub, asio_1_32_0, glib, + fmt_11, jsoncpp, libcap_ng, libnl, @@ -23,29 +25,42 @@ cmake, git, nix-update-script, + unzip, enableSystemdResolved ? true, }: - +let + # Derived from subprojects/fmt.wrap + libfmt-meson-patch = fetchurl { + url = "https://wrapdb.mesonbuild.com/v2/fmt_11.2.0-1/get_patch"; + hash = "sha256-ZFvxwzWiRgi0s08W7RC5I3u7ATFIhmj7hkVCAiOeCGw="; + }; +in stdenv.mkDerivation rec { pname = "openvpn3"; - version = "25"; + version = "27"; src = fetchFromGitHub { owner = "OpenVPN"; repo = "openvpn3-linux"; tag = "v${version}"; - hash = "sha256-Fme8OT49h2nZw5ypyeKdHlqv2Hk92LW2KVisd0jC66s="; + hash = "sha256-H+QF0Z1IUKx2U0+V7KHaAd/AKbuJEKLIwqyK2srD8DM="; # `openvpn3-core` is a submodule. # TODO: make it into a separate package fetchSubmodules = true; }; patches = [ - # Should be fixed in v26: https://codeberg.org/OpenVPN/openvpn3-linux/issues/70 - ./v25-latest-linux-fix.patch ./0001-handle-result-from-DcoKeyConfig_ParseFromString.patch ]; + prePatch = '' + cp -r ${fmt_11.src} subprojects/fmt-11.2.0 + chmod +w -R subprojects/fmt-11.2.0 # Allow patches for subprojects to work + tmp=$(mktemp -d) + unzip ${libfmt-meson-patch} -d $tmp + cp -r $tmp/*/* subprojects/fmt-11.2.0 + ''; + postPatch = '' echo '#define OPENVPN_VERSION "3.git:unknown:unknown" #define PACKAGE_GUIVERSION "v${builtins.replaceStrings [ "_" ] [ ":" ] version}" @@ -72,6 +87,7 @@ stdenv.mkDerivation rec { pkg-config cmake git + unzip python3.pkgs.wrapPython python3.pkgs.docutils @@ -107,6 +123,7 @@ stdenv.mkDerivation rec { (lib.mesonOption "dbus_policy_dir" "${placeholder "out"}/share/dbus-1/system.d") (lib.mesonOption "dbus_system_service_dir" "${placeholder "out"}/share/dbus-1/system-services") (lib.mesonOption "systemd_system_unit_dir" "${placeholder "out"}/lib/systemd/system") + (lib.mesonOption "systemd_user_unit_dir" "${placeholder "out"}/lib/systemd/user") (lib.mesonOption "create_statedir" "false") (lib.mesonOption "sharedstatedir" "/etc") ]; diff --git a/pkgs/by-name/op/openvpn3/v25-latest-linux-fix.patch b/pkgs/by-name/op/openvpn3/v25-latest-linux-fix.patch deleted file mode 100644 index 65577548730f..000000000000 --- a/pkgs/by-name/op/openvpn3/v25-latest-linux-fix.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff --git a/openvpn3-core/openvpn/dco/ovpn_dco_linux.h b/openvpn3-core/openvpn/dco/ovpn_dco_linux.h -index 238f71f7a..5b7fe8d8c 100644 ---- a/openvpn3-core/openvpn/dco/ovpn_dco_linux.h -+++ b/openvpn3-core/openvpn/dco/ovpn_dco_linux.h -@@ -239,22 +239,6 @@ enum ovpn_netlink_packet_attrs { - OVPN_PACKET_ATTR_MAX = __OVPN_PACKET_ATTR_AFTER_LAST - 1, - }; - --enum ovpn_ifla_attrs { -- IFLA_OVPN_UNSPEC = 0, -- IFLA_OVPN_MODE, -- -- __IFLA_OVPN_AFTER_LAST, -- IFLA_OVPN_MAX = __IFLA_OVPN_AFTER_LAST - 1, --}; -- --enum ovpn_mode { -- __OVPN_MODE_FIRST = 0, -- OVPN_MODE_P2P = __OVPN_MODE_FIRST, -- OVPN_MODE_MP, -- -- __OVPN_MODE_AFTER_LAST, --}; -- - /// \endcond - - #endif /* _UAPI_LINUX_OVPN_DCO_H_ */