Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/net/freeradius freeradius: Fix SMF initialisation.



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c0d9fab9cc43
branches:  trunk
changeset: 429134:c0d9fab9cc43
user:      jperkin <jperkin%pkgsrc.org@localhost>
date:      Thu Apr 16 15:49:30 2020 +0000

description:
freeradius: Fix SMF initialisation.

Ensures the user/group are correctly substituted into the config file so that
the daemon can run as root then drop privileges appropriately, as well as
creating the rundir as necessary.

Submitted by Jorge Schrauwen in NetBSD/pkgsrc#58.  Bump PKGREVISION.

diffstat:

 net/freeradius/Makefile                            |  36 +++++++++++++--------
 net/freeradius/distinfo                            |   3 +-
 net/freeradius/files/smf/manifest.xml              |   6 +--
 net/freeradius/files/smf/radiusd.sh                |  14 ++++++++
 net/freeradius/patches/patch-raddb_radiusd.conf.in |  17 ++++++++++
 5 files changed, 57 insertions(+), 19 deletions(-)

diffs (138 lines):

diff -r a44cd507f832 -r c0d9fab9cc43 net/freeradius/Makefile
--- a/net/freeradius/Makefile   Thu Apr 16 15:19:11 2020 +0000
+++ b/net/freeradius/Makefile   Thu Apr 16 15:49:30 2020 +0000
@@ -1,8 +1,9 @@
-# $NetBSD: Makefile,v 1.106 2020/04/08 09:42:05 adam Exp $
+# $NetBSD: Makefile,v 1.107 2020/04/16 15:49:30 jperkin Exp $
 
 .include "Makefile.common"
 
 PKGNAME=       ${DISTNAME:S/-server//}
+PKGREVISION=   1
 COMMENT=       Free RADIUS server implementation
 
 BUILD_DEFS+=           VARBASE
@@ -29,6 +30,7 @@
 CONFIGURE_ARGS+=       --without-rlm_sql_unixodbc
 
 RCD_SCRIPTS=           radiusd
+SMF_METHODS=           radiusd
 RADIUS_GROUP?=         radiusd
 RADIUS_USER?=          radiusd
 PKG_GROUPS=            ${RADIUS_GROUP}
@@ -42,6 +44,12 @@
 
 PKG_SYSCONFSUBDIR=     raddb
 
+SUBST_CLASSES+=                secconf
+SUBST_STAGE.secconf=   post-configure
+SUBST_MESSAGE.secconf= Substituting user and group in radiusd.conf
+SUBST_FILES.secconf=   raddb/radiusd.conf
+SUBST_VARS.secconf=    RADIUS_USER RADIUS_GROUP
+
 FILES_SUBST+=          RADIUS_USER=${RADIUS_USER} RADIUS_GROUP=${RADIUS_GROUP}
 MESSAGE_SUBST+=                BOOTSTRAP=${PKG_SYSCONFDIR}/certs/bootstrap
 
@@ -175,19 +183,19 @@
                        users templates.conf trigger.conf
 
 EGDIRS=                        certs mods-available mods-config mods-config/attr_filter mods-config/files \
-                       mods-config/perl mods-config/preprocess mods-config/sql mods-config/sql/counter  \
-                       mods-config/sql/counter/mysql mods-config/sql/counter/postgresql  \
-                       mods-config/sql/counter/sqlite mods-config/sql/cui mods-config/sql/cui/mysql  \
-                       mods-config/sql/cui/postgresql mods-config/sql/cui/sqlite mods-config/sql/ippool  \
-                       mods-config/sql/ippool-dhcp mods-config/sql/ippool-dhcp/mysql  \
-                       mods-config/sql/ippool-dhcp/oracle mods-config/sql/ippool-dhcp/sqlite  \
-                       mods-config/sql/ippool/mysql mods-config/sql/ippool/oracle  \
-                       mods-config/sql/ippool/postgresql mods-config/sql/ippool/sqlite  \
-                       mods-config/sql/main mods-config/sql/main/mssql mods-config/sql/main/mysql  \
-                       mods-config/sql/main/mysql/extras mods-config/sql/main/mysql/extras/wimax  \
-                       mods-config/sql/main/ndb mods-config/sql/main/oracle  \
-                       mods-config/sql/main/postgresql mods-config/sql/main/postgresql/extras  \
-                       mods-config/sql/main/sqlite mods-config/unbound mods-enabled  \
+                       mods-config/perl mods-config/preprocess mods-config/sql mods-config/sql/counter \
+                       mods-config/sql/counter/mysql mods-config/sql/counter/postgresql \
+                       mods-config/sql/counter/sqlite mods-config/sql/cui mods-config/sql/cui/mysql \
+                       mods-config/sql/cui/postgresql mods-config/sql/cui/sqlite mods-config/sql/ippool \
+                       mods-config/sql/ippool-dhcp mods-config/sql/ippool-dhcp/mysql \
+                       mods-config/sql/ippool-dhcp/oracle mods-config/sql/ippool-dhcp/sqlite \
+                       mods-config/sql/ippool/mysql mods-config/sql/ippool/oracle \
+                       mods-config/sql/ippool/postgresql mods-config/sql/ippool/sqlite \
+                       mods-config/sql/main mods-config/sql/main/mssql mods-config/sql/main/mysql \
+                       mods-config/sql/main/mysql/extras mods-config/sql/main/mysql/extras/wimax \
+                       mods-config/sql/main/ndb mods-config/sql/main/oracle \
+                       mods-config/sql/main/postgresql mods-config/sql/main/postgresql/extras \
+                       mods-config/sql/main/sqlite mods-config/unbound mods-enabled \
                        policy.d sites-available sites-enabled
 
 REPLACE_PERL+=         scripts/sql/radsqlrelay \
diff -r a44cd507f832 -r c0d9fab9cc43 net/freeradius/distinfo
--- a/net/freeradius/distinfo   Thu Apr 16 15:19:11 2020 +0000
+++ b/net/freeradius/distinfo   Thu Apr 16 15:49:30 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.40 2020/04/08 09:42:05 adam Exp $
+$NetBSD: distinfo,v 1.41 2020/04/16 15:49:30 jperkin Exp $
 
 SHA1 (freeradius-server-3.0.21.tar.bz2) = 3d90d63bf1452794cf9d0b04147745a254872c3f
 RMD160 (freeradius-server-3.0.21.tar.bz2) = 04a038b701f19d9c598e826a795a0cdaacd3768b
@@ -8,4 +8,5 @@
 SHA1 (patch-configure.ac) = ffec1f851d23f560797c12eba5092f2940e4d662
 SHA1 (patch-main_command.c) = 1c79b29eb13df341906c710c8dd41860a27473dd
 SHA1 (patch-main_util.c) = e8814255c32c8469e81d62f2c7092e8d42744e85
+SHA1 (patch-raddb_radiusd.conf.in) = 353cbed35013777bf055a77cc610b50a637ae7b7
 SHA1 (patch-src_lib_udpfromto.c) = 2457f0a7223b1f3ef86d0af020290b26380e6319
diff -r a44cd507f832 -r c0d9fab9cc43 net/freeradius/files/smf/manifest.xml
--- a/net/freeradius/files/smf/manifest.xml     Thu Apr 16 15:19:11 2020 +0000
+++ b/net/freeradius/files/smf/manifest.xml     Thu Apr 16 15:49:30 2020 +0000
@@ -19,10 +19,8 @@
     <dependency name='system-log' grouping='optional_all' restart_on='none' type='service'>
       <service_fmri value='svc:/system/system-log' />
     </dependency>
-    <method_context>
-      <method_credential user='@RADIUS_USER@' group='@RADIUS_GROUP@' />
-    </method_context>
-    <exec_method name='start' type='method' exec='@PREFIX@/sbin/radiusd' timeout_seconds='60' />
+    <method_context></method_context>
+    <exec_method name='start' type='method' exec='@PREFIX@/@SMF_METHOD_FILE.radiusd@' timeout_seconds='60' />
     <exec_method name='stop' type='method' exec=':kill' timeout_seconds='60' />
     <property_group name='startd' type='framework'>
       <propval name='ignore_error' type='astring' value='core,signal' />
diff -r a44cd507f832 -r c0d9fab9cc43 net/freeradius/files/smf/radiusd.sh
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/net/freeradius/files/smf/radiusd.sh       Thu Apr 16 15:49:30 2020 +0000
@@ -0,0 +1,14 @@
+#!@SMF_METHOD_SHELL@
+#
+# $NetBSD: radiusd.sh,v 1.1 2020/04/16 15:49:30 jperkin Exp $
+#
+
+. /lib/svc/share/smf_include.sh
+
+if [ ! -d @VARBASE@/run/radiusd ]; then
+       @MKDIR@ @VARBASE@/run/radiusd
+       @CHMOD@ 0750 @VARBASE@/run/radiusd
+       @CHOWN@ @RADIUS_USER@:@RADIUS_GROUP@ @VARBASE@/run/radiusd
+fi
+
+@PREFIX@/sbin/radiusd "$@"
diff -r a44cd507f832 -r c0d9fab9cc43 net/freeradius/patches/patch-raddb_radiusd.conf.in
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/net/freeradius/patches/patch-raddb_radiusd.conf.in        Thu Apr 16 15:49:30 2020 +0000
@@ -0,0 +1,17 @@
+$NetBSD: patch-raddb_radiusd.conf.in,v 1.1 2020/04/16 15:49:30 jperkin Exp $
+
+Update example radiusd.conf to include the correct user/group
+
+--- raddb/radiusd.conf.in.orig 2020-04-15 11:59:38.209113301 +0000
++++ raddb/radiusd.conf.in      2020-04-15 12:00:19.973538936 +0000
+@@ -501,8 +501,8 @@
+       #  member.  This can allow for some finer-grained access
+       #  controls.
+       #
+-#     user = radius
+-#     group = radius
++      user = @RADIUS_USER@
++      group = @RADIUS_GROUP@
+ 
+       #  Core dumps are a bad thing.  This should only be set to
+       #  'yes' if you're debugging a problem with the server.



Home | Main Index | Thread Index | Old Index