From aee7fb91d02dbb0851f41c3fdd198096d10ae46f Mon Sep 17 00:00:00 2001 From: Joachim Wiberg Date: Fri, 17 Feb 2023 14:09:37 +0100 Subject: [PATCH] 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 --- .../skeleton-init-finit.mk | 156 +++++++++++++++--- .../{isisd.conf => quagga/quagga-isisd.conf} | 0 .../quagga-ospf6d.conf} | 0 .../{ospfd.conf => quagga/quagga-ospfd.conf} | 0 .../{ripd.conf => quagga/quagga-ripd.conf} | 0 .../{ripng.conf => quagga/quagga-ripng.conf} | 0 .../{zebra.conf => quagga/quagga-zebra.conf} | 0 .../{ssdp-responder.conf => ssdpd.conf} | 0 8 files changed, 136 insertions(+), 20 deletions(-) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{isisd.conf => quagga/quagga-isisd.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{ospf6d.conf => quagga/quagga-ospf6d.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{ospfd.conf => quagga/quagga-ospfd.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{ripd.conf => quagga/quagga-ripd.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{ripng.conf => quagga/quagga-ripng.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{zebra.conf => quagga/quagga-zebra.conf} (100%) rename package/skeleton-init-finit/skeleton/etc/finit.d/available/{ssdp-responder.conf => ssdpd.conf} (100%) diff --git a/package/skeleton-init-finit/skeleton-init-finit.mk b/package/skeleton-init-finit/skeleton-init-finit.mk index ff920668..cd5d5886 100644 --- a/package/skeleton-init-finit/skeleton-init-finit.mk +++ b/package/skeleton-init-finit/skeleton-init-finit.mk @@ -12,7 +12,7 @@ SKELETON_INIT_FINIT_ADD_TOOLCHAIN_DEPENDENCY = NO SKELETON_INIT_FINIT_ADD_SKELETON_DEPENDENCY = NO SKELETON_INIT_FINIT_TMPFILE := $(shell mktemp) 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 #SKELETON_INIT_FINIT_PROVIDES = skeleton @@ -40,80 +40,191 @@ SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_GENERIC_GET # Avahi mDNS-SD ifeq ($(BR2_PACKAGE_AVAHI_DAEMON),y) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_AVAHI 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 ifeq ($(BR2_PACKAGE_DROPBEAR),y) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_DROPBEAR endif -# OpenSSH -ifeq ($(BR2_PACKAGE_OPENSSH),y) -define SKELETON_INIT_FINIT_SET_OPENSSH - ln -sf ../available/sshd.conf $(FINIT_D)/enabled/sshd.conf +ifeq ($(BR2_PACKAGE_INADYN),y) +define SKELETON_INIT_FINIT_SET_INADYN + cp $(SKELETON_INIT_FINIT_AVAILABLE)/inadyn.conf $(FINIT_D)/available/ endef -SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_OPENSSH +SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_INADYN endif ifeq ($(BR2_PACKAGE_LLDPD),y) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_LLDPD 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) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_NGINX 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) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_MINI_SNMPD 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 ifeq ($(BR2_PACKAGE_SYSKLOGD),y) 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 rm -f $(FINIT_D)/enabled/syslogd.conf endef else 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 rm -f $(FINIT_D)/enabled/sysklogd.conf endef endif SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_SYSLOGD -# SSDP Responder -ifeq ($(BR2_PACKAGE_SSDP_RESPONDER),y) -define SKELETON_INIT_FINIT_SET_SSDP_RESPONDER - ln -sf ../available/ssdp-responder.conf $(FINIT_D)/enabled/ssdp-responder.conf +ifeq ($(BR2_PACKAGE_ULOGD),y) +define SKELETON_INIT_FINIT_SET_ULOGD + cp $(SKELETON_INIT_FINIT_AVAILABLE)/ulogd.conf $(FINIT_D)/available/ 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 -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) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_WATCHDOGD @@ -122,6 +233,7 @@ endif # Enable gdbserver when running in Qemu mode ifeq ($(QEMU_GDB),y) 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 endef SKELETON_INIT_FINIT_TARGET_FINALIZE_HOOKS += SKELETON_INIT_FINIT_SET_GDBSERVER @@ -161,7 +273,11 @@ endef endif 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)/srv mkdir -p $(TARGET_DIR)/var diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/isisd.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-isisd.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/isisd.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-isisd.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/ospf6d.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ospf6d.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/ospf6d.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ospf6d.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/ospfd.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ospfd.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/ospfd.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ospfd.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/ripd.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ripd.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/ripd.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ripd.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/ripng.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ripng.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/ripng.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-ripng.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/zebra.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-zebra.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/zebra.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/quagga/quagga-zebra.conf diff --git a/package/skeleton-init-finit/skeleton/etc/finit.d/available/ssdp-responder.conf b/package/skeleton-init-finit/skeleton/etc/finit.d/available/ssdpd.conf similarity index 100% rename from package/skeleton-init-finit/skeleton/etc/finit.d/available/ssdp-responder.conf rename to package/skeleton-init-finit/skeleton/etc/finit.d/available/ssdpd.conf