From fc3cdc6d1ec61730ecb2968778c21a59deab9d6e Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Mon, 1 Sep 2025 11:01:19 +0200 Subject: [PATCH] support/scripts; teach check-merged what to check Signed-off-by: Yann E. MORIN Cc: Arnout Vandecappelle (Essensium/Mind) Signed-off-by: Romain Naour --- Makefile | 3 +-- package/skeleton-custom/skeleton-custom.mk | 11 ++--------- support/scripts/check-merged | 22 +++++++++++++++------- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 935893be17..6b7b61c01a 100644 --- a/Makefile +++ b/Makefile @@ -781,12 +781,11 @@ endif # For a merged /usr, ensure that /lib, /bin and /sbin and their /usr # counterparts are appropriately setup as symlinks ones to the others. -ifeq ($(BR2_ROOTFS_MERGED_USR),y) @$(call MESSAGE,"Sanity check in overlays $(call qstrip,$(BR2_ROOTFS_OVERLAY))") support/scripts/check-merged \ --type overlay \ + $(if $(BR2_ROOTFS_MERGED_USR),--merged-usr) \ $(call qstrip,$(BR2_ROOTFS_OVERLAY)) -endif # merged /usr $(foreach d, $(call qstrip,$(BR2_ROOTFS_OVERLAY)), \ @$(call MESSAGE,"Copying overlay $(d)")$(sep) \ diff --git a/package/skeleton-custom/skeleton-custom.mk b/package/skeleton-custom/skeleton-custom.mk index 82e1506156..5d65b95ecf 100644 --- a/package/skeleton-custom/skeleton-custom.mk +++ b/package/skeleton-custom/skeleton-custom.mk @@ -23,19 +23,12 @@ $(error No path specified for the custom skeleton) endif endif -# For a merged /usr, ensure that /lib, /bin and /sbin and their /usr -# counterparts are appropriately setup as symlinks ones to the others. -ifeq ($(BR2_ROOTFS_MERGED_USR),y) -define SKELETON_CUSTOM_NOT_MERGED_USR_DIRS +define SKELETON_CUSTOM_CONFIGURE_CMDS support/scripts/check-merged \ --type skeleton \ + $(if $(BR2_ROOTFS_MERGED_USR),--merged-usr) \ $(SKELETON_CUSTOM_PATH) endef -endif # merged /usr - -define SKELETON_CUSTOM_CONFIGURE_CMDS - $(SKELETON_CUSTOM_NOT_MERGED_USR_DIRS) -endef # The target-dir-warning file and the lib{32,64} symlinks are the only # things we customise in the custom skeleton. diff --git a/support/scripts/check-merged b/support/scripts/check-merged index 34e726b4fb..3cccd68dd7 100755 --- a/support/scripts/check-merged +++ b/support/scripts/check-merged @@ -13,6 +13,7 @@ # # Input: # --type TYPE the type of root to check: 'skeleton' or 'overlay' +# --merged-usr check for merged /usr # $*: the root directories (skeleton, overlays) to check # Output: # stdout: the list of non-compliant paths (empty if compliant). @@ -21,17 +22,22 @@ # !0: if any directory to check is improperly merged # -opts="type:" +opts="type:,merged-usr" ARGS="$(getopt -n check-merged -o "" -l "${opts}" -- "${@}")" || exit 1 eval set -- "${ARGS}" type= +merged_usr=false while :; do case "${1}" in (--type) type="${2}" shift 2 ;; + (--merged-usr) + merged_usr=true + shift + ;; (--) shift break @@ -101,12 +107,14 @@ test_dir() { is_success=true for root; do first=true - test_dir "${type}" "${root}" "/" "usr/bin" - test_dir "${type}" "${root}" "/" "usr/lib" - test_dir "${type}" "${root}" "/" "usr/sbin" - test_merged "${type}" "${root}" "/" "bin" "usr/bin" - test_merged "${type}" "${root}" "/" "lib" "usr/lib" - test_merged "${type}" "${root}" "/" "sbin" "usr/sbin" + if ${merged_usr}; then + test_dir "${type}" "${root}" "/" "usr/bin" + test_dir "${type}" "${root}" "/" "usr/lib" + test_dir "${type}" "${root}" "/" "usr/sbin" + test_merged "${type}" "${root}" "/" "bin" "usr/bin" + test_merged "${type}" "${root}" "/" "lib" "usr/lib" + test_merged "${type}" "${root}" "/" "sbin" "usr/sbin" + fi done ${is_success}