stp/stp.spec

388 lines
15 KiB
RPMSpec

Name: stp
Version: 2.3.3
Release: 27%{?dist}
Summary: Constraint solver/decision procedure
# MIT: the project as a whole
# MIT-Modern-Variant: lib/extlib-abc
# LGPL-2.0-or-later: lib/extlib-constbv
# BSD-3-Clause: include/stp/Simplifier/constantBitP/MersenneTwister.h
License: MIT AND MIT-Modern-Variant AND LGPL-2.0-or-later AND BSD-3-Clause
URL: http://stp.github.io/
Source0: https://github.com/stp/stp/archive/%{version}/%{name}-%{version}.tar.gz
# Fix some format specifier problems
Patch0: %{name}-format.patch
# Do not declare cryptominisat and minisat as public libs
# See https://bugzilla.redhat.com/show_bug.cgi?id=1981466
Patch1: %{name}-private-libs.patch
# Distutils has been deprecated. Use sysconfig instead.
# https://github.com/stp/stp/pull/450
Patch2: %{name}-distutils.patch
# Add a missing include for cstdint
Patch3: %{name}-cstdint.patch
BuildRequires: bison
BuildRequires: boost-devel
BuildRequires: cmake
BuildRequires: cryptominisat
BuildRequires: cryptominisat-devel
BuildRequires: flex
BuildRequires: gcc-c++
BuildRequires: help2man
BuildRequires: make
BuildRequires: minisat2-devel
BuildRequires: perl(Getopt::Long)
BuildRequires: pkgconfig(sqlite3)
BuildRequires: python3-devel
%description
STP (Simple Theorem Prover) is a constraint solver (also referred to as
a decision procedure or automated prover) aimed at solving constraints
generated by program analysis tools, theorem provers, automated bug
finders, intelligent fuzzers and model checkers. STP has been used in
many research projects at Stanford, Berkeley, MIT, CMU and other
universities, as well as companies and government agencies.
The input to STP are formulas over the theory of bit-vectors and arrays
(this theory captures most expressions from languages like C/C++/Java
and Verilog), and the output of STP is a single bit of information that
indicates whether the formula is satisfiable or not. If the input is
satisfiable, then it also generates a variable assignment to satisfy the
input formula.
Additional information can be found at https://stp.readthedocs.io/.
%package devel
License: MIT
Summary: Development files for STP constraint solver/decision procedure
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
Development files for the STP (Simple Theorem Prover),
a constraint solver (also referred to as a decision procedure
or automated prover). Provides a static library.
%package -n python3-%{name}
License: MIT
Summary: Python 3 interface to STP
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description -n python3-%{name}
Python 3 interface to STP.
%prep
%autosetup -p1
# We do not want to know about the order of member initializers
sed -i "s/-Wno-deprecated/-Wno-reorder/" CMakeLists.txt
# Prevent a clash between minisat and cryptominisat5 definitions
sed '/SATSolver.h/a#undef var_Undef\n#undef l_True\n#undef l_False\n#undef l_Undef' \
-i.orig include/stp/Sat/CryptoMinisat5.h
touch -r include/stp/Sat/CryptoMinisat5.h.orig include/stp/Sat/CryptoMinisat5.h
rm -f include/stp/Sat/CryptoMinisat5.h.orig
# Prevent useless rpaths
sed -e '/CMAKE_SKIP_BUILD_RPATH/s/FALSE/TRUE/' \
-e '/SET(CMAKE_INSTALL_RPATH .*)/d' \
-e '/CMAKE_INSTALL_RPATH_USE_LINK_PATH/s/TRUE/FALSE/' \
-e '/isSystemDir/d' \
-i CMakeLists.txt
%build
export CFLAGS='%{build_cflags} -I %{_includedir}/minisat'
export CXXFLAGS='%{build_cxxflags} -I %{_includedir}/minisat'
%cmake -DPYTHON_EXECUTABLE:FILEPATH=%{_bindir}/python%{python3_version} \
-DPYTHON_LIBRARY:FILEPATH=%{_libdir}/libpython%{python3_version}.so \
-DPYTHON_INCLUDE_DIR:FILEPATH=%{_includedir}/python%{python3_version}
# Fix the help2man invocation
sed -i "s,help2man,LD_LIBRARY_PATH=$PWD/%{_vpath_builddir}/lib &," \
%{_vpath_builddir}/CMakeFiles/man_stp.dir/build.make
%cmake_build
%install
%cmake_install
# Fix the location of the man page
mkdir -p %{buildroot}%{_datadir}
mv %{buildroot}%{_prefix}/man %{buildroot}%{_datadir}/man
%files
%{_bindir}/stp
%{_bindir}/stp_simple
%{_libdir}/libstp.so.2*
%{_mandir}/man1/stp.1*
%doc AUTHORS README.markdown papers
%license LICENSE LICENSE_COMPONENTS
%files devel
%{_includedir}/stp/
%{_libdir}/cmake/STP/
%{_libdir}/libstp.so
%files -n python3-%{name}
%{python3_sitelib}/%{name}/
%changelog
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-27
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.3.3-26
- Rebuilt for Python 3.12
* Mon Feb 20 2023 Jonathan Wakely <jwakely@redhat.com> - 2.3.3-25
- Rebuilt for Boost 1.81
* Sat Jan 21 2023 Jerry James <loganjerry@gmail.com> - 2.3.3-24
- Add cstdint patch to fix FTBFS
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Wed Dec 14 2022 Jerry James <loganjerry@gmail.com> - 2.3.3-23
- Add distutils patch
- Use more specific globs in %%files
- Convert License tags to SPDX
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-22
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.3.3-21
- Rebuilt for Python 3.11
* Wed May 04 2022 Thomas Rodgers <trodgers@redhat.com> - 2.3.3-20
- Rebuilt for Boost 1.78
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-19
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Aug 07 2021 Jonathan Wakely <jwakely@redhat.com> - 2.3.3-18
- Rebuilt for Boost 1.76
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-17
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Wed Jul 14 2021 Jerry James <loganjerry@gmail.com> - 2.3.3-16
- Add -private-libs patch to fix bz 1981466
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.3.3-15
- Rebuilt for Python 3.10
* Tue Mar 30 2021 Jerry James <loganjerry@gmail.com> - 2.3.3-14
- Remove useless rpaths
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-13
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 22 2021 Jonathan Wakely <jwakely@redhat.com> - 2.3.3-12
- Rebuilt for Boost 1.75
* Fri Nov 27 2020 Jerry James <loganjerry@gmail.com> - 2.3.3-11
- Rebuild for cryptominisat 5.8.0
* Sat Aug 01 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-10
- Second attempt - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun May 31 2020 Jonathan Wakely <jwakely@redhat.com> - 2.3.3-8
- Rebuilt for Boost 1.73
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.3.3-7
- Rebuilt for Python 3.9
* Sat Apr 25 2020 Jerry James <loganjerry@gmail.com> - 2.3.3-6
- Rebuild for cryptominisat 5.7.0
* Fri Jan 31 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.3.3-4
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.3.3-3
- Rebuilt for Python 3.8
* Sat Jul 27 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sat Jul 20 2019 Jerry James <loganjerry@gmail.com> - 2.3.3-1
- Disable rpath
* Wed Apr 17 2019 Jerry James <loganjerry@gmail.com> - 2.3.3-1
- New upstream version
* Sun Feb 03 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-5.20181115git.d7d6530
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Nov 22 2018 Jerry James <loganjerry@gmail.com> - 2.3.1-4.20181115git.d7d6530
- Update to recent git snapshot
- Drop the python2 subpackage (bz 1634557)
* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1-3.20180607git.c68788e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.3.1-2.20180607git.c68788e
- Rebuilt for Python 3.7
* Wed Jun 13 2018 Jerry James <loganjerry@gmail.com> - 2.3.1-1.20180607git.c68788e
- Update to recent git snapshot
- Add a python3 subpackage
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.2-12.20171116git.b67aa83
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 23 2018 Jonathan Wakely <jwakely@redhat.com> - 2.1.2-11.20171116git.b67aa83
- Rebuilt for Boost 1.66
* Sat Nov 25 2017 Jerry James <loganjerry@gmail.com> - 2.1.2-10.20171116git.b67aa83
- Update to recent git snapshot
- Build with cryptominisat5 support
* Sat Aug 19 2017 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.1.2-9.20151122git.3785148
- Python 2 binary package renamed to python2-stp
See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3
* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.2-8.20151122git.3785148
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.2-7.20151122git.3785148
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Tue Jul 18 2017 Jonathan Wakely <jwakely@redhat.com> - 2.1.2-6.20151122git.3785148
- Rebuilt for Boost 1.64
* Wed Feb 08 2017 Kalev Lember <klember@redhat.com> - 2.1.2-5.20151122git.3785148
- Rebuilt for Boost 1.63
* Sat Jan 28 2017 Jerry James <loganjerry@gmail.com> - 2.1.2-4.20151122git.3785148
- Fix cmake files (bz 1414167)
* Tue Jul 19 2016 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.1.2-3.20151122git.3785148
- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages
* Sat Mar 19 2016 Jerry James <loganjerry@gmail.com> - 2.1.2-2.20151122git.3785148
- Rebuild for minisat 2.2.1
* Sat Feb 20 2016 Jerry James <loganjerry@gmail.com> - 2.1.2-1.20151122git.3785148
- Update to recent git snapshot
* Fri Feb 05 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-3.20150904git.5405af4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Jan 19 2016 Jonathan Wakely <jwakely@redhat.com> - 2.1.0-2.20150904git.5405af4
- Rebuilt for Boost 1.60
* Fri Sep 4 2015 Jerry James <loganjerry@gmail.com> - 2.1.0-1.20150904git.5405af4
- Update to recent git snapshot
* Wed Jul 29 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-30.20140619git.44de620
- Rebuilt for https://fedoraproject.org/wiki/Changes/F23Boost159
* Wed Jul 22 2015 David Tardon <dtardon@redhat.com> - 0.1-29.20140619git.44de620
- rebuild for Boost 1.58
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-28.20140619git.44de620
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Sat May 02 2015 Kalev Lember <kalevlember@gmail.com> - 0.1-27.20140619git.44de620
- Rebuilt for GCC 5 C++11 ABI change
* Sat Feb 21 2015 Jerry James <loganjerry@gmail.com> - 0.1.26-20140610git.44de620
- Use license macro
* Tue Jan 27 2015 Petr Machata <pmachata@redhat.com> - 0.1-25.20140619git.44de620
- Rebuild for boost 1.57.0
* Mon Aug 18 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-24.20140619git.44de620
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
* Wed Jun 18 2014 Jerry James <loganjerry@gmail.com> - 0.1-23.20140619git.44de620
- Update to recent git snapshot
- Drop upstreamed -undefined patch
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-22.20140402git.f8a392d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Fri May 23 2014 Petr Machata <pmachata@redhat.com> - 0.1-21.20140402git.f8a392d
- Rebuild for boost 1.55.0
* Tue Apr 29 2014 Jerry James <loganjerry@gmail.com> - 0.1-20.20140402git.f8a392d
- Update to recent git snapshot
* Wed Mar 19 2014 Jerry James <loganjerry@gmail.com> - 0.1-19.20140319git.6110a49
- Update to recent git snapshot, now hosted on github
- Build now uses cmake
- Tests now need boolector, which has license problems. Disable %%check for
now unless we can find something useful to do.
* Wed Oct 9 2013 Jerry James <loganjerry@gmail.com> - 0.1-18.20130223svn
- Really rebuild for cryptominisat 2.9.8
* Thu Sep 26 2013 Jerry James <loganjerry@gmail.com> - 0.1-17.20130223svn
- Rebuild for cryptominisat 2.9.8
- Disable regression tests for non-x86 (see bz 1012698)
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-16.20130223svn
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 30 2013 Petr Machata <pmachata@redhat.com> - 0.1-15.20130223svn
- Rebuild for boost 1.54.0
* Mon Mar 11 2013 Jerry James <loganjerry@gmail.com> - 0.1.14-20130223svn
- Update to recent subversion snapshot
- Reenable the check script
* Mon Feb 11 2013 Jerry James <loganjerry@gmail.com> - 0.1-13.20130211svn
- Update to recent subversion snapshot
* Wed Oct 17 2012 Jerry James <loganjerry@gmail.com> - 0.1-12.20121002svn
- Update to recent subversion snapshot
* Tue Aug 7 2012 Jerry James <loganjerry@gmail.com> - 0.1-11.20120615svn
- Update to recent subversion snapshot
- Do not build bundled cryptominisat
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-10.20120109svn
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-9.20120109svn
- Rebuilt for c++ ABI breakage
* Tue Jan 10 2012 Jerry James <loganjerry@gmail.com> - 0.1-8.20120109svn
- Update to recent subversion snapshot
- Add GCC 4.7 patch
- Disable tests until valgrind doesn't cause failures in libdl
* Tue Dec 13 2011 Jerry James <loganjerry@gmail.com> - 0.1-7.20111130svn
- Update to recent subversion snapshot
- Minor spec file cleanups
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.1-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Fri Mar 6 2009 David A. Wheeler <dwheeler at, dwheeler.com> 0.1-4
- Re-sync with CVS
* Fri Mar 6 2009 David A. Wheeler <dwheeler at, dwheeler.com> 0.1-3
- Modified spec so can rebuild in proper order on Fedora
* Tue Mar 3 2009 David A. Wheeler <dwheeler at, dwheeler.com> 0.1-2
- Fixed comments by Marcela Maslanova, mmaslano (at) redhat*DOT*com 2009-02-26
- Moved definitions of subpackages to "top" of spec before prep.
- moved "check" before "files".
- Use macro for release version 0.1-11-18-2008 for future updates.
- No doc for -devel package; it's already in the base.
- CPPFLAGS now includes optflags.
* Mon Feb 23 2009 David A. Wheeler <dwheeler at, dwheeler.com> 0.1-1
- Initial packaging