From d57dda353053f1fc39b35b341008b1fbf9104dc2 Mon Sep 17 00:00:00 2001 From: Gernot Tenchio Date: Wed, 8 Dec 2010 11:42:31 +0100 Subject: [PATCH] openvpn: improved to build plugins (see note) Note: This commit is improving the openvpn package to build the included plugins if possible (currently only the pam authentication plugin if pam is installed), but also introducing the 'plugins_enabled' variable within the openvpn.conf file which can be used to define a space seperated list of plugins which should be build additionally. This will offer a convinient way for targets which patch in custom plugins to enable them within the build process of the package. The only thing to do is to append the desired plugin to then list stored within the $plugins_enabled variable. Example: Adding 'myplugin' within a target specific 'openvpn.conf' -------------------------------------------------------------------- var_append plugins_enabled ' ' "myplugin" -------------------------------------------------------------------- --- network/openvpn/openvpn.conf | 37 +++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/network/openvpn/openvpn.conf b/network/openvpn/openvpn.conf index 2ea0454fb..fb519004a 100644 --- a/network/openvpn/openvpn.conf +++ b/network/openvpn/openvpn.conf @@ -2,7 +2,7 @@ # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../openvpn/openvpn.conf -# Copyright (C) 2007 The OpenSDE Project +# Copyright (C) 2007 - 2011 The OpenSDE Project # # More information can be found in the files COPYING and README. # @@ -12,9 +12,35 @@ # GNU General Public License can be found in the file COPYING. # --- SDE-COPYRIGHT-NOTE-END --- +plugin_libdir="${libdir}/openvpn" + +plugins_enabled='' + +build_plugin() { + local plugin=$1; shift + + echo "Building openvpn plugin $plugin..." + cd plugin/$plugin + + eval $MAKE $makeopt + cp *.so ${root}${plugin_libdir} + + cd ../.. +} + +build_plugins() { + install -d ${root}${plugin_libdir} + for plugin in $plugins_enabled; do + build_plugin $plugin + done +} + # allow passwords to be read from a file var_append confopt ' ' "--enable-password-save" +# where openvpn should search for plugins +var_append CFLAGS ' ' "-DPLUGIN_LIBDIR${plugin_libdir}" + # iproute2 support pkginstalled iproute2 && var_append confopt ' ' "--enable-iproute2" @@ -22,3 +48,12 @@ if ! pkginstalled lzo ; then var_append confopt ' ' "--disable-lzo" echo_warning "LZO Compression Support disabled! (lzo package not installed)" fi + +# pam authentication plugin +pkginstalled -f pam && var_append plugins_enabled ' ' "auth-pam" + +# build plugins when $plugins_enabled is not empty +if [ ! -z "$plugins_enabled" ]; then + echo_warning "Enabling OpenVPN plugins: $plugins_enabled" + hook_add postmake 3 build_plugins +fi