## START: Set by rpmautospec ## (rpmautospec version 0.7.3) ## RPMAUTOSPEC: autorelease, autochangelog %define autorelease(e:s:pb:n) %{?-p:0.}%{lua: release_number = 5; 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 # test are enabled by default %bcond tests 1 Name: python-pulp Version: 3.2.1 Release: %autorelease Summary: Linear and mixed integer programming modeler License: BSD-1-Clause URL: https://coin-or.github.io/pulp/ %global forgeurl https://github.com/coin-or/pulp Source: %{forgeurl}/archive/%{version}/pulp-%{version}.tar.gz # Do not install bundled cbc; downstream-only, as upstream obviously wants to # keep bundling. Patch: 0001-Remove-bundled-cbc.patch # Downstream-only: handle system cbc renamed to Cbc # # Beginning with Fedora 42, the cbc executable in coin-or-Cbc is renamed to Cbc # due to a file conflict with libcouchbase-tools (RHBZ#2335063). Patch: 0002-Downstream-only-handle-system-cbc-renamed-to-Cbc.patch # Skip HiGHS_CMDTest.test_time_limit_no_solution # # A temporary downstream workaround for # https://github.com/coin-or/pulp/issues/832. Patch: 0003-Skip-HiGHS_CMDTest.test_time_limit_no_solution.patch # Test examples only if they are found; fixes #844 # https://github.com/coin-or/pulp/pull/845 # # Fixes: # # Running pulptest requires examples # https://github.com/coin-or/pulp/issues/844 Patch: %{forgeurl}/pull/845.patch BuildSystem: pyproject BuildOption(install): -L pulp # https://fedoraproject.org/wiki/Changes/EncourageI686LeafRemoval ExcludeArch: %{ix86} # let tests run on all arches %global debug_package %{nil} %global _description %{expand: PuLP is an linear and mixed integer programming modeler written in Python. With PuLP, it is simple to create MILP optimisation problems and solve them with the latest open-source (or proprietary) solvers. PuLP can generate MPS or LP files and call solvers such as GLPK, COIN-OR CLP/CBC, CPLEX, GUROBI, MOSEK, XPRESS, CHOCO, MIPCL, HiGHS, SCIP/FSCIP.} %description %_description %package -n python3-pulp Summary: %{summary} BuildArch: noarch # Normally bundled with pulp, but we do not ship the bundled copy (both to # avoid bundling, and because it is a precompiled executable). We could fake it # using the system coin-or-Cbc, but we would rather not do so unless something # really needs PULP_CBC_CMD in particular. # - PULP_CBC_CMD # Since we removed PULP_CBC_CMD, we make COIN_CMD (the closest equivalent) a # hard dependency. # - COIN_CMD BuildRequires: coin-or-Cbc Requires: coin-or-Cbc # The bundled copy would be PULP_CBC_CMD; our package does not have that solver # enabled. We could fake it using the system coin-or-Cbc, but we would rather # not do so unless something really needs PULP_CBC_CMD in particular. # We depend weakly on alternative solvers that are packaged. # - GLPK_CMD BuildRequires: glpk-utils Recommends: glpk-utils # - HiGHS BuildRequires: %{py3_dist highspy} Recommends: %{py3_dist highspy} # - HiGHS_CMD BuildRequires: coin-or-HiGHS Recommends: coin-or-HiGHS # - SCIP_CMD BuildRequires: scip Recommends: scip # These alternative solvers appear to be free software, but are not packaged. # - CHOCO_CMD (https://github.com/chocoteam/choco-solver) # - COINMP_DLL (previously packaged as coin-or-CoinMP, but orphaned and retired # for Fedora 42) # - CUOPT (https://www.nvidia.com/en-us/ai-data-science/products/cuopt/): # currently in the process of being open-sourced, # https://blogs.nvidia.com/blog/cuopt-open-source/?ncid=no-ncid, but may # still have non-free dependencies (CUDA SDK?) # - CYLP (https://github.com/coin-or/CyLP, would be coin-or-CyLP if packaged) # - FSCIP_CMD (https://ug.zib.de/index.php): According to the link, this is now # part of SCIP, but it is not remotely clear how we could build an fscip # binary in our scip package. # - MIPCL_CMD # (https://github.com/tingyingwu2010/MIPCL) # - PYGLPK (https://github.com/bradfordboyle/pyglpk) # BuildRequires: %%{py3_dist glpk} # Recommends: %%{py3_dist glpk} # - SCIP_PY (https://github.com/scipopt/PySCIPOpt) # BuildRequires: %%{py3_dist PySCIPOpt} # Recommends: %%{py3_dist PySCIPOpt} # - YAPOSIB (https://github.com/coin-or/yaposib) # BuildRequires: %%{py3_dist yaposib} # Recommends: %%{py3_dist yaposib} # These supported solvers are not free software: # - COPT # - COPT_CMD # - COPT_DLL # - CPLEX_CMD # - CPLEX_PY # - GUROBI # - GUROBI_CMD # - MOSEK # - SAS94 # - SASCAS # - XPRESS # - XPRESS_CMD # - XPRESS_PY %description -n python3-pulp %_description %prep -a # remove bundled/precompiled cbc rm -rf pulp/solverdir/cbc # remove bundled/precompiled libraries/executables: currently, CoinMP.dll find pulp/solverdir -type f \ \( -name '*.dll' -o -name '*.so' -o -executable \) \ -print -delete # Increase test verbosity sed -r \ -e 's/(runner.*TestRunner)\(\)/\1(verbosity=2)/' \ -i pulp/tests/run_tests.py %install -a # Remove shebang from non-executable library file. Upstream may have intended # this to be run directly during development, but it is installed without the # execute permission bit set, so the shebang is useless. sed -r -i '1{/^#!/d}' '%{buildroot}%{python3_sitelib}/pulp/pulp.py' # https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/#_shebangs %py3_shebang_fix '%{buildroot}%{python3_sitelib}/pulp' %check -a %if %{with tests} # Using pulptest binary to test the package %{py3_test_envvars} pulptest %endif %files -n python3-pulp -f %{pyproject_files} %license LICENSE %doc AUTHORS %doc HISTORY %doc README.rst %{_bindir}/pulptest %changelog ## START: Generated by rpmautospec * Thu May 29 2025 Benjamin A. Beasley - 3.2.1-5 - Update Summary and description from upstream * Thu May 29 2025 Benjamin A. Beasley - 3.2.1-4 - Use the provisional pyproject declarative buildsystem * Thu May 29 2025 Packit - 3.2.1-1 - Update to 3.2.1 upstream release * Sun Apr 20 2025 Packit - 3.1.1-1 - Update to 3.1.1 upstream release - Resolves: rhbz#2346661 * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-16 - Test, and depend weakly on, packaged solvers * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-15 - Fix finding COIN_CMD solver on F42+ * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-14 - Remove an unwanted shebang line * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-13 - Use the py3_shebang_fix macro * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-12 - Remove a pre-compiled Windows DLL * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-11 - Remove spurious BuildRequires on python3-amply * Thu Mar 20 2025 Benjamin A. Beasley - 2.9.0-10 - Fix missing hard dependency on CBC solver * Sat Jan 18 2025 Fedora Release Engineering - 2.9.0-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild * Sun Oct 13 2024 Packit - 2.9.0-1 - Update to 2.9.0 upstream release - Resolves: rhbz#2298047 * Fri Jul 19 2024 Fedora Release Engineering - 2.8.0-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild * Fri Jun 07 2024 Python Maint - 2.8.0-5 - Rebuilt for Python 3.13 * Fri Mar 15 2024 Sandro - 2.8.0-4 - Add Packit config * Fri Mar 15 2024 Sandro - 2.8.0-3 - Add changelog (HISTORY) to docs * Fri Mar 15 2024 Sandro - 2.8.0-2 - Assert existence of license file * Fri Mar 15 2024 Sandro - 2.8.0-1 - Update to 2.8.0 (RHBZ#2258235) - Rebase patch * Fri Jan 26 2024 Fedora Release Engineering - 2.7.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Mon Jan 22 2024 Fedora Release Engineering - 2.7.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild * Fri Jul 21 2023 Fedora Release Engineering - 2.7.0-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild * Tue Jun 13 2023 Python Maint - 2.7.0-2 - Rebuilt for Python 3.12 * Tue Apr 25 2023 Sandro - 2.7.0-1 - Update to 2.7.0 (RHBZ#2139847) - Migrate to SPDX license * Fri Jan 20 2023 Fedora Release Engineering - 2.6.0-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild * Fri Jul 22 2022 Fedora Release Engineering - 2.6.0-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild * Mon Jun 13 2022 Python Maint - 2.6.0-3 - Rebuilt for Python 3.11 * Mon May 09 2022 Ankur Sinha (Ankur Sinha Gmail) - 2.6.0-2 - feat: fix build and update (fixes rhbz#2046901 fixes rhbz#1992758) * Fri Jan 21 2022 Fedora Release Engineering - 2.5.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Tue Aug 17 2021 Aniket Pradhan - 2.5.0-1 - Updated to v2.5.0-1 - Added the docs subpackage - Fixed a version typo in the changelog * Fri Jul 23 2021 Fedora Release Engineering - 2.4-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Fri Jun 04 2021 Python Maint - 2.4-2 - Rebuilt for Python 3.10 * Sat Nov 21 2020 Aniket Pradhan - 2.4-1 - Initial build ## END: Generated by rpmautospec