summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris PeBenito <pebenito@gentoo.org>2004-01-14 23:44:08 +0000
committerChris PeBenito <pebenito@gentoo.org>2004-01-14 23:44:08 +0000
commit6d121436cca1f873ddb9d9a0374cf2bfd3d47ce9 (patch)
tree63f4f6b9eb049e1cbefe2ce98362c8f9d371a892 /sys-fs/e2fsprogs
parentMasked for testing on all platforms even though it's technically only tested ... (diff)
downloadgentoo-2-6d121436cca1f873ddb9d9a0374cf2bfd3d47ce9.tar.gz
gentoo-2-6d121436cca1f873ddb9d9a0374cf2bfd3d47ce9.tar.bz2
gentoo-2-6d121436cca1f873ddb9d9a0374cf2bfd3d47ce9.zip
Add fix to handle symlinks with extended attributes correctly on big endian systems
Diffstat (limited to 'sys-fs/e2fsprogs')
-rw-r--r--sys-fs/e2fsprogs/ChangeLog9
-rw-r--r--sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild121
-rw-r--r--sys-fs/e2fsprogs/files/digest-e2fsprogs-1.34-r11
-rw-r--r--sys-fs/e2fsprogs/files/e2fsprogs-1.34-swap-symlink.diff28
4 files changed, 158 insertions, 1 deletions
diff --git a/sys-fs/e2fsprogs/ChangeLog b/sys-fs/e2fsprogs/ChangeLog
index bd5097496e46..6edcfcc43b8e 100644
--- a/sys-fs/e2fsprogs/ChangeLog
+++ b/sys-fs/e2fsprogs/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for sys-fs/e2fsprogs
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/ChangeLog,v 1.13 2004/01/10 00:33:45 gustavoz Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/ChangeLog,v 1.14 2004/01/14 23:44:08 pebenito Exp $
+
+*e2fsprogs-1.34-r1 (14 Jan 2004)
+
+ 14 Jan 2004; Chris PeBenito <pebenito@gentoo.org> e2fsprogs-1.34-r1.ebuild,
+ files/e2fsprogs-1.34-swap-symlink.diff:
+ Add fix to handle symlinks with extended attributes correctly on big endian
+ systems.
09 Jan 2004; <gustavoz@gentoo.org> e2fsprogs-1.34.ebuild:
marked stable for hppa
diff --git a/sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild b/sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild
new file mode 100644
index 000000000000..a7b2fe71a42c
--- /dev/null
+++ b/sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2004 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild,v 1.1 2004/01/14 23:44:08 pebenito Exp $
+
+inherit eutils
+
+IUSE="nls static"
+
+DESCRIPTION="Standard EXT2 and EXT3 filesystem utilities"
+HOMEPAGE="http://e2fsprogs.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
+RESTRICT="nomirror"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~x86 ~amd64 ~hppa ~ppc ~ia64 ~sparc ~mips ~ppc64"
+
+#debianutils is for 'readlink'
+DEPEND="${DEPEND}
+ virtual/glibc
+ nls? ( sys-devel/gettext )
+ sys-apps/debianutils
+ sys-apps/texinfo"
+RDEPEND="virtual/glibc"
+
+src_unpack() {
+ unpack ${A}
+ # Fix a cosmetic error in mk_cmds's help output.
+ cd ${S}; epatch ${FILESDIR}/e2fsprogs-1.32-mk_cmds-cosmetic.patch
+ # Needed for 2.6 support:
+ epatch ${FILESDIR}/${P}-kernel-2.6-fix.patch
+ # Big endian fix for symlinks with extended attributes
+ epatch ${FILESDIR}/e2fsprogs-1.34-swap-symlink.diff
+ # Userpriv fix. Closes #27348
+ chmod u+w po/*.po
+ # Patch to make the configure and sed scripts more friendly to,
+ # for example, the Estonian locale
+ epatch ${FILESDIR}/${PN}-sed-locale.patch
+}
+
+src_compile() {
+ local myconf
+
+ use static \
+ && myconf="${myconf} --with-ldopts=-static" \
+ || myconf="${myconf} --enable-dynamic-e2fsck --enable-elf-shlibs"
+
+ econf \
+ `use_enable nls` \
+ ${myconf} || die
+
+ # Parallel make sometimes fails
+ MAKEOPTS="-j1" emake || die
+}
+
+src_install() {
+ einstall libdir=zapme || die
+ #evil e2fsprogs makefile -- I'll get you!
+ rm -rf ${D}/zapme
+
+ make DESTDIR=${D} install-libs || die
+
+ #There is .po file b0rkage with 1.33; commenting this out (drobbins, 21 Apr 2003)
+ #if use nls; then
+ # make -C po DESTDIR=${D} install || die
+ #fi
+
+ dodoc COPYING ChangeLog README RELEASE-NOTES SHLIBS
+ docinto e2fsck
+ dodoc e2fsck/ChangeLog e2fsck/CHANGES
+
+ dodir /lib /bin /sbin
+ cd ${D}/usr/lib
+ mv * ../../lib
+ cd ${D}/lib
+ mv *.a ../usr/lib
+ local mylib=""
+ local x=""
+ #install ldscripts to fix bug #4411
+ cd ${D}/usr/lib
+ for x in *.a
+ do
+ [ ! -f ${x} ] && continue
+ gen_usr_ldscript ${x/a}so
+ done
+ #normalize evil symlinks
+ cd ${D}/lib
+ for x in *
+ do
+ [ ! -L ${x} ] && continue
+ mylib="`readlink ${x}`"
+ mylib="`basename ${mylib}`"
+ ln -sf ${mylib} ${x}
+ done
+
+ mv ${D}/usr/sbin/* ${D}/sbin
+ cd ${D}/usr/bin
+ mv lsattr chattr uuidgen ../../bin
+ cd ${D}/sbin
+ mv mklost+found ../usr/sbin
+ #time to convert hard links/duplicates to symbolic links
+ cd ${D}/sbin
+ rm fsck.*
+ ln -sf e2fsck fsck.ext2
+ ln -sf e2fsck fsck.ext3
+ rm mkfs.*
+ ln -sf mke2fs mkfs.ext2
+ ln -sf mke2fs mkfs.ext3
+
+ # 03 Aug 2002 <raker@gentoo.org>
+ # There are awk files that don't get installed when doing
+ # a 'make install'. They are the template files for
+ # /bin/compile_et.
+
+ cd ${S}/lib/et
+ insinto /usr/share/et
+ doins et_c.awk et_h.awk
+ cd ${S}/lib/ss
+ insinto /usr/share/ss
+ doins ct_c.awk
+}
diff --git a/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.34-r1 b/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.34-r1
new file mode 100644
index 000000000000..a0afabeaa2cf
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/digest-e2fsprogs-1.34-r1
@@ -0,0 +1 @@
+MD5 9be9375224f0970a55e39ebebf2a0ce5 e2fsprogs-1.34.tar.gz 3074827
diff --git a/sys-fs/e2fsprogs/files/e2fsprogs-1.34-swap-symlink.diff b/sys-fs/e2fsprogs/files/e2fsprogs-1.34-swap-symlink.diff
new file mode 100644
index 000000000000..27d5956f3786
--- /dev/null
+++ b/sys-fs/e2fsprogs/files/e2fsprogs-1.34-swap-symlink.diff
@@ -0,0 +1,28 @@
+ext2fs_swap_inode assumes that symlinks with i_blocks > 0 are slow. If a
+fast symlink has extended attributes, these are accounted for in
+i_blocks too, so on big endian machines, ext2fs_swap_inode swaps the
+i_block array of fast symlinks.
+
+ Andreas Gruenbacher <agruen@suse.de>, SuSE Labs
+
+--- e2fsprogs-1.34/lib/ext2fs/swapfs.c.orig 2003-08-30 11:33:42.000000000 +0000
++++ e2fsprogs-1.34/lib/ext2fs/swapfs.c 2003-08-30 11:47:57.000000000 +0000
+@@ -75,7 +75,7 @@
+ void ext2fs_swap_inode(ext2_filsys fs, struct ext2_inode *t,
+ struct ext2_inode *f, int hostorder)
+ {
+- unsigned i;
++ unsigned i, xattr_blocks;
+ int islnk = 0;
+
+ if (hostorder && LINUX_S_ISLNK(f->i_mode))
+@@ -93,7 +93,8 @@
+ t->i_links_count = ext2fs_swab16(f->i_links_count);
+ t->i_blocks = ext2fs_swab32(f->i_blocks);
+ t->i_flags = ext2fs_swab32(f->i_flags);
+- if (!islnk || f->i_blocks) {
++ xattr_blocks = (t->i_file_acl) ? (fs->blocksize >> 9) : 0;
++ if (!islnk || t->i_blocks - xattr_blocks) {
+ for (i = 0; i < EXT2_N_BLOCKS; i++)
+ t->i_block[i] = ext2fs_swab32(f->i_block[i]);
+ } else if (t != f) {