Skip to content

Commit 172c707

Browse files
kkang-wrkraj
authored andcommitted
freeradius: fix multilib systemd service start failure
It fails to start radiusd.service from lib32-freeradius that the configure directory is /etc/lib32-raddb rather than /etc/raddb. So add an environment file to export a variable MLPREFIX for the service file to make it start successfully. Signed-off-by: Kai Kang <kai.kang@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 parent 5d5e885 commit 172c707

2 files changed

Lines changed: 32 additions & 1 deletion

File tree

meta-networking/recipes-connectivity/freeradius/files/radiusd.service

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ After=syslog.target network.target
44

55
[Service]
66
Type=forking
7+
EnvironmentFile=-/etc/sysconfig/radiusd
78
PIDFile=/run/radiusd/radiusd.pid
89
ExecStartPre=-@BASE_BINDIR@/chown -R radiusd:radiusd /run/radiusd
910
ExecStartPre=@SBINDIR@/radiusd -C
10-
ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/raddb
11+
ExecStart=@SBINDIR@/radiusd -d @SYSCONFDIR@/${MLPREFIX}raddb
1112
ExecReload=@SBINDIR@/radiusd -C
1213
ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
1314

meta-networking/recipes-connectivity/freeradius/freeradius_3.0.21.bb

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,37 @@ pkg_postinst:${PN} () {
199199
# Fix ownership for /etc/raddb/*, /var/lib/radiusd
200200
chown -R radiusd:radiusd ${raddbdir}
201201
chown -R radiusd:radiusd ${localstatedir}/lib/radiusd
202+
203+
# for radiusd.service with multilib
204+
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
205+
install -d ${sysconfdir}/sysconfig
206+
echo "MLPREFIX=${MLPREFIX}" > ${sysconfdir}/sysconfig/radiusd
207+
fi
208+
else
209+
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
210+
install -d $D${sysconfdir}/sysconfig
211+
echo "MLPREFIX=${MLPREFIX}" > $D${sysconfdir}/sysconfig/radiusd
212+
fi
213+
fi
214+
}
215+
216+
pkg_postrm:${PN} () {
217+
# only try to remove ${sysconfdir}/sysconfig/radiusd for systemd
218+
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'false', 'true', d)}; then
219+
exit 0
220+
fi
221+
222+
if [ -d ${sysconfdir}/raddb ]; then
223+
exit 0
202224
fi
225+
for variant in ${MULTILIB_GLOBAL_VARIANTS}; do
226+
if [ -d ${sysconfdir}/${variant}-raddb ]; then
227+
exit 0
228+
fi
229+
done
230+
231+
rm -f ${sysconfdir}/sysconfig/radiusd
232+
rmdir --ignore-fail-on-non-empty ${sysconfdir}/sysconfig
203233
}
204234

205235
# We really need the symlink :(

0 commit comments

Comments
 (0)