From c45b460d606f8ed56555a9fecfc9eae600f52f95 Mon Sep 17 00:00:00 2001 From: Petr Portnov Date: Sun, 8 Dec 2024 23:30:46 +0300 Subject: [PATCH] openvpn3: 23 -> 24 --- ...1-build-reduce-hardcode-in-asio_path.patch | 46 ------- ...stallation-directories-customization.patch | 115 ------------------ pkgs/by-name/op/openvpn3/package.nix | 13 +- 3 files changed, 3 insertions(+), 171 deletions(-) delete mode 100644 pkgs/by-name/op/openvpn3/0001-build-reduce-hardcode-in-asio_path.patch delete mode 100644 pkgs/by-name/op/openvpn3/0002-build-allow-installation-directories-customization.patch diff --git a/pkgs/by-name/op/openvpn3/0001-build-reduce-hardcode-in-asio_path.patch b/pkgs/by-name/op/openvpn3/0001-build-reduce-hardcode-in-asio_path.patch deleted file mode 100644 index bd289b0965ae..000000000000 --- a/pkgs/by-name/op/openvpn3/0001-build-reduce-hardcode-in-asio_path.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 30b2528054e6627a7124ac04cb018356ef23d864 Mon Sep 17 00:00:00 2001 -From: Petr Portnov -Date: Mon, 2 Sep 2024 22:25:33 +0300 -Subject: [PATCH 1/1] build: reduce hardcode in `asio_path` - -Currently, `asio_path` variable value is concatenated with `/asio/include` -to specify the path to custom `asio` installation. -The problem is that this is too strict as some distros (namely NixOS) -may have the `include` directory with a differently named parent. -Thus this change minimizes the hardcoded part of the path to make it more flexible. - -Signed-off-by: Petr Portnov ---- - meson.build | 2 +- - meson_options.txt | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/meson.build b/meson.build -index c9e0a2d..c01eb8e 100644 ---- a/meson.build -+++ b/meson.build -@@ -74,7 +74,7 @@ endif - # - # Setup additional include header dirs - # --asio_inc = get_option('asio_path') / 'asio' / 'include' -+asio_inc = get_option('asio_path') / 'include' - message ('ASIO library: ' + asio_inc) - - openvpn3_core_inc = get_option('openvpn3_core_path') -diff --git a/meson_options.txt b/meson_options.txt -index d9cf02e..43e301e 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -26,7 +26,7 @@ option('debug_options', type: 'boolean', value: false, - # - # Build environment and related build time options - # --option('asio_path', type: 'string', value: './vendor/asio', -+option('asio_path', type: 'string', value: './vendor/asio/asio', - description: 'Path to the ASIO header files') - - option('openvpn3_core_path', type: 'string', value: './openvpn3-core', --- -2.43.0 - diff --git a/pkgs/by-name/op/openvpn3/0002-build-allow-installation-directories-customization.patch b/pkgs/by-name/op/openvpn3/0002-build-allow-installation-directories-customization.patch deleted file mode 100644 index 535f522fa64b..000000000000 --- a/pkgs/by-name/op/openvpn3/0002-build-allow-installation-directories-customization.patch +++ /dev/null @@ -1,115 +0,0 @@ -From 848cc46d05c203de393d75434a3f571d78687f50 Mon Sep 17 00:00:00 2001 -From: Petr Portnov -Date: Sun, 22 Sep 2024 13:16:02 +0300 -Subject: [PATCH] build: allow installation directories' customization - -This allows to configure the installation directories -for systemd and D-Bus files. - -Signed-off-by: Petr Portnov ---- - distro/systemd/meson.build | 9 +++++++-- - meson.build | 12 ++++++++++-- - meson_options.txt | 12 ++++++++++++ - src/configmgr/meson.build | 10 ++++++---- - 4 files changed, 35 insertions(+), 8 deletions(-) - -diff --git a/distro/systemd/meson.build b/distro/systemd/meson.build -index 36d556c..9c636b6 100644 ---- a/distro/systemd/meson.build -+++ b/distro/systemd/meson.build -@@ -15,12 +15,17 @@ systemd_cfg = configuration_data({ - - systemd_service_cfg = dependency('systemd') - -+systemd_system_unit_dir = get_option('systemd_system_unit_dir') -+if systemd_system_unit_dir == '' -+ systemd_system_unit_dir = systemd_service_cfg.get_variable('systemdsystemunitdir') -+endif -+ - configure_file( - input: 'openvpn3-autoload.service.in', - output: 'openvpn3-autoload.service', - configuration: systemd_cfg, - install: true, -- install_dir: systemd_service_cfg.get_variable('systemdsystemunitdir'), -+ install_dir: systemd_system_unit_dir, - ) - - configure_file( -@@ -28,7 +33,7 @@ configure_file( - output: 'openvpn3-session@.service', - configuration: systemd_cfg, - install: true, -- install_dir: systemd_service_cfg.get_variable('systemdsystemunitdir'), -+ install_dir: systemd_system_unit_dir, - ) - - custom_target('openvpn3-systemd', -diff --git a/meson.build b/meson.build -index 586c72a..ba41440 100644 ---- a/meson.build -+++ b/meson.build -@@ -203,8 +203,16 @@ message('OpenVPN 3 Linux service binary directory: ' + get_option('prefix') / li - - # - # D-Bus configuration --dbus_policy_dir = dep_dbus.get_variable('datadir') / 'dbus-1' / 'system.d' --dbus_service_dir = dep_dbus.get_variable('system_bus_services_dir') -+dbus_policy_dir = get_option('dbus_policy_dir') -+if dbus_policy_dir == '' -+ dbus_policy_dir = dep_dbus.get_variable('datadir') / 'dbus-1' / 'system.d' -+endif -+ -+dbus_service_dir = get_option('dbus_system_service_dir') -+if dbus_service_dir == '' -+ dbus_service_dir = dep_dbus.get_variable('system_bus_services_dir') -+endif -+ - dbus_config = { - 'OPENVPN_USERNAME': get_option('openvpn_username'), - 'LIBEXEC_PATH': get_option('prefix') / libexec_dir, -diff --git a/meson_options.txt b/meson_options.txt -index 43e301e..04809df 100644 ---- a/meson_options.txt -+++ b/meson_options.txt -@@ -93,6 +93,18 @@ option('use-legacy-polkit-pkla', type: 'feature', value: 'disabled', - option('polkit_pkla_rulesdir', type: 'string', value: '', - description: 'Override PolicyKit PKLA rules directory') - -+# -+# Installation -+# -+option('dbus_policy_dir', type: 'string', -+ description: 'D-Bus policy directory') -+option('dbus_system_service_dir', type: 'string', -+ description: 'D-Bus system service directory') -+option('systemd_system_unit_dir', type: 'string', -+ description: 'Path to systemd system unit directory') -+option('create_statedir', type: 'feature', value: 'enabled', -+ description: 'Create directory for OpenVPN 3 state during install phase') -+ - # - # Testing tools - # -diff --git a/src/configmgr/meson.build b/src/configmgr/meson.build -index 5d0a649..6f788b7 100644 ---- a/src/configmgr/meson.build -+++ b/src/configmgr/meson.build -@@ -52,7 +52,9 @@ configure_file( - install_dir: dbus_service_dir, - ) - --# Create the configs directory for persistent configuration profiles --# NOTE: Can be replaced with install_emptydir() when Meson 0.60 or newer --# is available on all supported distros --meson.add_install_script('sh','-c', 'mkdir -p $DESTDIR@0@'.format(openvpn3_statedir / 'configs')) -+if get_option('create_statedir').enabled() -+ # Create the configs directory for persistent configuration profiles -+ # NOTE: Can be replaced with install_emptydir() when Meson 0.60 or newer -+ # is available on all supported distros -+ meson.add_install_script('sh','-c', 'mkdir -p $DESTDIR@0@'.format(openvpn3_statedir / 'configs')) -+endif --- -2.45.2 - diff --git a/pkgs/by-name/op/openvpn3/package.nix b/pkgs/by-name/op/openvpn3/package.nix index b1c18f5fe011..f5b959d15479 100644 --- a/pkgs/by-name/op/openvpn3/package.nix +++ b/pkgs/by-name/op/openvpn3/package.nix @@ -28,25 +28,18 @@ stdenv.mkDerivation rec { pname = "openvpn3"; # also update openvpn3-core - version = "23"; + version = "24"; src = fetchFromGitHub { owner = "OpenVPN"; repo = "openvpn3-linux"; rev = "refs/tags/v${version}"; - hash = "sha256-5gkutqyUPZDwRPzSFdUXg2G5mtQKbdhZu8xnNAdXoF0="; + hash = "sha256-e3NRLrznTEolTzMO+kGEh48MCrcEr8p7JG3hG889aK4="; # `openvpn3-core` is a submodule. # TODO: make it into a separate package fetchSubmodules = true; }; - patches = [ - # Merged in upstream, will land in v24 - # https://github.com/OpenVPN/openvpn3-linux/commit/75abb7dc9366ba85fb1a144d88f02a1e8a62f538 - ./0001-build-reduce-hardcode-in-asio_path.patch - ./0002-build-allow-installation-directories-customization.patch - ]; - postPatch = '' echo '#define OPENVPN_VERSION "3.git:unknown:unknown" #define PACKAGE_GUIVERSION "v${builtins.replaceStrings [ "_" ] [ ":" ] version}" @@ -106,7 +99,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 "create_statedir" "disabled") + (lib.mesonOption "create_statedir" "false") (lib.mesonOption "sharedstatedir" "/etc") ];