Luke Granger-Brown
57725ef3ec
git-subtree-dir: third_party/nixpkgs git-subtree-split: 76612b17c0ce71689921ca12d9ffdc9c23ce40b2
115 lines
4.1 KiB
Diff
115 lines
4.1 KiB
Diff
From 848cc46d05c203de393d75434a3f571d78687f50 Mon Sep 17 00:00:00 2001
|
|
From: Petr Portnov <mrjarviscraft@gmail.com>
|
|
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 <mrjarviscraft@gmail.com>
|
|
---
|
|
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
|
|
|