summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James (sam_c) <sam@cmpct.info>2020-05-24 05:03:33 +0000
committerMichael Orlitzky <mjo@gentoo.org>2020-05-25 19:08:31 -0400
commitf0b24a07e3b298277be4362cf56b33d591610c1f (patch)
tree1c33d8e1b855c99c5ffa4e7fa3d28eb14ef88bec
parentdev-go/go-md2man: remove old (diff)
downloadgentoo-f0b24a07e3b298277be4362cf56b33d591610c1f.tar.gz
gentoo-f0b24a07e3b298277be4362cf56b33d591610c1f.tar.bz2
gentoo-f0b24a07e3b298277be4362cf56b33d591610c1f.zip
dev-libs/tomsfastmath: New package
"TomsFastMath is a fast public domain, open source, large integer arithmetic library written in portable ISO C." app-antivirus/clamav currently bundles this, and the new dev-libs/libtomcrypto can optionally make use of it. Introduce it as a new package to keep track of security issues. Bug: https://bugs.gentoo.org/649394 Closes: https://bugs.gentoo.org/723856 Package-Manager: Portage-2.3.99, Repoman-2.3.22 Signed-off-by: Sam James (sam_c) <sam@cmpct.info> Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
-rw-r--r--dev-libs/tomsfastmath/Manifest1
-rw-r--r--dev-libs/tomsfastmath/files/tomsfastmath-0.13.1-makefile-fix.patch45
-rw-r--r--dev-libs/tomsfastmath/metadata.xml12
-rw-r--r--dev-libs/tomsfastmath/tomsfastmath-0.13.1.ebuild66
4 files changed, 124 insertions, 0 deletions
diff --git a/dev-libs/tomsfastmath/Manifest b/dev-libs/tomsfastmath/Manifest
new file mode 100644
index 000000000000..245166bd36a7
--- /dev/null
+++ b/dev-libs/tomsfastmath/Manifest
@@ -0,0 +1 @@
+DIST tfm-0.13.1.tar.xz 322684 BLAKE2B 393c0e0e018b199c9fc975ab3013466399ea337f520f4634649a9e61b2218b9a6b218d11212b535fc8bbd2bf40d8722fc413dc60756f1b8ff7c78da049765083 SHA512 84225fe81bbcd1df7e40ed0b8c8077d60612246a76f3149b672dfd1066eb0179262fa4f5a42ffd2034e60cb74cfd86e0b49139371971ebbb4f41a4ecebca2111
diff --git a/dev-libs/tomsfastmath/files/tomsfastmath-0.13.1-makefile-fix.patch b/dev-libs/tomsfastmath/files/tomsfastmath-0.13.1-makefile-fix.patch
new file mode 100644
index 000000000000..7239178e5dde
--- /dev/null
+++ b/dev-libs/tomsfastmath/files/tomsfastmath-0.13.1-makefile-fix.patch
@@ -0,0 +1,45 @@
+diff --git a/makefile.shared b/makefile.shared
+index 47c35d9..cebaa04 100644
+--- a/makefile.shared
++++ b/makefile.shared
+@@ -1,7 +1,8 @@
+ #makefile for TomsFastMath
+ #
+ #
+-VERSION=1:0:0
++VERSION=0.13.1
++VERSION_LIB=1:0:0
+
+ LT ?= libtool
+ LTCOMPILE = $(LT) --mode=compile --tag=CC $(CC)
+@@ -89,13 +90,16 @@ $(OBJECTS): $(HEADERS)
+ $(LTCOMPILE) $(CFLAGS) $(LDFLAGS) -o $@ -c $<
+
+ $(LIBNAME): $(OBJECTS)
+- libtool --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) `find . -type f | LC_ALL=C sort | grep "[.]lo" | xargs` -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION) -export-symbols libtfm.symbols
++ libtool --mode=link --tag=CC $(CC) $(CFLAGS) $(LDFLAGS) `find . -type f | LC_ALL=C sort | grep "[.]lo" | xargs` -o $(LIBNAME) -rpath $(LIBPATH) -version-info $(VERSION_LIB) -export-symbols libtfm.symbols
+
+ install: $(LIBNAME)
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(LIBPATH)
+ libtool --mode=install install -c $(LIBNAME) $(DESTDIR)$(LIBPATH)/$(LIBNAME)
+ install -d -g $(GROUP) -o $(USER) $(DESTDIR)$(INCPATH)
+ install -g $(GROUP) -o $(USER) $(HEADERS_PUB) $(DESTDIR)$(INCPATH)
++ sed -e 's,^Version:.*,Version: $(VERSION),' tomsfastmath.pc.in > tomsfastmath.pc
++ install -d $(DESTDIR)$(LIBPATH)/pkgconfig
++ install -m 644 tomsfastmath.pc $(DESTDIR)$(LIBPATH)/pkgconfig/
+
+ HEADER_FILES=$(notdir $(HEADERS_PUB))
+ uninstall:
+diff --git a/tomsfastmath.pc.in b/tomsfastmath.pc.in
+new file mode 100644
+index 0000000..a0275ab
+--- /dev/null
++++ b/tomsfastmath.pc.in
+@@ -0,0 +1,7 @@
++# TomsFastMath, a fast ISO C bignum library. -- Tom St Denis
++# SPDX-License-Identifier: Unlicense
++
++Name: TomFastMath
++Description: Fast multiple-precision integer library
++Version: @VERSION@
++Libs: -ltfm
diff --git a/dev-libs/tomsfastmath/metadata.xml b/dev-libs/tomsfastmath/metadata.xml
new file mode 100644
index 000000000000..6e3769c91101
--- /dev/null
+++ b/dev-libs/tomsfastmath/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@cmpct.info</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+</pkgmetadata>
diff --git a/dev-libs/tomsfastmath/tomsfastmath-0.13.1.ebuild b/dev-libs/tomsfastmath/tomsfastmath-0.13.1.ebuild
new file mode 100644
index 000000000000..3b61e419f34b
--- /dev/null
+++ b/dev-libs/tomsfastmath/tomsfastmath-0.13.1.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="TomsFastMath is a fast public domain large integer arithmetic library"
+HOMEPAGE="https://www.libtom.net/TomsFastMath/ https://github.com/libtom/tomsfastmath"
+SRC_URI="https://github.com/libtom/tomsfastmath/releases/download/v${PV}/tfm-${PV}.tar.xz"
+LICENSE="Unlicense"
+
+# Current SONAME is 1
+# Please bump when the ABI changes upstream
+# Helpful site:
+# https://abi-laboratory.pro/index.php?view=timeline&l=tomsfastmath
+SLOT="0/1"
+
+KEYWORDS="~amd64"
+
+PATCHES=(
+ "${FILESDIR}/${P}-makefile-fix.patch"
+)
+
+_emake() {
+ # Standard boilerplate
+ # Upstream use homebrewed makefiles
+ # Best to use same args for all, for consistency,
+ # in case behaviour changes (v possible).
+ emake \
+ CC="$(tc-getCC)" \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)" \
+ DESTDIR="${ED}" \
+ LIBPATH="/usr/$(get_libdir)" \
+ IGNORE_SPEED=1 \
+ "$@"
+}
+
+src_compile() {
+ _emake -f makefile.shared
+}
+
+src_test() {
+ _emake test_standalone stest rsatest
+
+ # We choose to be verbose during the test process
+ # because the output is quite repetitive with no
+ # clear demarcation b/t tests
+ tests=( "test" "stest" "rsatest" )
+
+ for test in "${tests[@]}"; do
+ einfo "Running test (${test})"
+ ./${test} || die "Test (${test}) failed"
+ einfo "Completed test (${test})"
+ done
+}
+
+src_install() {
+ _emake -f makefile.shared install
+
+ # Remove unnecessary .la files
+ find "${ED}" -name '*.la' -delete || die
+ # Same for static libs
+ find "${ED}" -name "*.a" -delete || die
+}