Compare commits

...
Sign in to create a new pull request.

50 commits

Author SHA1 Message Date
Benjamin A. Beasley
0baa1447f4 Skip a test that fails on x86_64 with GCC 16 2026-01-11 00:01:53 +00:00
Fedora Release Engineering
629c1eb702 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 18:24:31 +00:00
Benjamin A. Beasley
7acb0cb61f Remove an unwanted hidden file from the docs 2025-05-10 22:34:26 -04:00
Benjamin A. Beasley
a3aef29bbe Update .rpmlintrc file for current rpmlint 2025-05-10 22:33:05 -04:00
Benjamin A. Beasley
a18465077d Update to 3.9.0 (close RHBZ#2355181) 2025-04-19 10:21:03 -04:00
Benjamin A. Beasley
8104d17ba5 Use %{x86_64}/%{arm64} instead of x86_64/aarch64, for generality 2025-03-05 11:17:41 -05:00
Benjamin A. Beasley
1c1d6b8be1 Update to 3.8.0 (close RHBZ#2342573) 2025-01-28 11:36:13 -05:00
Benjamin A. Beasley
5459e31650 In get_source.sh, be quieter about unimportant things
[skip changelog]
2025-01-28 11:35:02 -05:00
Benjamin A. Beasley
359b98e9d1 Tidy up some obsolete or unnecessary spe-file comments
[skip changelog]
2025-01-28 11:33:08 -05:00
Benjamin A. Beasley
b55669a1bf Work around removal of some PowerPC intrinsics in GCC 15 2025-01-21 17:27:46 -05:00
Benjamin A. Beasley
971a02351e Remove an unused patch file
[skip changelog]
2025-01-21 15:47:24 -05:00
Fedora Release Engineering
a108f4022c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 10:56:29 +00:00
Benjamin A. Beasley
e598b61967 Invoke %cmake in %conf rather than in %build 2024-11-03 06:36:43 -05:00
Benjamin A. Beasley
dc2fe28f52 Update to 3.7.0 2024-09-17 15:23:51 -04:00
Fedora Release Engineering
264beb0b0d Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 05:48:58 +00:00
Benjamin A. Beasley
213765a3a8 Update to 3.6.1 (close RHBZ#2264430)
- Build and package the quad-precision and DFT libraries
2024-06-11 15:29:55 -04:00
Benjamin A. Beasley
d72444481c Use zstd instead of xz for filtered source archive compression
This is based on the relative health of the upstream projects.
2024-04-05 12:28:51 -04:00
Benjamin A. Beasley
573b6b432c Improve reproducibility of the filtered source archive 2024-04-05 12:25:53 -04:00
Benjamin A. Beasley
a8d844f4bd Update the rpmlintrc file
[skip changelog]
2024-03-18 20:20:48 -04:00
Benjamin A. Beasley
2fbeac2c71 Stop skipping tests; optimization bug fixed in GCC 2024-03-18 13:00:53 -04:00
Benjamin A. Beasley
086cdb790b Revert "Work around a GCC optimization bug"
This reverts commit ab5fc1f1f2.
2024-03-18 12:54:24 -04:00
Benjamin A. Beasley
ab5fc1f1f2 Work around a GCC optimization bug 2024-03-18 11:28:41 -04:00
Fedora Release Engineering
b0cec514c3 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 03:30:58 +00:00
Benjamin A. Beasley
5c9874ba7e Fix compiling tests with MPFR 4.2.0 and later 2023-10-04 16:52:59 -04:00
Fedora Release Engineering
5ed208b3ed Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 01:54:10 +00:00
Benjamin A. Beasley
ddefe457ac Use new (rpm 4.17.1+) bcond style 2023-06-18 11:37:31 -04:00
Benjamin A. Beasley
df6422a8b6 Filter gencoef CC-BY-4.0 sources before uploading 2023-01-23 16:43:49 -05:00
Fedora Release Engineering
5cee22eb04 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 03:28:28 +00:00
Benjamin A. Beasley
aaf74bbf62 Drop conditionals for retired 32-bit ARM 2022-12-21 22:53:42 -05:00
Benjamin A. Beasley
9f044e069e Leaf package: remove i686 support 2022-12-21 22:52:44 -05:00
Benjamin A. Beasley
2ca4700ac4 Trivially simplify a files list 2022-12-21 22:51:17 -05:00
Benjamin A. Beasley
80b35f8499 Indicate dirs. in files list with trailing slashes 2022-12-21 22:51:03 -05:00
Benjamin A. Beasley
32efed0f66 Also skip iutzvector2 and iutzvector2nofma on s390x 2022-11-29 14:14:32 -05:00
Benjamin A. Beasley
94e30675c2 Update License to SPDX
- Remove CC-BY-4.0-licensed gencoef tool sources in %%prep
2022-11-29 13:59:37 -05:00
Benjamin A. Beasley
ae2348b653 Slightly nicer %%files listings 2022-11-29 13:59:37 -05:00
Fedora Release Engineering
eb4149852b Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 08:49:14 +00:00
Fedora Release Engineering
0d9e1be4f9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 01:06:12 +00:00
Benjamin A. Beasley
ef5db17e54 Restore ppc64le support (fix RHBZ#2040887) 2022-01-15 13:52:27 -05:00
Benjamin A. Beasley
97e6370b30 Link upstream issue for skipped tests on GCC 12 2022-01-14 16:19:54 -05:00
Benjamin A. Beasley
8a0a10b13b Add enough workarounds to build with GCC 12
This temporarily excludes ppc64le.
2022-01-14 15:41:32 -05:00
Benjamin A. Beasley
706d59be4e Stop logging builder CPU features
This is done separately in Fedora infrastructure
2022-01-14 15:32:39 -05:00
Benjamin A. Beasley
44993a76a7 Stop skipping some tests on s390x
Now that the Fedora builders are newer hardware than z13, this is
no longer necessary.
2022-01-14 14:10:48 -05:00
Benjamin A. Beasley
5f9dbdb6d0 Use stricter file globs 2021-09-28 14:50:42 -04:00
Benjamin A. Beasley
b6b1b8cf1f Reduce macro indirection in the spec file 2021-09-28 14:48:13 -04:00
Benjamin A. Beasley
ff718d42ea Use pkgconfig(…) style dependencies where applicable 2021-09-28 14:47:32 -04:00
Benjamin A. Beasley
f19b870bf9 Do not compute the so-version automatically
This could (in theory) lead to missed so-version bumps.
2021-09-28 14:42:44 -04:00
Benjamin A. Beasley
a50707cfb9 Drop EPEL workarounds from Fedora spec 2021-09-28 14:39:38 -04:00
Benjamin A. Beasley
c37b4cdf84 Opt in to rpmautospec 2021-07-21 16:05:02 -04:00
Dave Love
0f49af5620 - Support epel7 2021-05-17 09:53:24 +00:00
Benjamin A. Beasley
f0fb9daf05 Add an rpmlintrc file 2021-03-17 10:44:35 -04:00
6 changed files with 275 additions and 114 deletions

7
.gitignore vendored
View file

@ -1,2 +1,9 @@
/3.5.1.tar.gz
/sleef-3.5.1.tar.gz
/sleef-3.5.1-filtered.tar.xz
/sleef-3.5.1-filtered.tar.zst
/sleef-3.6-filtered.tar.zst
/sleef-3.6.1-filtered.tar.zst
/sleef-3.7-filtered.tar.zst
/sleef-3.8-filtered.tar.zst
/sleef-3.9.0-filtered.tar.zst

11
changelog Normal file
View file

@ -0,0 +1,11 @@
* Mon May 17 2021 Dave Love <loveshack@fedoraproject.org> - 3.5.1-4
- Support epel7
* Wed Mar 17 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-3
- Improve source URL
* Thu Dec 24 2020 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-2
- Drop explicit pkgconfig dependency; providing a .pc file implies it
* Fri Dec 18 2020 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-1
- Initial spec file

66
get_source.sh Executable file
View file

@ -0,0 +1,66 @@
#!/bin/sh
set -o nounset
set -o errexit
FORGEURL='https://github.com/shibatch/sleef'
print_help()
{
cat <<EOF
Usage: $1 VERSION
Generate a source archive for sleef with src/gencoef/ removed, since the code
therein is licensed CC-BY-4.0, but this license is not approved for code in
Fedora. The result will be named sleef-\${VERSION}-filtered.tar.zst and will be
written into the current working directory.
EOF
}
if [ "$#" != '1' ]
then
exec 1>&2
print_help "${0}"
exit 1
elif [ "${1-}" = '-h' ] || [ "${1-}" = '--help' ]
then
print_help "${0}"
exit 0
fi
VERSION="${1}"
SOURCE0="${FORGEURL}/archive/${VERSION}/sleef-${VERSION}.tar.gz"
TARNAME="$(basename "${SOURCE0}")"
TARDIR="$(basename "${SOURCE0}" '.tar.gz')"
NEWTAR="${TARDIR}-filtered.tar.zst"
SAVEDIR="${PWD}"
XDIR="$(mktemp -d)"
trap "rm -rf '${XDIR}'" INT TERM EXIT
cd "${XDIR}"
curl -L -O "${SOURCE0}"
tar -xzf "${TARNAME}"
MTIME="$(stat -c '%Y' "${TARDIR}")"
rm -rvf "${TARDIR}/src/gencoef/"
if grep -ErinI 'Attribution 4\.0' .
then
echo 'ERROR: did not properly remove problematic content' 1>&2
exit 1
fi
# https://www.gnu.org/software/tar/manual/html_section/Reproducibility.html
# We reset all mtimes to that of the top-level extracted directory; since git
# archives dont have meaningful per-file mtimes, nothing useful is lost.
TZ=UTC LC_ALL=C tar \
--create \
--sort=name \
--format=posix \
--numeric-owner --owner=0 --group=0 \
--mode=go+u,go-w \
--pax-option='delete=atime,delete=ctime' \
--clamp-mtime --mtime="@${MTIME}" \
"${TARDIR}/" |
zstdmt --ultra -22 > "${NEWTAR}"
touch -d @"${MTIME}" "${NEWTAR}"
cd "${SAVEDIR}"
mv -v "${XDIR}/${NEWTAR}" .

12
sleef.rpmlintrc Normal file
View file

@ -0,0 +1,12 @@
# These are not real spelling errors...
addFilter(r"sleef-gnuabi\..*: spelling-error \('(lib(sleefgnuabi|mvec)|glibc)', ")
# All of the documentation is in the -doc subpackage.
addFilter(r" no-documentation")
# This Source cannot be a URL because we must filter out certain files.
addFilter(r" invalid-url Source[0-9]+: sleef-.*-filtered\.tar\.zst")
# Bogus; it is a perfectly fine zstandard file.
addFilter(r" inconsistent-file-extension sleef-.*-filtered\.tar\.zst")
# We are not sure why some files from docs/ are duplicated in docs/src/. The
# files are small compared to the documentation overall, so it does not seem
# worth too much investigation, and hardlinking them would be a little tedious.
addFilter(r" files-duplicate /.*/docs/src/")

View file

@ -1,53 +1,96 @@
# We do not ship the DFT library since it has undiagnosed test failures on
# Fedora at -O2, and is not well-supported upstream. Additionally, it uses
# illegal instructions on ARM and s390x, at least on the Fedora build machines.
# See https://github.com/shibatch/sleef/issues/214.
%bcond_with dft
# We would like to ship the quad-precision library, but since it is still
# considered experimental, it may have breaking ABI or API changes without an
# soversion bump, which is a no-no in Fedora. Rather than contorting ourselves
# to accommodate this, we disable it until it stabilizes or some dependent
# package appears.
%bcond_with quad
# Similarly, Fedora packages should not ship static libraries unless absolutely
# required. Some software, like pytorch, really does rely on the inline headers
# and accompanying static support library for exceptional performance
# requirements, but no such software exists in Fedora at the moment. We will
# leave this feature disabled until someone asks for it.
%bcond_with static
%bcond dft 1
%bcond quad 1
# Fedora packages should not ship static libraries unless absolutely required.
# Some software may really rely on the inline headers and accompanying static
# support library for exceptional performance requirements, but we will leave
# this feature disabled until someone asks for it.
%bcond static 0
# Adds a BuildRequires on tlfloat and enables more tests
%bcond tlfloat 1
Name: sleef
Version: 3.5.1
Release: 3%{?dist}
Version: 3.9.0
%global tag %{version}
%global so_version 3
Release: %autorelease
Summary: Vectorized math library
License: Boost
# The entire source is BSL-1.0, except the following gencoef tool sources,
# which are CC-BY-4.0:
# src/gencoef/dp.h
# src/gencoef/gencoef.c
# src/gencoef/ld.h
# src/gencoef/qp.h
# src/gencoef/simplexfr.c
# src/gencoef/sp.h
# Since CC-BY-4.0 is allowed for content but not for code, these are removed
# before uploading the source to the lookaside cache.
License: BSL-1.0
URL: https://sleef.org
Source0: https://github.com/shibatch/%{name}/archive/%{version}/%{name}-%{version}.tar.gz
# This is a filtered version of:
# https://github.com/shibatch/sleef/archive/%%{tag}/sleef-%%{tag}.tar.gz
# See the comment above License for why this is necessary. The archive is
# produced by using the script in Source1:
# ./get_source.sh ${VERSION}
Source0: sleef-%{tag}-filtered.tar.zst
Source1: get_source.sh
# https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval
ExcludeArch: %{ix86}
# On aarch64, since 3.9.0, we cannot link at least bin/tester3svenofma when LTO
# is enabled, due to confusion about SVE.
#
# /builddir/build/BUILD/sleef-3.9.0-build/sleef-3.9.0/src/common/testerutil.c:
# In function memrand.constprop:
# /builddir/build/BUILD/sleef-3.9.0-build/sleef-3.9.0/src/common/testerutil.c:101:6:
# error: this operation requires the SVE ISA extension
# 101 | void memrand(void *p, int size) {
# | ^
# /builddir/build/BUILD/sleef-3.9.0-build/sleef-3.9.0/src/common/testerutil.c:101:6:
# note: you can enable SVE using the command-line option -march, or by
# using the target attribute or pragma
# /builddir/build/BUILD/sleef-3.9.0-build/sleef-3.9.0/src/common/testerutil.c:101:
# confused by earlier errors, bailing out
#
# This might be an upstream bug, but it is hard to understand. Upstream
# provides their own LTO option, SLEEF_ENABLE_LTO, but for does not support it
# in combination with shared libraries.
#
# - We could still build the library with LTO and not test it
# (-DSLEEF_BUILD_TESTS:BOOL=FALSE) on aarch64.
# - Its not clear how we could disable LTO *only for the tests*.
# - We choose to disable LTO entirely on aarch64, because we really want to run
# the tests. We hope that the performance impact is not significant. It
# currently does not seem necessary to disable LTO on other architectures.
%ifarch %{arm64}
%global _lto_cflags %{nil}
%endif
BuildRequires: cmake >= 3.4.3
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: ninja-build
# For tests only:
BuildRequires: mpfr-devel
BuildRequires: openssl-devel
BuildRequires: pkgconfig(mpfr)
BuildRequires: pkgconfig(gmp)
BuildRequires: pkgconfig(libssl)
BuildRequires: pkgconfig(libcrypto)
%if %{with dft}
BuildRequires: fftw-devel
BuildRequires: pkgconfig(fftw3)
%endif
%if %{with tlfloat}
BuildRequires: pkgconfig(tlfloat)
%endif
%global so_version %(echo %{version} | cut -d . -f 1)
# Only out-of-source builds are supported. This is the default for F33 and
# later, but we must be explicit on older releases, including EPEL8.
%undefine __cmake_in_source_build
# See https://sleef.org/additional.xhtml#gnuabi. The gnuabi version of the
# library only applies to these architectures.
%global gnuabi_arches %{ix86} x86_64 aarch64
%global gnuabi_arches %{ix86} %{x86_64} %{arm64}
# See https://github.com/shibatch/sleef/pull/283.
%ifnarch %{arm32}
%if %{with static}
%global inline_enabled 1
%endif
%endif
%description
SLEEF stands for SIMD Library for Evaluating Elementary Functions. It
@ -65,37 +108,37 @@ outputs, the functions return correct results as specified in the C99 standard.
%package devel
Summary: Development files for %{name}
Requires: %{name}%{?_isa} = %{version}-%{release}
Summary: Development files for sleef
Requires: sleef%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries and header files for
developing applications that use %{name}.
The sleef-devel package contains libraries and header files for
developing applications that use sleef.
%if 0%{?inline_enabled}
%package static
Summary: Inline headers and static library for %{name}
Requires: %{name}-devel%{?_isa} = %{version}-%{release}
Summary: Inline headers and static library for sleef
Requires: sleef-devel%{?_isa} = %{version}-%{release}
%description static
The %{name}-static package contains libraries and header files for
developing applications that use %{name}.
The sleef-static package contains libraries and header files for
developing applications that use sleef.
%endif
%package doc
Summary: Documentation for %{name}
Summary: Documentation for sleef
BuildArch: noarch
%description doc
The %{name}-doc package contains detailed API documentation for developing
applications that use %{name}.
The sleef-doc package contains detailed API documentation for developing
applications that use sleef.
%ifarch %{gnuabi_arches}
%package gnuabi
Summary: GNUABI version of %{name}
Summary: GNUABI version of sleef
%global gnuabi_enabled 1
@ -107,12 +150,12 @@ Vector ABI.
%package gnuabi-devel
Summary: Development files for GNUABI version of %{name}
Requires: %{name}-gnuabi%{?_isa} = %{version}-%{release}
Summary: Development files for GNUABI version of sleef
Requires: sleef-gnuabi%{?_isa} = %{version}-%{release}
%description gnuabi-devel
The %{name}-gnuabi-devel package contains libraries for developing applications
that use the GNUABI version of %{name}. Note that this package does not contain
The sleef-gnuabi-devel package contains libraries for developing applications
that use the GNUABI version of sleef. Note that this package does not contain
any header files.
%endif
@ -120,7 +163,7 @@ any header files.
%if %{with dft}
%package dft
Summary: Discrete Fourier Transform (DFT) library
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: sleef%{?_isa} = %{version}-%{release}
%description dft
SLEEF includes subroutines for discrete Fourier transform(DFT). These
@ -131,12 +174,12 @@ migration. The subroutines can utilize long vectors up to 2048 bits.
%package dft-devel
Summary: Development files for %{name}-dft
Requires: %{name}-dft%{?_isa} = %{version}-%{release}
Summary: Development files for sleef-dft
Requires: sleef-dft%{?_isa} = %{version}-%{release}
%description dft-devel
The %{name}-dft-devel package contains libraries and header files for
developing applications that use %{name}-dft.
The sleef-dft-devel package contains libraries and header files for
developing applications that use sleef-dft.
%endif
@ -149,25 +192,26 @@ An experimental quad-precision library
%package quad-devel
Summary: Development files for %{name}-quad
Requires: %{name}-quad%{?_isa} = %{version}-%{release}
Summary: Development files for sleef-quad
Requires: sleef-quad%{?_isa} = %{version}-%{release}
%description quad-devel
The %{name}-quad-devel package contains libraries and header files for
developing applications that use %{name}-quad.
The sleef-quad-devel package contains libraries and header files for
developing applications that use sleef-quad.
%endif
%prep
%autosetup
%autosetup -n sleef-%{tag} -p1
# Remove an unwanted hidden file from the docs
find docs/ -type f -name .nojekyll -print -delete
%build
# -GNinja: Upstream prominently states that parallel build is only supported
# with the Ninja generator for cmake, not with the make one. See
# https://sleef.org/compile.xhtml.
%conf
# -GNinja: This used to be required for parallel builds; it is still faster.
#
# -DENFORCE_TESTER3: The build should fail if we cannot build all tests.
# -DENFORCE_TESTER4: Likewise, except that tester4 requires tlfloat.
#
# -DBUILD_INLINE_HEADERS: Do not build the “inline” headers. This would provide
# an arch-specific collection of sleefinline_*.h headers in _includedir, as
@ -176,13 +220,30 @@ developing applications that use %{name}-quad.
# and would thus also be treated as a static library in the Fedora
# guidelines) should be omitted unless something in Fedora absolutely
# requires them.
#
# -DSLEEFDFT_ENABLE_STREAM: The author writes, “The recommended value for
# SLEEFDFT_ENABLE_STREAM depends on the architecture, and it is only
# recommended to be turned on on x86_64.”
# https://github.com/shibatch/sleef/discussions/654#discussioncomment-12860550
%cmake \
-GNinja \
-DENFORCE_TESTER3:BOOL=TRUE \
-DBUILD_INLINE_HEADERS:BOOL=%{?inline_enabled:TRUE}%{?!inline_enabled:FALSE} \
-DBUILD_GNUABI_LIBS:BOOL=%{?gnuabi_enabled:TRUE}%{?!gnuabi_enabled:FALSE} \
-DBUILD_DFT:BOOL=%{?with_dft:TRUE}%{?!with_dft:FALSE} \
-DBUILD_QUAD:BOOL=%{?with_quad:TRUE}%{?!with_quad:FALSE}
-DSLEEF_BUILD_DFT:BOOL=%{?with_dft:TRUE}%{?!with_dft:FALSE} \
-DSLEEF_ENFORCE_DFT:BOOL=%{?with_dft:TRUE}%{?!with_dft:FALSE} \
%ifarch %{x86_64}
-DSLEEFDFT_ENABLE_STREAM:BOOL=TRUE \
%else
-DSLEEFDFT_ENABLE_STREAM:BOOL=FALSE \
%endif
-DSLEEF_BUILD_GNUABI_LIBS:BOOL=%{?gnuabi_enabled:TRUE}%{?!gnuabi_enabled:FALSE} \
-DSLEEF_BUILD_INLINE_HEADERS:BOOL=%{?inline_enabled:TRUE}%{?!inline_enabled:FALSE} \
-DSLEEF_BUILD_QUAD:BOOL=%{?with_quad:TRUE}%{?!with_quad:FALSE} \
-DSLEEF_BUILD_SHARED_LIBS:BOOL=TRUE \
-DSLEEF_ENFORCE_TESTER3:BOOL=TRUE \
-DSLEEF_ENFORCE_TESTER4:BOOL=%{?with_tlfloat:TRUE}%{?!with_tlfloat:FALSE} \
-DSLEEF_ENABLE_TLFLOAT:BOOL=%{?with_tlfloat:TRUE}%{?!with_tlfloat:FALSE}
%build
%cmake_build
@ -191,29 +252,44 @@ developing applications that use %{name}-quad.
%check
# Note that test coverage of SIMD extensions will be limited to those available
# on the build host; there is no way around this. We attempt to record the CPU
# features in the build log:
grep -m 1 -E '^f(lags|eatures)\b' /proc/cpuinfo || :
# Logging CPU features is helpful for debugging, especially in COPR builds
# where the builder hardware information is not necessarily logged separately.
echo '==== Build host CPU features ===='
cat /proc/cpuinfo
skips='^($.'
%ifarch s390x
# Two tests fail on s390x only, at least for the z13 (features: vx in
# /proc/cpuinfo) CPUs currently used in the Fedora s390x infrastructure. See
# https://github.com/shibatch/sleef/issues/317#issuecomment-724625861, which
# indicates this is known upstream.
skips="${skips}|iut[yi]?purecfma_scalar"
%ifarch %{arm64}
# Some tests are specifically for SVE code. We can only run these tests on
# builder hardware that has the SVE extensions, which are not part of the
# aarch64 baseline.
if ! grep -E '[Ff](lags|eatures).*\bsve\b' /proc/cpuinfo >/dev/null
then
skips="${skips}|gnuabi_compatibility_SVE(_masked)?|qiutsve"
fi
%endif
%if %{with dft}
# The DFT library has known test failures
# (https://github.com/shibatch/sleef/issues/214).
skips="${skips}|fftwtest2d[ds]p_(4_4|8_8|10_10|5_15)"
%ifarch %{arm32} aarch64 s390x
# Plus, it uses illegal instructions:
skips="${skips}|naivetest[ds]p_([2345]|10)"
skips="${skips}|fftwtest(1d[ds]p_1[26]|2d[ds]p_2_2)"
%ifarch %{power64}
# Some tests are specifically for VSX3 code. We can only run these tests on
# builder hardware that has the VSX3 extensions (POWER 9 or later), which are
# not part of the ppc64le baseline (POWER 8).
if grep -E -i '\bPOWER8\b' /proc/cpuinfo >/dev/null
then
skips="${skips}|.*vsx3(nofma)?"
fi
%endif
%ifarch %{x86_64}
%if %{undefined fc43} && %{undefined fc42} && %{undefined el10}
# At least one test within this executable fails since GCC 16 landed in Fedora
# 44. Its not very easy to tell exactly what is going wrong, and upstream is
# not likely to be interested since (as determined by bisection) the failure
# was resolved upstream by the removal of no-FMA helpers in
# https://github.com/shibatch/sleef/pull/685. Lets just skip this while we
# await the next upstream release.
skips="${skips}|tester4ypurec_scalar"
%endif
%endif
skips="${skips})$"
%ctest --exclude-regex "${skips}" --extra-verbose
@ -221,74 +297,63 @@ skips="${skips})$"
%files
%license LICENSE.txt
%{_libdir}/lib%{name}.so.%{so_version}
%{_libdir}/lib%{name}.so.%{so_version}.*
%{_libdir}/libsleef.so.%{so_version}{,.*}
%files devel
%{_includedir}/%{name}.h
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/*.pc
%{_includedir}/sleef.h
%{_libdir}/libsleef.so
%{_libdir}/pkgconfig/sleef.pc
%{_libdir}/cmake/sleef/
%if 0%{?inline_enabled}
%files static
%{_includedir}/%{name}inline_*.h
%{_libdir}/lib%{name}inline.a
%{_includedir}/sleefinline_*.h
%{_libdir}/libsleefinline.a
%endif
%files doc
%license LICENSE.txt
%doc CHANGELOG.md
%doc CONTRIBUTORS.md
%doc README.md
%doc doc/html
%doc README.adoc
%doc docs/
%ifarch %{gnuabi_arches}
%files gnuabi
%license LICENSE.txt
%{_libdir}/lib%{name}gnuabi.so.%{so_version}
%{_libdir}/lib%{name}gnuabi.so.%{so_version}.*
%{_libdir}/libsleefgnuabi.so.%{so_version}{,.*}
%files gnuabi-devel
%{_libdir}/lib%{name}gnuabi.so
%{_libdir}/libsleefgnuabi.so
%endif
%if %{with dft}
%files dft
%{_libdir}/lib%{name}dft.so.%{so_version}
%{_libdir}/lib%{name}dft.so.%{so_version}.*
%{_libdir}/libsleefdft.so.%{so_version}{,.*}
%files dft-devel
%{_includedir}/%{name}dft.h
%{_libdir}/lib%{name}dft.so
%{_includedir}/sleefdft.h
%{_libdir}/libsleefdft.so
%endif
%if %{with quad}
%files quad
%license LICENSE.txt
%{_libdir}/lib%{name}quad.so.%{so_version}
%{_libdir}/lib%{name}quad.so.%{so_version}.*
%{_libdir}/libsleefquad.so.%{so_version}{,.*}
%files quad-devel
%{_includedir}/%{name}quad.h
%{_libdir}/lib%{name}quad.so
%{_includedir}/sleefquad.h
%{_libdir}/libsleefquad.so
%endif
%changelog
* Wed Mar 17 2021 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-3
- Improve source URL
* Thu Dec 24 2020 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-2
- Drop explicit pkgconfig dependency; providing a .pc file implies it
* Fri Dec 18 2020 Benjamin A. Beasley <code@musicinmybrain.net> - 3.5.1-1
- Initial spec file
%autochangelog

View file

@ -1 +1 @@
SHA512 (sleef-3.5.1.tar.gz) = e8e4e5028db52998c6b82bd462622c08d670e4e85273327f1c3bdbd900827dd7793b217c2876ca1229b6f672493bb96f40140e14366390cccea0e6780689e128
SHA512 (sleef-3.9.0-filtered.tar.zst) = 4c55c310795569debed8c771cf0251a126e8291515bf562e6ac4b611dafe6df5fd0024d129dbeaf2c6bce39112bb8a826acabd762beebdd17de86259394b5933