diff options
Diffstat (limited to 'testing')
-rw-r--r-- | testing/fakeroot/PKGBUILD | 35 | ||||
-rw-r--r-- | testing/fakeroot/fakeroot.install | 14 | ||||
-rw-r--r-- | testing/glibc/PKGBUILD | 16 | ||||
-rw-r--r-- | testing/grep/PKGBUILD | 33 | ||||
-rw-r--r-- | testing/grep/grep.install | 21 | ||||
-rw-r--r-- | testing/less/PKGBUILD | 30 | ||||
-rw-r--r-- | testing/module-init-tools/PKGBUILD | 39 | ||||
-rw-r--r-- | testing/module-init-tools/docfix.patch | 90 | ||||
-rw-r--r-- | testing/module-init-tools/modprobe.conf | 3 | ||||
-rw-r--r-- | testing/mpfr/PKGBUILD | 38 | ||||
-rw-r--r-- | testing/mpfr/mpfr-3.0.1.p4.patch | 367 | ||||
-rw-r--r-- | testing/mpfr/mpfr.install | 20 |
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 +} |