sci-mathematics/flintqs: new package for quadratic sieve factoring.
authorMichael Orlitzky <mjo@gentoo.org>
Fri, 27 Mar 2020 19:38:30 +0000 (15:38 -0400)
committerMichael Orlitzky <mjo@gentoo.org>
Mon, 30 Mar 2020 12:46:12 +0000 (08:46 -0400)
A straightforward import of the ebuild that François Bissey has
been maintaining in the sage-on-gentoo overlay. I added a test
suite that factors a large composite number based on the doctests
for qsieve() in SageMath.

Closes: https://bugs.gentoo.org/715090
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
sci-mathematics/flintqs/Manifest [new file with mode: 0644]
sci-mathematics/flintqs/flintqs-1.0.ebuild [new file with mode: 0644]
sci-mathematics/flintqs/metadata.xml [new file with mode: 0644]

diff --git a/sci-mathematics/flintqs/Manifest b/sci-mathematics/flintqs/Manifest
new file mode 100644 (file)
index 0000000..ca56761
--- /dev/null
@@ -0,0 +1 @@
+DIST flintqs-1.0.tar.gz 151535 BLAKE2B c05761767af65ed5e5c42e75640c0736a26de76126907a91914083791ce0fa3659fb6f9fcdddb0b7aaaf2200010d826a18e7fcbdad0ffc6f861d4bcd941caabb SHA512 8391bb13bcc91f4ea68c972f0f6eaf9aa37bedc4c8694d039a21fd5153b203d561364ae545478d34013001354c4e8a013b2e5a5cb947b6e7f453c6f0f392f8be
diff --git a/sci-mathematics/flintqs/flintqs-1.0.ebuild b/sci-mathematics/flintqs/flintqs-1.0.ebuild
new file mode 100644 (file)
index 0000000..676e751
--- /dev/null
@@ -0,0 +1,39 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Multi-polynomial quadratic sieve for integer factorization"
+HOMEPAGE="https://github.com/sagemath/FlintQS"
+# The github tarball is missing the autotools stuff.
+SRC_URI="http://files.sagemath.org/spkg/upstream/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos ~x86-macos"
+IUSE=""
+
+DEPEND="dev-libs/gmp:="
+RDEPEND="${DEPEND}"
+
+src_test() {
+       # Factor,
+       #
+       #   1000000000000000005490000000000000001989
+       #
+       # to get
+       #
+       #   10000000000000000051 * 100000000000000000039.
+       #
+       # The sed command deletes all lines up to the pattern match.
+       #
+       ACTUAL=$(echo 1000000000000000005490000000000000001989 | \
+                                QuadraticSieve | \
+                                sed '0,/FACTORS:/d' | \
+                                sort --numeric | \
+                                uniq |
+                                tr '\n' ' ')
+       EXPECTED="10000000000000000051 100000000000000000039 "
+
+       [[ "${ACTUAL}" == "${EXPECTED}" ]] || die "test factorization failed"
+}
diff --git a/sci-mathematics/flintqs/metadata.xml b/sci-mathematics/flintqs/metadata.xml
new file mode 100644 (file)
index 0000000..5fa3875
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="person">
+    <email>mjo@gentoo.org</email>
+  </maintainer>
+  <!--
+      mjo: François maintained this package in the sage-on-gentoo overlay
+      long before I moved it into ::gentoo. You don't need an ACK from me
+      to merge his changes.
+  -->
+  <maintainer type="person">
+    <email>frp.bissey@gmail.com</email>
+    <name>François Bissey</name>
+  </maintainer>
+  <maintainer type="project">
+    <email>proxy-maint@gentoo.org</email>
+    <name>Proxy Maintainers</name>
+  </maintainer>
+
+  <upstream>
+    <remote-id type="github">sagemath/FlintQS</remote-id>
+  </upstream>
+</pkgmetadata>