summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Config.in18
-rw-r--r--mk/package.mk7
-rw-r--r--package/base-files/Makefile4
-rw-r--r--package/ca-certificates/Makefile2
-rw-r--r--package/ppp/Makefile4
5 files changed, 27 insertions, 8 deletions
diff --git a/Config.in b/Config.in
index 1b3868d6b..8febb3313 100644
--- a/Config.in
+++ b/Config.in
@@ -45,9 +45,26 @@ endmenu
menu "Package selection"
depends on !ADK_CHOOSE_TARGET_ARCH && !ADK_CHOOSE_TARGET_KERNEL && !ADK_CHOOSE_TARGET_SYSTEM
+config ADK_LEAVE_ETC_ALONE
+ boolean "do not install anything into /etc"
+ default n
+ help
+ Enabling this option will prevent the ADK from installing anything
+ into /etc. This is useful for highly customised setups with custom
+ base-files packages.
+
+ Package Makefiles can override this setting by passing "force_etc" to
+ the package-template. to a non-empty value. This is useful for
+ packages traditionally installing non-config stuff into /etc, like
+ e.g. ca-certificates.
+
+ Note that without further customisation, turning this option
+ on will almost certainly render the resulting system unusable.
+
config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
boolean "ship custom init-scripts along with packages"
default y
+ depends on !ADK_LEAVE_ETC_ALONE
help
Turning this option to false will prevent the ADK from
installing init-scripts (i.e. files in /etc/init.d) for
@@ -59,6 +76,7 @@ config ADK_INSTALL_PACKAGE_INIT_SCRIPTS
config ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS
boolean "ship custom network-scripts along with packages"
default y
+ depends on !ADK_LEAVE_ETC_ALONE
help
Turning this option to false will prevent the ADK from
installing network-scripts (i.e. files in /etc/network/) for
diff --git a/mk/package.mk b/mk/package.mk
index 07f53aa34..e69b7866f 100644
--- a/mk/package.mk
+++ b/mk/package.mk
@@ -159,6 +159,9 @@ endif
ifeq ($(ADK_DEBUG_STRIP),y)
$${RSTRIP} $${IDIR_$(1)} $(MAKE_TRACE)
endif
+ifeq (${ADK_LEAVE_ETC_ALONE}$(filter force_etc,$(7)),y)
+ -rm -rf $${IDIR_$(1)}/etc
+else
ifeq (${ADK_INSTALL_PACKAGE_INIT_SCRIPTS},y)
@for file in $$$$(ls ./files/*.init 2>/dev/null); do \
fname=$$$$(echo $$$$file| sed -e "s#.*/##" -e "s#.init##"); \
@@ -172,6 +175,10 @@ ifeq (${ADK_INSTALL_PACKAGE_INIT_SCRIPTS},y)
chmod 0755 "$$$$script"; \
done
endif
+ifneq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
+ -rm -rf $${IDIR_$(1)}/etc/network
+endif
+endif
@mkdir -p $${PACKAGE_DIR} '$${STAGING_PKG_DIR}' \
'$${STAGING_DIR}/scripts'
ifeq (,$(filter noremove,$(7)))
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index cb2b2430b..d7a3f38ea 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -15,7 +15,7 @@ NO_DISTFILES:= 1
include $(TOPDIR)/mk/package.mk
-$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,BASE_FILES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc))
CONFIG_STYLE:= manual
BUILD_STYLE:= manual
@@ -45,9 +45,7 @@ endif
mkdir -p $(IDIR_BASE_FILES)/usr/lib/ipkg/lists
mkdir -p $(IDIR_BASE_FILES)/etc/crontabs
mkdir -p $(IDIR_BASE_FILES)/{dev,boot,root,sys,proc,tmp,mnt}
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
mkdir -p $(IDIR_BASE_FILES)/etc/network/{if-pre-up.d,if-up.d,if-down.d,if-post-down.d}
-endif
mkdir -p $(IDIR_BASE_FILES)/usr/{lib,bin}
chmod 755 $(IDIR_BASE_FILES)/lib/mdev/init
chmod 600 $(IDIR_BASE_FILES)/etc/shadow
diff --git a/package/ca-certificates/Makefile b/package/ca-certificates/Makefile
index 228f30203..8c327aabd 100644
--- a/package/ca-certificates/Makefile
+++ b/package/ca-certificates/Makefile
@@ -20,7 +20,7 @@ PKGFD_SMALL:= Minimal set of CA certificates
include $(TOPDIR)/mk/package.mk
-$(eval $(call PKG_template,CA_CERTIFICATES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION}))
+$(eval $(call PKG_template,CA_CERTIFICATES,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION},force_etc))
CONFIG_STYLE:= manual
diff --git a/package/ppp/Makefile b/package/ppp/Makefile
index 250089b4b..cc0928f20 100644
--- a/package/ppp/Makefile
+++ b/package/ppp/Makefile
@@ -57,11 +57,9 @@ post-install:
${INSTALL_BIN} ./files/pon ${IDIR_PPP}/usr/sbin/
${INSTALL_BIN} ./files/poff ${IDIR_PPP}/usr/sbin/
${INSTALL_DIR} ${IDIR_PPP}/etc/ppp/peers
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
$(INSTALL_DIR) ${IDIR_PPP}/etc/network/if-pre-up.d
$(INSTALL_BIN) ./files/ppp.pre-up \
${IDIR_PPP}/etc/network/if-pre-up.d/05-ppp
-endif
ppp-mod-radius-install:
${INSTALL_DIR} ${IDIR_PPP_MOD_RADIUS}/etc/radiusclient
@@ -104,13 +102,11 @@ ppp-mod-pppumts-install:
${INSTALL_DIR} ${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates
${INSTALL_DATA} ./files/etc/ppp/templates/umts \
${IDIR_PPP_MOD_PPPUMTS}/etc/ppp/templates/
-ifeq (${ADK_INSTALL_PACKAGE_NETWORK_SCRIPTS},y)
$(INSTALL_DIR) ${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-pre-up.d
$(INSTALL_DIR) ${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-post-down.d
$(INSTALL_BIN) ./files/hso.if-up \
${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-pre-up.d/06-hso
$(INSTALL_BIN) ./files/hso.if-down \
${IDIR_PPP_MOD_PPPUMTS}/etc/network/if-post-down.d/06-hso
-endif
include ${TOPDIR}/mk/pkg-bottom.mk