I'm attempting to adjust the blfs bootscripts Makefile to merge systemd
and the SystemV boot processes. I've redone this for sshd only in the
attached example.
The idea behind the script is that if /etc/rc.d/init.d exists, then
install the SystemV scripts and if /lib/systemd/system exists, then
install the systemd files.
Either or both methods would be installed depending on the user's setup.
I'm looking for comments to see if I've missed anything.
Feedback appreciated.
-- Bruce
SHELL=/bin/bash
ETCDIR = ${DESTDIR}/etc
TMPFILESDIR= ${DESTDIR}/etc/tmpfiles.d
DEFAULTSDIR= ${DESTDIR}/etc/default
INITDDIR = ${DESTDIR}/etc/rc.d/init.d
SERVICEDIR = ${DESTDIR}/lib/services
UNITSDIR = ${DESTDIR}/lib/systemd/system
MODE = 754
DIRMODE = 755
CONFMODE = 644
PHONY += all create-sysv-dirs create-systemd-dirs
all:
@grep "^install" Makefile | cut -d ":" -f 1
@echo "Select an appropriate install target from the above list"
create-sysv-dirs:
@if test -d $(INITDDIR); then \
install -d -vm ${DIRMODE} ${ETCDIR}/rc.d/rc{0,1,2,3,4,5,6,S}.d; \
install -d -vm ${DIRMODE} ${ETCDIR}/sysconfig; \
install -d -vm ${DIRMODE} ${SERVICEDIR}; \
fi
create-systemd-dirs:
@if test -d $(UNITSDIR); then \
install -d -vm ${DIRMODE} ${DEFAULTSDIR}; \
install -d -vm ${DIRMODE} ${TMPFILESDIR}; \
fi
PHONY += sysv-sshd sysd-sshd install-sshd
install-sshd: sysv-sshd sysd-sshd
sysd-sshd: create-systemd-dirs
@if test -d $(UNITSDIR); then \
install -vm ${CONFMODE} systemd/tmpfiles/sshd.conf ${TMPFILESDIR}/;
\
install -vm ${CONFMODE} systemd/units/sshd.service ${UNITSDIR}/;
\
install -vm ${CONFMODE} systemd/units/sshdat.service
${UNITSDIR}/[email protected]; \
install -vm ${CONFMODE} systemd/units/sshd.socket ${UNITSDIR}/;
\
echo systemd-tmpfiles --create sshd.conf;\
echo systemctl enable sshd.service; \
fi
sysv-sshd: create-sysv-dirs
@if test -d $(INITDDIR); then \
install -vm ${MODE} blfs/init.d/sshd ${INITDDIR}; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc0.d/K30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc1.d/K30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc2.d/K30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc3.d/S30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc4.d/S30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc5.d/S30sshd; \
ln -svf ../init.d/sshd ${ETCDIR}/rc.d/rc6.d/K30sshd; \
fi
PHONY += un-sysv-sshd un-sysd-sshd uninstall-sshd
uninstall-sshd: un-sysv-sshd un-sysd-sshd
un-sysv-sshd:
@rm -fv ${ETCDIR}/rc.d/rc0.d/K30sshd
@rm -fv ${ETCDIR}/rc.d/rc1.d/K30sshd
@rm -fv ${ETCDIR}/rc.d/rc2.d/K30sshd
@rm -fv ${ETCDIR}/rc.d/rc3.d/S30sshd
@rm -fv ${ETCDIR}/rc.d/rc4.d/S30sshd
@rm -fv ${ETCDIR}/rc.d/rc5.d/S30sshd
@rm -fv ${ETCDIR}/rc.d/rc6.d/K30sshd
@rm -fv ${INITDIR}/sshd
un-sysd-sshd:
@if test -d $(UNITSDIR); then \
echo systemctl stop sshd.service; \
echo systemctl disable sshd.service; \
rm -fv ${TMPFILESDIR}/sshd.conf ${UNITSDIR}/sshd.service; \
rm -fv ${UNITSDIR}/[email protected] ${UNITSDIR}/sshd.socket; \
fi
.PHONY: $(PHONY)
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page