From 71ab2c9d179652d9b528817ec04d3f1dd3b4b1df Mon Sep 17 00:00:00 2001 From: Richard Musil Date: Thu, 9 May 2019 03:45:07 +0200 Subject: [PATCH] imagebuilder: new DISABLED_SERVICES make variable Adds a new variable DISABLED_SERVICES to ImageBuilder Makefile, which defines a list of services (installed as /etc/init.d/*) to be disabled during the build of a custom image (normally all are enabled). It comes handy when a particular service should not be run under normal circumstances, but should be ready in the image for situations when it might be needed. Signed-off-by: Richard Musil --- include/rootfs.mk | 8 +++++++- target/imagebuilder/files/Makefile | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/rootfs.mk b/include/rootfs.mk index dc8621dbae4..f2d2494ae26 100644 --- a/include/rootfs.mk +++ b/include/rootfs.mk @@ -78,7 +78,13 @@ define prepare_rootfs done; \ for script in ./etc/init.d/*; do \ grep '#!/bin/sh /etc/rc.common' $$script >/dev/null || continue; \ - IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script enable; \ + if ! echo " $(3) " | grep -q " $$(basename $$script) "; then \ + IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script enable; \ + echo "Enabling" $$(basename $$script); \ + else \ + IPKG_INSTROOT=$(1) $$(which bash) ./etc/rc.common $$script disable; \ + echo "Disabling" $$(basename $$script); \ + fi; \ done || true \ ) $(if $(SOURCE_DATE_EPOCH),sed -i "s/Installed-Time: .*/Installed-Time: $(SOURCE_DATE_EPOCH)/" $(1)/usr/lib/opkg/status) diff --git a/target/imagebuilder/files/Makefile b/target/imagebuilder/files/Makefile index 547289b9710..22b2731358a 100644 --- a/target/imagebuilder/files/Makefile +++ b/target/imagebuilder/files/Makefile @@ -45,6 +45,7 @@ Building images: make image FILES="" # include extra files from make image BIN_DIR="" # alternative output directory for the images make image EXTRA_IMAGE_NAME="" # Add this to the output image filename (sanitized) + make image DISABLED_SERVICES=" [ [ ..]]" # Which services in /etc/init.d/ should be disabled Print manifest: List "all" packages which get installed into the image. @@ -159,7 +160,7 @@ prepare_rootfs: FORCE @echo Finalizing root filesystem... $(CP) $(TARGET_DIR) $(TARGET_DIR_ORIG) - $(call prepare_rootfs,$(TARGET_DIR),$(USER_FILES)) + $(call prepare_rootfs,$(TARGET_DIR),$(USER_FILES),$(DISABLED_SERVICES)) build_image: FORCE @echo @@ -197,7 +198,8 @@ image: $(if $(PROFILE),USER_PROFILE="$(PROFILE_FILTER)") \ $(if $(FILES),USER_FILES="$(FILES)") \ $(if $(PACKAGES),USER_PACKAGES="$(PACKAGES)") \ - $(if $(BIN_DIR),BIN_DIR="$(BIN_DIR)")) + $(if $(BIN_DIR),BIN_DIR="$(BIN_DIR)") \ + $(if $(DISABLED_SERVICES),DISABLED_SERVICES="$(DISABLED_SERVICES)")) manifest: FORCE $(MAKE) -s _check_profile -- 2.30.2