From ad6f5e13fc8b50a3dc5b72d2af96a28b403af6ea Mon Sep 17 00:00:00 2001 From: Daniel Black Date: Fri, 25 Nov 2005 09:36:31 +0000 Subject: [PATCH] mpicoder bounds error fixed per bug #113521 Package-Manager: portage-2.0.53_rc7 --- app-crypt/gnupg/ChangeLog | 8 +- app-crypt/gnupg/Manifest | 11 +- app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 | 3 + .../gnupg/files/gnupg-1.4.2-mpicoder.patch | 37 +++ app-crypt/gnupg/gnupg-1.4.2-r3.ebuild | 235 ++++++++++++++++++ 5 files changed, 289 insertions(+), 5 deletions(-) create mode 100644 app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 create mode 100644 app-crypt/gnupg/files/gnupg-1.4.2-mpicoder.patch create mode 100644 app-crypt/gnupg/gnupg-1.4.2-r3.ebuild diff --git a/app-crypt/gnupg/ChangeLog b/app-crypt/gnupg/ChangeLog index 61c35862be07..3b1cc6a7f0a0 100644 --- a/app-crypt/gnupg/ChangeLog +++ b/app-crypt/gnupg/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for app-crypt/gnupg # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/app-crypt/gnupg/ChangeLog,v 1.140 2005/11/25 08:18:12 dragonheart Exp $ +# $Header: /var/cvsroot/gentoo-x86/app-crypt/gnupg/ChangeLog,v 1.141 2005/11/25 09:36:31 dragonheart Exp $ + +*gnupg-1.4.2-r3 (25 Nov 2005) + + 25 Nov 2005; Daniel Black + +files/gnupg-1.4.2-mpicoder.patch, +gnupg-1.4.2-r3.ebuild: + mpicoder bounds error fixed per bug #113521 thanks to Phil Pennock 25 Nov 2005; Daniel Black gnupg-1.4.2-r2.ebuild: determine kernel version from running version rather than /usr/src/linux - diff --git a/app-crypt/gnupg/Manifest b/app-crypt/gnupg/Manifest index 3b3b1f18a19c..70937758f170 100644 --- a/app-crypt/gnupg/Manifest +++ b/app-crypt/gnupg/Manifest @@ -1,12 +1,13 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 -MD5 60e8b4481160e20d4eff987814019d32 ChangeLog 23090 +MD5 8391dcd3181babfe23be5aed8bad70fa ChangeLog 23305 MD5 c3a43a1e5da266ef33222f721e05fd63 files/digest-gnupg-1.2.6 117 MD5 4b92f911e900cfd1a37439bd19412f5d files/digest-gnupg-1.4.1 190 MD5 4b92f911e900cfd1a37439bd19412f5d files/digest-gnupg-1.4.1-r1 190 MD5 331553038bdcb95cc843c60b01b73925 files/digest-gnupg-1.4.2-r1 190 MD5 f972c88baf3f90f8ef0953df6f328e28 files/digest-gnupg-1.4.2-r2 190 +MD5 f972c88baf3f90f8ef0953df6f328e28 files/digest-gnupg-1.4.2-r3 190 MD5 7247c8f0379977f0a3dd13568bf283c7 files/digest-gnupg-1.9.18 66 MD5 28ad3af724b879fe86743d59ae4447dd files/digest-gnupg-1.9.19 66 MD5 dd317d852aed29e96c5a542f00d0766e files/gnupg-1.2.6-ppc64.patch 454 @@ -14,19 +15,21 @@ MD5 494103ac08d870d8a9c1ed0b83c4ae35 files/gnupg-1.4.1-selftest.patch 1180 MD5 e893ac3e7a6b11ab9806e16d3a8582fd files/gnupg-1.4.2-badruman.patch 463 MD5 c23d51ccf048f10b5e8b10b45570c13a files/gnupg-1.4.2-jari.patch 370 MD5 ee3a4487eadfb9858f32adde3554394c files/gnupg-1.4.2-keyserver.patch 389 +MD5 fb96d149b5fc7dacc041dda2a57b2315 files/gnupg-1.4.2-mpicoder.patch 991 MD5 552b43a0705ea006efa282b7d5645143 files/gnupg-1.4.2-selftest.patch 1358 MD5 3dedd2cc4e62aef96d919c74970e758b gnupg-1.2.6.ebuild 3795 MD5 c77b579997468bf58a6fc5a5e1a2fb00 gnupg-1.4.1-r1.ebuild 6272 MD5 6f5e7ed6dfb1ae31f877486a9ff7e441 gnupg-1.4.1.ebuild 6186 MD5 ffd1a6a73df273ee13e112dc428eb06c gnupg-1.4.2-r1.ebuild 6241 MD5 001a6a11b695f1715cf00856b26f8ed6 gnupg-1.4.2-r2.ebuild 6794 +MD5 0491da48f2185bad83ec20d46441d1c3 gnupg-1.4.2-r3.ebuild 6839 MD5 3fd02f30190d0919bf9a5972d40182c2 gnupg-1.9.18.ebuild 3205 MD5 81178f9c770262366fc26114d53efc13 gnupg-1.9.19.ebuild 3205 MD5 b507ee36c7487372de42cc9dab034370 metadata.xml 481 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2-ecc0.1.6 (GNU/Linux) -iD8DBQFDhsjRmdTrptrqvGERAvDxAJwNjIp910o/E3f3duACgTzNJ73YJQCdGzHn -kdNLKjoklfSo3g/PcAaDcao= -=XVdC +iD8DBQFDhts2mdTrptrqvGERAqr4AKCbqJ52KIYdoja3iH54Zk3uORcEtgCglgKb +eLy17XPQud6rYNTLWEioFts= +=bW6X -----END PGP SIGNATURE----- diff --git a/app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 b/app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 new file mode 100644 index 000000000000..181255e43f2e --- /dev/null +++ b/app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 @@ -0,0 +1,3 @@ +MD5 4e7e9d224879e5a3e01cb2ab4c719559 gnupg-1.4.0-ecc0.1.6.diff.bz2 16703 +MD5 c7afd50c7d01fcfada229326b3958404 gnupg-1.4.2.tar.bz2 2891177 +MD5 9dc3bc086824a8c7a331f35e09a3e57f idea.c.gz 5216 diff --git a/app-crypt/gnupg/files/gnupg-1.4.2-mpicoder.patch b/app-crypt/gnupg/files/gnupg-1.4.2-mpicoder.patch new file mode 100644 index 000000000000..f328371b6e57 --- /dev/null +++ b/app-crypt/gnupg/files/gnupg-1.4.2-mpicoder.patch @@ -0,0 +1,37 @@ +diff -urNad gnupg-1.4.2~/mpi/mpicoder.c gnupg-1.4.2/mpi/mpicoder.c +--- gnupg-1.4.2~/mpi/mpicoder.c 2005-05-31 06:30:05.000000000 +0000 ++++ gnupg-1.4.2/mpi/mpicoder.c 2005-09-29 00:52:19.000000000 +0000 +@@ -80,16 +80,20 @@ + mpi_limb_t a; + MPI val = MPI_NULL; + ++ if (nread == nmax) ++ goto overflow; + if( (c = iobuf_get(inp)) == -1 ) + goto leave; +- if (++nread >= nmax) +- goto overflow; ++ nread++; + nbits = c << 8; ++ ++ if (nread == nmax) ++ goto overflow; + if( (c = iobuf_get(inp)) == -1 ) + goto leave; +- if (++nread >= nmax) +- goto overflow; ++ nread++; + nbits |= c; ++ + if( nbits > MAX_EXTERN_MPI_BITS ) { + log_error("mpi too large for this implementation (%u bits)\n", nbits); + goto leave; +@@ -112,7 +116,7 @@ + for( ; j > 0; j-- ) { + a = 0; + for(; i < BYTES_PER_MPI_LIMB; i++ ) { +- if (nread >= nmax) { ++ if (nread == nmax) { + #ifdef M_DEBUG + mpi_debug_free (val); + #else \ No newline at end of file diff --git a/app-crypt/gnupg/gnupg-1.4.2-r3.ebuild b/app-crypt/gnupg/gnupg-1.4.2-r3.ebuild new file mode 100644 index 000000000000..5402e5554b43 --- /dev/null +++ b/app-crypt/gnupg/gnupg-1.4.2-r3.ebuild @@ -0,0 +1,235 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-crypt/gnupg/gnupg-1.4.2-r3.ebuild,v 1.1 2005/11/25 09:36:31 dragonheart Exp $ + +inherit eutils flag-o-matic linux-info + +ECCVER=0.1.6 +ECCVER_GNUPG=1.4.0 + +DESCRIPTION="The GNU Privacy Guard, a GPL pgp replacement" +HOMEPAGE="http://www.gnupg.org/" +SRC_URI="mirror://gnupg/gnupg/${P}.tar.bz2 + idea? ( ftp://ftp.gnupg.dk/pub/contrib-dk/idea.c.gz ) + ecc? ( http://alumnes.eps.udl.es/%7Ed4372211/src/${PN}-${ECCVER_GNUPG}-ecc${ECCVER}.diff.bz2 )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sparc ~x86" +IUSE="bzip2 caps curl ecc idea ldap nls readline selinux smartcard static usb zlib X" + +COMMON_DEPEND=" + ldap? ( net-nds/openldap ) + bzip2? ( app-arch/bzip2 ) + zlib? ( sys-libs/zlib ) + nls? ( sys-devel/gettext ) + curl? ( net-misc/curl ) + virtual/libc + virtual/mta + readline? ( sys-libs/readline ) + smartcard? ( dev-libs/libusb ) + usb? ( dev-libs/libusb )" + +RDEPEND="!static? ( + ${COMMON_DEPEND} + X? ( || ( media-gfx/xloadimage media-gfx/xli ) ) + ) + selinux? ( sec-policy/selinux-gnupg )" + +DEPEND="${COMMON_DEPEND} + dev-lang/perl" + +pkg_setup() { + # fix bug #113474 - no compiled kernel needed now + get_running_version + +} + +src_unpack() { + unpack ${A} + + # Jari's patch to boost iterated key setup by factor of 128 + EPATCH_OPTS="-p1 -d ${S}" epatch ${FILESDIR}/${P}-jari.patch + + if use idea; then + ewarn "Please read http://www.gnupg.org/why-not-idea.html" + mv ${WORKDIR}/idea.c ${S}/cipher/idea.c || \ + ewarn "failed to insert IDEA module" + fi + + if use ecc; then + # this trickery is because the only reject in the 1.4.0 patch is the + # version number! + local eccpatch=${WORKDIR}/${PN}-${ECCVER_GNUPG}-ecc${ECCVER}.diff + if [ "${ECCVER_GNUPG}" != "${PV}" ]; then + einfo "Tweaking PV in ECC patch" + sed -i "s/ VERSION='${ECCVER_GNUPG}/ VERSION='${PV}/g" $eccpatch + fi + EPATCH_OPTS="-p1 -d ${S}" epatch $eccpatch + fi + + # maketest fix + epatch ${FILESDIR}/${P}-selftest.patch + + # install RU man page in right location + epatch ${FILESDIR}/${P}-badruman.patch + + cd ${S} + # keyserver fix + epatch ${FILESDIR}/${P}-keyserver.patch + + epatch ${FILESDIR}/${P}-mpicoder.patch + + # Fix PIC definitions + sed -i -e 's:PIC:__PIC__:' mpi/i386/mpih-{add,sub}1.S intl/relocatable.c + sed -i -e 's:if PIC:ifdef __PIC__:' mpi/sparc32v8/mpih-mul{1,2}.S +} + +src_compile() { + # Certain sparc32 machines seem to have trouble building correctly with + # -mcpu enabled. While this is not a gnupg problem, it is a temporary + # fix until the gcc problem can be tracked down. + if [ "${ARCH}" == "sparc" ] && [ "${PROFILE_ARCH}" == "sparc" ]; then + filter-flags -mcpu=supersparc -mcpu=v8 -mcpu=v7 + fi + + # 'USE=static' support was requested in #29299 + use static &&append-ldflags -static + + # Still needed? + # Bug #6387, --enable-m-guard causes bus error on sparcs + use sparc || myconf="${myconf} --enable-m-guard" + + use ppc-macos || append-ldflags -Wl,-z,now + + # configure doesn't trean --disable-asm correctly + use x86 && myconf="${myconf} --enable-asm" + + # fix compile problem on ppc64 + use ppc64 && myconf="${myconf} --disable-asm" + + econf \ + $(use_enable ldap) \ + --enable-mailto \ + --enable-hkp \ + --enable-finger \ + $(use_with !zlib included-zlib) \ + $(use_with curl libcurl /usr) \ + $(use_enable nls) \ + $(use_enable bzip2) \ + $(use_enable smartcard card-support) \ + $(use_enable selinux selinux-support) \ + $(use_with caps capabilities) \ + $(use_with readline) \ + $(use_with usb libusb /usr) \ + $(use_enable static) \ + $(use_enable X photo-viewers) \ + --enable-static-rnd=linux \ + --libexecdir=/usr/libexec \ + --enable-sha512 \ + ${myconf} || die + # this is because it will run some tests directly + gnupg_fixcheckperms + emake || die +} + +src_install() { + gnupg_fixcheckperms + make DESTDIR=${D} install || die + + # caps support makes life easier + if ! use caps && kernel_is lt 2 6 9 + then + ewarn "installing gpg suid for memory space protection" + fperms u+s,go-r /usr/bin/gpg + fi + + # keep the documentation in /usr/share/doc/... + rm -rf "${D}/usr/share/gnupg/FAQ" "${D}/usr/share/gnupg/faq.html" + + dodoc AUTHORS BUGS ChangeLog NEWS PROJECTS README THANKS \ + TODO VERSION doc/{FAQ,HACKING,DETAILS,ChangeLog,OpenPGP,faq.raw} + + docinto sgml + dodoc doc/*.sgml + + dohtml doc/faq.html + + # install RU documentation in right location + if use lingas_ru + then + cp doc/gpg.ru.1 ${T}/gpg.1 + doman -i18n=ru ${T}/gpg.1 + fi + + # Remove collissions + if use ppc-macos; then + rm ${D}/usr/lib/charset.alias ${D}/usr/share/locale/locale.alias + fi +} + +gnupg_fixcheckperms() { + # GnuPG does weird things for testing that it build correctly + # as we as for the additional tests. It WILL fail with perms 770 :-(. + # See bug #80044 + if has userpriv ${FEATURES}; then + einfo "Fixing permissions in check directory" + chown -R portage:portage ${S}/checks + chmod -R ugo+rw ${S}/checks + chmod ugo+rw ${S}/checks + fi +} + +src_test() { + gnupg_fixcheckperms + einfo "Running tests" + emake check + ret=$? + if [ $ret -ne 0 ]; then + die "Some tests failed! Please report to the Gentoo Bugzilla" + fi +} + +pkg_postinst() { + if ! use caps && kernel_is lt 2 6 9 + then + chmod u+s,go-r ${ROOT}/usr/bin/gpg + einfo "gpg is installed suid root to make use of protected memory space" + einfo "This is needed in order to have a secure place to store your" + einfo "passphrases, etc. at runtime but may make some sysadmins nervous." + else + chmod u-s,go-r ${ROOT}/usr/bin/gpg + fi + echo + if use idea; then + einfo "-----------------------------------------------------------------------------------" + einfo "IDEA" + ewarn "you have compiled ${PN} with support for the IDEA algorithm, this code" + ewarn "is distributed under the GPL in countries where it is permitted to do so" + ewarn "by law." + einfo + einfo "Please read http://www.gnupg.org/why-not-idea.html for more information." + einfo + ewarn "If you are in a country where the IDEA algorithm is patented, you are permitted" + ewarn "to use it at no cost for 'non revenue generating data transfer between private" + ewarn "individuals'." + einfo + einfo "Countries where the patent applies are listed here" + einfo "http://www.mediacrypt.com/_contents/10_idea/101030_ea_pi.asp" + einfo + einfo "Further information and other licenses are availble from http://www.mediacrypt.com/" + einfo "-----------------------------------------------------------------------------------" + fi + if use ecc; then + einfo + ewarn "The elliptical curves patch is experimental" + einfo "Further info available at http://alumnes.eps.udl.es/%7Ed4372211/index.en.html" + fi + if use caps; then + einfo + ewarn "Capabilities code is experimental" + fi + einfo + einfo "See http://www.gentoo.org/doc/en/gnupg-user.xml for documentation on gnupg" + einfo +} -- 2.26.2