package/e2fsprogs: add option for e2scrub
authorTian Yuanhao <tianyuanhao@aliyun.com>
Fri, 30 Apr 2021 09:16:27 +0000 (17:16 +0800)
committerYann E. MORIN <yann.morin.1998@free.fr>
Fri, 30 Apr 2021 22:02:11 +0000 (00:02 +0200)
The e2scrib tool has various requirements:

  - e2scrub and its associated helpers, are bash scripts

  - e2scrub_all depends on coreutils' readlink; busybox readlink is
    missing some options:
        readlink: invalid option -- 'e'

  - by design, e2scrub only works on an LVM volume

Add an option to enable e2scrub. This is probably seldom used, so it
does not warrant the usual dance about BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
and selecting the tools; we can just depend on the required tools.

Signed-off-by: Tian Yuanhao <tianyuanhao@aliyun.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: James Hilliard <james.hilliard1@gmail.com>
[yann.morin.1998@free.fr:
  - add a kconfig option like for other tools
  - move the conditions to that new option
  - reword the commit log accordingly
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
package/e2fsprogs/Config.in
package/e2fsprogs/e2fsprogs.mk

index b3d12b4a63d0804c6dc446355035e74ba5bbb812..23c4ef30b315d1d61fbf8d465bae34903b7cfe62 100644 (file)
@@ -31,6 +31,19 @@ config BR2_PACKAGE_E2FSPROGS_E2IMAGE
        help
          Save critical ext2/ext3/ext4 filesystem metadata to a file
 
+config BR2_PACKAGE_E2FSPROGS_E2SCRUB
+       bool "e2scrub"
+       depends on BR2_PACKAGE_BASH  # runtime
+       depends on BR2_PACKAGE_COREUTILS  # runtime
+       depends on BR2_PACKAGE_LVM2  # runtime
+       depends on BR2_PACKAGE_UTIL_LINUX  # runtime
+       help
+         Check the contents of a mounted ext[234] filesystem
+
+comment "e2scrub needs bash, coreutils, lvm2, and util-linux"
+       depends on !BR2_PACKAGE_BASH || !BR2_PACKAGE_COREUTILS \
+               || !BR2_PACKAGE_LVM2 || !BR2_PACKAGE_UTIL_LINUX
+
 config BR2_PACKAGE_E2FSPROGS_E4DEFRAG
        bool "e4defrag"
        depends on !BR2_nios2 # fallocate not implemented
index 4420d16aff8d75934b7c4b1494ad08219c5d2af6..0a69690e2f4fb34672989878be1195def5b7072c 100644 (file)
@@ -74,6 +74,16 @@ E2FSPROGS_INSTALL_STAGING_OPTS = \
        DESTDIR=$(STAGING_DIR) \
        install-libs
 
+# e2scrub has no associated --enable/disable option
+ifneq ($(BR2_PACKAGE_E2FSPROGS_E2SCRUB),y)
+E2FSPROGS_MAKE_OPTS += E2SCRUB_DIR=
+endif
+
+E2FSPROGS_INSTALL_TARGET_OPTS = \
+       $(E2FSPROGS_MAKE_OPTS) \
+       DESTDIR=$(TARGET_DIR) \
+       install
+
 # Package does not build in parallel due to improper make rules
 define HOST_E2FSPROGS_INSTALL_CMDS
        $(HOST_MAKE_ENV) $(MAKE1) -C $(@D) install install-libs