Changeset - 3f64f881f17b
[Not reviewed]
default
0 2 2
Nathan Brink (binki) - 16 years ago 2009-05-10 21:31:40
ohnobinki@ohnopublishing.net
sys-fs/e2fsprogs: Added ebuild parallel to portage's 1.41.3-r3 version'
4 files changed with 239 insertions and 1 deletions:
0 comments (0 inline, 0 general)
sys-fs/e2fsprogs/ChangeLog
Show inline comments
 
# ChangeLog for sys-fs/e2fsprogs
 
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
 
# $Header: $
 

	
 
  11 May 2009; Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
 
  +e2fsprogs-1.41.3-r1.ebuild, +files/e2fsprogs-1.41.3-tune2fs-opt.patch:
 
  Added a modified version of portage's e2fsprogs-1.41.3-r1.
 

	
 
  09 May 2009; Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
 
  -e2fsprogs-1.41.2.ebuild, e2fsprogs-1.41.4.ebuild, +metadata.xml:
 
  Removed olderversion, modified 1.41.4 to reflect Portage, added empty
 
  metadata.xml
 

	
 
  09 May 2009; Nathan Phillip Brink <ohnobinki@ohnopublishing.net>
 
  -e2fsprogs-1.41.2.ebuild, e2fsprogs-1.41.4.ebuild:
 
  Removed old version, modified new version to reflect portage.
 

	
sys-fs/e2fsprogs/Manifest
Show inline comments
 
AUX e2fsprogs-1.38-tests-locale.patch 656 RMD160 16c625c16144ed16942fa19988524b7b5727c583 SHA1 debd15eba41a392cf0336e694bebf0c2409b18e3 SHA256 7d12df7c4f00f1c1c81dcbd74cc0f8c1cffaa3b5089fbaa40222a7a9f2fbe598
 
AUX e2fsprogs-1.40-fbsd.patch 352 RMD160 2d3f0979522a29bdf5aae1af9c73b33e76b02f23 SHA1 b229990591965b454dfaa88bf47437cc8386343d SHA256 52865c6600fa0f601a89e4396797ae2d23a1ed895e64b098c36e8bcab1ac8505
 
AUX e2fsprogs-1.41.2-makefile.patch 2813 RMD160 11b20c97f58efe18850296aefe08a155084dc825 SHA1 37bb9fd7cd06e1d7f5f302c2e7c0ff24fbd3c448 SHA256 48192b8d38bc00c048489de92a7361a773df0b6c4bbbb5e22b0b5c91962864f4
 
AUX e2fsprogs-1.41.3-tst_csum.patch 1159 RMD160 3f9ba3a816a1237026be58e29dcd0d51b38f63f2 SHA1 92717554e01a42d0e8b68cbfaa455744ddeb406b SHA256 9e45c16a6a30cc6de000a20fefb24eddbb4792d621f9ec71a4b2acd3e00f0e24
 
AUX e2fsprogs-1.41.3-tune2fs-opt.patch 3027 RMD160 98c7ea72fc19f262b9965ef940629958de753844 SHA1 db9fcb2c696bcb71009b7ff4ecb630996712a59a SHA256 c4e7966c674d7853d03c5af5f431ffef54d463870793d8a7a7784874486bb4e1
 
DIST e2fsprogs-1.41.3.tar.gz 4365234 RMD160 7045401ac70a7aa865a8040da4aca2683204abd6 SHA1 d85f05b7bcef1adf8306a789f3ac0325c3c67e8d SHA256 ce77edae680d090cb8275eca9be282bdbc5fbef028d7bf6f772fb4f04b578d7a
 
DIST e2fsprogs-1.41.4.tar.gz 4389512 RMD160 da1f77f0a41a0047b86bf540bfb484622efd79fd SHA1 55da145bce7b024ab609aa4a6fc8be81a2bb3490 SHA256 2cc10fee2b29add737e454eb634513135b34a638f7ca2b18364864fe089020dc
 
EBUILD e2fsprogs-1.41.3-r1.ebuild 3942 RMD160 5215d553a5883e8451faa956d711c1a620ce5775 SHA1 f07365ad20fdc10a6310955ef625247e0f677d29 SHA256 ef6f31c1984c23b7957a67bf793e7f9152c70f826e78a9dfec56226a5c4b19b6
 
