commit:     f0b24a07e3b298277be4362cf56b33d591610c1f
Author:     Sam James (sam_c) <sam <AT> cmpct <DOT> info>
AuthorDate: Sun May 24 05:03:33 2020 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Mon May 25 23:08:31 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f0b24a07

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 <AT> cmpct.info>
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 dev-libs/tomsfastmath/Manifest                     |  1 +
 .../files/tomsfastmath-0.13.1-makefile-fix.patch   | 45 +++++++++++++++
 dev-libs/tomsfastmath/metadata.xml                 | 12 ++++
 dev-libs/tomsfastmath/tomsfastmath-0.13.1.ebuild   | 66 ++++++++++++++++++++++
 4 files changed, 124 insertions(+)

diff --git a/dev-libs/tomsfastmath/Manifest b/dev-libs/tomsfastmath/Manifest
new file mode 100644
index 00000000000..245166bd36a
--- /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 00000000000..7239178e5dd
--- /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 00000000000..6e3769c9110
--- /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>s...@cmpct.info</email>
+    <name>Sam James</name>
+  </maintainer>
+  <maintainer type="project">
+    <email>proxy-ma...@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 00000000000..3b61e419f34
--- /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
+}

Reply via email to