diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..422d533 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mpfr-3.1.6.tar.xz diff --git a/.mpfr.metadata b/.mpfr.metadata new file mode 100644 index 0000000..2c79a23 --- /dev/null +++ b/.mpfr.metadata @@ -0,0 +1 @@ +f9178ddc0c470faa2e063b3185c4488ad0f74df8 SOURCES/mpfr-3.1.6.tar.xz diff --git a/SOURCES/rev11783.patch b/SOURCES/rev11783.patch new file mode 100644 index 0000000..5c742f0 --- /dev/null +++ b/SOURCES/rev11783.patch @@ -0,0 +1,285 @@ +diff -Naurd mpfr-3.1.6-a/PATCHES mpfr-3.1.6-b/PATCHES +--- mpfr-3.1.6-a/PATCHES 2017-10-26 13:55:51.168013439 +0000 ++++ mpfr-3.1.6-b/PATCHES 2017-10-26 13:55:51.236013121 +0000 +@@ -0,0 +1 @@ ++mpfr_get +diff -Naurd mpfr-3.1.6-a/VERSION mpfr-3.1.6-b/VERSION +--- mpfr-3.1.6-a/VERSION 2017-09-07 11:36:44.000000000 +0000 ++++ mpfr-3.1.6-b/VERSION 2017-10-26 13:55:51.236013121 +0000 +@@ -1 +1 @@ +-3.1.6 ++3.1.6-p1 +diff -Naurd mpfr-3.1.6-a/src/get_ld.c mpfr-3.1.6-b/src/get_ld.c +--- mpfr-3.1.6-a/src/get_ld.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_ld.c 2017-10-26 13:55:51.208013252 +0000 +@@ -41,6 +41,9 @@ + mpfr_exp_t sh; /* exponent shift, so that x/2^sh is in the double range */ + mpfr_t y, z; + int sign; ++ MPFR_SAVE_EXPO_DECL (expo); ++ ++ MPFR_SAVE_EXPO_MARK (expo); + + /* first round x to the target long double precision, so that + all subsequent operations are exact (this avoids double rounding +@@ -103,6 +106,7 @@ + } + if (sign < 0) + r = -r; ++ MPFR_SAVE_EXPO_FREE (expo); + return r; + } + } +diff -Naurd mpfr-3.1.6-a/src/get_si.c mpfr-3.1.6-b/src/get_si.c +--- mpfr-3.1.6-a/src/get_si.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_si.c 2017-10-26 13:55:51.208013252 +0000 +@@ -28,6 +28,7 @@ + mpfr_prec_t prec; + long s; + mpfr_t x; ++ MPFR_SAVE_EXPO_DECL (expo); + + if (MPFR_UNLIKELY (!mpfr_fits_slong_p (f, rnd))) + { +@@ -39,14 +40,22 @@ + if (MPFR_IS_ZERO (f)) + return (long) 0; + +- /* determine prec of long */ +- for (s = LONG_MIN, prec = 0; s != 0; s /= 2, prec++) ++ /* Determine the precision of long. |LONG_MIN| may have one more bit ++ as an integer, but in this case, this is a power of 2, thus fits ++ in a precision-prec floating-point number. */ ++ for (s = LONG_MAX, prec = 0; s != 0; s /= 2, prec++) + { } + ++ MPFR_SAVE_EXPO_MARK (expo); ++ + /* first round to prec bits */ + mpfr_init2 (x, prec); + mpfr_rint (x, f, rnd); + ++ /* The flags from mpfr_rint are the wanted ones. In particular, ++ it sets the inexact flag when necessary. */ ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); ++ + /* warning: if x=0, taking its exponent is illegal */ + if (MPFR_UNLIKELY (MPFR_IS_ZERO(x))) + s = 0; +@@ -65,5 +74,7 @@ + + mpfr_clear (x); + ++ MPFR_SAVE_EXPO_FREE (expo); ++ + return s; + } +diff -Naurd mpfr-3.1.6-a/src/get_sj.c mpfr-3.1.6-b/src/get_sj.c +--- mpfr-3.1.6-a/src/get_sj.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_sj.c 2017-10-26 13:55:51.208013252 +0000 +@@ -35,6 +35,7 @@ + intmax_t r; + mpfr_prec_t prec; + mpfr_t x; ++ MPFR_SAVE_EXPO_DECL (expo); + + if (MPFR_UNLIKELY (!mpfr_fits_intmax_p (f, rnd))) + { +@@ -46,20 +47,24 @@ + if (MPFR_IS_ZERO (f)) + return (intmax_t) 0; + +- /* determine the precision of intmax_t */ +- for (r = MPFR_INTMAX_MIN, prec = 0; r != 0; r /= 2, prec++) ++ /* Determine the precision of intmax_t. |INTMAX_MIN| may have one ++ more bit as an integer, but in this case, this is a power of 2, ++ thus fits in a precision-prec floating-point number. */ ++ for (r = MPFR_INTMAX_MAX, prec = 0; r != 0; r /= 2, prec++) + { } +- /* Note: though INTMAX_MAX would have been sufficient for the conversion, +- we chose INTMAX_MIN so that INTMAX_MIN - 1 is always representable in +- precision prec; this is useful to detect overflows in MPFR_RNDZ (will +- be needed later). */ + +- /* Now, r = 0. */ ++ MPFR_ASSERTD (r == 0); ++ ++ MPFR_SAVE_EXPO_MARK (expo); + + mpfr_init2 (x, prec); + mpfr_rint (x, f, rnd); + MPFR_ASSERTN (MPFR_IS_FP (x)); + ++ /* The flags from mpfr_rint are the wanted ones. In particular, ++ it sets the inexact flag when necessary. */ ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); ++ + if (MPFR_NOTZERO (x)) + { + mp_limb_t *xp; +@@ -67,15 +72,15 @@ + + xp = MPFR_MANT (x); + sh = MPFR_GET_EXP (x); +- MPFR_ASSERTN ((mpfr_prec_t) sh <= prec); ++ MPFR_ASSERTN ((mpfr_prec_t) sh <= prec + 1); + if (MPFR_INTMAX_MIN + MPFR_INTMAX_MAX != 0 +- && MPFR_UNLIKELY ((mpfr_prec_t) sh == prec)) ++ && MPFR_UNLIKELY ((mpfr_prec_t) sh > prec)) + { + /* 2's complement and x <= INTMAX_MIN: in the case mp_limb_t + has the same size as intmax_t, we cannot use the code in + the for loop since the operations would be performed in + unsigned arithmetic. */ +- MPFR_ASSERTN (MPFR_IS_NEG (x) && (mpfr_powerof2_raw (x))); ++ MPFR_ASSERTN (MPFR_IS_NEG (x) && mpfr_powerof2_raw (x)); + r = MPFR_INTMAX_MIN; + } + else if (MPFR_IS_POS (x)) +@@ -117,6 +122,8 @@ + + mpfr_clear (x); + ++ MPFR_SAVE_EXPO_FREE (expo); ++ + return r; + } + +diff -Naurd mpfr-3.1.6-a/src/get_ui.c mpfr-3.1.6-b/src/get_ui.c +--- mpfr-3.1.6-a/src/get_ui.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_ui.c 2017-10-26 13:55:51.208013252 +0000 +@@ -30,6 +30,7 @@ + mpfr_t x; + mp_size_t n; + mpfr_exp_t exp; ++ MPFR_SAVE_EXPO_DECL (expo); + + if (MPFR_UNLIKELY (!mpfr_fits_ulong_p (f, rnd))) + { +@@ -44,10 +45,16 @@ + for (s = ULONG_MAX, prec = 0; s != 0; s /= 2, prec ++) + { } + ++ MPFR_SAVE_EXPO_MARK (expo); ++ + /* first round to prec bits */ + mpfr_init2 (x, prec); + mpfr_rint (x, f, rnd); + ++ /* The flags from mpfr_rint are the wanted ones. In particular, ++ it sets the inexact flag when necessary. */ ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); ++ + /* warning: if x=0, taking its exponent is illegal */ + if (MPFR_IS_ZERO(x)) + s = 0; +@@ -61,5 +68,7 @@ + + mpfr_clear (x); + ++ MPFR_SAVE_EXPO_FREE (expo); ++ + return s; + } +diff -Naurd mpfr-3.1.6-a/src/get_uj.c mpfr-3.1.6-b/src/get_uj.c +--- mpfr-3.1.6-a/src/get_uj.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_uj.c 2017-10-26 13:55:51.208013252 +0000 +@@ -35,6 +35,7 @@ + uintmax_t r; + mpfr_prec_t prec; + mpfr_t x; ++ MPFR_SAVE_EXPO_DECL (expo); + + if (MPFR_UNLIKELY (!mpfr_fits_uintmax_p (f, rnd))) + { +@@ -50,12 +51,18 @@ + for (r = MPFR_UINTMAX_MAX, prec = 0; r != 0; r /= 2, prec++) + { } + +- /* Now, r = 0. */ ++ MPFR_ASSERTD (r == 0); ++ ++ MPFR_SAVE_EXPO_MARK (expo); + + mpfr_init2 (x, prec); + mpfr_rint (x, f, rnd); + MPFR_ASSERTN (MPFR_IS_FP (x)); + ++ /* The flags from mpfr_rint are the wanted ones. In particular, ++ it sets the inexact flag when necessary. */ ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); ++ + if (MPFR_NOTZERO (x)) + { + mp_limb_t *xp; +@@ -76,6 +83,8 @@ + + mpfr_clear (x); + ++ MPFR_SAVE_EXPO_FREE (expo); ++ + return r; + } + +diff -Naurd mpfr-3.1.6-a/src/get_z.c mpfr-3.1.6-b/src/get_z.c +--- mpfr-3.1.6-a/src/get_z.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/get_z.c 2017-10-26 13:55:51.208013252 +0000 +@@ -29,6 +29,7 @@ + int inex; + mpfr_t r; + mpfr_exp_t exp; ++ MPFR_SAVE_EXPO_DECL (expo); + + if (MPFR_UNLIKELY (MPFR_IS_SINGULAR (f))) + { +@@ -41,6 +42,8 @@ + return 0; + } + ++ MPFR_SAVE_EXPO_MARK (expo); ++ + exp = MPFR_GET_EXP (f); + /* if exp <= 0, then |f|<1, thus |o(f)|<=1 */ + MPFR_ASSERTN (exp < 0 || exp <= MPFR_PREC_MAX); +@@ -50,6 +53,11 @@ + MPFR_ASSERTN (inex != 1 && inex != -1); /* integral part of f is + representable in r */ + MPFR_ASSERTN (MPFR_IS_FP (r)); ++ ++ /* The flags from mpfr_rint are the wanted ones. In particular, ++ it sets the inexact flag when necessary. */ ++ MPFR_SAVE_EXPO_UPDATE_FLAGS (expo, __gmpfr_flags); ++ + exp = mpfr_get_z_2exp (z, r); + if (exp >= 0) + mpz_mul_2exp (z, z, exp); +@@ -57,5 +65,7 @@ + mpz_fdiv_q_2exp (z, z, -exp); + mpfr_clear (r); + ++ MPFR_SAVE_EXPO_FREE (expo); ++ + return inex; + } +diff -Naurd mpfr-3.1.6-a/src/mpfr.h mpfr-3.1.6-b/src/mpfr.h +--- mpfr-3.1.6-a/src/mpfr.h 2017-09-07 11:36:44.000000000 +0000 ++++ mpfr-3.1.6-b/src/mpfr.h 2017-10-26 13:55:51.232013138 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 6 +-#define MPFR_VERSION_STRING "3.1.6" ++#define MPFR_VERSION_STRING "3.1.6-p1" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.6-a/src/version.c mpfr-3.1.6-b/src/version.c +--- mpfr-3.1.6-a/src/version.c 2017-09-07 11:36:44.000000000 +0000 ++++ mpfr-3.1.6-b/src/version.c 2017-10-26 13:55:51.232013138 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.6"; ++ return "3.1.6-p1"; + } diff --git a/SOURCES/rev11982.patch b/SOURCES/rev11982.patch new file mode 100644 index 0000000..6bf8322 --- /dev/null +++ b/SOURCES/rev11982.patch @@ -0,0 +1,111 @@ +diff -Naurd mpfr-3.1.6-a/PATCHES mpfr-3.1.6-b/PATCHES +--- mpfr-3.1.6-a/PATCHES 2017-12-15 12:37:44.074256548 +0000 ++++ mpfr-3.1.6-b/PATCHES 2017-12-15 12:37:44.146256304 +0000 +@@ -0,0 +1 @@ ++root +diff -Naurd mpfr-3.1.6-a/VERSION mpfr-3.1.6-b/VERSION +--- mpfr-3.1.6-a/VERSION 2017-10-26 13:55:51.236013121 +0000 ++++ mpfr-3.1.6-b/VERSION 2017-12-15 12:37:44.142256319 +0000 +@@ -1 +1 @@ +-3.1.6-p1 ++3.1.6-p2 +diff -Naurd mpfr-3.1.6-a/src/mpfr.h mpfr-3.1.6-b/src/mpfr.h +--- mpfr-3.1.6-a/src/mpfr.h 2017-10-26 13:55:51.232013138 +0000 ++++ mpfr-3.1.6-b/src/mpfr.h 2017-12-15 12:37:44.142256319 +0000 +@@ -27,7 +27,7 @@ + #define MPFR_VERSION_MAJOR 3 + #define MPFR_VERSION_MINOR 1 + #define MPFR_VERSION_PATCHLEVEL 6 +-#define MPFR_VERSION_STRING "3.1.6-p1" ++#define MPFR_VERSION_STRING "3.1.6-p2" + + /* Macros dealing with MPFR VERSION */ + #define MPFR_VERSION_NUM(a,b,c) (((a) << 16L) | ((b) << 8) | (c)) +diff -Naurd mpfr-3.1.6-a/src/root.c mpfr-3.1.6-b/src/root.c +--- mpfr-3.1.6-a/src/root.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/src/root.c 2017-12-15 12:37:44.118256398 +0000 +@@ -107,6 +107,11 @@ + MPFR_RET_NAN; + } + ++ /* Special case |x| = 1. Note that if x = -1, then k is odd ++ (NaN results have already been filtered), so that y = -1. */ ++ if (mpfr_cmpabs (x, __gmpfr_one) == 0) ++ return mpfr_set (y, x, rnd_mode); ++ + /* General case */ + + /* For large k, use exp(log(x)/k). The threshold of 100 seems to be quite +@@ -188,6 +193,14 @@ + Assume all special cases have been eliminated before. + In the extended exponent range, overflows/underflows are not possible. + Assume x > 0, or x < 0 and k odd. ++ Also assume |x| <> 1 because log(1) = 0, which does not have an exponent ++ and would yield a failure in the error bound computation. A priori, this ++ constraint is quite artificial because if |x| is close enough to 1, then ++ the exponent of log|x| does not need to be used (in the code, err would ++ be 1 in such a domain). So this constraint |x| <> 1 could be avoided in ++ the code. However, this is an exact case easy to detect, so that such a ++ change would be useless. Values very close to 1 are not an issue, since ++ an underflow is not possible before the MPFR_GET_EXP. + */ + static int + mpfr_root_aux (mpfr_ptr y, mpfr_srcptr x, unsigned long k, mpfr_rnd_t rnd_mode) +@@ -219,7 +232,8 @@ + mpfr_log (t, absx, MPFR_RNDN); + /* t = log|x| * (1 + theta) with |theta| <= 2^(-w) */ + mpfr_div_ui (t, t, k, MPFR_RNDN); +- expt = MPFR_GET_EXP (t); ++ /* No possible underflow in mpfr_log and mpfr_div_ui. */ ++ expt = MPFR_GET_EXP (t); /* assumes t <> 0 */ + /* t = log|x|/k * (1 + theta) + eps with |theta| <= 2^(-w) + and |eps| <= 1/2 ulp(t), thus the total error is bounded + by 1.5 * 2^(expt - w) */ +diff -Naurd mpfr-3.1.6-a/src/version.c mpfr-3.1.6-b/src/version.c +--- mpfr-3.1.6-a/src/version.c 2017-10-26 13:55:51.232013138 +0000 ++++ mpfr-3.1.6-b/src/version.c 2017-12-15 12:37:44.142256319 +0000 +@@ -25,5 +25,5 @@ + const char * + mpfr_get_version (void) + { +- return "3.1.6-p1"; ++ return "3.1.6-p2"; + } +diff -Naurd mpfr-3.1.6-a/tests/troot.c mpfr-3.1.6-b/tests/troot.c +--- mpfr-3.1.6-a/tests/troot.c 2017-01-01 01:39:09.000000000 +0000 ++++ mpfr-3.1.6-b/tests/troot.c 2017-12-15 12:37:44.118256398 +0000 +@@ -405,6 +405,26 @@ + mpfr_clears (x, y1, y2, (mpfr_ptr) 0); + } + ++static void ++bug20171214 (void) ++{ ++ mpfr_t x, y; ++ int inex; ++ ++ mpfr_init2 (x, 805); ++ mpfr_init2 (y, 837); ++ mpfr_set_ui (x, 1, MPFR_RNDN); ++ inex = mpfr_root (y, x, 120, MPFR_RNDN); ++ MPFR_ASSERTN (inex == 0); ++ MPFR_ASSERTN (mpfr_cmp_ui (y, 1) == 0); ++ mpfr_set_si (x, -1, MPFR_RNDN); ++ inex = mpfr_root (y, x, 121, MPFR_RNDN); ++ MPFR_ASSERTN (inex == 0); ++ MPFR_ASSERTN (mpfr_cmp_si (y, -1) == 0); ++ mpfr_clear (x); ++ mpfr_clear (y); ++} ++ + int + main (void) + { +@@ -415,6 +435,7 @@ + + tests_start_mpfr (); + ++ bug20171214 (); + exact_powers (3, 1000); + special (); + bigint (); diff --git a/SPECS/mpfr.spec b/SPECS/mpfr.spec new file mode 100644 index 0000000..5503110 --- /dev/null +++ b/SPECS/mpfr.spec @@ -0,0 +1,243 @@ +Summary: A C library for multiple-precision floating-point computations +Name: mpfr +Version: 3.1.6 +Release: 1%{?dist} +URL: http://www.mpfr.org/ +# GFDL (mpfr.texi, mpfr.info and fdl.texi) +License: LGPLv3+ and GPLv3+ and GFDL +BuildRequires: autoconf libtool gmp-devel gcc +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +Requires: gmp >= 4.2.3 + +Source0: http://www.mpfr.org/%{name}-%{version}/%{name}-%{version}.tar.xz + +# https://gforge.inria.fr/scm/viewvc.php/mpfr?revision=11783&view=revision +# http://www.mpfr.org/mpfr-3.1.6/patch01 +Patch0: rev11783.patch + +# https://gforge.inria.fr/scm/viewvc.php/mpfr?revision=11982&view=revision +# http://www.mpfr.org/mpfr-3.1.6/patch02 +Patch1: rev11982.patch + +%description +The MPFR library is a C library for multiple-precision floating-point +computations with "correct rounding". The MPFR is efficient and +also has a well-defined semantics. It copies the good ideas from the +ANSI/IEEE-754 standard for double-precision floating-point arithmetic +(53-bit mantissa). MPFR is based on the GMP multiple-precision library. + +%package devel +Summary: Development files for the MPFR library +Requires: %{name} = %{version}-%{release} +Requires(post): /sbin/install-info +Requires(preun): /sbin/install-info +Requires: gmp-devel + +%description devel +Header files and documentation for using the MPFR +multiple-precision floating-point library in applications. + +If you want to develop applications which will use the MPFR library, +you'll need to install the mpfr-devel package. You'll also need to +install the mpfr package. + +%prep +%autosetup -p1 + +%build +%configure --disable-assert --disable-static +make %{?_smp_mflags} + +%install +make install DESTDIR=$RPM_BUILD_ROOT +rm -f $RPM_BUILD_ROOT%{_libdir}/libmpfr.la +rm -f $RPM_BUILD_ROOT%{_infodir}/dir + +#these go into licenses, not doc +rm -f $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING $RPM_BUILD_ROOT%{_pkgdocdir}/COPYING.LESSER + +%check +make %{?_smp_mflags} check + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post devel +if [ -f %{_infodir}/mpfr.info.gz ]; then + /sbin/install-info %{_infodir}/mpfr.info.gz %{_infodir}/dir || : +fi + +%preun devel +if [ "$1" = 0 ]; then + if [ -f %{_infodir}/mpfr.info.gz ]; then + /sbin/install-info --delete %{_infodir}/mpfr.info.gz %{_infodir}/dir || : + fi +fi + +%files +%license COPYING COPYING.LESSER +%doc NEWS README AUTHORS BUGS TODO doc/FAQ.html +%{_libdir}/libmpfr.so.* + +%files devel +%{_pkgdocdir}/examples +%{_libdir}/libmpfr.so +%{_includedir}/*.h +%{_infodir}/mpfr.info* + +%changelog +* Sun Feb 25 2018 James Paul Turner - 3.1.6-1 +- Update to MPFR version 3.1.6 +- Use autosetup specfile macro for applying patches (patches 1 and 2 applied) +- Removed iconv calls, as they were breaking .info files, which are now unicode + resolves #1299649 +- Other minor cleanups +- BuildRequire gcc per https://fedoraproject.org/wiki/Packaging:C_and_C%2B%2B#BuildRequires_and_Requires + +* Thu Feb 08 2018 Fedora Release Engineering - 3.1.5-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 3.1.5-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 3.1.5-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Sat Mar 4 2017 Peter Robinson 3.1.5-3 +- Examples should be in devel +- Minor cleanups + +* Wed Feb 01 2017 Stephen Gallagher - 3.1.5-2 +- Add missing %%license macro + +* Tue Sep 27 2016 Frantisek Kluknavsky - 3.1.5-1 +- rebase + +* Tue Mar 08 2016 Frantisek Kluknavsky - 3.1.4-1 +- Rebase + +* Thu Feb 04 2016 Fedora Release Engineering - 3.1.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Thu Jan 21 2016 Dan Horák - 3.1.3-3 +- drop support for F<20 + +* Fri Oct 23 2015 David Sommerseth - 3.1.3-2 +- Fixed missing packaging of doc files + +* Tue Jun 23 2015 Frantisek Kluknavsky - 3.1.3-1 +- rebase to 3.1.3 +- limboverflow.patch already in tarball, dropped + +* Wed Jun 17 2015 Fedora Release Engineering - 3.1.2-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Dec 12 2014 Frantisek Kluknavsky - 3.1.2-8 +- added limboverflow.patch, rhbz#1171701, rhbz#1171710, there was one less limb allocated in strtofr + +* Sun Aug 17 2014 Fedora Release Engineering - 3.1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 3.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue Aug 06 2013 Ralf Corsépius - 3.1.2-4 +- Install docs into unversioned docdir (Fix FTBFS RHBZ#992296). +- Append --disable-static to %%configure. +- Fix broken %%changelog date. +- Remove stray cd .. + +* Sat Aug 03 2013 Fedora Release Engineering - 3.1.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 02 2013 Karsten Hopp 3.1.2-2 +- bump release and rebuild to fix dependencies on PPC + +* Fri Mar 22 2013 Frantisek Kluknavsky - 3.1.2-1 +- Rebase to 3.1.2 + +* Thu Feb 14 2013 Fedora Release Engineering - 3.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 26 2012 Peter Schiffer - 3.1.1-1 +- resolves: #837563 + update to 3.1.1 + +* Fri Jul 20 2012 Fedora Release Engineering - 3.1.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 3.1.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Thu Nov 10 2011 Peter Schiffer - 3.1.0-1 +- resolves: #743237 + update to 3.1.0 +- removed compatibility symlinks and provides + +* Wed Oct 26 2011 Marcela Mašláňová - 3.0.0-4.2 +- rebuild with new gmp without compat lib + +* Wed Oct 12 2011 Peter Schiffer - 3.0.0-4.1 +- rebuild with new gmp + +* Tue Feb 08 2011 Fedora Release Engineering - 3.0.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Dec 7 2010 Dan Horák 3.0.0-3 +- update the compat Provides for non-x86 arches + +* Wed Dec 1 2010 Ivana Hutarova Varekova 3.0.0-2 +- fix -devel description (see 603021#c3) + +* Tue Nov 16 2010 Ivana Hutarova Varekova 3.0.0-1 +- update to 3.0.0 +- created links and provides to .1 + +* Fri Dec 18 2009 Ivana Hutarova Varekova 2.4.2-1 +- update to 2.4.2 + +* Fri Nov 13 2009 Ivana Varekova 2.4.1-5 +- fix 537328 - mpfr-devel should "Requires: gmp-devel" + +* Wed Aug 12 2009 Ville Skyttä - 2.4.1-4 +- Use lzma compressed upstream tarball. + +* Mon Aug 10 2009 Ivana Varekova 2.4.1-3 +- fix installation with --excludedocs option (#515958) + +* Sat Jul 25 2009 Fedora Release Engineering - 2.4.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Mar 11 2009 Ivana Varekova - 2.4.1-1 +- update to 2.4.1 + +* Wed Feb 25 2009 Fedora Release Engineering - 2.4.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 4 2009 Ivana Varekova - 2.4.0-1 +- update to 2.4.0 + +* Wed Oct 15 2008 Ivana Varekova - 2.3.2-1 +- update to 2.3.2 + +* Mon Jul 21 2008 Ivana Varekova - 2.3.1-1 +- update to 2.3.1 + +* Wed Feb 20 2008 Fedora Release Engineering - 2.3.0-3 +- Autorebuild for GCC 4.3 + +* Fri Jan 18 2008 Ivana Varekova 2.3.0-2 +- rebuilt + +* Thu Sep 20 2007 Ivana Varekova 2.3.0-1 +- update to 2.3.0 +- fix license flag + +* Mon Aug 20 2007 Ivana Varekova 2.2.1-2 +- spec file cleanup (#253440) + +* Tue Jan 16 2007 Ivana Varekova 2.2.1-1 +- started +