mpicoder bounds error fixed per bug #113521
authorDaniel Black <dragonheart@gentoo.org>
Fri, 25 Nov 2005 09:36:31 +0000 (09:36 +0000)
committerDaniel Black <dragonheart@gentoo.org>
Fri, 25 Nov 2005 09:36:31 +0000 (09:36 +0000)
Package-Manager: portage-2.0.53_rc7

app-crypt/gnupg/ChangeLog
app-crypt/gnupg/Manifest
app-crypt/gnupg/files/digest-gnupg-1.4.2-r3 [new file with mode: 0644]
app-crypt/gnupg/files/gnupg-1.4.2-mpicoder.patch [new file with mode: 0644]
app-crypt/gnupg/gnupg-1.4.2-r3.ebuild [new file with mode: 0644]

index 61c35862be0713b6e1e0e439875b8f5ffe81f94c..3b1cc6a7f0a095e4e8314aa5a40f8bdbb96f9521 100644 (file)
@@ -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 <dragonheart@gentoo.org>
+  +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 <dragonheart@gentoo.org> gnupg-1.4.2-r2.ebuild:
   determine kernel version from running version rather than /usr/src/linux -
index 3b3b1f18a19c7af18d2e1a7aa6764afa9ccccc83..70937758f170d7e12073e8f73287f4d86819433a 100644 (file)
@@ -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 (file)
index 0000000..181255e
--- /dev/null
@@ -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 (file)
index 0000000..f328371
--- /dev/null
@@ -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 (file)
index 0000000..5402e55
--- /dev/null
@@ -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
+}