EBUILD e2fsprogs-1.41.3.ebuild 3885 RMD160 94e8a89ffaf648be2a14afc6d39f69f52feac364 SHA1 3033bcc9247be1d2bdba3a960ccbe549797d4a01 SHA256 799f74fd38a37fed4479d930cb6bb23cbd2eb911ce4693dc206cb5f9f4d3bcc6
 
EBUILD e2fsprogs-1.41.4.ebuild 3855 RMD160 bce428ae22810a9d1ad0a322a1664165d24ecf51 SHA1 c27a0d9e4cc279dbb3368ed0e69ec79adb57861c SHA256 1fb24a9d725123b50d8513010de2b1165d0b8c051221495c607f6a7bb77ad317
 
MISC ChangeLog 525 RMD160 12091601ac8d1d4792d0bed6970458ab76da8bb2 SHA1 40b601623ba4a5c19e8dff6970be75cd04225c9e SHA256 1dfdeaf5f8296361d57ca1442190e715115b1db1101b32b37af9db75c9caaadd
 
MISC ChangeLog 728 RMD160 b995ed9f372193149889351acf74957d0a80b303 SHA1 5c5368762033157e9dc5c5cf25ff028129984e32 SHA256 58f2d09299f77021b109e0690c30b92f5840a40673b4ddd2ea26951de962b14c
 
MISC metadata.xml 159 RMD160 f10ed331bd974e86e8c4596a8a52e300f40aec97 SHA1 84133adb2dda5a115dd082b76b119516e3154cef SHA256 8d195cad36f7f93232fa3b2523bd2f55d5ff84e843087433aa12cbb9af40e3ce
sys-fs/e2fsprogs/e2fsprogs-1.41.3-r1.ebuild
Show inline comments
 
new file 100644
 
# Copyright 1999-2009 Gentoo Foundation
 
# Distributed under the terms of the GNU General Public License v2
 
# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.41.3-r1.ebuild,v 1.8 2009/03/17 10:23:45 armin76 Exp $
 

	
 
inherit eutils flag-o-matic toolchain-funcs multilib
 

	
 
DESCRIPTION="Standard EXT2 and EXT3 filesystem utilities"
 
HOMEPAGE="http://e2fsprogs.sourceforge.net/"
 
SRC_URI="mirror://sourceforge/e2fsprogs/${P}.tar.gz"
 

	
 
LICENSE="GPL-2 BSD"
 
SLOT="0"
 
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~x86-fbsd"
 
IUSE="nls elibc_FreeBSD"
 

	
 
RDEPEND="~sys-libs/${PN}-libs-${PV}
 
	nls? ( virtual/libintl )"
 
DEPEND="${RDEPEND}
 
	nls? ( sys-devel/gettext )
 
	sys-apps/texinfo"
 

	
 
pkg_setup() {
 
	if [[ ! -e ${ROOT}/etc/mtab ]] ; then
 
		# add some crap to deal with missing /etc/mtab #217719
 
		ewarn "No /etc/mtab file, creating one temporarily"
 
		echo "${PN} crap for src_test" > "${ROOT}"/etc/mtab
 
	fi
 
}
 

	
 
src_unpack() {
 
	unpack ${A}
 
	cd "${S}"
 
	epatch "${FILESDIR}"/${PN}-1.38-tests-locale.patch #99766
 
	epatch "${FILESDIR}"/${PN}-1.41.2-makefile.patch
 
	epatch "${FILESDIR}"/${PN}-1.40-fbsd.patch
 
	epatch "${FILESDIR}"/${PN}-1.41.3-tst_csum.patch
 
	epatch "${FILESDIR}"/${P}-tune2fs-opt.patch #253162
 
	# blargh ... trick e2fsprogs into using e2fsprogs-libs
 
	rm -rf doc
 
	sed -i -r \
 
		-e 's:@LIBINTL@:@LTLIBINTL@:' \
 
		-e '/^LIB(BLKID|COM_ERR|SS|UUID)/s:[$][(]LIB[)]/lib([^@]*)@LIB_EXT@:-l\1:' \
 
		-e '/^DEPLIB(BLKID|COM_ERR|SS|UUID)/s:=.*:=:' \
 
		MCONFIG.in || die "muck libs" #122368
 
	sed -i -r \
 
		-e '/^LIB_SUBDIRS/s:lib/(blkid|et|ss|uuid)::g' \
 
		Makefile.in || die "remove subdirs"
 
	touch lib/ss/ss_err.h
 
}
 

	
 
