From 56bd759df1d0c750a065b8c845e93d5dfa6b549d Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Sat, 8 Aug 2015 13:49:04 -0700 Subject: proj/gentoo: Initial commit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson X-Thanks: Alec Warner - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring - wrote much python to improve cvs2svn X-Thanks: Rich Freeman - validation scripts X-Thanks: Patrick Lauer - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed --- dev-libs/libsecp256k1/Manifest | 2 + dev-libs/libsecp256k1/files/20141212-fixes.patch | 289 +++++++++++++++++++++ .../libsecp256k1-0.0.0_pre20141212.ebuild | 74 ++++++ .../libsecp256k1-0.0.0_pre20150423.ebuild | 54 ++++ dev-libs/libsecp256k1/libsecp256k1-9999.ebuild | 51 ++++ dev-libs/libsecp256k1/metadata.xml | 20 ++ 6 files changed, 490 insertions(+) create mode 100644 dev-libs/libsecp256k1/Manifest create mode 100644 dev-libs/libsecp256k1/files/20141212-fixes.patch create mode 100644 dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20141212.ebuild create mode 100644 dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20150423.ebuild create mode 100644 dev-libs/libsecp256k1/libsecp256k1-9999.ebuild create mode 100644 dev-libs/libsecp256k1/metadata.xml (limited to 'dev-libs/libsecp256k1') diff --git a/dev-libs/libsecp256k1/Manifest b/dev-libs/libsecp256k1/Manifest new file mode 100644 index 00000000000..108c5631a44 --- /dev/null +++ b/dev-libs/libsecp256k1/Manifest @@ -0,0 +1,2 @@ +DIST secp256k1-v0.0.0_pre20141212.tgz 60007 SHA256 f5d3a7cac425caf64040395d99c1a91ab2ca1c973b228a66772ba4a290f355ce SHA512 ab2a211c1bf882ebb62e78891e4e12c3ed7244d46d532e37ff2a669ba08db8dcafec7b4c57c073310e463957fd2fa0dffb940c4f35b61890cb8ce86d4283f0f6 WHIRLPOOL 3aa8b7545ca24028ceb17e770fdbf997e2895212ec25a193fcd926660e78f16d704bf27a5b1aa7cf3cabe643c33b128bf0b0568172c15833eb82fcc58e5941c1 +DIST secp256k1-v0.0.0_pre20150423.tgz 77451 SHA256 7e4e78d5ded245b59dbe8abc9804fdf7ba41d9030936fb39766d5f2bd7e29b2e SHA512 a640188d83e9aa5a4292900c211e29815f2f1b57db4fbccfb8a3bf770bb52f0232d405044f317a3b6b6ea4d5a5107180dc4e374cf7ab06eb79676c270061c3b7 WHIRLPOOL 5796d32cd8f578ef28f6e79ced53fa505519273af39bdeaa413e9b48669ce7945d12437c6093f3aa0b3db9412dac50638c335a3f4f8cf0d4ffa8c94665a85f72 diff --git a/dev-libs/libsecp256k1/files/20141212-fixes.patch b/dev-libs/libsecp256k1/files/20141212-fixes.patch new file mode 100644 index 00000000000..f8cb2743685 --- /dev/null +++ b/dev-libs/libsecp256k1/files/20141212-fixes.patch @@ -0,0 +1,289 @@ +diff --git a/build-aux/m4/bitcoin_secp.m4 b/build-aux/m4/bitcoin_secp.m4 +index 1373478..4a398d6 100644 +--- a/build-aux/m4/bitcoin_secp.m4 ++++ b/build-aux/m4/bitcoin_secp.m4 +@@ -1,12 +1,6 @@ + dnl libsecp25k1 helper checks + AC_DEFUN([SECP_INT128_CHECK],[ + has_int128=$ac_cv_type___int128 +-if test x"$has_int128" != x"yes" && test x"$set_field" = x"64bit"; then +- AC_MSG_ERROR([$set_field field support explicitly requested but is not compatible with this host]) +-fi +-if test x"$has_int128" != x"yes" && test x"$set_scalar" = x"64bit"; then +- AC_MSG_ERROR([$set_scalar scalar support explicitly requested but is not compatible with this host]) +-fi + ]) + + dnl +@@ -18,11 +12,6 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + __asm__ __volatile__("movq $0x100000000,%1; mulq %%rsi" : "+a"(a) : "S"(tmp) : "cc", "%rdx"); + ]])],[has_64bit_asm=yes],[has_64bit_asm=no]) + AC_MSG_RESULT([$has_64bit_asm]) +-if test x"$set_field" == x"64bit_asm"; then +- if test x"$has_64bit_asm" == x"no"; then +- AC_MSG_ERROR([$set_field field support explicitly requested but no x86_64 assembly available]) +- fi +-fi + ]) + + dnl +@@ -43,7 +32,7 @@ else + )]) + LIBS= + fi +-if test x"$has_libcrypto" == x"yes" && test x"$has_openssl_ec" = x; then ++if test x"$has_libcrypto" = x"yes" && test x"$has_openssl_ec" = x; then + AC_MSG_CHECKING(for EC functions in libcrypto) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include +@@ -69,11 +58,4 @@ if test x"$has_gmp" != x"yes"; then + CPPFLAGS="$CPPFLAGS_TEMP" + LIBS="$LIBS_TEMP" + fi +-if test x"$set_field" = x"gmp" && test x"$has_gmp" != x"yes"; then +- AC_MSG_ERROR([$set_field field support explicitly requested but libgmp was not found]) +-fi +-if test x"$set_bignum" = x"gmp" && test x"$has_gmp" != x"yes"; then +- AC_MSG_ERROR([$set_bignum field support explicitly requested but libgmp was not found]) +-fi + ]) +- +diff --git a/configure.ac b/configure.ac +index 40e121e..bd99013 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -23,7 +23,7 @@ if test "x$CFLAGS" = "x"; then + fi + + AC_PROG_CC_C99 +-if test x"$ac_cv_prog_cc_c99" == x"no"; then ++if test x"$ac_cv_prog_cc_c99" = x"no"; then + AC_MSG_ERROR([c99 compiler support required]) + fi + +@@ -96,15 +96,18 @@ AC_ARG_ENABLE(endomorphism, + [use_endomorphism=$enableval], + [use_endomorphism=no]) + +-AC_ARG_WITH([field], [AS_HELP_STRING([--with-field=gmp|64bit|64bit_asm|32bit|auto], ++AC_ARG_WITH([field], [AS_HELP_STRING([--with-field=gmp|64bit|32bit|auto], + [Specify Field Implementation. Default is auto])],[req_field=$withval], [req_field=auto]) + +-AC_ARG_WITH([bignum], [AS_HELP_STRING([--with-bignum=gmp|none|auto], ++AC_ARG_WITH([bignum], [AS_HELP_STRING([--with-bignum=gmp|no|auto], + [Specify Bignum Implementation. Default is auto])],[req_bignum=$withval], [req_bignum=auto]) + + AC_ARG_WITH([scalar], [AS_HELP_STRING([--with-scalar=64bit|32bit|auto], + [Specify scalar implementation. Default is auto])],[req_scalar=$withval], [req_scalar=auto]) + ++AC_ARG_WITH([asm], [AS_HELP_STRING([--with-asm=x86_64|no|auto] ++[Specify assembly optimizations to use. Default is auto])],[req_asm=$withval], [req_asm=auto]) ++ + AC_CHECK_TYPES([__int128]) + + AC_MSG_CHECKING([for __builtin_expect]) +@@ -113,40 +116,66 @@ AC_COMPILE_IFELSE([AC_LANG_SOURCE([[void myfunc() {__builtin_expect(0,0);}]])], + [ AC_MSG_RESULT([no]) + ]) + +-if test x"$req_field" = x"auto"; then ++if test x"$req_asm" = x"auto"; then + SECP_64BIT_ASM_CHECK + if test x"$has_64bit_asm" = x"yes"; then +- set_field=64bit_asm ++ set_asm=x86_64 ++ fi ++ if test x"$set_asm" = x; then ++ set_asm=no + fi ++else ++ set_asm=$req_asm ++ case $set_asm in ++ x86_64) ++ SECP_64BIT_ASM_CHECK ++ if test x"$has_64bit_asm" != x"yes"; then ++ AC_MSG_ERROR([x86_64 assembly optimization requested but not available]) ++ fi ++ ;; ++ no) ++ ;; ++ *) ++ AC_MSG_ERROR([invalid assembly optimization selection]) ++ ;; ++ esac ++fi + ++if test x"$req_field" = x"auto"; then ++ if test x"set_asm" = x"x86_64"; then ++ set_field=64bit ++ fi + if test x"$set_field" = x; then + SECP_INT128_CHECK + if test x"$has_int128" = x"yes"; then + set_field=64bit + fi + fi +- + if test x"$set_field" = x; then + SECP_GMP_CHECK + if test x"$has_gmp" = x"yes"; then + set_field=gmp + fi + fi +- + if test x"$set_field" = x; then + set_field=32bit + fi + else + set_field=$req_field + case $set_field in +- 64bit_asm) +- SECP_64BIT_ASM_CHECK +- ;; + 64bit) +- SECP_INT128_CHECK ++ if test x"$set_asm" != x"x86_64"; then ++ SECP_INT128_CHECK ++ if test x"$has_int128" != x"yes"; then ++ AC_MSG_ERROR([64bit field explicitly requested but neither __int128 support or x86_64 assembly available]) ++ fi ++ fi + ;; + gmp) + SECP_GMP_CHECK ++ if test x"$has_gmp" != x"yes"; then ++ AC_MSG_ERROR([gmp field explicitly requested but libgmp not available]) ++ fi + ;; + 32bit) + ;; +@@ -157,11 +186,9 @@ else + fi + + if test x"$req_scalar" = x"auto"; then +- if test x"$set_scalar" = x; then +- SECP_INT128_CHECK +- if test x"$has_int128" = x"yes"; then +- set_scalar=64bit +- fi ++ SECP_INT128_CHECK ++ if test x"$has_int128" = x"yes"; then ++ set_scalar=64bit + fi + if test x"$set_scalar" = x; then + set_scalar=32bit +@@ -171,6 +198,9 @@ else + case $set_scalar in + 64bit) + SECP_INT128_CHECK ++ if test x"$has_int128" != x"yes"; then ++ AC_MSG_ERROR([64bit scalar explicitly requested but __int128 support not available]) ++ fi + ;; + 32bit) + ;; +@@ -187,15 +217,18 @@ if test x"$req_bignum" = x"auto"; then + fi + + if test x"$set_bignum" = x; then +- set_bignum=none ++ set_bignum=no + fi + else + set_bignum=$req_bignum + case $set_bignum in + gmp) + SECP_GMP_CHECK ++ if test x"$has_gmp" != x"yes"; then ++ AC_MSG_ERROR([gmp bignum explicitly requested but libgmp not available]) ++ fi + ;; +- none) ++ no) + ;; + *) + AC_MSG_ERROR([invalid bignum implementation selection]) +@@ -203,14 +236,21 @@ else + esac + fi + ++# select assembly optimization ++case $set_asm in ++x86_64) ++ AC_DEFINE(USE_ASM_X86_64, 1, [Define this symbol to enable x86_64 assembly optimizations]) ++ ;; ++no) ++ ;; ++*) ++ AC_MSG_ERROR([invalid assembly optimizations]) ++ ;; ++esac ++ + # select field implementation + case $set_field in +-64bit_asm) +- AC_DEFINE(USE_FIELD_5X52_ASM, 1, [Define this symbol to use the assembly version for the 5x52 field implementation]) +- AC_DEFINE(USE_FIELD_5X52, 1, [Define this symbol to use the FIELD_5X52 implementation]) +- ;; + 64bit) +- AC_DEFINE(USE_FIELD_5X52_INT128, 1, [Define this symbol to use the __int128 version for the 5x52 field implementation]) + AC_DEFINE(USE_FIELD_5X52, 1, [Define this symbol to use the FIELD_5X52 implementation]) + ;; + gmp) +@@ -233,7 +273,7 @@ gmp) + AC_DEFINE(USE_FIELD_INV_NUM, 1, [Define this symbol to use the num-based field inverse implementation]) + AC_DEFINE(USE_SCALAR_INV_NUM, 1, [Define this symbol to use the num-based scalar inverse implementation]) + ;; +-none) ++no) + AC_DEFINE(USE_NUM_NONE, 1, [Define this symbol to use no num implementation]) + AC_DEFINE(USE_FIELD_INV_BUILTIN, 1, [Define this symbol to use the native field inverse implementation]) + AC_DEFINE(USE_SCALAR_INV_BUILTIN, 1, [Define this symbol to use the native scalar inverse implementation]) +@@ -258,7 +298,7 @@ esac + + if test x"$use_tests" = x"yes"; then + SECP_OPENSSL_CHECK +- if test x"$has_openssl_ec" == x"yes"; then ++ if test x"$has_openssl_ec" = x"yes"; then + AC_DEFINE(ENABLE_OPENSSL_TESTS, 1, [Define this symbol if OpenSSL EC functions are available]) + SECP_TEST_INCLUDES="$SSL_CFLAGS $CRYPTO_CFLAGS" + SECP_TEST_LIBS="$CRYPTO_LIBS" +@@ -281,9 +321,11 @@ if test x"$use_endomorphism" = x"yes"; then + AC_DEFINE(USE_ENDOMORPHISM, 1, [Define this symbol to use endomorphism optimization]) + fi + ++AC_MSG_NOTICE([Using assembly optimizations: $set_asm]) + AC_MSG_NOTICE([Using field implementation: $set_field]) + AC_MSG_NOTICE([Using bignum implementation: $set_bignum]) + AC_MSG_NOTICE([Using scalar implementation: $set_scalar]) ++AC_MSG_NOTICE([Using endomorphism optimizations: $use_endomorphism]) + + AC_CONFIG_HEADERS([src/libsecp256k1-config.h]) + AC_CONFIG_FILES([Makefile libsecp256k1.pc]) +@@ -291,7 +333,6 @@ AC_SUBST(SECP_INCLUDES) + AC_SUBST(SECP_LIBS) + AC_SUBST(SECP_TEST_LIBS) + AC_SUBST(SECP_TEST_INCLUDES) +-AM_CONDITIONAL([USE_ASM], [test x"$set_field" == x"64bit_asm"]) + AM_CONDITIONAL([USE_TESTS], [test x"$use_tests" != x"no"]) + AM_CONDITIONAL([USE_BENCHMARK], [test x"$use_benchmark" != x"no"]) + +diff --git a/src/field_5x52_impl.h b/src/field_5x52_impl.h +index 63176d6..a045db3 100644 +--- a/src/field_5x52_impl.h ++++ b/src/field_5x52_impl.h +@@ -16,12 +16,10 @@ + #include "num.h" + #include "field.h" + +-#if defined(USE_FIELD_5X52_ASM) ++#if defined(USE_ASM_X86_64) + #include "field_5x52_asm_impl.h" +-#elif defined(USE_FIELD_5X52_INT128) +-#include "field_5x52_int128_impl.h" + #else +-#error "Please select field_5x52 implementation" ++#include "field_5x52_int128_impl.h" + #endif + + /** Implements arithmetic modulo FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F, diff --git a/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20141212.ebuild b/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20141212.ebuild new file mode 100644 index 00000000000..48768c1cebb --- /dev/null +++ b/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20141212.ebuild @@ -0,0 +1,74 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit autotools eutils + +MyPN=secp256k1 +DESCRIPTION="Optimized C library for EC operations on curve secp256k1" +HOMEPAGE="https://github.com/bitcoin/${MyPN}" +COMMITHASH="2a53a472f24acd9ff10878b5bf21b5b27ab8060a" +SRC_URI="https://github.com/bitcoin/${MyPN}/archive/${COMMITHASH}.tar.gz -> ${MyPN}-v${PV}.tgz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 arm x86" +IUSE="asm doc endomorphism gmp test" + +REQUIRED_USE=" + asm? ( amd64 ) +" +RDEPEND=" + gmp? ( dev-libs/gmp:0 ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + >=sys-devel/gcc-4.7 + test? ( dev-libs/openssl:0 ) +" + +S="${WORKDIR}/${MyPN}-${COMMITHASH}" + +src_prepare() { + epatch "${FILESDIR}/20141212-fixes.patch" + eautoreconf +} + +src_configure() { + local field + if use gmp && ! use asm; then + field=gmp + elif use amd64; then + field=64bit + else + field=32bit + fi + + econf \ + --disable-benchmark \ + $(use_enable test tests) \ + $(use_enable endomorphism) \ + --with-asm=$(usex asm auto no) \ + --with-bignum=$(usex gmp gmp no) \ + --with-field=${field} \ + --disable-static +} + +src_compile() { + emake +} + +src_test() { + emake check +} + +src_install() { + if use doc; then + dodoc README.md + fi + + emake DESTDIR="${D}" install + prune_libtool_files +} diff --git a/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20150423.ebuild b/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20150423.ebuild new file mode 100644 index 00000000000..2024528ff0f --- /dev/null +++ b/dev-libs/libsecp256k1/libsecp256k1-0.0.0_pre20150423.ebuild @@ -0,0 +1,54 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit autotools eutils + +MyPN=secp256k1 +DESCRIPTION="Optimized C library for EC operations on curve secp256k1" +HOMEPAGE="https://github.com/bitcoin/${MyPN}" +COMMITHASH="22f60a62801a8a49ecd049e7a563f69a41affd8d" +SRC_URI="https://github.com/bitcoin/${MyPN}/archive/${COMMITHASH}.tar.gz -> ${MyPN}-v${PV}.tgz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux" +IUSE="asm doc endomorphism gmp test" + +REQUIRED_USE=" + asm? ( amd64 ) +" +RDEPEND=" + gmp? ( dev-libs/gmp:0 ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + test? ( dev-libs/openssl:0 ) +" + +S="${WORKDIR}/${MyPN}-${COMMITHASH}" + +src_prepare() { + eautoreconf +} + +src_configure() { + econf \ + --disable-benchmark \ + $(use_enable test tests) \ + $(use_enable endomorphism) \ + --with-asm=$(usex asm auto no) \ + --with-bignum=$(usex gmp gmp no) \ + --disable-static +} + +src_install() { + if use doc; then + dodoc README.md + fi + + emake DESTDIR="${D}" install + prune_libtool_files +} diff --git a/dev-libs/libsecp256k1/libsecp256k1-9999.ebuild b/dev-libs/libsecp256k1/libsecp256k1-9999.ebuild new file mode 100644 index 00000000000..b0a109807c0 --- /dev/null +++ b/dev-libs/libsecp256k1/libsecp256k1-9999.ebuild @@ -0,0 +1,51 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +EGIT_REPO_URI="https://github.com/bitcoin/secp256k1.git" +inherit git-2 autotools eutils + +MyPN=secp256k1 +DESCRIPTION="Optimized C library for EC operations on curve secp256k1" +HOMEPAGE="https://github.com/bitcoin/${MyPN}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="" +IUSE="asm doc endomorphism gmp test" + +REQUIRED_USE=" + asm? ( amd64 ) +" +RDEPEND=" + gmp? ( dev-libs/gmp:0 ) +" +DEPEND="${RDEPEND} + virtual/pkgconfig + test? ( dev-libs/openssl:0 ) +" + +src_prepare() { + eautoreconf +} + +src_configure() { + econf \ + --disable-benchmark \ + $(use_enable test tests) \ + $(use_enable endomorphism) \ + --with-asm=$(usex asm auto no) \ + --with-bignum=$(usex gmp gmp no) \ + --disable-static +} + +src_install() { + if use doc; then + dodoc README.md + fi + + emake DESTDIR="${D}" install + prune_libtool_files +} diff --git a/dev-libs/libsecp256k1/metadata.xml b/dev-libs/libsecp256k1/metadata.xml new file mode 100644 index 00000000000..60835a2cb1e --- /dev/null +++ b/dev-libs/libsecp256k1/metadata.xml @@ -0,0 +1,20 @@ + + + + proxy-maintainers + + blueness@gentoo.org + Anthony G. Basile + + + luke-jr+gentoobugs@utopios.org + Luke Dashjr + + + Enable x86_64 assembly optimisation + Enable endomorphism + + + bitcoin/secp256k1 + + -- cgit v1.2.1