summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2005-05-19 22:15:15 +0000
committerMike Frysinger <vapier@gentoo.org>2005-05-19 22:15:15 +0000
commita7a76ca014ba8965814552bcf984616f79394795 (patch)
tree13b8e13c177b44c40b24f5be21a0aef815e5eb0f /app-arch
parentNew version (diff)
downloadgentoo-2-a7a76ca014ba8965814552bcf984616f79394795.tar.gz
gentoo-2-a7a76ca014ba8965814552bcf984616f79394795.tar.bz2
gentoo-2-a7a76ca014ba8965814552bcf984616f79394795.zip
Add patch from Redhat to fix CAN-2005-0953.
(Portage version: 2.0.51.22-r1)
Diffstat (limited to 'app-arch')
-rw-r--r--app-arch/bzip2/ChangeLog8
-rw-r--r--app-arch/bzip2/bzip2-1.0.3-r3.ebuild78
-rw-r--r--app-arch/bzip2/files/bzip2-1.0.2-chmod.patch98
-rw-r--r--app-arch/bzip2/files/digest-bzip2-1.0.3-r31
4 files changed, 184 insertions, 1 deletions
diff --git a/app-arch/bzip2/ChangeLog b/app-arch/bzip2/ChangeLog
index 5b890c678c57..7aa1f66dc191 100644
--- a/app-arch/bzip2/ChangeLog
+++ b/app-arch/bzip2/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for app-arch/bzip2
# Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/ChangeLog,v 1.24 2005/05/14 17:36:14 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/ChangeLog,v 1.25 2005/05/19 22:15:15 vapier Exp $
+
+*bzip2-1.0.3-r3 (19 May 2005)
+
+ 19 May 2005; Mike Frysinger <vapier@gentoo.org>
+ +files/bzip2-1.0.2-chmod.patch, +bzip2-1.0.3-r3.ebuild:
+ Add patch from Redhat to fix CAN-2005-0953.
*bzip2-1.0.3-r2 (14 May 2005)
diff --git a/app-arch/bzip2/bzip2-1.0.3-r3.ebuild b/app-arch/bzip2/bzip2-1.0.3-r3.ebuild
new file mode 100644
index 000000000000..dfe226c0b86b
--- /dev/null
+++ b/app-arch/bzip2/bzip2-1.0.3-r3.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-arch/bzip2/bzip2-1.0.3-r3.ebuild,v 1.1 2005/05/19 22:15:15 vapier Exp $
+
+inherit multilib toolchain-funcs flag-o-matic
+
+DESCRIPTION="A high-quality data compressor used extensively by Gentoo Linux"
+HOMEPAGE="http://www.bzip.org/"
+SRC_URI="http://www.bzip.org/${PV}/${P}.tar.gz"
+
+LICENSE="BZIP2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="build static"
+
+DEPEND=""
+
+src_unpack() {
+ unpack ${A}
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-1.0.2-NULL-ptr-check.patch
+ epatch "${FILESDIR}"/${P}-makefile-CFLAGS.patch
+ epatch "${FILESDIR}"/${P}-saneso.patch
+ epatch "${FILESDIR}"/${PN}-1.0.2-progress.patch
+ epatch "${FILESDIR}"/${PN}-1.0.2-chmod.patch
+ sed -i -e 's:\$(PREFIX)/man:\$(PREFIX)/share/man:g' Makefile || die "sed manpath"
+
+ # - Generate symlinks instead of hardlinks
+ # - pass custom variables to control libdir
+ sed -i \
+ -e 's:ln $(PREFIX)/bin/:ln -s :' \
+ -e 's:$(PREFIX)/lib:$(PREFIX)/$(LIBDIR):g' \
+ Makefile || die "sed links"
+
+ # bzip2 will to run itself after it has built itself which we
+ # can't do if we are cross compiling. -solar
+ if [[ -x /bin/bzip2 ]] && tc-is-cross-compiler ; then
+ sed -i -e 's:./bzip2 -:bzip2 -:g' Makefile || die "sed cross-compile"
+ fi
+}
+
+src_compile() {
+ local makeopts="
+ CC=$(tc-getCC)
+ AR=$(tc-getAR)
+ RANLIB=$(tc-getRANLIB)
+ "
+ if ! use build ; then
+ emake ${makeopts} -f Makefile-libbz2_so all || die "Make failed libbz2"
+ fi
+ use static && append-flags -static
+ emake ${makeopts} all || die "Make failed"
+}
+
+src_install() {
+ if ! use build ; then
+ make PREFIX="${D}"/usr LIBDIR=$(get_libdir) install || die
+
+ # move bzip2 binaries to / and use the shared libbz2.so
+ mv "${D}"/usr/bin "${D}"/
+ into /
+ if ! use static ; then
+ newbin bzip2-shared bzip2 || die "dobin shared"
+ fi
+ dolib.so "${S}"/libbz2.so.${PV} || die "dolib shared"
+ for v in ${PV%%.*} ${PV%.*} ; do
+ dosym libbz2.so.${PV} /$(get_libdir)/libbz2.so.${v}
+ done
+
+ dodoc README* CHANGES Y2K_INFO bzip2.txt manual.*
+ else
+ into /
+ dobin bzip2 || die "dobin bzip2"
+ fi
+
+ dosym bzip2 /bin/bzcat
+ dosym bzip2 /bin/bunzip2
+}
diff --git a/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch b/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch
new file mode 100644
index 000000000000..a97a2b486294
--- /dev/null
+++ b/app-arch/bzip2/files/bzip2-1.0.2-chmod.patch
@@ -0,0 +1,98 @@
+Ripped from Fedora for CAN-2005-0953
+
+Fixes race condition in setting permissions.
+
+http://bugzilla.redhat.com/bugzilla/155742
+
+--- bzip2-1.0.2/bzip2.c
++++ bzip2-1.0.2/bzip2.c
+@@ -312,6 +312,7 @@
+
+ static void copyFileName ( Char*, Char* );
+ static void* myMalloc ( Int32 );
++static int applySavedFileAttrToOutputFile ( int fd );
+
+
+
+@@ -457,6 +458,10 @@
+ ret = fflush ( zStream );
+ if (ret == EOF) goto errhandler_io;
+ if (zStream != stdout) {
++ int fd = fileno ( zStream );
++ if (fd < 0) goto errhandler_io;
++ ret = applySavedFileAttrToOutputFile ( fd );
++ if (ret != 0) goto errhandler_io;
+ ret = fclose ( zStream );
+ outputHandleJustInCase = NULL;
+ if (ret == EOF) goto errhandler_io;
+@@ -567,6 +572,12 @@
+
+ closeok:
+ if (ferror(zStream)) goto errhandler_io;
++ if ( stream != stdout) {
++ int fd = fileno ( stream );
++ if (fd < 0) goto errhandler_io;
++ ret = applySavedFileAttrToOutputFile ( fd );
++ if (ret != 0) goto errhandler_io;
++ }
+ ret = fclose ( zStream );
+ if (ret == EOF) goto errhandler_io;
+
+@@ -1125,7 +1136,7 @@
+
+
+ static
+-void applySavedMetaInfoToOutputFile ( Char *dstName )
++void applySavedTimeInfoToOutputFile ( Char *dstName )
+ {
+ # if BZ_UNIX
+ IntNative retVal;
+@@ -1134,16 +1145,26 @@
+ uTimBuf.actime = fileMetaInfo.st_atime;
+ uTimBuf.modtime = fileMetaInfo.st_mtime;
+
+- retVal = chmod ( dstName, fileMetaInfo.st_mode );
+- ERROR_IF_NOT_ZERO ( retVal );
+-
+ retVal = utime ( dstName, &uTimBuf );
+ ERROR_IF_NOT_ZERO ( retVal );
++# endif
++}
++
++static
++int applySavedFileAttrToOutputFile ( int fd )
++{
++# if BZ_UNIX
++ IntNative retVal;
++
++ retVal = fchmod ( fd, fileMetaInfo.st_mode );
++ if (retVal != 0)
++ return retVal;
+
+- retVal = chown ( dstName, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
++ (void) fchown ( fd, fileMetaInfo.st_uid, fileMetaInfo.st_gid );
+ /* chown() will in many cases return with EPERM, which can
+ be safely ignored.
+ */
++ return 0;
+ # endif
+ }
+
+@@ -1366,7 +1387,7 @@
+
+ /*--- If there was an I/O error, we won't get here. ---*/
+ if ( srcMode == SM_F2F ) {
+- applySavedMetaInfoToOutputFile ( outName );
++ applySavedTimeInfoToOutputFile ( outName );
+ deleteOutputOnInterrupt = False;
+ if ( !keepInputFiles ) {
+ IntNative retVal = remove ( inName );
+@@ -1544,7 +1565,7 @@
+ /*--- If there was an I/O error, we won't get here. ---*/
+ if ( magicNumberOK ) {
+ if ( srcMode == SM_F2F ) {
+- applySavedMetaInfoToOutputFile ( outName );
++ applySavedTimeInfoToOutputFile ( outName );
+ deleteOutputOnInterrupt = False;
+ if ( !keepInputFiles ) {
+ IntNative retVal = remove ( inName );
diff --git a/app-arch/bzip2/files/digest-bzip2-1.0.3-r3 b/app-arch/bzip2/files/digest-bzip2-1.0.3-r3
new file mode 100644
index 000000000000..24bf9c7e285a
--- /dev/null
+++ b/app-arch/bzip2/files/digest-bzip2-1.0.3-r3
@@ -0,0 +1 @@
+MD5 8a716bebecb6e647d2e8a29ea5d8447f bzip2-1.0.3.tar.gz 669075