Gentoo Archives: gentoo-dev

From: Michael Orlitzky <mjo@g.o>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] [PATCH 2/2] sci-libs/fflas-ffpack: new package for finite-field linear algebra.
Date: Thu, 02 Apr 2020 13:12:17
Message-Id: 20200402131123.9102-3-mjo@gentoo.org
In Reply to: [gentoo-dev] [PATCH 0/2] New x86 CPU flags and a package to use them. by Michael Orlitzky
1 This is a straightforward import of the latest fflas-ffpack-2.4.3.ebuild
2 that François Bissey has been maintaining in the sage-on-gentoo overlay,
3 with only a few minor changes:
4
5 * I added a "+" to the LICENSE to match the upstream LGPL-2.1+.
6
7 * I switched the openmp check to use tc-check-openmp() conditionally
8 on the MERGE_TYPE variable.
9
10 * Added BDEPEND="virtual/pkgconfig" since we patch in a call to
11 PKG_CHECK_MODULES.
12
13 I also removed a warning about build failures with USE=openmp. From what
14 I can tell, this stems from an older report (upstream Github issue 48)
15 using gcc-4.9.x that was never fully debugged. If the problems persist,
16 we can revisit that report, or just mask the flag.
17
18 Closes: https://bugs.gentoo.org/show_bug.cgi?id=715678
19 Package-Manager: Portage-2.3.89, Repoman-2.3.20
20 Signed-off-by: Michael Orlitzky <mjo@g.o>
21 ---
22 sci-libs/fflas-ffpack/Manifest | 1 +
23 .../fflas-ffpack/fflas-ffpack-2.4.3.ebuild | 62 +++++++++++++
24 .../files/fflas-ffpack-2.3.2-blaslapack.patch | 90 +++++++++++++++++++
25 sci-libs/fflas-ffpack/metadata.xml | 37 ++++++++
26 4 files changed, 190 insertions(+)
27 create mode 100644 sci-libs/fflas-ffpack/Manifest
28 create mode 100644 sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild
29 create mode 100644 sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch
30 create mode 100644 sci-libs/fflas-ffpack/metadata.xml
31
32 diff --git a/sci-libs/fflas-ffpack/Manifest b/sci-libs/fflas-ffpack/Manifest
33 new file mode 100644
34 index 00000000000..d10a12abc35
35 --- /dev/null
36 +++ b/sci-libs/fflas-ffpack/Manifest
37 @@ -0,0 +1 @@
38 +DIST fflas-ffpack-2.4.3.tar.gz 1059033 BLAKE2B e416429bb426a81cf9c25d54c83380ff9a9d658c711da06e6359d968843d4d9d26cf8389379f9ad4a5cbcee93e0afc9fe0497bb7a8f190e0c72c0b1f7b67de18 SHA512 c7620ba5a92e4114a581a6bea32267f9d5a9f0eb7e23fc0a7a97ce4b8124bb7b29f89ff2ad6ad270d97c76489625b57a354e581905b74ee57b35f4ca3e196a44
39 diff --git a/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild b/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild
40 new file mode 100644
41 index 00000000000..4115dc61ace
42 --- /dev/null
43 +++ b/sci-libs/fflas-ffpack/fflas-ffpack-2.4.3.ebuild
44 @@ -0,0 +1,62 @@
45 +# Copyright 1999-2020 Gentoo Authors
46 +# Distributed under the terms of the GNU General Public License v2
47 +
48 +EAPI=7
49 +
50 +inherit autotools toolchain-funcs
51 +
52 +DESCRIPTION="Library for dense linear algebra over word-size finite fields"
53 +HOMEPAGE="https://linbox-team.github.io/fflas-ffpack/"
54 +SRC_URI="https://github.com/linbox-team/${PN}/releases/download/${PV}/${P}.tar.gz"
55 +
56 +LICENSE="LGPL-2.1+"
57 +SLOT="0"
58 +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
59 +IUSE="static-libs openmp cpu_flags_x86_fma3 cpu_flags_x86_fma4 cpu_flags_x86_sse3 cpu_flags_x86_ssse3 cpu_flags_x86_sse4_1 cpu_flags_x86_sse4_2 cpu_flags_x86_avx cpu_flags_x86_avx2 cpu_flags_x86_avx512f cpu_flags_x86_avx512dq cpu_flags_x86_avx512vl"
60 +
61 +# Our autotools patch hacks in PKG_CHECK_MODULES calls.
62 +BDEPEND="virtual/pkgconfig"
63 +DEPEND="virtual/cblas
64 + virtual/blas
65 + virtual/lapack
66 + dev-libs/gmp[cxx]
67 + =sci-libs/givaro-4.1*"
68 +RDEPEND="${DEPEND}"
69 +
70 +PATCHES=( "${FILESDIR}/${PN}-2.3.2-blaslapack.patch" )
71 +
72 +pkg_pretend() {
73 + [[ "${MERGE_TYPE}" != "binary" ]] && use openmp && tc-check-openmp
74 +}
75 +
76 +pkg_setup(){
77 + tc-export PKG_CONFIG
78 +}
79 +
80 +src_prepare(){
81 + default
82 + eautoreconf
83 +}
84 +
85 +src_configure() {
86 + econf \
87 + --enable-precompilation \
88 + $(use_enable openmp) \
89 + $(use_enable cpu_flags_x86_fma3 fma) \
90 + $(use_enable cpu_flags_x86_fma4 fma4) \
91 + $(use_enable cpu_flags_x86_sse3 sse3) \
92 + $(use_enable cpu_flags_x86_ssse3 ssse3) \
93 + $(use_enable cpu_flags_x86_sse4_1 sse41) \
94 + $(use_enable cpu_flags_x86_sse4_2 sse42) \
95 + $(use_enable cpu_flags_x86_avx avx) \
96 + $(use_enable cpu_flags_x86_avx2 avx2) \
97 + $(use_enable cpu_flags_x86_avx512f avx512f) \
98 + $(use_enable cpu_flags_x86_avx512dq avx512dq) \
99 + $(use_enable cpu_flags_x86_avx512vl avx512vl) \
100 + $(use_enable static-libs static)
101 +}
102 +
103 +src_install(){
104 + default
105 + find "${ED}" -name '*.la' -delete || die
106 +}
107 diff --git a/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch b/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch
108 new file mode 100644
109 index 00000000000..3154a261819
110 --- /dev/null
111 +++ b/sci-libs/fflas-ffpack/files/fflas-ffpack-2.3.2-blaslapack.patch
112 @@ -0,0 +1,90 @@
113 +diff --git a/configure.ac b/configure.ac
114 +index 5b46b18..5e0264a 100644
115 +--- a/configure.ac
116 ++++ b/configure.ac
117 +@@ -248,49 +248,24 @@ dnl echo '**********************************************************************
118 + dnl exit 1
119 + dnl ])
120 +
121 +-BLAS_FOUND=false
122 +-
123 +-FF_CHECK_BLAS_CFLAGS
124 +-FF_CHECK_BLAS_LIBS
125 +-FF_CHECK_MKL
126 +-FF_CHECK_USER_BLAS
127 +-FF_CHECK_USER_LAPACK
128 +-
129 +-FF_OPENBLAS_NUM_THREADS
130 +-
131 +-# FF_CHECK_BLAS
132 +-
133 +-# FF_CHECK_GOTOBLAS
134 +-
135 +-# FF_CHECK_GSL
136 +-
137 +-# if test "$BLAS_FOUND" = "false" ; then
138 +- # FF_CHECK_CBLAS
139 +-# fi
140 +-
141 +-# if test "$BLAS_FOUND" = "false" ; then
142 +- # FF_CHECK_OTHERBLAS
143 +-# fi
144 +-
145 +-# FF_CHECK_LAPACK
146 +-
147 +-# if test "$BLAS_FOUND" = "false" ; then
148 +- # FF_CHECK_BLAS2
149 +-# fi
150 +-
151 +-
152 +-
153 +-# BLAS_LIBS="${BLAS_LIBS}"
154 +-# BLAS_LIBS="-L/${BLAS_PATH} ${LAPACK_LIBS} ${BLAS_LIBS}"
155 +-# AC_SUBST(BLAS_LIBS)
156 +-
157 +-# FF_CHECK_CUDA
158 +-
159 +-# AM_CONDITIONAL(FFLASFFPACK_HAVE_BLAS, test "x$BLAS_FOUND" != "xfalse")
160 +-
161 +-
162 +-# FF_BENCH
163 +-
164 ++PKG_PROG_PKG_CONFIG
165 ++
166 ++PKG_CHECK_MODULES([BLAS], [cblas blas],[
167 ++ AC_DEFINE(HAVE_BLAS,1,[Define if BLAS is installed])
168 ++ AC_DEFINE(HAVE_CBLAS,1,[Define if C interface to BLAS is installed])
169 ++ HAVE_BLAS=yes
170 ++ BLAS_PATH=""
171 ++ CBLAS_LIBS="${BLAS_LIBS}"
172 ++ AC_SUBST(BLAS_LIBS)
173 ++ AC_SUBST(CBLAS_LIBS)
174 ++ AC_SUBST(BLAS_CFLAGS)
175 ++ AC_SUBST(BLAS_PATH)])
176 ++
177 ++PKG_CHECK_MODULES([LAPACK], [lapack],[
178 ++ AC_DEFINE(HAVE_LAPACK,1,[Define if LAPACK is installed])
179 ++ AC_SUBST(LAPACK_LIBS)])
180 ++
181 ++AM_CONDITIONAL(FFLASFFPACK_HAVE_LAPACK, test "x$HAVE_LAPACK" == "x1")
182 +
183 + FF_DOC
184 +
185 +diff --git a/fflas-ffpack-config.in b/fflas-ffpack-config.in
186 +index f1dac22..17633a0 100644
187 +--- a/fflas-ffpack-config.in
188 ++++ b/fflas-ffpack-config.in
189 +@@ -107,11 +107,11 @@ while test $# -gt 0; do
190 + ;;
191 +
192 + --libs)
193 +- echo @PARLIBS@ @PRECOMPILE_LIBS@ @BLAS_LIBS@ @GIVARO_LIBS@ # @CUDA_LIBS@
194 ++ echo @PARLIBS@ @PRECOMPILE_LIBS@ @LAPACK_LIBS@ @BLAS_LIBS@ @GIVARO_LIBS@ # @CUDA_LIBS@
195 + ;;
196 +
197 + --blas-libs)
198 +- echo @BLAS_LIBS@
199 ++ echo @LAPACK_LIBS@ @BLAS_LIBS@
200 + ;;
201 +
202 + --blas-home)
203 diff --git a/sci-libs/fflas-ffpack/metadata.xml b/sci-libs/fflas-ffpack/metadata.xml
204 new file mode 100644
205 index 00000000000..9de9afc41f1
206 --- /dev/null
207 +++ b/sci-libs/fflas-ffpack/metadata.xml
208 @@ -0,0 +1,37 @@
209 +<?xml version="1.0" encoding="UTF-8"?>
210 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
211 +<pkgmetadata>
212 + <maintainer type="person">
213 + <email>mjo@g.o</email>
214 + </maintainer>
215 + <!--
216 + mjo: François maintained this package in the sage-on-gentoo overlay
217 + long before I moved it into ::gentoo. You don't need an ACK from me
218 + to merge his changes.
219 + -->
220 + <maintainer type="person">
221 + <email>frp.bissey@×××××.com</email>
222 + <name>François Bissey</name>
223 + </maintainer>
224 + <maintainer type="project">
225 + <email>proxy-maint@g.o</email>
226 + <name>Proxy Maintainers</name>
227 + </maintainer>
228 +
229 + <longdescription lang="en">
230 + FFLAS-FFPACK is a library for basic linear algebra operations over
231 + a finite field. It is inspired by the BLAS interface (Basic Linear
232 + Algebra Subprograms) and the LAPACK library for numerical linear
233 + algebra, and shares part of their design. Yet it differs in many
234 + aspects due to the specifics of computing over a finite field: it
235 + is generic with respect to the finite field, so as to accommodate
236 + a large variety of field sizes and implementations; consequently,
237 + all routines use C++ template generics and the library is
238 + primarily meant to be used as a source code library, to be
239 + included and compiled in the user's software.
240 + </longdescription>
241 +
242 + <upstream>
243 + <remote-id type="github">linbox-team/fflas-ffpack</remote-id>
244 + </upstream>
245 +</pkgmetadata>
246 --
247 2.24.1