src_compile() {
 
	# Keep the package from doing silly things
 
	addwrite /var/cache/fonts
 
	export LDCONFIG=:
 
	export CC=$(tc-getCC)
 
	export STRIP=:
 

	
 
	# We want to use the "bsd" libraries while building on Darwin, but while
 
	# building on other Gentoo/*BSD we prefer elf-naming scheme.
 
	local libtype
 
	case ${CHOST} in
 
		*-darwin*) libtype=bsd;;
 
		*)         libtype=elf;;
 
	esac
 

	
 
	econf \
 
		--bindir=/bin \
 
		--sbindir=/sbin \
 
		--enable-${libtype}-shlibs \
 
		--with-ldopts="${LDFLAGS}" \
 
		$(use_enable !elibc_uclibc tls) \
 
		--without-included-gettext \
 
		$(use_enable nls) \
 
		$(use_enable userland_GNU fsck) \
 
		|| die
 
	if [[ ${CHOST} != *-uclibc ]] && grep -qs 'USE_INCLUDED_LIBINTL.*yes' config.{log,status} ; then
 
		eerror "INTL sanity check failed, aborting build."
 
		eerror "Please post your ${S}/config.log file as an"
 
		eerror "attachment to http://bugs.gentoo.org/show_bug.cgi?id=81096"
 
		die "Preventing included intl cruft from building"
 
	fi
 
	emake COMPILE_ET=compile_et MK_CMDS=mk_cmds || die
 

	
 
	# Build the FreeBSD helper
 
	if use elibc_FreeBSD ; then
 
		cp "${FILESDIR}"/fsck_ext2fs.c .
 
		emake fsck_ext2fs || die
 
	fi
 
}
 

	
 
pkg_preinst() {
 
	if [[ -r ${ROOT}/etc/mtab ]] ; then
 
		if [[ $(<"${ROOT}"/etc/mtab) == "${PN} crap for src_test" ]] ; then
 
			rm -f "${ROOT}"/etc/mtab
 
		fi
 
	fi
 
}
 

	
 
src_install() {
 
	emake DESTDIR="${D}" install || die
 
	emake DESTDIR="${D}" install-libs || die
 
	dodoc README RELEASE-NOTES
 

	
 
	# Move shared libraries to /lib/, install static libraries to /usr/lib/,
 
	# and install linker scripts to /usr/lib/.
 
	dodir /$(get_libdir)
 
	local lib slib
 
	for lib in "${D}"/usr/$(get_libdir)/*.a ; do
 
		slib=${lib##*/}
 
		mv "${lib%.a}"$(get_libname)* "${D}"/$(get_libdir)/ || die "moving lib ${slib}"
 
		gen_usr_ldscript ${slib%.a}$(get_libname)
 
	done
 

	
 
	# move 'useless' stuff to /usr/
 
	dosbin "${D}"/sbin/mklost+found
 
	rm -f "${D}"/sbin/mklost+found
 

	
 
	if use elibc_FreeBSD ; then
 
		# Install helpers for us
 
		into /
 
		dosbin "${S}"/fsck_ext2fs || die
 
		doman "${FILESDIR}"/fsck_ext2fs.8
 

	
 
		# these manpages are already provided by FreeBSD libc
 
		# and filefrag is linux only
 
		rm -f \
 
			"${D}"/sbin/filefrag \
 
			"${D}"/usr/share/man/man8/filefrag.8 \
 
			"${D}"/bin/uuidgen \
 
			"${D}"/usr/share/man/man3/{uuid,uuid_compare}.3 \
 
			"${D}"/usr/share/man/man1/uuidgen.1 || die
 
	fi
 
}
sys-fs/e2fsprogs/files/e2fsprogs-1.41.3-tune2fs-opt.patch
Show inline comments
 
new file 100644
 
http://bugs.gentoo.org/253162
 

	
 
From 27c6de45a4187a348ec0960472d4a113ee6ea425 Mon Sep 17 00:00:00 2001
 
From: Theodore Ts'o <tytso@mit.edu>
 
Date: Sat, 15 Nov 2008 00:32:39 -0500
 
Subject: [PATCH] tune2fs: Fix inefficient O(n**2) algorithms when expanding the inode size
 

	
 
