From 61dfad04c48226d78f00e2c3a12ff32a7423b39c Mon Sep 17 00:00:00 2001 From: Petr Portnov Date: Mon, 2 Dec 2024 04:49:31 +0300 Subject: [PATCH 1/3] maintainers: add second key to progrm_jarvis --- maintainers/maintainer-list.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 70b4b15b8710..10fa892236f0 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -17916,7 +17916,10 @@ github = "JarvisCraft"; githubId = 7693005; name = "Petr Portnov"; - keys = [ { fingerprint = "884B 08D2 8DFF 6209 1857 C1C7 7E8F C8F7 D1BB 84A3"; } ]; + keys = [ + { fingerprint = "884B 08D2 8DFF 6209 1857 C1C7 7E8F C8F7 D1BB 84A3"; } + { fingerprint = "AA96 35AA F392 52BF 0E60 825E 1192 2217 F828 8484"; } + ]; }; progval = { email = "progval+nix@progval.net"; From 339a3006ecd6bee1abc41dbe9aca28151b616794 Mon Sep 17 00:00:00 2001 From: Petr Portnov Date: Sun, 8 Dec 2024 23:29:26 +0300 Subject: [PATCH 2/3] gdbuspp: 2 -> 3 --- pkgs/by-name/gd/gdbuspp/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/gd/gdbuspp/package.nix b/pkgs/by-name/gd/gdbuspp/package.nix index 7dca39208964..8faf4b8990ee 100644 --- a/pkgs/by-name/gd/gdbuspp/package.nix +++ b/pkgs/by-name/gd/gdbuspp/package.nix @@ -10,12 +10,12 @@ stdenv.mkDerivation rec { pname = "gdbuspp"; - version = "2"; + version = "3"; src = fetchFromGitHub { owner = "OpenVPN"; repo = "gdbuspp"; rev = "refs/tags/v${version}"; - hash = "sha256-A0sl4zZa17zMec/jJASE8lDVNohzJzEGZbWjjsorB2Y="; + hash = "sha256-LwEUNBQ7BUyoTm8tBgE4hwL7AbimCY/grQus8lWSI/M="; }; postPatch = '' From c45b460d606f8ed56555a9fecfc9eae600f52f95 Mon Sep 17 00:00:00 2001 From: Petr Portnov Date: Sun, 8 Dec 2024 23:30:46 +0300 Subject: [PATCH 3/3] 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") ];