diff options
author | Chris PeBenito <pebenito@gentoo.org> | 2004-01-14 23:44:08 +0000 |
---|---|---|
committer | Chris PeBenito <pebenito@gentoo.org> | 2004-01-14 23:44:08 +0000 |
commit | 6d121436cca1f873ddb9d9a0374cf2bfd3d47ce9 (patch) | |
tree | 63f4f6b9eb049e1cbefe2ce98362c8f9d371a892 /sys-fs/e2fsprogs | |
parent | Masked for testing on all platforms even though it's technically only tested ... (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | sys-fs/e2fsprogs/e2fsprogs-1.34-r1.ebuild | 121 | ||||
-rw-r--r-- | sys-fs/e2fsprogs/files/digest-e2fsprogs-1.34-r1 | 1 | ||||
-rw-r--r-- | sys-fs/e2fsprogs/files/e2fsprogs-1.34-swap-symlink.diff | 28 |
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) { |