From f33f47c2b38ce78948a7dfb1095bbb8430460d9e Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Mon, 7 Sep 2026 05:33:33 +0200 Subject: [PATCH] make: Fix CONFIG_SUBDIR The existence of CONFIG_SUBDIR hijacks INSTALL_CFGDIR to a subdirectory (by default /etc/opt//$(CONFIG_SUBDIR)). Then std_install_rules apply, and (the bent) INSTALL_CFGDIR is installed, but its parent directory, the original $(INSTALL_CFGDIR), is not a prerequisite of install anylonger, and has no rule anymore, hence log-install is never run for it. Instead it's implicitly created by log-install -D $(INSTALL_CFGDIR). This commit gives /etc/opt/ std-install rule and variables back as CFGTOPDIR variants, and inserts it early into the install target's prerequisite list. Signed-off-by: Jan Lindemann --- make/conf.mk | 19 +++++++++++++++---- make/defs-dev.mk | 3 +++ make/defs-dist.mk | 3 +++ make/defs.mk | 1 + 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/make/conf.mk b/make/conf.mk index 651ceb76..856770b7 100644 --- a/make/conf.mk +++ b/make/conf.mk @@ -4,15 +4,26 @@ include $(JWBDIR)/make/dev-utils.mk all: clean: clean.conf -install: install_CFG install_files_SYSCFG install_files_LOGROT install_files_CRONTAB install_files_RSYSLOG \ - install_files_APACHE_CONF install_files_SYSTEMD install_files_INIT install_files_TMPFILES $(CONF_D) +install: \ + $(INSTALL_CFGTOPDIR) \ + install_CFG \ + install_files_SYSCFG \ + install_files_LOGROT \ + install_files_CRONTAB \ + install_files_RSYSLOG \ + install_files_APACHE_CONF \ + install_files_SYSTEMD \ + install_files_INIT \ + install_files_TMPFILES \ + $(CONF_D) test: all clean.conf: $(RM) -rf *~ .*.swp *.done -ifneq ($(CONFIG_SUBDIR),) -$(INSTALLED_CFG): $(INSTALL_CFGDIR) +ifneq ($(INSTALL_CFGTOPDIR),) +$(INSTALL_CFGTOPDIR): + $(INSTALL) -D -d -m $(CFGTOPDIRMODE) -o $(CFGTOPDIROWNER) -g $(CFGTOPDIRGROUP) $@ endif ifneq ($(CONF_D),) diff --git a/make/defs-dev.mk b/make/defs-dev.mk index db895eb8..15aa29da 100644 --- a/make/defs-dev.mk +++ b/make/defs-dev.mk @@ -72,6 +72,9 @@ CFGMODE ?= 660 CFGDIROWNER ?= $(EXEDIROWNER) CFGDIRGROUP ?= $(EXEDIRGROUP) CFGDIRMODE ?= $(EXEDIRMODE) +CFGTOPDIROWNER ?= $(CFGDIROWNER) +CFGTOPDIRGROUP ?= $(CFGDIRGROUP) +CFGTOPDIRMODE ?= $(CFGDIRMODE) SYSCFGOWNER ?= $(CFGOWNER) SYSCFGGROUP ?= $(CFGGROUP) SYSCFGMODE ?= $(CFGMODE) diff --git a/make/defs-dist.mk b/make/defs-dist.mk index 83981fd4..bb1602cb 100644 --- a/make/defs-dist.mk +++ b/make/defs-dist.mk @@ -72,6 +72,9 @@ CFGMODE ?= 664 CFGDIROWNER ?= $(EXEDIROWNER) CFGDIRGROUP ?= $(EXEDIRGROUP) CFGDIRMODE ?= $(EXEDIRMODE) +CFGTOPDIROWNER ?= $(CFGDIROWNER) +CFGTOPDIRGROUP ?= $(CFGDIRGROUP) +CFGTOPDIRMODE ?= $(CFGDIRMODE) SYSCFGOWNER ?= $(CFGOWNER) SYSCFGGROUP ?= $(CFGGROUP) SYSCFGMODE ?= $(CFGMODE) diff --git a/make/defs.mk b/make/defs.mk index 2eb295f4..7e778b07 100644 --- a/make/defs.mk +++ b/make/defs.mk @@ -316,6 +316,7 @@ BUILD_CFGDIR = $(TOPDIR)/conf ifeq ($(CONFIG_SUBDIR),) INSTALL_CFGDIR ?= $(CONFIG_DIR) else + INSTALL_CFGTOPDIR ?= $(CONFIG_DIR) INSTALL_CFGDIR ?= $(CONFIG_DIR)/$(CONFIG_SUBDIR) endif LOCAL_CFG ?= $(filter-out %.site.conf, $(filter-out rsyslog-%, $(wildcard *.conf *.xml *.bprof *.jw-tmpl *.ini *.yaml *.toml))) $(LOCAL_EXTRA_CFG)