## START: Set by rpmautospec ## (rpmautospec version 0.7.2) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 1; base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}")); print(release_number + base_release_number - 1); }%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}} ## END: Set by rpmautospec # Architectures that have libquadmath %ifarch x86_64 ppc64le %global quadmath 1 %else %global quadmath 0 %endif # The papilo binary depends on several solvers that transitively depend on the # papilo library. In a bootstrap situation, first build the binary without # solver support, build the solvers, then do a non-bootstrap build. %bcond bootstrap 0 %global giturl https://github.com/scipopt/papilo/ Name: papilo Version: 2.3.1 Release: %autorelease Summary: Parallel presolve for integer and linear optimization # LGPL-3.0-or-later: the project as a whole # BSL-1.0: src/papilo/misc/extended_euclidean.hpp # Zlib: the header-only pdqsort project # MIT: the bundled fmt project License: LGPL-3.0-or-later AND BSL-1.0 AND Zlib AND MIT URL: https://www.scipopt.org/ VCS: git:%{giturl}.git Source: %{giturl}/archive/v%{version}/%{name}-%{version}.tar.gz # Unbundle catch, LUSOL, pdqsort, and ska Patch: %{name}-unbundle.patch # Build a shared library instead of a static library Patch: %{name}-shared.patch # Avoid out-of-bounds vector access # https://github.com/scipopt/papilo/pull/48 Patch: %{name}-vector-bounds.patch # See https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} BuildRequires: boost-devel BuildRequires: cmake BuildRequires: cmake(catch2) BuildRequires: cmake(tbb) BuildRequires: gcc-c++ BuildRequires: help2man BuildRequires: libatomic %if %{quadmath} BuildRequires: libquadmath-devel %endif BuildRequires: lusol-devel BuildRequires: pdqsort-static BuildRequires: pkgconfig(gmp) %if %{without bootstrap} # Solver support BuildRequires: cmake(scip) BuildRequires: cmake(soplex) %endif Requires: libpapilo%{?_isa} = %{version}-%{release} %global _desc %{expand: PaPILO provides parallel presolve routines for (mixed integer) linear programming problems. The routines are implemented using templates which allows switching to higher precision or rational arithmetic using the boost multiprecision package.} %description %_desc %package -n libpapilo Summary: Library interface to PaPILO # The bundled version of fmt is incompatible with version 10 in Rawhide. Provides: bundled(fmt) = 7.1.3 %description -n libpapilo %_desc This package provides a library interface to the PaPILO functionality. %package -n libpapilo-devel Summary: Headers and library links for libpapilo Requires: libpapilo%{?_isa} = %{version}-%{release} Requires: boost-devel%{?_isa} Requires: lusol-devel%{?_isa} Requires: pdqsort-static Requires: tbb-devel%{?_isa} %description -n libpapilo-devel %_desc This package contains headers and library links to develop applications that use libpapilo. %prep %autosetup -p1 # Ensure none of the bundled code but fmt can be used rm -fr src/papilo/external/{catch,lusol,pdqsort,ska} # Fix installation directories if [ '%{_lib}' != 'lib' ]; then sed -i 's,\(DESTINATION \)lib,\1%{_lib},g' CMakeLists.txt fi %build %cmake -DQUADMATH:BOOL=%{?quadmath:ON}%{!?quadmath:OFF} %cmake_build %install %cmake_install # Generate man pages mkdir -p %{buildroot}%{_mandir}/man1 export LD_LIBRARY_PATH=$PWD/%{_vpath_builddir} cd %{_vpath_builddir}/bin help2man -N -h '' --version-string %{version} \ -n 'parallel presolve for integer and linear optimization' ./papilo > \ %{buildroot}%{_mandir}/man1/papilo.1 cd - # Fix up the man page a little sed -i 's,\./\(papilo\),\1,' %{buildroot}%{_mandir}/man1/papilo.1 %check # Temporarily skip a test that is broken in the 2.3.1 release %ctest -E 'q-solve-rgn\.mps-default\.set' %files %doc CHANGELOG README.md parameters.txt %{_bindir}/papilo %{_mandir}/man1/papilo.1* %files -n libpapilo %license COPYING COPYING.LESSER %{_libdir}/libpapilo-core.so.0* %files -n libpapilo-devel %{_includedir}/papilo/ %{_libdir}/cmake/papilo/ %{_libdir}/libpapilo-core.so %changelog ## START: Generated by rpmautospec * Mon Sep 23 2024 Jerry James - 2.3.1-1 - Version 2.3.1 - Drop upstreamed test patch - BR libatomic for architectures that need it * Thu Jul 18 2024 Fedora Release Engineering - 2.3.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Wed Jul 17 2024 Jerry James - 2.3.0-4 - Fix the VCS field * Mon Jun 24 2024 Jerry James - 2.3.0-3 - Exclude an unreliable test * Mon Jun 24 2024 Jerry James - 2.3.0-2 - Rebuild for soplex 7.1.0 and scip 9.1.0 * Mon Jun 24 2024 Jerry James - 2.3.0-1 - Version 2.3.0 * Wed Jun 19 2024 Jerry James - 2.2.1-1 - Version 2.2.1 * Wed Mar 13 2024 Jerry James - 2.2.0-3 - Work around out-of-bounds vector access * Mon Feb 26 2024 Jerry James - 2.2.0-2 - Build the binary with soplex and scip support * Wed Feb 21 2024 Jerry James - 2.2.0-1 - Version 2.2.0 * Fri Feb 16 2024 Jerry James - 2.1.4-1 - Initial RPM ## END: Generated by rpmautospec