mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
crond shipped auto-enabled in finit (symlinked into enabled/), so it ran
on every boot. With no cron jobs /var/spool/cron/crontabs does not exist
and 'crond -f' exits non-zero, which finit then crash-loops until it gives
up ("Service crond keeps crashing, not restarting").
Ship crond available-only and let confd manage it: the schedule plugin
already rebuilds the crontab on every change, so enable + touch crond when
at least one consumer is active and disable it otherwise. No jobs, no
crond, no crash loop.
Signed-off-by: Mattias Walström <lazzer@gmail.com>
137 lines
5.0 KiB
Makefile
137 lines
5.0 KiB
Makefile
################################################################################
|
|
#
|
|
# confd
|
|
#
|
|
################################################################################
|
|
|
|
CONFD_VERSION = 1.8
|
|
CONFD_SITE_METHOD = local
|
|
CONFD_SITE = $(BR2_EXTERNAL_INFIX_PATH)/src/confd
|
|
CONFD_LICENSE = BSD-3-Clause
|
|
CONFD_LICENSE_FILES = LICENSE
|
|
CONFD_REDISTRIBUTE = NO
|
|
CONFD_DEPENDENCIES = host-sysrepo sysrepo rousette netopeer2 jansson libite sysrepo libsrx libglib2 libev
|
|
CONFD_AUTORECONF = YES
|
|
CONFD_CONF_OPTS += --disable-silent-rules --with-crypt=$(BR2_PACKAGE_CONFD_DEFAULT_CRYPT)
|
|
CONFD_SYSREPO_SHM_PREFIX = sr_buildroot$(subst /,_,$(CONFIG_DIR))_confd
|
|
|
|
define CONFD_CONF_ENV
|
|
CFLAGS="$(INFIX_CFLAGS)"
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_PODMAN),y)
|
|
CONFD_CONF_OPTS += --enable-containers
|
|
else
|
|
CONFD_CONF_OPTS += --disable-containers
|
|
endif
|
|
|
|
ifeq ($(BR2_PACKAGE_FEATURE_WIFI),y)
|
|
CONFD_CONF_OPTS += --enable-wifi
|
|
else
|
|
CONFD_CONF_OPTS += --disable-wifi
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_FEATURE_GPS),y)
|
|
CONFD_CONF_OPTS += --enable-gps
|
|
else
|
|
CONFD_CONF_OPTS += --disable-gps
|
|
endif
|
|
define CONFD_INSTALL_EXTRA
|
|
for fn in confd.conf crond.conf resolvconf.conf; do \
|
|
cp $(CONFD_PKGDIR)/$$fn $(FINIT_D)/available/; \
|
|
done
|
|
for fn in confd.conf resolvconf.conf; do \
|
|
ln -sf ../available/$$fn $(FINIT_D)/enabled/$$fn; \
|
|
done
|
|
cp $(CONFD_PKGDIR)/tmpfiles.conf $(TARGET_DIR)/etc/tmpfiles.d/confd.conf
|
|
mkdir -p $(TARGET_DIR)/etc/avahi/services
|
|
cp $(CONFD_PKGDIR)/netconf.service $(TARGET_DIR)/etc/avahi/services/
|
|
endef
|
|
|
|
NETOPEER2_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/netopeer2/
|
|
SYSREPO_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/sysrepo/
|
|
LIBNETCONF2_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/libnetconf2/
|
|
CONFD_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/confd/
|
|
TEST_MODE_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/test-mode/
|
|
ROUSETTE_SEARCHPATH=$(TARGET_DIR)/usr/share/yang/modules/rousette/
|
|
COMMON_SYSREPO_ENV = \
|
|
SYSREPO_SHM_PREFIX=$(CONFD_SYSREPO_SHM_PREFIX) \
|
|
SYSREPOCTL_EXECUTABLE="$(HOST_DIR)/bin/sysrepoctl" \
|
|
SYSREPOCFG_EXECUTABLE="$(HOST_DIR)/bin/sysrepocfg" \
|
|
SEARCH_PATH="$(NETOPEER2_SEARCHPATH) $(SYSREPO_SEARCHPATH) $(LIBNETCONF2_SEARCHPATH) $(TEST_MODE_SEARCHPATH) $(CONFD_SEARCHPATH) $(ROUSETTE_SEARCHPATH)"
|
|
|
|
|
|
define CONFD_INSTALL_YANG_MODULES
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/sysrepo.inc
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/libnetconf2.inc
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/netopeer2.inc
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/rousette.inc
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/test-mode.inc
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/confd.inc
|
|
endef
|
|
|
|
ifeq ($(BR2_PACKAGE_PODMAN),y)
|
|
define CONFD_INSTALL_YANG_MODULES_CONTAINERS
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/containers.inc
|
|
endef
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_FEATURE_WIFI),y)
|
|
define CONFD_INSTALL_YANG_MODULES_WIFI
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/wifi.inc
|
|
endef
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_FEATURE_GPS),y)
|
|
define CONFD_INSTALL_YANG_MODULES_GPS
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/gps.inc
|
|
endef
|
|
endif
|
|
ifeq ($(BR2_PACKAGE_WEBUI),y)
|
|
define CONFD_INSTALL_YANG_MODULES_WEBUI
|
|
$(COMMON_SYSREPO_ENV) \
|
|
$(BR2_EXTERNAL_INFIX_PATH)/utils/srload $(@D)/yang/web.inc
|
|
endef
|
|
endif
|
|
|
|
# PER_PACKAGE_DIR
|
|
# Since the last package in the dependency chain that runs sysrepoctl is confd, we need to
|
|
# manually copy the *real* content here from host-sysrepo.
|
|
ifeq ($(BR2_PER_PACKAGE_DIRECTORIES),y)
|
|
define CONFD_INSTALL_IN_ROMFS
|
|
cp -a $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/* $(PER_PACKAGE_DIR)/confd/target/etc/sysrepo/
|
|
endef
|
|
endif
|
|
|
|
# PER_PACKAGE_DIR
|
|
# Need to do some special stuff if using per-packet (parallel) since sysrepo install the submodules in
|
|
# $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/ but $(PER_PACKAGE_DIR)/confd/target/etc/sysrepo/ contains remains
|
|
# of other packets that have installed its models (netopeer2), we want the result in $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/
|
|
define CONFD_EMPTY_SYSREPO
|
|
rm -rf $(TARGET_DIR)/etc/sysrepo/*
|
|
if [ "$(BR2_PER_PACKAGE_DIRECTORIES)" = "y" ]; then \
|
|
rm -rf $(PER_PACKAGE_DIR)/host-sysrepo/target/etc/sysrepo/* $(PER_PACKAGE_DIR)/confd/target/etc/sysrepo/*; \
|
|
fi
|
|
endef
|
|
define CONFD_CLEANUP
|
|
rm -f /dev/shm/$(CONFD_SYSREPO_SHM_PREFIX)*
|
|
endef
|
|
CONFD_PRE_BUILD_HOOKS += CONFD_EMPTY_SYSREPO
|
|
CONFD_PRE_BUILD_HOOKS += CONFD_CLEANUP
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_EXTRA
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES_CONTAINERS
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES_WIFI
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES_GPS
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_YANG_MODULES_WEBUI
|
|
CONFD_POST_INSTALL_TARGET_HOOKS += CONFD_INSTALL_IN_ROMFS
|
|
CONFD_TARGET_FINALIZE_HOOKS += CONFD_CLEANUP
|
|
|
|
$(eval $(autotools-package))
|