summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authortrizen2020-01-19 15:20:28 +0200
committertrizen2020-01-19 15:20:28 +0200
commit4a348e9b6f9ccd62e85219db66555bdb4e15ca00 (patch)
tree76f62e9608ca5337957edcad1796a1fe207d2502
parentebfe98652031848a3b98ffa979f52d01c7661394 (diff)
downloadaur-4a348e9b6f9ccd62e85219db66555bdb4e15ca00.tar.gz
Version 0.51.git (latest commit from 30 March 2019)
Includes patch to build under GMP 6.2.0.
-rw-r--r--.SRCINFO16
-rw-r--r--14.patch28
-rw-r--r--15.patch26
-rw-r--r--PKGBUILD30
4 files changed, 82 insertions, 18 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 233e36ddc832..d556b069173f 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = perl-math-prime-util-gmp
- pkgdesc = Utilities related to prime numbers and factoring, using GMP
- pkgver = 0.51
+ pkgdesc = Math::Prime::Util::GMP - utilities related to prime numbers and factoring, using GMP
+ pkgver = 0.51.git
pkgrel = 1
url = https://metacpan.org/release/Math-Prime-Util-GMP
arch = i686
@@ -11,9 +11,15 @@ pkgbase = perl-math-prime-util-gmp
depends = gmp>=6.1.1
depends = perl>=5.6.2
options = !emptydirs
- source = https://cpan.metacpan.org/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.51.tar.gz
- md5sums = a29111ed57fd1f4c0bfbd4a36cbb2500
- sha512sums = e9f40d8edf33256495b3ca553aac142ef35dde76575b07f56c88ad8f1769728b3cfc323216053fe2275c22436ac22ea3855b17afa766ea63b0b6322cc952cf1a
+ source = 14.patch
+ source = 15.patch
+ source = https://github.com/danaj/Math-Prime-Util-GMP/archive/b28e8cbb18f4202912fe1e116963efc223c7722c.zip
+ md5sums = 76b0d6e19691481753120f987cb74dbb
+ md5sums = 22505647bf0e0982bcd3ccebd376508d
+ md5sums = a342145b53aed73741e9053e007188a0
+ sha512sums = d3ec15d04bd8181d4aa4b58c99de3676b4100ca566a2726d0bbb3f8eca151b991a3c34d728eb02202eab3315b4583282df166b61fb5dc905e840b67d062a0cc3
+ sha512sums = 1b0eb05878368d30b9d3a606b172bf311e8ccfbdff8147b2227a011f0f8d4ea1000d4cf1274e239ee95182fd754de1cd9ceff5596851d32c63127ef33ad6acd5
+ sha512sums = 783c5b243ca61631b21f1daed26dad808f508d04366a8622077bee01a64736b0d5740f3a0f4bcac2b430928e13e442722242e3894ca8a72dbf140c475caa14f8
pkgname = perl-math-prime-util-gmp
diff --git a/14.patch b/14.patch
new file mode 100644
index 000000000000..4513fab33c44
--- /dev/null
+++ b/14.patch
@@ -0,0 +1,28 @@
+From f0090b2c4ccd4944fb4a46837aa3b78a78c6ed23 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20=C8=98uteu?= <trizen@protonmail.com>
+Date: Tue, 5 Nov 2019 16:50:24 +0200
+Subject: [PATCH] Handle 2^n in is_totient()
+
+Fixes https://github.com/danaj/Math-Prime-Util/issues/33.
+
+See also: [A058213](https://oeis.org/A058213), [A058215](https://oeis.org/A058215).
+---
+ gmp_main.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/gmp_main.c b/gmp_main.c
+index 5851d9f..41912e4 100644
+--- a/gmp_main.c
++++ b/gmp_main.c
+@@ -917,6 +917,11 @@ int _totpred(mpz_t n, mpz_t maxd)
+ if (mpz_cmp_ui(n,2) == 0) return 1;
+
+ mpz_init(N); mpz_init(p);
++
++ mpz_sub_ui(N, n, 1);
++ mpz_and(N, N, n);
++ if (mpz_sgn(N) == 0) return 1;
++
+ mpz_tdiv_q_2exp(N, n, 1);
+ res = 0;
+ mpz_add_ui(p, n, 1);
diff --git a/15.patch b/15.patch
new file mode 100644
index 000000000000..053d8658f27e
--- /dev/null
+++ b/15.patch
@@ -0,0 +1,26 @@
+From e37104a2836cf5a9c341850be68333ecb6cc7a52 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Daniel=20=C8=98uteu?= <trizen@protonmail.com>
+Date: Sun, 19 Jan 2020 01:18:51 +0200
+Subject: [PATCH] Fix squfof_factor() under GMP 6.2.0
+
+Under GMP 6.2.0, the tests failed with a "segmentation fault" on `squfof_factor("1754012594703269855671")`.
+---
+ squfof126.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/squfof126.c b/squfof126.c
+index abb05c0..f99346e 100644
+--- a/squfof126.c
++++ b/squfof126.c
+@@ -50,8 +50,9 @@ static INLINE void mpz_set64(mpz_t n, SQUFOF_TYPE v) {
+ mpz_mul_2exp(n, n, 32);
+ mpz_add_ui(n, n, (uint32_t)v);
+ } else {
+- n->_mp_d[0] = v;
+- n->_mp_size = 1;
++ //n->_mp_d[0] = v;
++ //n->_mp_size = 1;
++ mpz_set_ui(n, (uint64_t)v);
+ }
+ }
+
diff --git a/PKGBUILD b/PKGBUILD
index 0038f0562371..0e8e2ab97cce 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,19 +2,30 @@
# Generator : CPANPLUS::Dist::Arch 1.32
pkgname='perl-math-prime-util-gmp'
-pkgver='0.51'
+pkgver='0.51.git'
pkgrel='1'
-pkgdesc="Utilities related to prime numbers and factoring, using GMP"
+pkgdesc="Math::Prime::Util::GMP - utilities related to prime numbers and factoring, using GMP"
arch=('i686' 'x86_64')
license=('PerlArtistic' 'GPL')
options=('!emptydirs')
depends=('glibc>=2.24' 'gmp>=6.1.1' 'perl>=5.6.2')
makedepends=()
+_githash="b28e8cbb18f4202912fe1e116963efc223c7722c"
url='https://metacpan.org/release/Math-Prime-Util-GMP'
-source=("https://cpan.metacpan.org/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-$pkgver.tar.gz")
-md5sums=('a29111ed57fd1f4c0bfbd4a36cbb2500')
-sha512sums=('e9f40d8edf33256495b3ca553aac142ef35dde76575b07f56c88ad8f1769728b3cfc323216053fe2275c22436ac22ea3855b17afa766ea63b0b6322cc952cf1a')
-_distdir="Math-Prime-Util-GMP-$pkgver"
+source=("14.patch" "15.patch" "https://github.com/danaj/Math-Prime-Util-GMP/archive/$_githash.zip")
+md5sums=('76b0d6e19691481753120f987cb74dbb'
+ '22505647bf0e0982bcd3ccebd376508d'
+ 'a342145b53aed73741e9053e007188a0')
+sha512sums=('d3ec15d04bd8181d4aa4b58c99de3676b4100ca566a2726d0bbb3f8eca151b991a3c34d728eb02202eab3315b4583282df166b61fb5dc905e840b67d062a0cc3'
+ '1b0eb05878368d30b9d3a606b172bf311e8ccfbdff8147b2227a011f0f8d4ea1000d4cf1274e239ee95182fd754de1cd9ceff5596851d32c63127ef33ad6acd5'
+ '783c5b243ca61631b21f1daed26dad808f508d04366a8622077bee01a64736b0d5740f3a0f4bcac2b430928e13e442722242e3894ca8a72dbf140c475caa14f8')
+_distdir="Math-Prime-Util-GMP-$_githash"
+
+prepare() {
+ cd "$srcdir/$_distdir"
+ patch --forward --strip=1 --input="${srcdir}/14.patch"
+ patch --forward --strip=1 --input="${srcdir}/15.patch"
+}
build() {
( export PERL_MM_USE_DEFAULT=1 PERL5LIB="" \
@@ -39,12 +50,5 @@ check() {
package() {
cd "$srcdir/$_distdir"
make install
-
find "$pkgdir" -name .packlist -o -name perllocal.pod -delete
}
-
-# Local Variables:
-# mode: shell-script
-# sh-basic-offset: 2
-# End:
-# vim:set ts=2 sw=2 et: