summaryrefslogtreecommitdiff
path: root/testing
diff options
context:
space:
mode:
Diffstat (limited to 'testing')
-rw-r--r--testing/fakeroot/PKGBUILD35
-rw-r--r--testing/fakeroot/fakeroot.install14
-rw-r--r--testing/glibc/PKGBUILD16
-rw-r--r--testing/grep/PKGBUILD33
-rw-r--r--testing/grep/grep.install21
-rw-r--r--testing/less/PKGBUILD30
-rw-r--r--testing/module-init-tools/PKGBUILD39
-rw-r--r--testing/module-init-tools/docfix.patch90
-rw-r--r--testing/module-init-tools/modprobe.conf3
-rw-r--r--testing/mpfr/PKGBUILD38
-rw-r--r--testing/mpfr/mpfr-3.0.1.p4.patch367
-rw-r--r--testing/mpfr/mpfr.install20
12 files changed, 700 insertions, 6 deletions
diff --git a/testing/fakeroot/PKGBUILD b/testing/fakeroot/PKGBUILD
new file mode 100644
index 000000000..2d869d714
--- /dev/null
+++ b/testing/fakeroot/PKGBUILD
@@ -0,0 +1,35 @@
+# $Id: PKGBUILD 128934 2011-06-25 14:19:16Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: Jochem Kossen <j.kossen@home.nl>
+
+pkgname=fakeroot
+pkgver=1.16
+pkgrel=1
+pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
+arch=('i686' 'x86_64')
+license=('GPL')
+url="http://packages.debian.org/fakeroot"
+groups=('base-devel')
+install=fakeroot.install
+depends=('glibc' 'filesystem' 'sed' 'util-linux' 'sh')
+options=('!libtool')
+source=(http://ftp.debian.org/debian/pool/main/f/${pkgname}/${pkgname}_${pkgver}.orig.tar.bz2)
+md5sums=('e8470aa7e965bfc74467de0e594e60b6')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ ./configure --prefix=/usr --libdir=/usr/lib/libfakeroot \
+ --disable-static --with-ipc=sysv
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR=${pkgdir} install
+
+ install -dm755 ${pkgdir}/etc/ld.so.conf.d/
+ echo '/usr/lib/libfakeroot' > ${pkgdir}/etc/ld.so.conf.d/fakeroot.conf
+
+ # install README for sysv/tcp usage
+ install -Dm644 $srcdir/$pkgname-$pkgver/README $pkgdir/usr/share/doc/$pkgname/README
+}
diff --git a/testing/fakeroot/fakeroot.install b/testing/fakeroot/fakeroot.install
new file mode 100644
index 000000000..986c91b06
--- /dev/null
+++ b/testing/fakeroot/fakeroot.install
@@ -0,0 +1,14 @@
+post_install() {
+ sbin/ldconfig -r .
+}
+
+post_upgrade() {
+ if [ "$(vercmp $2 1.14.4-2)" -lt 0 ]; then
+ sed -i -e '/\/usr\/lib\/libfakeroot/d' etc/ld.so.conf
+ fi
+ sbin/ldconfig -r .
+}
+
+pre_remove() {
+ sbin/ldconfig -r .
+}
diff --git a/testing/glibc/PKGBUILD b/testing/glibc/PKGBUILD
index 33810d391..f3a040236 100644
--- a/testing/glibc/PKGBUILD
+++ b/testing/glibc/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 127755 2011-06-18 06:06:01Z allan $
+# $Id: PKGBUILD 128661 2011-06-25 11:56:19Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
@@ -6,7 +6,7 @@
pkgname=glibc
pkgver=2.14
-pkgrel=3
+pkgrel=4
_glibcdate=20110617
pkgdesc="GNU C Library"
arch=('i686' 'x86_64')
@@ -27,7 +27,8 @@ source=(ftp://ftp.archlinux.org/other/glibc/${pkgname}-${pkgver}_${_glibcdate}.t
glibc-2.12.2-ignore-origin-of-privileged-program.patch
glibc-2.13-futex.patch
glibc-2.14-libdl-crash.patch
- glibc-2.14-fix-resolver-crash-typo.patch
+ #glibc-2.14-fix-resolver-crash-typo.patch
+ glibc-2.14-revert-4462fad3.patch
glibc-2.14-reexport-rpc-interface.patch
glibc-2.14-reinstall-nis-rpc-headers.patch
nscd
@@ -41,7 +42,7 @@ md5sums=('e441d745609d93c907b72548ba646dad'
'b042647ea7d6f22ad319e12e796bd13e'
'7d0154b7e17ea218c9fa953599d24cc4'
'cea62cc6b903d222c5f26e05a3c0e0e6'
- '73bfaafe25b93f357cf6a3b5eeb70e1b'
+ '46e56492cccb1c9172ed3a235cf43c6c'
'c5de2a946215d647c8af5432ec4b0da0'
'55febbb72139ac7b65757df085024b83'
'b587ee3a70c9b3713099295609afde49'
@@ -85,8 +86,11 @@ build() {
# http://sourceware.org/ml/libc-alpha/2011-06/msg00006.html
patch -Np1 -i ${srcdir}/glibc-2.14-libdl-crash.patch
- # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=57912a71 (FS#24615)
- patch -Np1 -i ${srcdir}/glibc-2.14-fix-resolver-crash-typo.patch
+ # This fixes the main segfault but not the assert fail (FS#24615)
+ # http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=57912a71
+ #patch -Np1 -i ${srcdir}/glibc-2.14-fix-resolver-crash-typo.patch
+ # resort to reverting the bad commit completely for the moment
+ patch -Np1 -i ${srcdir}/glibc-2.14-revert-4462fad3.patch
# re-export RPC interface until libtirpc is ready as a replacement
# http://sourceware.org/git/?p=glibc.git;a=commitdiff;h=acee4873 (only fedora branch...)
diff --git a/testing/grep/PKGBUILD b/testing/grep/PKGBUILD
new file mode 100644
index 000000000..958f5b0e5
--- /dev/null
+++ b/testing/grep/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 128670 2011-06-25 12:20:55Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=grep
+pkgver=2.9
+pkgrel=1
+pkgdesc="A string search utility"
+arch=('i686' 'x86_64')
+license=('GPL3')
+url="http://www.gnu.org/software/grep/grep.html"
+groups=('base')
+depends=('glibc' 'pcre' 'sh')
+makedepends=('texinfo')
+install=${pkgname}.install
+source=(ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz)
+md5sums=('25e41b2aa201104354740961ef36005a')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ ./configure --prefix=/usr --bindir=/bin --without-included-regex
+ make
+}
+
+check() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make check
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+}
diff --git a/testing/grep/grep.install b/testing/grep/grep.install
new file mode 100644
index 000000000..7cd31301f
--- /dev/null
+++ b/testing/grep/grep.install
@@ -0,0 +1,21 @@
+infodir=usr/share/info
+filelist=(grep.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for file in ${filelist[@]}; do
+ install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
+ done
+}
+
diff --git a/testing/less/PKGBUILD b/testing/less/PKGBUILD
new file mode 100644
index 000000000..36b928066
--- /dev/null
+++ b/testing/less/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 128667 2011-06-25 12:14:07Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=less
+pkgver=444
+pkgrel=1
+pkgdesc="A terminal based program for viewing text files"
+license=('GPL3')
+arch=('i686' 'x86_64')
+url="http://www.greenwoodsoftware.com/less"
+groups=('base')
+depends=('ncurses' 'pcre')
+source=(http://www.greenwoodsoftware.com/$pkgname/$pkgname-$pkgver.tar.gz)
+md5sums=('56f9f76ffe13f70155f47f6b3c87d421')
+
+build() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ ./configure --prefix=/usr --sysconfdir=/etc --with-regex=pcre
+ make
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ make prefix="${pkgdir}"/usr install
+ install -dm755 "${pkgdir}"/bin
+ mv "${pkgdir}"/usr/bin/${pkgname} "${pkgdir}"/bin
+}
diff --git a/testing/module-init-tools/PKGBUILD b/testing/module-init-tools/PKGBUILD
new file mode 100644
index 000000000..e65f419df
--- /dev/null
+++ b/testing/module-init-tools/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 128937 2011-06-25 14:35:00Z dreisner $
+# Maintainer: Aaron Griffin <aaron@archlinux.org>
+# Contributor: judd <jvinet@zeroflux.org>
+
+pkgname=module-init-tools
+pkgver=3.16
+pkgrel=1
+pkgdesc="utilities needed by Linux systems for managing loadable kernel modules"
+arch=('i686' 'x86_64')
+url="http://kerneltools.org"
+license=('GPL')
+depends=('glibc')
+makedepends=('docbook2x')
+backup=('etc/modprobe.d/modprobe.conf')
+source=(http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-$pkgver.tar.bz2
+ modprobe.conf
+ docfix.patch)
+md5sums=('bc44832c6e41707b8447e2847d2019f5'
+ '316f1bda4c21af02b30252eb014a0a55'
+ '4320d19902ded43bed55c804b065cdc7')
+
+build() {
+ cd $srcdir/$pkgname-$pkgver
+
+ # fix headers in SGML manpage sources and an XML typo
+ patch -Np0 < "$srcdir/docfix.patch"
+
+ ./configure --prefix=/usr --exec-prefix=/ --enable-zlib
+ make
+}
+
+package() {
+ cd $srcdir/$pkgname-$pkgver
+
+ make DESTDIR=$pkgdir install
+
+ # Install our custom (read: empty) modprobe.conf
+ install -Dm644 $srcdir/modprobe.conf $pkgdir/etc/modprobe.d/modprobe.conf
+}
diff --git a/testing/module-init-tools/docfix.patch b/testing/module-init-tools/docfix.patch
new file mode 100644
index 000000000..0151ca3f1
--- /dev/null
+++ b/testing/module-init-tools/docfix.patch
@@ -0,0 +1,90 @@
+--- doc/depmod.conf.sgml.orig 2011-06-25 10:07:15.897805024 -0400
++++ doc/depmod.conf.sgml 2011-06-25 10:07:48.810805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/depmod.sgml.orig 2011-06-25 10:07:15.898805024 -0400
++++ doc/depmod.sgml 2011-06-25 10:07:56.636805021 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+@@ -52,7 +52,7 @@
+ <arg><option>-n</option></arg>
+ <arg><option>-v</option></arg>
+ <arg><option>-P <replaceable>prefix</replaceable></option></arg>
+- <arg><option>-w</option><arg>
++ <arg><option>-w</option></arg>
+ <arg><option><replaceable>version</replaceable></option></arg>
+ <arg rep='repeat'><option><replaceable>filename</replaceable></option></arg>
+ </cmdsynopsis>
+--- doc/insmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/insmod.sgml 2011-06-25 10:07:59.228805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/lsmod.sgml.orig 2011-06-25 10:07:15.899805024 -0400
++++ doc/lsmod.sgml 2011-06-25 10:08:04.804805020 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modinfo.sgml.orig 2011-06-25 10:07:15.900805024 -0400
++++ doc/modinfo.sgml 2011-06-25 10:08:07.630805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.conf.sgml.orig 2011-06-25 10:07:15.901805024 -0400
++++ doc/modprobe.conf.sgml 2011-06-25 10:08:10.173805018 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modprobe.sgml.orig 2011-06-25 10:07:15.902805024 -0400
++++ doc/modprobe.sgml 2011-06-25 10:08:13.623805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/modules.dep.sgml.orig 2011-06-25 10:07:15.903805024 -0400
++++ doc/modules.dep.sgml 2011-06-25 10:08:19.323805019 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
+--- doc/rmmod.sgml.orig 2011-06-25 10:07:15.904805024 -0400
++++ doc/rmmod.sgml 2011-06-25 10:08:27.691805017 -0400
+@@ -1,4 +1,5 @@
+-<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
++<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.1.2//EN"
++ "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
+ <!ENTITY debian "<productname>Debian GNU/Linux</productname>">
+ <!ENTITY docbook "<productname>DocBook</productname>">
+ <!ENTITY sgml "<abbrev>SGML</abbrev>">
diff --git a/testing/module-init-tools/modprobe.conf b/testing/module-init-tools/modprobe.conf
new file mode 100644
index 000000000..83865a3af
--- /dev/null
+++ b/testing/module-init-tools/modprobe.conf
@@ -0,0 +1,3 @@
+#
+# /etc/modprobe.d/modprobe.conf (for v2.6 kernels)
+#
diff --git a/testing/mpfr/PKGBUILD b/testing/mpfr/PKGBUILD
new file mode 100644
index 000000000..3f593116a
--- /dev/null
+++ b/testing/mpfr/PKGBUILD
@@ -0,0 +1,38 @@
+# $Id: PKGBUILD 128942 2011-06-25 14:51:58Z allan $
+# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributor: damir <damir@archlinux.org>
+
+pkgname=mpfr
+_pkgver=3.0.1
+_patchlevel=p4
+pkgver=${_pkgver}.${_patchlevel}
+pkgrel=1
+pkgdesc="Multiple-precision floating-point library"
+arch=('i686' 'x86_64')
+url="http://www.mpfr.org/"
+license=('LGPL')
+depends=('gmp>=5.0')
+options=('!libtool')
+install=mpfr.install
+source=(http://www.mpfr.org/mpfr-current/mpfr-${_pkgver}.tar.xz
+ mpfr-${_pkgver}.${_patchlevel}.patch)
+md5sums=('645882d9d179113a70af84d27086ed9f'
+ '52c2ac5ffbbbf0c68f08e89f016ba7aa')
+
+build() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ patch -Np1 -i $srcdir/mpfr-${_pkgver}.${_patchlevel}.patch
+ ./configure --prefix=/usr --enable-thread-safe --enable-shared
+ make
+}
+
+check() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ make check
+}
+
+package() {
+ cd "${srcdir}/${pkgname}-${_pkgver}"
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/testing/mpfr/mpfr-3.0.1.p4.patch b/testing/mpfr/mpfr-3.0.1.p4.patch
new file mode 100644
index 000000000..9604635a2
--- /dev/null
+++ b/testing/mpfr/mpfr-3.0.1.p4.patch
@@ -0,0 +1,367 @@
+diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
+--- mpfr-3.0.1-a/PATCHES 2011-04-12 10:50:02.000000000 +0000
++++ mpfr-3.0.1-b/PATCHES 2011-04-12 10:50:02.000000000 +0000
+@@ -0,0 +1 @@
++asin_exprange
+diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
+--- mpfr-3.0.1-a/VERSION 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/VERSION 2011-04-12 10:50:02.000000000 +0000
+@@ -1 +1 @@
+-3.0.1
++3.0.1-p1
+diff -Naurd mpfr-3.0.1-a/asin.c mpfr-3.0.1-b/asin.c
+--- mpfr-3.0.1-a/asin.c 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/asin.c 2011-04-12 10:50:02.000000000 +0000
+@@ -63,11 +63,14 @@
+
+ compared = mpfr_cmp_ui (xp, 1);
+
++ MPFR_SAVE_EXPO_MARK (expo);
++
+ if (MPFR_UNLIKELY (compared >= 0))
+ {
+ mpfr_clear (xp);
+ if (compared > 0) /* asin(x) = NaN for |x| > 1 */
+ {
++ MPFR_SAVE_EXPO_FREE (expo);
+ MPFR_SET_NAN (asin);
+ MPFR_RET_NAN;
+ }
+@@ -80,13 +83,11 @@
+ inexact = -mpfr_const_pi (asin, MPFR_INVERT_RND(rnd_mode));
+ MPFR_CHANGE_SIGN (asin);
+ }
+- mpfr_div_2ui (asin, asin, 1, rnd_mode); /* May underflow */
+- return inexact;
++ mpfr_div_2ui (asin, asin, 1, rnd_mode);
+ }
+ }
+-
+- MPFR_SAVE_EXPO_MARK (expo);
+-
++ else
++ {
+ /* Compute exponent of 1 - ABS(x) */
+ mpfr_ui_sub (xp, 1, xp, MPFR_RNDD);
+ MPFR_ASSERTD (MPFR_GET_EXP (xp) <= 0);
+@@ -115,6 +116,7 @@
+ inexact = mpfr_set (asin, xp, rnd_mode);
+
+ mpfr_clear (xp);
++ }
+
+ MPFR_SAVE_EXPO_FREE (expo);
+ return mpfr_check_range (asin, inexact, rnd_mode);
+diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
+--- mpfr-3.0.1-a/mpfr.h 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/mpfr.h 2011-04-12 10:50:02.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 1
+-#define MPFR_VERSION_STRING "3.0.1"
++#define MPFR_VERSION_STRING "3.0.1-p1"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.1-a/tests/tasin.c mpfr-3.0.1-b/tests/tasin.c
+--- mpfr-3.0.1-a/tests/tasin.c 2011-04-04 10:19:17.000000000 +0000
++++ mpfr-3.0.1-b/tests/tasin.c 2011-04-12 10:50:02.000000000 +0000
+@@ -219,6 +219,49 @@
+ mpfr_clear (y);
+ }
+
++static void
++reduced_expo_range (void)
++{
++ mpfr_exp_t emin, emax;
++ mpfr_t x, y, ex_y;
++ int inex, ex_inex;
++ unsigned int flags, ex_flags;
++
++ emin = mpfr_get_emin ();
++ emax = mpfr_get_emax ();
++
++ mpfr_inits2 (4, x, y, ex_y, (mpfr_ptr) 0);
++ mpfr_set_str (x, "-0.1e1", 2, MPFR_RNDN);
++
++ mpfr_set_emin (1);
++ mpfr_set_emax (1);
++ mpfr_clear_flags ();
++ inex = mpfr_asin (y, x, MPFR_RNDA);
++ flags = __gmpfr_flags;
++ mpfr_set_emin (emin);
++ mpfr_set_emax (emax);
++
++ mpfr_set_str (ex_y, "-0.1101e1", 2, MPFR_RNDN);
++ ex_inex = -1;
++ ex_flags = MPFR_FLAGS_INEXACT;
++
++ if (SIGN (inex) != ex_inex || flags != ex_flags ||
++ ! mpfr_equal_p (y, ex_y))
++ {
++ printf ("Error in reduced_expo_range\non x = ");
++ mpfr_dump (x);
++ printf ("Expected y = ");
++ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN);
++ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags);
++ printf ("Got y = ");
++ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN);
++ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags);
++ exit (1);
++ }
++
++ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0);
++}
++
+ int
+ main (void)
+ {
+@@ -226,6 +269,7 @@
+
+ special ();
+ special_overflow ();
++ reduced_expo_range ();
+
+ test_generic (2, 100, 15);
+
+diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
+--- mpfr-3.0.1-a/version.c 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/version.c 2011-04-12 10:50:02.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.1";
++ return "3.0.1-p1";
+ }
+diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
+--- mpfr-3.0.1-a/PATCHES 2011-05-04 11:18:33.000000000 +0000
++++ mpfr-3.0.1-b/PATCHES 2011-05-04 11:18:33.000000000 +0000
+@@ -0,0 +1 @@
++rec_sqrt-carry
+diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
+--- mpfr-3.0.1-a/VERSION 2011-04-12 10:50:02.000000000 +0000
++++ mpfr-3.0.1-b/VERSION 2011-05-04 11:18:33.000000000 +0000
+@@ -1 +1 @@
+-3.0.1-p1
++3.0.1-p2
+diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
+--- mpfr-3.0.1-a/mpfr.h 2011-04-12 10:50:02.000000000 +0000
++++ mpfr-3.0.1-b/mpfr.h 2011-05-04 11:18:33.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 1
+-#define MPFR_VERSION_STRING "3.0.1-p1"
++#define MPFR_VERSION_STRING "3.0.1-p2"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.1-a/rec_sqrt.c mpfr-3.0.1-b/rec_sqrt.c
+--- mpfr-3.0.1-a/rec_sqrt.c 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/rec_sqrt.c 2011-05-04 11:18:33.000000000 +0000
+@@ -375,20 +375,37 @@
+ MPFR_ASSERTD(un == ln + 1 || un == ln + 2);
+ /* the high un-ln limbs of u will overlap the low part of {x+ln,xn},
+ we need to add or subtract the overlapping part {u + ln, un - ln} */
++ /* Warning! th may be 0, in which case the mpn_add_1 and mpn_sub_1
++ below (with size = th) mustn't be used. In such a case, the limb
++ (carry) will be 0, so that this is semantically a no-op, but if
++ mpn_add_1 and mpn_sub_1 are used, GMP (currently) still does a
++ non-atomic read/write in a place that is not always allocated,
++ with the possible consequences: a crash if the corresponding
++ address is not mapped, or (rather unlikely) memory corruption
++ if another process/thread writes at the same place; things may
++ be worse with future GMP versions. Hence the tests carry != 0. */
+ if (neg == 0)
+ {
+ if (ln > 0)
+ MPN_COPY (x, u, ln);
+ cy = mpn_add (x + ln, x + ln, xn, u + ln, un - ln);
+ /* add cu at x+un */
+- cy += mpn_add_1 (x + un, x + un, th, cu);
++ if (cu != 0)
++ {
++ MPFR_ASSERTD (th != 0);
++ cy += mpn_add_1 (x + un, x + un, th, cu);
++ }
+ }
+ else /* negative case */
+ {
+ /* subtract {u+ln, un-ln} from {x+ln,un} */
+ cy = mpn_sub (x + ln, x + ln, xn, u + ln, un - ln);
+ /* carry cy is at x+un, like cu */
+- cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */
++ if (cy + cu != 0)
++ {
++ MPFR_ASSERTD (th != 0);
++ cy = mpn_sub_1 (x + un, x + un, th, cy + cu); /* n - un = th */
++ }
+ /* cy cannot be zero, since the most significant bit of Xh is 1,
+ and the correction is bounded by 2^{-h+3} */
+ MPFR_ASSERTD(cy == 0);
+diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
+--- mpfr-3.0.1-a/version.c 2011-04-12 10:50:02.000000000 +0000
++++ mpfr-3.0.1-b/version.c 2011-05-04 11:18:33.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.1-p1";
++ return "3.0.1-p2";
+ }
+diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
+--- mpfr-3.0.1-a/PATCHES 2011-05-05 00:00:35.000000000 +0000
++++ mpfr-3.0.1-b/PATCHES 2011-05-05 00:00:35.000000000 +0000
+@@ -0,0 +1 @@
++atan-expo-range
+diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
+--- mpfr-3.0.1-a/VERSION 2011-05-04 11:18:33.000000000 +0000
++++ mpfr-3.0.1-b/VERSION 2011-05-05 00:00:35.000000000 +0000
+@@ -1 +1 @@
+-3.0.1-p2
++3.0.1-p3
+diff -Naurd mpfr-3.0.1-a/atan.c mpfr-3.0.1-b/atan.c
+--- mpfr-3.0.1-a/atan.c 2011-04-04 10:19:18.000000000 +0000
++++ mpfr-3.0.1-b/atan.c 2011-05-05 00:00:35.000000000 +0000
+@@ -431,5 +431,5 @@
+ MPFR_GROUP_CLEAR (group);
+
+ MPFR_SAVE_EXPO_FREE (expo);
+- return mpfr_check_range (arctgt, inexact, rnd_mode);
++ return mpfr_check_range (atan, inexact, rnd_mode);
+ }
+diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
+--- mpfr-3.0.1-a/mpfr.h 2011-05-04 11:18:33.000000000 +0000
++++ mpfr-3.0.1-b/mpfr.h 2011-05-05 00:00:35.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 1
+-#define MPFR_VERSION_STRING "3.0.1-p2"
++#define MPFR_VERSION_STRING "3.0.1-p3"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.1-a/tests/tatan.c mpfr-3.0.1-b/tests/tatan.c
+--- mpfr-3.0.1-a/tests/tatan.c 2011-04-04 10:19:17.000000000 +0000
++++ mpfr-3.0.1-b/tests/tatan.c 2011-05-05 00:00:35.000000000 +0000
+@@ -535,6 +535,52 @@
+ mpfr_clears (a, x, y, (mpfr_ptr) 0);
+ }
+
++/* http://websympa.loria.fr/wwsympa/arc/mpfr/2011-05/msg00008.html
++ * Incorrect flags (in debug mode on a 32-bit machine, assertion failure).
++ */
++static void
++reduced_expo_range (void)
++{
++ mpfr_exp_t emin, emax;
++ mpfr_t x, y, ex_y;
++ int inex, ex_inex;
++ unsigned int flags, ex_flags;
++
++ emin = mpfr_get_emin ();
++ emax = mpfr_get_emax ();
++
++ mpfr_inits2 (12, x, y, ex_y, (mpfr_ptr) 0);
++ mpfr_set_str (x, "0.1e-5", 2, MPFR_RNDN);
++
++ mpfr_set_emin (-5);
++ mpfr_set_emax (-5);
++ mpfr_clear_flags ();
++ inex = mpfr_atan (y, x, MPFR_RNDN);
++ flags = __gmpfr_flags;
++ mpfr_set_emin (emin);
++ mpfr_set_emax (emax);
++
++ mpfr_set_str (ex_y, "0.1e-5", 2, MPFR_RNDN);
++ ex_inex = 1;
++ ex_flags = MPFR_FLAGS_INEXACT;
++
++ if (SIGN (inex) != ex_inex || flags != ex_flags ||
++ ! mpfr_equal_p (y, ex_y))
++ {
++ printf ("Error in reduced_expo_range\non x = ");
++ mpfr_dump (x);
++ printf ("Expected y = ");
++ mpfr_out_str (stdout, 2, 0, ex_y, MPFR_RNDN);
++ printf ("\n inex = %d, flags = %u\n", ex_inex, ex_flags);
++ printf ("Got y = ");
++ mpfr_out_str (stdout, 2, 0, y, MPFR_RNDN);
++ printf ("\n inex = %d, flags = %u\n", SIGN (inex), flags);
++ exit (1);
++ }
++
++ mpfr_clears (x, y, ex_y, (mpfr_ptr) 0);
++}
++
+ int
+ main (int argc, char *argv[])
+ {
+@@ -546,6 +592,7 @@
+ smallvals_atan2 ();
+ atan2_bug_20071003 ();
+ atan2_different_prec ();
++ reduced_expo_range ();
+
+ test_generic_atan (2, 200, 17);
+ test_generic_atan2 (2, 200, 17);
+diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
+--- mpfr-3.0.1-a/version.c 2011-05-04 11:18:33.000000000 +0000
++++ mpfr-3.0.1-b/version.c 2011-05-05 00:00:35.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.1-p2";
++ return "3.0.1-p3";
+ }
+diff -Naurd mpfr-3.0.1-a/PATCHES mpfr-3.0.1-b/PATCHES
+--- mpfr-3.0.1-a/PATCHES 2011-05-09 14:48:24.000000000 +0000
++++ mpfr-3.0.1-b/PATCHES 2011-05-09 14:48:24.000000000 +0000
+@@ -0,0 +1 @@
++texp-zero
+diff -Naurd mpfr-3.0.1-a/VERSION mpfr-3.0.1-b/VERSION
+--- mpfr-3.0.1-a/VERSION 2011-05-05 00:00:35.000000000 +0000
++++ mpfr-3.0.1-b/VERSION 2011-05-09 14:48:24.000000000 +0000
+@@ -1 +1 @@
+-3.0.1-p3
++3.0.1-p4
+diff -Naurd mpfr-3.0.1-a/mpfr.h mpfr-3.0.1-b/mpfr.h
+--- mpfr-3.0.1-a/mpfr.h 2011-05-05 00:00:35.000000000 +0000
++++ mpfr-3.0.1-b/mpfr.h 2011-05-09 14:48:24.000000000 +0000
+@@ -27,7 +27,7 @@
+ #define MPFR_VERSION_MAJOR 3
+ #define MPFR_VERSION_MINOR 0
+ #define MPFR_VERSION_PATCHLEVEL 1
+-#define MPFR_VERSION_STRING "3.0.1-p3"
++#define MPFR_VERSION_STRING "3.0.1-p4"
+
+ /* Macros dealing with MPFR VERSION */
+ #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c))
+diff -Naurd mpfr-3.0.1-a/tests/texp.c mpfr-3.0.1-b/tests/texp.c
+--- mpfr-3.0.1-a/tests/texp.c 2011-04-04 10:19:17.000000000 +0000
++++ mpfr-3.0.1-b/tests/texp.c 2011-05-09 14:48:24.000000000 +0000
+@@ -170,7 +170,9 @@
+ mpfr_set_prec (x, prec);
+ mpfr_set_prec (y, prec);
+ mpfr_set_prec (z, prec);
+- mpfr_urandomb (x, RANDS);
++ do
++ mpfr_urandomb (x, RANDS);
++ while (MPFR_IS_ZERO (x)); /* 0 is handled by mpfr_exp only */
+ rnd = RND_RAND ();
+ mpfr_exp_2 (y, x, rnd);
+ mpfr_exp_3 (z, x, rnd);
+diff -Naurd mpfr-3.0.1-a/version.c mpfr-3.0.1-b/version.c
+--- mpfr-3.0.1-a/version.c 2011-05-05 00:00:35.000000000 +0000
++++ mpfr-3.0.1-b/version.c 2011-05-09 14:48:24.000000000 +0000
+@@ -25,5 +25,5 @@
+ const char *
+ mpfr_get_version (void)
+ {
+- return "3.0.1-p3";
++ return "3.0.1-p4";
+ }
diff --git a/testing/mpfr/mpfr.install b/testing/mpfr/mpfr.install
new file mode 100644
index 000000000..d6dd0475b
--- /dev/null
+++ b/testing/mpfr/mpfr.install
@@ -0,0 +1,20 @@
+info_dir=usr/share/info
+info_files=(mpfr.info)
+
+post_install() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}
+
+post_upgrade() {
+ post_install $1
+}
+
+pre_remove() {
+ [ -x usr/bin/install-info ] || return 0
+ for f in ${info_files[@]}; do
+ install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+ done
+}