package/skeleton-init-finit: refactor, install svc files on demand

Only install the corresponding Finit svc if the package is selected in
the Buildroot menuconfig.  Some packages cannot be enabled by default
though, since they require a daemon configuration file, e.g. in the
case of ulogd it requires a valid /etc/ulogd.conf

Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
Joachim Wiberg
2023-02-20 14:49:37 +01:00
parent 499a8f718c
commit aee7fb91d0
8 changed files with 136 additions and 20 deletions
@@ -12,7 +12,7 @@ SKELETON_INIT_FINIT_ADD_TOOLCHAIN_DEPENDENCY = NO
SKELETON_INIT_FINIT_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_FINIT_ADD_SKELETON_DEPENDENCY = NO
SKELETON_INIT_FINIT_TMPFILE := $(shell mktemp) SKELETON_INIT_FINIT_TMPFILE := $(shell mktemp)
SKELETON_INIT_FINIT_DEPENDENCIES = skeleton-init-common SKELETON_INIT_FINIT_DEPENDENCIES = skeleton-init-common
SKELETON_INIT_FINIT_AVAILABLE = $(SKELETON_INIT_FINIT_PKGDIR)/skeleton/etc/finit.d/available
# Enable when BR2_INIT_FINT # Enable when BR2_INIT_FINT
#SKELETON_INIT_FINIT_PROVIDES = skeleton #SKELETON_INIT_FINIT_PROVIDES = skeleton
@@ -40,80 +40,191 @@ SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_GENERIC_GET
# Avahi mDNS-SD # Avahi mDNS-SD
ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y) ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y)
define SKELETON_INIT_FINIT_SET_AVAHI define SKELETON_INIT_FINIT_SET_AVAHI
cp $(SKELETON_INIT_FINIT_AVAILABLE)/avahi.conf $(FINIT_D)/available/
cp $(SKELETON_INIT_FINIT_AVAILABLE)/avahi-dnsconfd.conf $(FINIT_D)/available/
ln -sf ../available/avahi.conf $(FINIT_D)/enabled/avahi.conf ln -sf ../available/avahi.conf $(FINIT_D)/enabled/avahi.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_AVAHI SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_AVAHI
endif endif
ifeq ($(BR2_PACKAGE_CHRONY),y)
define SKELETON_INIT_FINIT_SET_CHRONY
cp $(SKELETON_INIT_FINIT_AVAILABLE)/chronyd.conf $(FINIT_D)/available/
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_CHRONY
endif
ifeq ($(BR2_PACKAGE_CONNTRACKD),y)
define SKELETON_INIT_FINIT_SET_CONNTRACKD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/conntrackd.conf $(FINIT_D)/available/
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_CONNTRACKD
endif
ifeq ($(BR2_PACKAGE_DNSMASQ),y)
define SKELETON_INIT_FINIT_SET_DNSMASQ
cp $(SKELETON_INIT_FINIT_AVAILABLE)/dnsmasq.conf $(FINIT_D)/available/
ln -sf ../available/dnsmasq.conf $(FINIT_D)/enabled/dnsmasq.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_DNSMASQ
endif
# Dropbear SSH # Dropbear SSH
ifeq ($(BR2_PACKAGE_DROPBEAR),y) ifeq ($(BR2_PACKAGE_DROPBEAR),y)
define SKELETON_INIT_FINIT_SET_DROPBEAR define SKELETON_INIT_FINIT_SET_DROPBEAR
cp $(SKELETON_INIT_FINIT_AVAILABLE)/dropbear.conf $(FINIT_D)/available/
ln -sf ../available/dropbear.conf $(FINIT_D)/enabled/dropbear.conf ln -sf ../available/dropbear.conf $(FINIT_D)/enabled/dropbear.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_DROPBEAR SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_DROPBEAR
endif endif
# OpenSSH ifeq ($(BR2_PACKAGE_INADYN),y)
ifeq ($(BR2_PACKAGE_OPENSSH),y) define SKELETON_INIT_FINIT_SET_INADYN
define SKELETON_INIT_FINIT_SET_OPENSSH cp $(SKELETON_INIT_FINIT_AVAILABLE)/inadyn.conf $(FINIT_D)/available/
ln -sf ../available/sshd.conf $(FINIT_D)/enabled/sshd.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_OPENSSH SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_INADYN
endif endif
ifeq ($(BR2_PACKAGE_LLDPD),y) ifeq ($(BR2_PACKAGE_LLDPD),y)
define SKELETON_INIT_FINIT_SET_LLDPD define SKELETON_INIT_FINIT_SET_LLDPD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/lldpd.conf $(FINIT_D)/available/
ln -sf ../available/lldpd.conf $(FINIT_D)/enabled/lldpd.conf ln -sf ../available/lldpd.conf $(FINIT_D)/enabled/lldpd.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_LLDPD SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_LLDPD
endif endif
ifeq ($(BR2_PACKAGE_MSTPD),y)
define SKELETON_INIT_FINIT_SET_MSTPD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/mstpd.conf $(FINIT_D)/available/
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_MSTPD
endif
ifeq ($(BR2_PACKAGE_NGINX),y) ifeq ($(BR2_PACKAGE_NGINX),y)
define SKELETON_INIT_FINIT_SET_NGINX define SKELETON_INIT_FINIT_SET_NGINX
cp $(SKELETON_INIT_FINIT_AVAILABLE)/nginx.conf $(FINIT_D)/available/
ln -sf ../available/nginx.conf $(FINIT_D)/enabled/nginx.conf ln -sf ../available/nginx.conf $(FINIT_D)/enabled/nginx.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_NGINX SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_NGINX
endif endif
ifeq ($(BR2_PACKAGE_NTPD),y)
define SKELETON_INIT_FINIT_SET_NTPD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/ntpd.conf $(FINIT_D)/available/
ln -sf ../available/ntpd.conf $(FINIT_D)/enabled/ntpd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_NTPD
endif
ifeq ($(BR2_PACKAGE_MINI_SNMPD),y) ifeq ($(BR2_PACKAGE_MINI_SNMPD),y)
define SKELETON_INIT_FINIT_SET_MINI_SNMPD define SKELETON_INIT_FINIT_SET_MINI_SNMPD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/mini-snmpd.conf $(FINIT_D)/available/
ln -sf ../available/mini-snmpd.conf $(FINIT_D)/enabled/mini-snmpd.conf ln -sf ../available/mini-snmpd.conf $(FINIT_D)/enabled/mini-snmpd.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_MINI_SNMPD SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_MINI_SNMPD
endif endif
# OpenSSH
ifeq ($(BR2_PACKAGE_OPENSSH),y)
define SKELETON_INIT_FINIT_SET_OPENSSH
cp $(SKELETON_INIT_FINIT_AVAILABLE)/sshd.conf $(FINIT_D)/available/
ln -sf ../available/sshd.conf $(FINIT_D)/enabled/sshd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_OPENSSH
endif
ifeq ($(BR2_PACKAGE_QUAGGA),y)
define SKELETON_INIT_FINIT_SET_QUAGGA
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-zebra.conf $(FINIT_D)/available/
ln -sf ../available/zebra.conf $(FINIT_D)/enabled/zebra.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA
ifeq ($(BR2_PACKAGE_QUAGGA_ISISD),y)
define SKELETON_INIT_FINIT_SET_QUAGGA_ISISD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-isisd.conf $(FINIT_D)/available/
ln -sf ../available/quagga-isisd.conf $(FINIT_D)/enabled/quagga-isisd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA_ISISD
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSPFD),y)
define SKELETON_INIT_FINIT_SET_QUAGGA_OSPFD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-ospfd.conf $(FINIT_D)/available/
ln -sf ../available/quagga-ospfd.conf $(FINIT_D)/enabled/quagga-ospfd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA_OSPFD
endif
ifeq ($(BR2_PACKAGE_QUAGGA_OSP6D),y)
define SKELETON_INIT_FINIT_SET_QUAGGA_OSP6D
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-ospf6d.conf $(FINIT_D)/available/
ln -sf ../available/quagga-ospf6d.conf $(FINIT_D)/enabled/quagga-ospf6d.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA_OSP6D
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPD),y)
define SKELETON_INIT_FINIT_SET_QUAGGA_RIPD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-ripd.conf $(FINIT_D)/available/
ln -sf ../available/quagga-ripd.conf $(FINIT_D)/enabled/quagga-ripd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA_RIPD
endif
ifeq ($(BR2_PACKAGE_QUAGGA_RIPNGD),y)
define SKELETON_INIT_FINIT_SET_QUAGGA_RIPNG
cp $(SKELETON_INIT_FINIT_AVAILABLE)/quagga/quagga-ripng.conf $(FINIT_D)/available/
ln -sf ../available/quagga-ripng.conf $(FINIT_D)/enabled/quagga-ripng.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_QUAGGA_RIPNG
endif
endif # BR2_PACKAGE_QUAGGA
ifeq ($(BR2_PACKAGE_SMCROUTE),y)
define SKELETON_INIT_FINIT_SET_SMCROUTE
cp $(SKELETON_INIT_FINIT_AVAILABLE)/smcroute.conf $(FINIT_D)/available/
ln -sf ../available/smcroute.conf $(FINIT_D)/enabled/smcroute.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SMCROUTE
endif
# SSDP Responder
ifeq ($(BR2_PACKAGE_SSDP_RESPONDER),y)
define SKELETON_INIT_FINIT_SET_SSDP_RESPONDER
cp $(SKELETON_INIT_FINIT_AVAILABLE)/ssdpd.conf $(FINIT_D)/available/
ln -sf ../available/ssdpd.conf $(FINIT_D)/enabled/ssdpd.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SSDP_RESPONDER
endif
# Enable Busybox syslogd unless sysklogd is enabled # Enable Busybox syslogd unless sysklogd is enabled
ifeq ($(BR2_PACKAGE_SYSKLOGD),y) ifeq ($(BR2_PACKAGE_SYSKLOGD),y)
define SKELETON_INIT_FINIT_SET_SYSLOGD define SKELETON_INIT_FINIT_SET_SYSLOGD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/sysklogd.conf $(FINIT_D)/available/
ln -sf ../available/sysklogd.conf $(FINIT_D)/enabled/sysklogd.conf ln -sf ../available/sysklogd.conf $(FINIT_D)/enabled/sysklogd.conf
rm -f $(FINIT_D)/enabled/syslogd.conf rm -f $(FINIT_D)/enabled/syslogd.conf
endef endef
else else
define SKELETON_INIT_FINIT_SET_SYSLOGD define SKELETON_INIT_FINIT_SET_SYSLOGD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/syslogd.conf $(FINIT_D)/available/
ln -sf ../available/syslogd.conf $(FINIT_D)/enabled/syslogd.conf ln -sf ../available/syslogd.conf $(FINIT_D)/enabled/syslogd.conf
rm -f $(FINIT_D)/enabled/sysklogd.conf rm -f $(FINIT_D)/enabled/sysklogd.conf
endef endef
endif endif
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SYSLOGD SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SYSLOGD
# SSDP Responder ifeq ($(BR2_PACKAGE_ULOGD),y)
ifeq ($(BR2_PACKAGE_SSDP_RESPONDER),y) define SKELETON_INIT_FINIT_SET_ULOGD
define SKELETON_INIT_FINIT_SET_SSDP_RESPONDER cp $(SKELETON_INIT_FINIT_AVAILABLE)/ulogd.conf $(FINIT_D)/available/
ln -sf ../available/ssdp-responder.conf $(FINIT_D)/enabled/ssdp-responder.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SSDP_RESPONDER SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_ULOGD
endif endif
ifeq ($(BR2_PACKAGE_SMCROUTE),y)
define SKELETON_INIT_FINIT_SET_SMCROUTE
ln -sf ../available/smcroute.conf $(FINIT_D)/enabled/smcroute.conf
endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SMCROUTE
endif
# Watchdogd
ifeq ($(BR2_PACKAGE_WATCHDOGD),y) ifeq ($(BR2_PACKAGE_WATCHDOGD),y)
define SKELETON_INIT_FINIT_SET_WATCHDOGD define SKELETON_INIT_FINIT_SET_WATCHDOGD
cp $(SKELETON_INIT_FINIT_AVAILABLE)/watchdogd.conf $(FINIT_D)/available/
ln -sf ../available/watchdogd.conf $(FINIT_D)/enabled/watchdogd.conf ln -sf ../available/watchdogd.conf $(FINIT_D)/enabled/watchdogd.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_WATCHDOGD SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_WATCHDOGD
@@ -122,6 +233,7 @@ endif
# Enable gdbserver when running in Qemu mode # Enable gdbserver when running in Qemu mode
ifeq ($(QEMU_GDB),y) ifeq ($(QEMU_GDB),y)
define SKELETON_INIT_FINIT_SET_GDBSERVER define SKELETON_INIT_FINIT_SET_GDBSERVER
cp $(SKELETON_INIT_FINIT_AVAILABLE)/gdbserver.conf $(FINIT_D)/available/
ln -sf ../available/gdbserver.conf $(FINIT_D)/enabled/gdbserver.conf ln -sf ../available/gdbserver.conf $(FINIT_D)/enabled/gdbserver.conf
endef endef
SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_GDBSERVER SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_GDBSERVER
@@ -161,7 +273,11 @@ endef
endif endif
define SKELETON_INIT_FINIT_INSTALL_TARGET_CMDS define SKELETON_INIT_FINIT_INSTALL_TARGET_CMDS
$(call SYSTEM_RSYNC,$(SKELETON_INIT_FINIT_PKGDIR)/skeleton,$(TARGET_DIR)) mkdir -p $(TARGET_DIR)/etc/finit.d/available
mkdir -p $(TARGET_DIR)/etc/finit.d/enabled
for svc in getty inetd ntpd telnetd; do \
cp $(SKELETON_INIT_FINIT_AVAILABLE)/$$svc.conf $(FINIT_D)/available/; \
done
mkdir -p $(TARGET_DIR)/home mkdir -p $(TARGET_DIR)/home
mkdir -p $(TARGET_DIR)/srv mkdir -p $(TARGET_DIR)/srv
mkdir -p $(TARGET_DIR)/var mkdir -p $(TARGET_DIR)/var