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

Reply via email to