menuconfig BR2_PACKAGE_E2FSPROGS
	bool "e2fsprogs"
	depends on BR2_USE_MMU # util-linux/libblkid
	select BR2_PACKAGE_UTIL_LINUX
	select BR2_PACKAGE_UTIL_LINUX_LIBBLKID
	select BR2_PACKAGE_UTIL_LINUX_LIBUUID
	help
	  The EXT2 file system utilities.

	  The following programs are always built and installed:
	  badblocks chattr debugfs dumpe2fs e2freefrag e2fsck e2image
	  e2undo e4crypt e4defrag filefrag fsck fuse2fs logsave lsattr
	  mke2fs mklost+found resize2fs tune2fs

	  The uuid utilities (uuidd, uuidgen) are not built. Use the
	  ones from util-linux, instead.

	  Other programs can be selected individually.

	  http://e2fsprogs.sourceforge.net

if BR2_PACKAGE_E2FSPROGS

config BR2_PACKAGE_E2FSPROGS_DEBUGFS
	bool "debugfs"
	help
	  ext2/ext3/ext4 file system debugger

config BR2_PACKAGE_E2FSPROGS_E2IMAGE
	bool "e2image"
	help
	  Save critical ext2/ext3/ext4 filesystem metadata to a file

config BR2_PACKAGE_E2FSPROGS_E4DEFRAG
	bool "e4defrag"
	depends on !BR2_nios2 # fallocate not implemented
	depends on !BR2_TOOLCHAIN_USES_UCLIBC # sync_file_range not impl
	help
	  Online defragmenter for ext4 filesystem

comment "e4defrag needs a glibc or musl toolchain"
	depends on !BR2_nios2
	depends on BR2_TOOLCHAIN_USES_UCLIBC

config BR2_PACKAGE_E2FSPROGS_FSCK
	bool "fsck"
	default y
	depends on !BR2_PACKAGE_UTIL_LINUX_FSCK
	help
	  Check and repair a Linux file system. This is a wrapper around
	  the filesystem-specific fsck tools.

config BR2_PACKAGE_E2FSPROGS_FUSE2FS
	bool "fuse2fs"
	depends on !BR2_STATIC_LIBS # libfuse
	depends on BR2_TOOLCHAIN_HAS_THREADS # libfuse
	select BR2_PACKAGE_LIBFUSE
	help
	  FUSE file system client for ext2/ext3/ext4 file systems

comment "fuse2fs needs a toolchain w/ threads, dynamic library"
	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS

config BR2_PACKAGE_E2FSPROGS_RESIZE2FS
	bool "resize2fs"
	help
	  ext2/ext3/ext4 file system resizer

endif
