diff options
author | Sam James <sam@gentoo.org> | 2020-12-20 05:44:47 +0000 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2020-12-20 12:35:46 +0100 |
commit | d7dd158a3b2e1668ee547fcb0695d0039ac194bc (patch) | |
tree | b460225ea98a6890789a0d1c31a7e70a8137bb6b | |
parent | dev-libs/tomsfastmath: compatibility patch for (incoming) libtomcrypt (diff) | |
download | gentoo-d7dd158a3b2e1668ee547fcb0695d0039ac194bc.tar.gz gentoo-d7dd158a3b2e1668ee547fcb0695d0039ac194bc.tar.bz2 gentoo-d7dd158a3b2e1668ee547fcb0695d0039ac194bc.zip |
dev-libs/libtomcrypt: new package
"LibTomCrypt is a fairly comprehensive, modular and portable
cryptographic toolkit"
A number of packages bundle libtomcrypt at the moment. Finally add
the package, so we can start unbundling.
Original ebuild by Sam James with a few style updates by me.
Closes: https://bugs.gentoo.org/723844
Signed-off-by: Sam James <sam@gentoo.org>
Closes: https://github.com/gentoo/gentoo/pull/18734
Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r-- | dev-libs/libtomcrypt/Manifest | 1 | ||||
-rw-r--r-- | dev-libs/libtomcrypt/libtomcrypt-1.18.2.ebuild | 102 | ||||
-rw-r--r-- | dev-libs/libtomcrypt/metadata.xml | 19 |
3 files changed, 122 insertions, 0 deletions
diff --git a/dev-libs/libtomcrypt/Manifest b/dev-libs/libtomcrypt/Manifest new file mode 100644 index 000000000000..71ae48ee0d7c --- /dev/null +++ b/dev-libs/libtomcrypt/Manifest @@ -0,0 +1 @@ +DIST libtomcrypt-1.18.2.tar.xz 2638064 BLAKE2B fad67e9e2a2002425488db9987a853bda631d6638c2cb1052a1d0d1f393945e38037cc75c54cd3a4bf87bb2e13b1e868e81da054a84bbdb393519ddef5e27300 SHA512 f6117a12a42b07f8de4a8aedbccf6ff4ee94b4b81cb7263af99627c32eae646ca8ead7d3063737918db4aa118673001fcf2cfa8e4ca8b528fb00045fda7cc893 diff --git a/dev-libs/libtomcrypt/libtomcrypt-1.18.2.ebuild b/dev-libs/libtomcrypt/libtomcrypt-1.18.2.ebuild new file mode 100644 index 000000000000..9b87379612a7 --- /dev/null +++ b/dev-libs/libtomcrypt/libtomcrypt-1.18.2.ebuild @@ -0,0 +1,102 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit toolchain-funcs + +DESCRIPTION="LibTomCrypt is a comprehensive, modular and portable cryptographic toolkit" +HOMEPAGE="https://www.libtom.net/LibTomCrypt/ https://github.com/libtom/libtomcrypt" +SRC_URI=" + https://github.com/libtom/${PN}/releases/download/v${PV}/crypt-${PV}.tar.xz + -> ${P}.tar.xz" + +LICENSE="|| ( WTFPL-2 public-domain )" +# Current SONAME is 1 +# Please bump when the ABI changes upstream +# Helpful site: +# https://abi-laboratory.pro/index.php?view=timeline&l=libtomcrypt +SLOT="0/1" +KEYWORDS="~amd64 ~x86" +IUSE="+gmp +libtommath tomsfastmath" + +BDEPEND="virtual/pkgconfig" +DEPEND=" + gmp? ( dev-libs/gmp:= ) + libtommath? ( dev-libs/libtommath:= ) + tomsfastmath? ( dev-libs/tomsfastmath:= ) +" + +mymake() { + # Standard boilerplate + # Upstream use homebrewed makefiles + # Best to use same args for all, for consistency, + # in case behaviour changes (v possible). + local enabled_features=() + local extra_libs=() + + # Build support as appropriate for consumers (MPI) + use gmp && enabled_features+=( -DGMP_DESC=1 ) + use libtommath && enabled_features+=( -DLTM_DESC=1 ) + use tomsfastmath && enabled_features+=( -DTFM_DESC=1 ) + + # For the test and example binaries, we have to choose + # which MPI we want to use. + # For now (see src_test), arbitrarily choose: + # gmp > libtommath > tomsfastmath > none + if use gmp ; then + enabled_features+=( -DUSE_GMP=1 ) + extra_libs=( -lgmp ) + elif use libtommath ; then + enabled_features+=( -DUSE_LTM=1 ) + extra_libs=( -ltommath ) + elif use tomsfastmath ; then + enabled_features+=( -DUSE_TFM=1 ) + extra_libs=( -ltfm ) + fi + + # If none of the above are being used, + # the tests don't need to link against any extra + # libraries. + + # We only need to do this strange logic for tests + # anyway because we're choosing what to build a binary with. + if [[ ${TEST} != 1 ]] ; then + extra_libs=() + fi + + # IGNORE_SPEED=1 is needed to respect CFLAGS + EXTRALIBS="${extra_libs}" emake \ + CFLAGS="${CFLAGS} ${enabled_features[*]}" \ + CC="$(tc-getCC)" \ + AR="$(tc-getAR)" \ + RANLIB="$(tc-getRANLIB)" \ + LIBPATH="${ESYSROOT}/usr/$(get_libdir)" \ + INCPATH="${ESYSROOT}/usr/include" \ + IGNORE_SPEED=1 \ + "${@}" +} + +src_compile() { + mymake -f makefile.shared library +} + +src_test() { + # libtomcrypt can build with several MPI providers + # but the tests can only be built with one at a time. + # When the next release (> 1.18.2) containing + # 1) https://github.com/libtom/libtomcrypt/commit/a65cfb8dbe4 + # 2) https://github.com/libtom/libtomcrypt/commit/fdc6cd20137 + # is made, we can run tests for each provider. + TEST=1 mymake test + ./test || die "Running tests failed" +} + +src_install() { + mymake -f makefile.shared \ + DATAPATH="${EPREFIX}/usr/share/doc/${PF}" \ + DESTDIR="${ED}" \ + install install_docs + + find "${ED}" '(' -name '*.la' -o -name '*.a' ')' -delete || die +} diff --git a/dev-libs/libtomcrypt/metadata.xml b/dev-libs/libtomcrypt/metadata.xml new file mode 100644 index 000000000000..9dda15fd9cfb --- /dev/null +++ b/dev-libs/libtomcrypt/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>sam@gentoo.org</email> + <name>Sam James</name> + </maintainer> + <maintainer type="person"> + <email>mgorny@gentoo.org</email> + <name>Michał Górny</name> + </maintainer> + <use> + <flag name="libtommath">Uses <pkg>dev-libs/libtommath</pkg> for mathematical operations</flag> + <flag name="tomsfastmath">Uses <pkg>dev-libs/tomsfastmath</pkg> for mathematical operations</flag> + </use> + <upstream> + <remote-id type="github">libtom/libtomcrypt</remote-id> + </upstream> +</pkgmetadata> |