When running "tune2fs -I 256" on moderate to large filesystems, the
 
time required to run tune2fs can take many hours (20+ before some
 
users gave up in disgust).  This was due to some O(n**2) and O(n*m)
 
algorithms in move_block() and inode_scan_and_fix(), respectively.
 

	
 
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
 
---
 
 misc/tune2fs.c |   25 +++++++++++++------------
 
 1 files changed, 13 insertions(+), 12 deletions(-)
 

	
 
diff --git a/misc/tune2fs.c b/misc/tune2fs.c
 
index b29b344..e72518a 100644
 
--- a/misc/tune2fs.c
 
+++ b/misc/tune2fs.c
 
@@ -1011,13 +1011,13 @@ static int move_block(ext2_filsys fs, ext2fs_block_bitmap bmap)
 
 	if (retval)
 
 		return retval;
 
 
 
-	for (blk = fs->super->s_first_data_block;
 
-			blk < fs->super->s_blocks_count; blk++) {
 
+	for (new_blk = blk = fs->super->s_first_data_block;
 
+	     blk < fs->super->s_blocks_count; blk++) {
 
 
 
 		if (!ext2fs_test_block_bitmap(bmap, blk))
 
 			continue;
 
 
 
-		retval = ext2fs_new_block(fs, blk, NULL, &new_blk);
 
+		retval = ext2fs_new_block(fs, new_blk, NULL, &new_blk);
 
 		if (retval)
 
 			goto err_out;
 
 
 
@@ -1068,12 +1068,14 @@ static int process_block(ext2_filsys fs EXT2FS_ATTR((unused)),
 
 			 e2_blkcnt_t blockcnt EXT2FS_ATTR((unused)),
 
 			 blk_t ref_block EXT2FS_ATTR((unused)),
 
 			 int ref_offset EXT2FS_ATTR((unused)),
 
-			 void *priv_data EXT2FS_ATTR((unused)))
 
+			 void *priv_data)
 
 {
 
 	int ret = 0;
 
 	blk_t new_blk;
 
+	ext2fs_block_bitmap bmap = (ext2fs_block_bitmap) priv_data;
 
 
 
-
 
+	if (!ext2fs_test_block_bitmap(bmap, *block_nr))
 
+		return 0;
 
 	new_blk = transalate_block(*block_nr);
 
 	if (new_blk) {
 
 		*block_nr = new_blk;
 
@@ -1086,7 +1088,7 @@ static int process_block(ext2_filsys fs EXT2FS_ATTR((unused)),
 
 	return ret;
 
 }
 
 
 
-static int inode_scan_and_fix(ext2_filsys fs)
 
+static int inode_scan_and_fix(ext2_filsys fs, ext2fs_block_bitmap bmap)
 
 {
 
 	errcode_t retval = 0;
 
 	ext2_ino_t ino;
 
@@ -1122,8 +1124,8 @@ static int inode_scan_and_fix(ext2_filsys fs)
 
 		 * Do we need to fix this ??
 
 		 */
 
 
 
-		if (inode.i_file_acl) {
 
-
 
+		if (inode.i_file_acl &&
 
+		    ext2fs_test_block_bitmap(bmap, inode.i_file_acl)) {
 
 			blk = transalate_block(inode.i_file_acl);
 
 			if (!blk)
 
 				continue;
 
@@ -1142,9 +1144,8 @@ static int inode_scan_and_fix(ext2_filsys fs)
 
 		if (!ext2fs_inode_has_valid_blocks(&inode))
 
 			continue;
 
 
 
-		retval = ext2fs_block_iterate2(fs, ino, 0,
 
-						block_buf, process_block,
 
-						0);
 
+		retval = ext2fs_block_iterate2(fs, ino, 0, block_buf,
 
+					       process_block, bmap);
 
 		if (retval)
 
 			goto err_out;
 
 
 
@@ -1344,7 +1345,7 @@ static int resize_inode(ext2_filsys fs, unsigned long new_size)
 
 	if (retval)
 
 		goto err_out;
 
 
 
-	retval = inode_scan_and_fix(fs);
 
+	retval = inode_scan_and_fix(fs, bmap);
 
 	if (retval)
 
 		goto err_out;
 
 
 
-- 
 
1.6.0.6
 

	
0 comments (0 inline, 0 general)