diff options
Diffstat (limited to 'package/e2fsprogs')
-rw-r--r-- | package/e2fsprogs/Makefile | 169 | ||||
-rw-r--r-- | package/e2fsprogs/files/e2fsck.conf | 3 | ||||
-rw-r--r-- | package/e2fsprogs/files/e2fsck.sh | 38 | ||||
-rw-r--r-- | package/e2fsprogs/patches/001-link-against-libuuid.patch | 38 | ||||
-rw-r--r-- | package/e2fsprogs/patches/002-no_malloc_h.patch | 10 |
5 files changed, 258 insertions, 0 deletions
diff --git a/package/e2fsprogs/Makefile b/package/e2fsprogs/Makefile new file mode 100644 index 000000000..ebc21c906 --- /dev/null +++ b/package/e2fsprogs/Makefile @@ -0,0 +1,169 @@ +# +# Copyright (C) 2006-2012 OpenWrt.org +# Copyright 2010 Vertical Communications +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=e2fsprogs +PKG_VERSION:=1.42.4 +PKG_MD5SUM:=b6e296f210d642361b7394437ff0f318 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=@SF/e2fsprogs + +PKG_BUILD_DEPENDS:=util-linux +PKG_INSTALL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/e2fsprogs/Default + URL:=http://e2fsprogs.sourceforge.net/ + SUBMENU:=Filesystem +endef + +define Package/e2fsprogs +$(call Package/e2fsprogs/Default) + SECTION:=utils + CATEGORY:=Utilities + TITLE:=Ext2/3/4 filesystem utilities + DEPENDS:=+libblkid +libuuid +libext2fs +endef + +define Package/e2fsprogs/description + This package contains essential ext2 filesystem utilities which consists of + e2fsck, mke2fs, tune2fs, and most of the other core ext2 + filesystem utilities. +endef + +define Package/libext2fs +$(call Package/e2fsprogs/Default) + DEPENDS:=+libcom_err + SECTION:=libs + CATEGORY:=Libraries + TITLE:=ext2/3/4 filesystem library +endef + +define Package/libext2fs/description + libext2fs is a library which can access ext2, ext3 and ext4 filesystems. +endef + +define Package/libcom_err +$(call Package/e2fsprogs/Default) + DEPENDS:=+libpthread + SECTION:=libs + CATEGORY:=Libraries + TITLE:=Common error description library +endef + +define Package/libcom_err/description + libcom_err is a library providing common error descriptions +endef + +define Package/tune2fs +$(call Package/e2fsprogs) + TITLE:=Ext2 Filesystem tune utility + DEPENDS:= +e2fsprogs +endef + +define Package/resize2fs +$(call Package/e2fsprogs) + TITLE:=Ext2 Filesystem resize utility + DEPENDS:= +e2fsprogs +endef + +define Package/badblocks +$(call Package/e2fsprogs) + TITLE:=Ext2 Filesystem badblocks utility + DEPENDS:= +e2fsprogs +endef + +TARGET_CFLAGS += $(FPIC) + +CONFIGURE_ARGS += \ + --enable-elf-shlibs \ + --disable-libuuid \ + --disable-libblkid \ + --disable-uuidd \ + --disable-tls \ + --disable-nls \ + --disable-rpath + +define Build/Prepare + $(call Build/Prepare/Default) + $(CP) $(SCRIPT_DIR)/config.{guess,sub} $(PKG_BUILD_DIR)/config/ +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR)/util \ + BUILDCC="$(HOSTCC)" \ + CFLAGS="" \ + CPPFLAGS="" \ + LDFLAGS="" \ + subst + $(MAKE) -C $(PKG_BUILD_DIR) \ + BUILDCC="$(HOSTCC)" \ + DESTDIR="$(PKG_INSTALL_DIR)" \ + all +endef + +define Build/InstallDev + $(MAKE) -C $(PKG_BUILD_DIR) \ + BUILDCC="$(HOSTCC)" \ + DESTDIR="$(1)" \ + install-libs + $(MAKE) -C $(PKG_BUILD_DIR)/lib/ext2fs \ + BUILDCC="$(HOSTCC)" \ + DESTDIR="$(1)" \ + install +endef + +define Package/e2fsprogs/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/e2fsck $(1)/usr/sbin/ + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/mke2fs $(1)/usr/sbin/ + ln -sf mke2fs $(1)/usr/sbin/mkfs.ext2 + ln -sf mke2fs $(1)/usr/sbin/mkfs.ext3 + ln -sf mke2fs $(1)/usr/sbin/mkfs.ext4 + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libe2p.so.* $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_DIR) $(1)/lib/functions/fsck + $(INSTALL_DATA) ./files/e2fsck.sh $(1)/lib/functions/fsck/ + $(INSTALL_DATA) ./files/e2fsck.conf $(1)/etc/e2fsck.conf +endef + +define Package/libcom_err/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcom_err.so.* $(1)/usr/lib/ +endef + +define Package/libext2fs/install + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_INSTALL_DIR)/usr/lib/libext2fs.so.* $(1)/usr/lib/ +endef + +define Package/tune2fs/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/tune2fs $(1)/usr/sbin/ +endef + +define Package/resize2fs/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/resize2fs $(1)/usr/sbin/ +endef + +define Package/badblocks/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/badblocks $(1)/usr/sbin/ +endef + +$(eval $(call BuildPackage,e2fsprogs)) +$(eval $(call BuildPackage,libext2fs)) +$(eval $(call BuildPackage,libcom_err)) +$(eval $(call BuildPackage,tune2fs)) +$(eval $(call BuildPackage,resize2fs)) +$(eval $(call BuildPackage,badblocks)) diff --git a/package/e2fsprogs/files/e2fsck.conf b/package/e2fsprogs/files/e2fsck.conf new file mode 100644 index 000000000..9c96b4958 --- /dev/null +++ b/package/e2fsprogs/files/e2fsck.conf @@ -0,0 +1,3 @@ +[options] +broken_system_clock = true + diff --git a/package/e2fsprogs/files/e2fsck.sh b/package/e2fsprogs/files/e2fsck.sh new file mode 100644 index 000000000..22031edb6 --- /dev/null +++ b/package/e2fsprogs/files/e2fsck.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# Copyright 2010 Vertical Communications +# Copyright 2012 OpenWrt.org +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +fsck_e2fsck() { + set -o pipefail + e2fsck -p "$device" 2>&1 | logger -t "fstab: e2fsck ($device)" + local status="$?" + set +o pipefail + case "$status" in + 0|1) ;; #success + 2) reboot;; + 4) echo "e2fsck ($device): Warning! Uncorrected errors."| logger -t fstab + return 1 + ;; + *) echo "e2fsck ($device): Error $status. Check not complete."| logger -t fstab;; + esac + return 0 +} + +fsck_ext2() { + fsck_e2fsck "$@" +} + +fsck_ext3() { + fsck_e2fsck "$@" +} + +fsck_ext4() { + fsck_e2fsck "$@" +} + +append libmount_known_fsck "ext2" +append libmount_known_fsck "ext3" +append libmount_known_fsck "ext4" diff --git a/package/e2fsprogs/patches/001-link-against-libuuid.patch b/package/e2fsprogs/patches/001-link-against-libuuid.patch new file mode 100644 index 000000000..e0564dc35 --- /dev/null +++ b/package/e2fsprogs/patches/001-link-against-libuuid.patch @@ -0,0 +1,38 @@ +--- a/configure ++++ b/configure +@@ -5038,7 +5038,7 @@ if test "${ac_cv_lib_blkid_blkid_get_cac + $as_echo_n "(cached) " >&6 + else + ac_check_lib_save_LIBS=$LIBS +-LIBS="-lblkid $LIBBLKID $LIBS" ++LIBS="-lblkid $LIBBLKID $LIBUUID $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + +--- a/misc/Makefile.in ++++ b/misc/Makefile.in +@@ -146,10 +146,10 @@ partinfo: partinfo.o + $(E) " LD $@" + $(Q) $(CC) $(ALL_LDFLAGS) -o partinfo partinfo.o + +-e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(LIBEXT2FS) ++e2initrd_helper: e2initrd_helper.o $(DEPLIBS) $(DEPLIBBLKID) $(DEPLIBUUID) $(LIBEXT2FS) + $(E) " LD $@" + $(Q) $(CC) $(ALL_LDFLAGS) -o e2initrd_helper e2initrd_helper.o $(LIBS) \ +- $(LIBBLKID) $(LIBEXT2FS) $(LIBINTL) ++ $(LIBBLKID) $(LIBUUID) $(LIBEXT2FS) $(LIBINTL) + + tune2fs: $(TUNE2FS_OBJS) $(DEPLIBS) $(DEPLIBS_E2P) $(DEPLIBBLKID) \ + $(DEPLIBUUID) $(DEPLIBQUOTA) $(LIBEXT2FS) +@@ -289,9 +289,9 @@ dumpe2fs.profiled: $(PROFILED_DUMPE2FS_O + $(PROFILED_DUMPE2FS_OBJS) $(PROFILED_LIBS) \ + $(PROFILED_LIBE2P) $(PROFILED_LIBUUID) $(LIBINTL) + +-fsck: $(FSCK_OBJS) $(DEPLIBBLKID) ++fsck: $(FSCK_OBJS) $(DEPLIBBLKID) $(DEPLIBUUID) + $(E) " LD $@" +- $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBINTL) ++ $(Q) $(CC) $(ALL_LDFLAGS) -o fsck $(FSCK_OBJS) $(LIBBLKID) $(LIBUUID) $(LIBINTL) + + fsck.profiled: $(PROFILED_FSCK_OBJS) $(PROFILED_DEPLIBBLKID) + $(E) " LD $@" diff --git a/package/e2fsprogs/patches/002-no_malloc_h.patch b/package/e2fsprogs/patches/002-no_malloc_h.patch new file mode 100644 index 000000000..209b47c1c --- /dev/null +++ b/package/e2fsprogs/patches/002-no_malloc_h.patch @@ -0,0 +1,10 @@ +--- a/util/symlinks.c ++++ b/util/symlinks.c +@@ -8,7 +8,6 @@ + #endif + #include <stdio.h> + #include <stdlib.h> +-#include <malloc.h> + #include <string.h> + #include <fcntl.h> + #include <sys/param.h> |