# Armadillo, taken over from Fedora's armadillo package, which is stuck at 12.8.1 on every # branch including rawhide. Fedora bugzilla 2272874 has sat open since 2024-04-03 with 101 # comments, every one the release-monitoring bot filing the next upstream release with a # passing Koji scratch build attached, and no maintainer reply. 2420480 asks for >= 14 # (solve_opts::force_sym) and has been pinged twice. # # What this package does that Fedora's does not: # * ships the latest stable upstream, 15.6.1 (released 2026-10-02), not 12.8.1; # * builds with SuperLU actually ENABLED. Fedora's 12.8.1 BuildRequires SuperLU-devel and # armadillo-devel Requires it, yet its shipped config.hpp leaves ARMA_USE_SUPERLU undefined # (12.8.1's CMake cannot use SuperLU 7), so spsolve() throws "use of SuperLU must be # enabled". %install asserts the define so this cannot regress silently. # HDF5 is NOT in that class: upstream makes it an explicit opt-in (the consumer defines # ARMA_USE_HDF5 and links -lhdf5; libarmadillo neither wraps nor detects it), so it stays # off by default here too. armadillo-devel Requires hdf5-devel for those opt-in consumers. # * keeps Fedora's FlexiBLAS linkage, and is usable header-only (-DARMA_DONT_USE_WRAPPER), # which is how FSL's vendored copy has always been built. # tests/armadillo.bats is the acceptance suite; it was written first and run red against # Fedora's 12.8.1 (tests/armadillo/run-in-mock.sh). # # The soname follows the major version (libarmadillo.so.15). gdal-libs and mlpack link # libarmadillo.so.12, which the armadillo12 compat package keeps resolvable. Name: armadillo Version: 15.6.1 Release: 1%{?dist} Summary: Fast C++ matrix library with syntax similar to MATLAB and Octave License: Apache-2.0 URL: https://arma.sourceforge.net/ Source0: https://sourceforge.net/projects/arma/files/%{name}-%{version}.tar.xz BuildRequires: gcc-c++ BuildRequires: cmake BuildRequires: make BuildRequires: arpack-devel BuildRequires: hdf5-devel BuildRequires: SuperLU-devel BuildRequires: flexiblas-devel %description Armadillo is a C++ linear algebra library (matrix maths) aiming towards a good balance between speed and ease of use. Integer, floating point and complex numbers are supported, as well as a subset of trigonometric and statistics functions. Various matrix decompositions are provided through optional integration with LAPACK. A delayed evaluation approach is employed (during compile time) to combine several operations into one and reduce (or eliminate) the need for temporaries, using recursive templates and template meta-programming. %package devel Summary: Development headers and documentation for the Armadillo C++ library Requires: %{name}%{?_isa} = %{version}-%{release} Requires: libstdc++-devel Requires: arpack-devel Requires: hdf5-devel Requires: SuperLU-devel Requires: flexiblas-devel %description devel Header files, example programs and the API reference for the Armadillo C++ library. %prep %autosetup -p1 sed -i 's/\r//' README.md rm -rf examples/*win64* %build export CMAKE_POLICY_VERSION_MINIMUM=3.5 %cmake -DALLOW_FLEXIBLAS_LINUX=ON %cmake_build %install %cmake_install # Fedora's 12.8.1 shipped SuperLU off while depending on it. Fail the build rather than ship # that again. (HDF5 is deliberately absent: it is an upstream opt-in, not a detected feature.) cfg=%{buildroot}%{_includedir}/armadillo_bits/config.hpp for d in ARMA_USE_WRAPPER ARMA_USE_LAPACK ARMA_USE_BLAS ARMA_USE_ARPACK ARMA_USE_SUPERLU; do grep -Eq "^[[:space:]]*#define[[:space:]]+${d}\b" "$cfg" || { echo "config.hpp does not define ${d}" >&2; exit 1; } done %check %global _vpath_builddir %{_vpath_builddir}-test export CMAKE_POLICY_VERSION_MINIMUM=3.5 %cmake -DALLOW_FLEXIBLAS_LINUX=ON -DBUILD_SMOKE_TEST=ON %cmake_build %ctest %files %{_libdir}/libarmadillo.so.15* %license LICENSE.txt NOTICE.txt %files devel %{_libdir}/libarmadillo.so %{_libdir}/pkgconfig/%{name}.pc %{_includedir}/armadillo %{_includedir}/armadillo_bits/ %{_datadir}/Armadillo/ %doc README.md %doc index.html %doc docs.html %doc examples %changelog * Mon Oct 05 2026 Morgan Hough - 15.6.1-1 - Take over armadillo from Fedora, which is stuck at 12.8.1 on every branch. New upstream 15.6.1, the latest stable (2026-10-02). Closes the open Fedora reports 2420480 (needs >= 14) and 2272874 (new upstream available), and the 14 closed bot reports of the same kind. - Build with SuperLU enabled and assert it in %%install; Fedora's 12.8.1 had it off while requiring the library. Found by tests/armadillo.bats, not by a bug report. HDF5 stays an opt-in as upstream intends (-DARMA_USE_HDF5 -lhdf5); an early draft wrongly called that a Fedora defect. - Soname is now libarmadillo.so.15; armadillo12 keeps libarmadillo.so.12 for gdal and mlpack.