From 284a3cfc2beea39262e4245562cd65017ccc25b5 Mon Sep 17 00:00:00 2001
From: kaloz <kaloz@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 22 Nov 2010 11:26:45 +0000
Subject: [PATCH] [tools]: add e2fsprogs to tools and use that instead of
 libuuid

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24078 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 tools/Makefile                                |  6 +-
 tools/e2fsprogs/Makefile                      | 66 ++++++++++++++
 .../001-exit_0_on_corrected_errors.patch      | 11 +++
 tools/libuuid/Makefile                        | 87 -------------------
 4 files changed, 80 insertions(+), 90 deletions(-)
 create mode 100644 tools/e2fsprogs/Makefile
 create mode 100644 tools/e2fsprogs/patches/001-exit_0_on_corrected_errors.patch
 delete mode 100644 tools/libuuid/Makefile

diff --git a/tools/Makefile b/tools/Makefile
index 7550cb2c7..e208857e2 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -15,7 +15,7 @@ tools-$(CONFIG_GCC_VERSION_4_3)$(CONFIG_GCC_VERSION_4_4)$(CONFIG_GCC_VERSION_4_5
 tools-$(CONFIG_GCC_VERSION_4_5) += mpc libelf
 endif
 tools-y += m4 autoconf automake bison pkg-config sed mklibs
-tools-y += sstrip ipkg-utils genext2fs libuuid mtd-utils mkimage
+tools-y += sstrip ipkg-utils genext2fs e2fsprogs mtd-utils mkimage
 tools-y += firmware-utils patch-cmdline quilt yaffs2 flock
 tools-$(CONFIG_TARGET_orion_generic) += wrt350nv2-builder upslug2
 tools-$(CONFIG_TARGET_x86) += qemu
@@ -44,9 +44,9 @@ $(curdir)/autoconf/compile := $(curdir)/m4/install
 $(curdir)/automake/compile := $(curdir)/m4/install $(curdir)/autoconf/install
 $(curdir)/mpc/compile := $(curdir)/gmp/install
 $(curdir)/mpfr/compile := $(curdir)/gmp/install
-$(curdir)/mtd-utils/compile := $(curdir)/libuuid/install
+$(curdir)/mtd-utils/compile := $(curdir)/e2fsprogs/install
 $(curdir)/mkimage/compile := $(curdir)/sed/install
-$(curdir)/qemu/compile := $(curdir)/libuuid/install
+$(curdir)/qemu/compile := $(curdir)/e2fsprogs/install
 $(curdir)/upslug2/compile := $(curdir)/automake/install
 
 $(curdir)/builddirs := $(tools-y) $(tools-dep) $(tools-)
diff --git a/tools/e2fsprogs/Makefile b/tools/e2fsprogs/Makefile
new file mode 100644
index 000000000..2a7eb6a4e
--- /dev/null
+++ b/tools/e2fsprogs/Makefile
@@ -0,0 +1,66 @@
+#
+# Copyright (C) 2010 OpenWrt.org
+#
+# 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.41.10
+PKG_MD5SUM:=f9c7bb5c036a119453ce02fa871038da
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/e2fsprogs
+
+include $(INCLUDE_DIR)/host-build.mk
+
+define Host/Configure
+	( cd $(HOST_BUILD_DIR); \
+		./configure \
+			--target=$(GNU_HOST_NAME) \
+			--host=$(GNU_HOST_NAME) \
+			--build=$(GNU_HOST_NAME) \
+			--program-prefix="" \
+			--program-suffix="" \
+			--prefix=/usr \
+			--exec-prefix=/usr \
+			--bindir=/usr/bin \
+			--sbindir=/usr/sbin \
+			--libexecdir=/usr/lib \
+			--sysconfdir=/etc \
+			--datadir=/usr/share \
+			--localstatedir=/var \
+			--mandir=/usr/man \
+			--infodir=/usr/info \
+	)
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS += \
+	--enable-shared \
+	--enable-static \
+	--disable-rpath \
+	--enable-elf-shlibs \
+	--enable-dynamic-e2fsck \
+	--disable-tls
+
+define Host/Compile
+	$(MAKE) -C $(HOST_BUILD_DIR) \
+		CFLAGS="$(HOST_CFLAGS)" all
+endef
+
+define Host/Install
+	install -m0755 $(HOST_BUILD_DIR)/e2fsck/e2fsck $(STAGING_DIR_HOST)/bin/
+	install -m0755 $(HOST_BUILD_DIR)/misc/tune2fs $(STAGING_DIR_HOST)/bin/
+endef
+
+define Host/Clean
+	rm -f $(STAGING_DIR_HOST)/bin/e2fsck
+	rm -f $(STAGING_DIR_HOST)/bin/tune2fs
+endef
+
+$(eval $(call HostBuild))
diff --git a/tools/e2fsprogs/patches/001-exit_0_on_corrected_errors.patch b/tools/e2fsprogs/patches/001-exit_0_on_corrected_errors.patch
new file mode 100644
index 000000000..4dbece5ce
--- /dev/null
+++ b/tools/e2fsprogs/patches/001-exit_0_on_corrected_errors.patch
@@ -0,0 +1,11 @@
+--- a/e2fsck/e2fsck.h
++++ b/e2fsck/e2fsck.h
+@@ -65,7 +65,7 @@
+  * Exit codes used by fsck-type programs
+  */
+ #define FSCK_OK          0	/* No errors */
+-#define FSCK_NONDESTRUCT 1	/* File system errors corrected */
++#define FSCK_NONDESTRUCT 0	/* File system errors corrected */
+ #define FSCK_REBOOT      2	/* System should be rebooted */
+ #define FSCK_UNCORRECTED 4	/* File system errors left uncorrected */
+ #define FSCK_ERROR       8	/* Operational error */
diff --git a/tools/libuuid/Makefile b/tools/libuuid/Makefile
deleted file mode 100644
index 388075e38..000000000
--- a/tools/libuuid/Makefile
+++ /dev/null
@@ -1,87 +0,0 @@
-#
-# Copyright (C) 2006-2008 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=util-linux-ng
-PKG_VERSION:=2.18
-PKG_MD5SUM:=aff22adfff1bf39cd3f13371b95a3d3a
-PKG_RELEASE:=1
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/v2.18/
-
-include $(INCLUDE_DIR)/host-build.mk
-
-define Host/Configure
-	$(call Host/Configure/Default, \
-		--disable-shared \
-		--enable-static \
-		--disable-rpath \
-		--disable-tls \
-		--disable-mount \
-		--disable-fsck \
-		--enable-libuuid \
-		--disable-uuidd \
-		--disable-libblkid \
-		--disable-libmount \
-		--disable-nls \
-		--disable-rpath \
-		--disable-arch \
-		--disable-agetty \
-		--disable-cramfs \
-		--disable-switch \
-		--disable-pivot \
-		--disable-fallocate \
-		--disable-unshare \
-		--disable-elvtune \
-		--disable-init \
-		--disable-kill \
-		--disable-last \
-		--disable-mesg \
-		--disable-partx \
-		--disable-raw \
-		--disable-rename \
-		--disable-reset \
-		--disable-login-utils \
-		--disable-schedutils \
-		--disable-wall \
-		--disable-write \
-		--disable-chsh-only-listed \
-		--disable-login-chown-vcs \
-		--disable-login-stat-mail \
-		--disable-pg-bell \
-		--disable-require-password \
-		--disable-fs-paths-default \
-		--disable-fs-paths-extra \
-		--disable-use-tty-group \
-		--disable-makeinstall-chown \
-		--disable-makeinstall-setuid \
-		--without-libiconv-prefix \
-		--without-libintl-prefix \
-		--without-ncurses \
-		--without-slang \
-		--without-utempter \
-		--without-pam \
-		--without-selinux \
-		--without-audit \
-	)
-endef
-
-define Host/Compile
-	$(MAKE) -C $(HOST_BUILD_DIR)/shlibs/uuid/src
-endef
-
-define Host/Install
-	$(MAKE) -C $(HOST_BUILD_DIR)/shlibs/uuid/src install
-endef
-
-define Host/Clean
-	-$(MAKE) -C $(HOST_BUILD_DIR)/shlibs/uuid/src uninstall
-endef
-
-$(eval $(call HostBuild))
-- 
2.20.1