busybox: preserve crontabs
authorPhilip Prindeville <philipp@redfish-solutions.com>
Wed, 5 May 2021 23:43:55 +0000 (17:43 -0600)
committerPaul Spooren <mail@aparcar.org>
Wed, 19 May 2021 13:50:50 +0000 (15:50 +0200)
/etc/syslog.conf is used by sysklogd, and /etc/crontabs is used
by crond, both features of busybox.  Given this, ownership for
these files should be bound to busybox, especially if one day
there's a way to do an in-place opkg update of busybox.

There's also the busybox provided syslogd which uses this file
if CONFIG_BUSYBOX_FEATURE_SYSLOGD_CFG is set.

Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
package/base-files/Makefile
package/utils/busybox/Makefile

index d8d093a3068d0cbf55d63f8fe79df2969994309f..5f816a0d1bd7fde8efb6a9148fd374274c8b419f 100644 (file)
@@ -47,7 +47,6 @@ define Package/base-files/conffiles
 /etc/config/
 /etc/config/network
 /etc/config/system
-/etc/crontabs/
 /etc/dropbear/
 /etc/ethers
 /etc/group
index c2f1c1be4541d6ae15f53f50f813effb9697afad..1e7d9dd33313554fe5e230203cc554180294402b 100644 (file)
@@ -73,14 +73,25 @@ define Package/busybox/config
        source "$(SOURCE)/Config.in"
 endef
 
-ifdef CONFIG_BUSYBOX_CONFIG_FEATURE_SYSLOG
-define Package/busybox/conffiles
+ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SYSLOG)$(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SYSLOGD_CFG),)
+define Package/busybox/conffiles/syslog
 /etc/syslog.conf
 endef
+endif
 
-Package/busybox-selinux/conffiles = $(Package/busybox/conffiles)
+ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_CROND),)
+define Package/busybox/conffiles/crond
+/etc/crontabs/
+endef
 endif
 
+define Package/busybox/conffiles
+$(Package/busybox/conffiles/syslog)
+$(Package/busybox/conffiles/crond)
+endef
+
+Package/busybox-selinux/conffiles = $(Package/busybox/conffiles)
+
 ifndef CONFIG_USE_MUSL
 LDLIBS:=m crypt
 endif
@@ -129,8 +140,12 @@ define Package/busybox/install
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_DIR) $(1)/usr/sbin
        $(CP) $(PKG_INSTALL_DIR)/* $(1)/
+ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SYSLOG)$(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_FEATURE_SYSLOGD_CFG),)
+       touch $(1)/etc/syslog.conf
+endif
 ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_CROND),)
        $(INSTALL_BIN) ./files/cron $(1)/etc/init.d/cron
+       $(INSTALL_DIR) $(1)/etc/crontabs
 endif
 ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_NTPD),)
        $(INSTALL_BIN) ./files/sysntpd $(1)/etc/init.d/sysntpd