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_BADBLOCKS
- bool "badblocks"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_CHATTR
- bool "chattr"
- default y
-
config BR2_PACKAGE_E2FSPROGS_DEBUGFS
bool "debugfs"
-config BR2_PACKAGE_E2FSPROGS_DUMPE2FS
- bool "dumpe2fs"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_E2FREEFRAG
- bool "e2freefrag"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_E2FSCK
- bool "e2fsck"
- default y
-
config BR2_PACKAGE_E2FSPROGS_E2IMAGE
bool "e2image"
-config BR2_PACKAGE_E2FSPROGS_E2LABEL
- bool "e2label"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_E2UNDO
- bool "e2undo"
- default y
-
config BR2_PACKAGE_E2FSPROGS_E4DEFRAG
bool "e4defrag"
depends on !BR2_nios2 # fallocate not implemented
depends on !BR2_nios2
depends on BR2_TOOLCHAIN_USES_UCLIBC
-config BR2_PACKAGE_E2FSPROGS_FILEFRAG
- bool "filefrag"
- default y
-
config BR2_PACKAGE_E2FSPROGS_FSCK
bool "fsck"
default y
comment "fuse2fs needs a toolchain w/ threads, dynamic library"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
-config BR2_PACKAGE_E2FSPROGS_LOGSAVE
- bool "logsave"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_LSATTR
- bool "lsattr"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_MKE2FS
- bool "mke2fs"
- default y
-
-config BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND
- bool "mklost+found"
- default y
-
config BR2_PACKAGE_E2FSPROGS_RESIZE2FS
bool "resize2fs"
-config BR2_PACKAGE_E2FSPROGS_TUNE2FS
- bool "tune2fs"
- default y
- select BR2_PACKAGE_E2FSPROGS_E2LABEL
-
endif
E2FSPROGS_DEPENDENCIES = host-pkgconf util-linux
HOST_E2FSPROGS_DEPENDENCIES = host-pkgconf host-util-linux
+# If both e2fsprogs and busybox are selected, make certain e2fsprogs
+# wins the fight over who gets to have their utils actually installed
+ifeq ($(BR2_PACKAGE_BUSYBOX),y)
+E2FSPROGS_DEPENDENCIES += busybox
+endif
+
# e4defrag doesn't build on older systems like RHEL5.x, and we don't
# need it on the host anyway.
# Disable fuse2fs as well to avoid carrying over deps, and it's unused
--disable-defrag \
--disable-fuse2fs \
--disable-libblkid \
- --disable-libuuid
+ --disable-libuuid \
+ --enable-symlink-install
+# Set the binary directories to "/bin" and "/sbin" to override programs
+# installed by busybox.
E2FSPROGS_CONF_OPTS = \
+ --bindir=/bin \
+ --sbindir=/sbin \
$(if $(BR2_STATIC_LIBS),,--enable-elf-shlibs) \
$(if $(BR2_PACKAGE_E2FSPROGS_DEBUGFS),,--disable-debugfs) \
$(if $(BR2_PACKAGE_E2FSPROGS_E2IMAGE),,--disable-imager) \
$(if $(BR2_PACKAGE_E2FSPROGS_E4DEFRAG),,--disable-defrag) \
+ $(if $(BR2_PACKAGE_E2FSPROGS_FSCK),--enable-fsck,--disable-fsck) \
$(if $(BR2_PACKAGE_E2FSPROGS_RESIZE2FS),,--disable-resizer) \
--disable-uuidd \
--disable-libblkid \
--disable-libuuid \
- --enable-fsck \
--disable-e2initrd-helper \
--disable-testio-debug \
- --disable-rpath
+ --disable-rpath \
+ --enable-symlink-install
ifeq ($(BR2_PACKAGE_E2FSPROGS_FUSE2FS),y)
E2FSPROGS_CONF_OPTS += --enable-fuse2fs
$(HOST_MAKE_ENV) $(MAKE) -C $(@D) install install-libs
endef
-# binaries to keep or remove
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_BADBLOCKS) += usr/sbin/badblocks
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_CHATTR) += usr/bin/chattr
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_DUMPE2FS) += usr/sbin/dumpe2fs
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FREEFRAG) += usr/sbin/e2freefrag
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2FSCK) += usr/sbin/e2fsck
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2LABEL) += usr/sbin/e2label
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E2UNDO) += usr/sbin/e2undo
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_E4DEFRAG) += usr/sbin/e4defrag
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FILEFRAG) += usr/sbin/filefrag
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_FSCK) += usr/sbin/fsck
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LOGSAVE) += usr/sbin/logsave
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_LSATTR) += usr/bin/lsattr
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKE2FS) += usr/sbin/mke2fs
-E2FSPROGS_BINTARGETS_$(BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND) += usr/sbin/mklost+found
-
-# files to remove
-E2FSPROGS_TXTTARGETS_ = \
- usr/sbin/mkfs.ext[234] \
- usr/sbin/mkfs.ext4dev \
- usr/sbin/fsck.ext[234] \
- usr/sbin/fsck.ext4dev \
- usr/sbin/tune2fs
-
-define E2FSPROGS_TARGET_REMOVE_UNNEEDED
- rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_BINTARGETS_))
- rm -f $(addprefix $(TARGET_DIR)/, $(E2FSPROGS_TXTTARGETS_))
-endef
-
-E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_REMOVE_UNNEEDED
-
-define E2FSPROGS_TARGET_MKE2FS_SYMLINKS
- ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext2
- ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext3
- ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4
- ln -sf mke2fs $(TARGET_DIR)/usr/sbin/mkfs.ext4dev
-endef
-
-ifeq ($(BR2_PACKAGE_E2FSPROGS_MKE2FS),y)
-E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_MKE2FS_SYMLINKS
-endif
-
-define E2FSPROGS_TARGET_E2FSCK_SYMLINKS
- ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext2
- ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext3
- ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4
- ln -sf e2fsck $(TARGET_DIR)/usr/sbin/fsck.ext4dev
-endef
-
-ifeq ($(BR2_PACKAGE_E2FSPROGS_E2FSCK),y)
-E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_E2FSCK_SYMLINKS
-endif
-
-# If BusyBox is included, its configuration may supply its own variant
-# of ext2-related tools. Since Buildroot desires having full blown
-# variants take precedence (in this case, e2fsprogs), we want to remove
-# BusyBox's variant of e2fsprogs provided binaries. e2fsprogs targets
-# /usr/{bin,sbin} where BusyBox targets /{bin,sbin}. We will attempt to
-# remove BusyBox-generated ext2-related tools from /{bin,sbin}. We need
-# to do this in the pre-install stage to ensure we do not accidentally
-# remove e2fsprogs's binaries in usr-merged environments (ie. if they
-# are removed, they would be re-installed in this package's install
-# stage).
-ifeq ($(BR2_PACKAGE_BUSYBOX),y)
-E2FSPROGS_DEPENDENCIES += busybox
-
-define E2FSPROGS_REMOVE_BUSYBOX_APPLETS
- $(RM) -f $(TARGET_DIR)/bin/chattr
- $(RM) -f $(TARGET_DIR)/bin/lsattr
- $(RM) -f $(TARGET_DIR)/sbin/fsck
- $(RM) -f $(TARGET_DIR)/sbin/tune2fs
- $(RM) -f $(TARGET_DIR)/sbin/e2label
-endef
-E2FSPROGS_PRE_INSTALL_TARGET_HOOKS += E2FSPROGS_REMOVE_BUSYBOX_APPLETS
-endif
-
-define E2FSPROGS_TARGET_TUNE2FS_SYMLINK
- ln -sf e2label $(TARGET_DIR)/usr/sbin/tune2fs
-endef
-
-ifeq ($(BR2_PACKAGE_E2FSPROGS_TUNE2FS),y)
-E2FSPROGS_POST_INSTALL_TARGET_HOOKS += E2FSPROGS_TARGET_TUNE2FS_SYMLINK
-endif
-
$(eval $(autotools-package))
$(eval $(host-autotools-package))