|
|
75fa8e5 |
Name: cvc3
|
|
|
72c7f33 |
Version: 2.4.1
|
|
|
b4a92f5 |
Release: 6%{?dist}
|
|
|
75fa8e5 |
Summary: Validity checker of many-sorted first-order formulas with theories
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
Group: Applications/Engineering
|
|
|
72c7f33 |
License: BSD and MIT
|
|
|
75fa8e5 |
URL: http://www.cs.nyu.edu/acsys/cvc3/
|
|
|
b4a92f5 |
Source: http://www.cs.nyu.edu/acsys/cvc3/download/%{version}/%{name}-%{version}.tar.gz
|
|
|
b8ae206 |
# This patch is Fedora-specific. Set up doxygen so that the generated
|
|
|
b8ae206 |
# documentation meets packaging standards.
|
|
|
b4a92f5 |
Patch0: %{name}-doc.patch
|
|
|
72c7f33 |
# This patch was sent upstream 6 Sep 2011. It fixes some broken doxygen
|
|
|
72c7f33 |
# comments.
|
|
|
b4a92f5 |
Patch1: %{name}-doxygen.patch
|
|
|
b4a92f5 |
# Not sent upstream, as cvc3 has reached end of life. Add support for aarch64.
|
|
|
b4a92f5 |
Patch2: %{name}-aarch64.patch
|
|
|
72c7f33 |
|
|
|
72c7f33 |
BuildRequires: bison
|
|
|
72c7f33 |
BuildRequires: doxygen
|
|
|
72c7f33 |
BuildRequires: emacs
|
|
|
72c7f33 |
BuildRequires: flex
|
|
|
72c7f33 |
BuildRequires: gmp-devel
|
|
|
d1bd96e |
BuildRequires: java-devel >= 1:1.6.0
|
|
|
72c7f33 |
BuildRequires: jpackage-utils
|
|
|
72c7f33 |
BuildRequires: perl
|
|
|
72c7f33 |
BuildRequires: python
|
|
|
72c7f33 |
BuildRequires: time
|
|
|
72c7f33 |
BuildRequires: transfig
|
|
|
72c7f33 |
BuildRequires: tex(latex)
|
|
|
72c7f33 |
BuildRequires: xemacs
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description
|
|
|
75fa8e5 |
CVC3 is an automatic theorem prover for Satisfiability Modulo Theories (SMT)
|
|
|
75fa8e5 |
problems. It can be used to prove the validity (or, dually, the
|
|
|
75fa8e5 |
satisfiability) of first-order formulas in a large number of built-in logical
|
|
|
75fa8e5 |
theories and their combination.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
CVC3 is the latest offspring of a series of popular SMT provers, which
|
|
|
75fa8e5 |
originated at Stanford University with the SVC system. In particular, it
|
|
|
75fa8e5 |
builds on the code base of CVC Lite, its most recent predecessor. Its high
|
|
|
75fa8e5 |
level design follows that of the Sammy prover.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
CVC3 works with a version of first-order logic with polymorphic types and has
|
|
|
75fa8e5 |
a wide variety of features including:
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
* several built-in base theories: rational and integer linear arithmetic,
|
|
|
75fa8e5 |
arrays, tuples, records, inductive data types, bit vectors, and equality
|
|
|
75fa8e5 |
over uninterpreted function symbols;
|
|
|
75fa8e5 |
* support for quantifiers;
|
|
|
75fa8e5 |
* an interactive text-based interface;
|
|
|
75fa8e5 |
* a rich C and C++ API for embedding in other systems;
|
|
|
75fa8e5 |
* proof and model generation abilities;
|
|
|
75fa8e5 |
* predicate subtyping;
|
|
|
75fa8e5 |
* essentially no limit on its use for research or commercial purposes (see
|
|
|
75fa8e5 |
license).
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
For example, if you run 'cvc3 +interactive' and submit:
|
|
|
75fa8e5 |
i, j: INT; ASSERT i = j + 1; QUERY i>j;
|
|
|
75fa8e5 |
it will determine "Valid." If you then ask:
|
|
|
75fa8e5 |
QUERY i
|
|
|
75fa8e5 |
it will determine "Invalid." and show an example demonstrating when the formula
|
|
|
75fa8e5 |
is not true (e.g., i = 0 and j = -1).
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package devel
|
|
|
75fa8e5 |
Group: Development/Libraries
|
|
|
75fa8e5 |
Summary: Header files for development with CVC3
|
|
|
72c7f33 |
Requires: %{name}%{?_isa} = %{version}-%{release}
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description devel
|
|
|
75fa8e5 |
Header files need to develop with CVC3.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package doc
|
|
|
75fa8e5 |
Group: Documentation
|
|
|
75fa8e5 |
Summary: API documentation for CVC3
|
|
|
75fa8e5 |
Requires: %{name} = %{version}-%{release}
|
|
|
d7db038 |
BuildArch: noarch
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description doc
|
|
|
75fa8e5 |
API documentation for CVC3.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package java
|
|
|
75fa8e5 |
Group: Development/Libraries/Java
|
|
|
75fa8e5 |
Summary: Java interface for CVC3
|
|
|
72c7f33 |
Requires: %{name}%{?_isa} = %{version}-%{release}, java, jpackage-utils
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description java
|
|
|
75fa8e5 |
Java interface for CVC3.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package emacs
|
|
|
75fa8e5 |
Group: Applications/Engineering
|
|
|
75fa8e5 |
Summary: Compiled Emacs mode for CVC3
|
|
|
d7db038 |
Requires: emacs(bin) >= %{_emacs_version}
|
|
|
75fa8e5 |
Requires: %{name} = %{version}-%{release}
|
|
|
d7db038 |
BuildArch: noarch
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description emacs
|
|
|
75fa8e5 |
This package contains the byte compiled CVC3 mode for Emacs.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package emacs-el
|
|
|
75fa8e5 |
Group: Applications/Engineering
|
|
|
75fa8e5 |
Summary: Elisp source files for the CVC3 Emacs mode
|
|
|
75fa8e5 |
Requires: %{name} = %{version}-%{release}
|
|
|
d7db038 |
BuildArch: noarch
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description emacs-el
|
|
|
75fa8e5 |
This package contains the source Elisp files for the CVC3 mode for Emacs. You
|
|
|
75fa8e5 |
do not need to install this package to run %{name}. Install the %{name}-emacs
|
|
|
75fa8e5 |
package to use %{name} with Emacs.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package xemacs
|
|
|
75fa8e5 |
Group: Applications/Engineering
|
|
|
75fa8e5 |
Summary: Compiled XEmacs mode for CVC3
|
|
|
b8ae206 |
Requires: xemacs(bin) >= %{_xemacs_version}
|
|
|
75fa8e5 |
Requires: %{name} = %{version}-%{release}
|
|
|
d7db038 |
BuildArch: noarch
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description xemacs
|
|
|
75fa8e5 |
This package contains the byte compiled CVC3 mode for XEmacs.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%package xemacs-el
|
|
|
75fa8e5 |
Group: Applications/Engineering
|
|
|
75fa8e5 |
Summary: Elisp source files for the CVC3 XEmacs mode
|
|
|
75fa8e5 |
Requires: %{name} = %{version}-%{release}
|
|
|
d7db038 |
BuildArch: noarch
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%description xemacs-el
|
|
|
75fa8e5 |
This package contains the source Elisp files for the CVC3 mode for XEmacs. You
|
|
|
75fa8e5 |
do not need to install this package to run %{name}. Install the %{name}-xemacs
|
|
|
75fa8e5 |
package to use %{name} with XEmacs.
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%prep
|
|
|
75fa8e5 |
%setup -q
|
|
|
72c7f33 |
%patch0
|
|
|
72c7f33 |
%patch1
|
|
|
b4a92f5 |
%patch2
|
|
|
72c7f33 |
|
|
|
72c7f33 |
# Use the appropriate compiler flags
|
|
|
72c7f33 |
sed -e "s|^ LOCAL_CXXFLAGS = -O2| LOCAL_CXXFLAGS =|" \
|
|
|
72c7f33 |
-e "s|^LOCAL_CXXFLAGS += -Wall|LOCAL_CXXFLAGS +=|" \
|
|
|
72c7f33 |
-i Makefile.std
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# We can't use loadLibrary, since the JNI libaries are not in a standard place
|
|
|
75fa8e5 |
sed -i \
|
|
|
72c7f33 |
"s|loadLibrary(\"cvc3jni\")|load(\"%{_libdir}/%{name}/libcvc3jni.so\")|" \
|
|
|
75fa8e5 |
java/src/cvc3/Embedded.java
|
|
|
75fa8e5 |
|
|
|
e65a070 |
# Get rid of an unused direct shared library dependency
|
|
|
afbc0c5 |
sed -i "s|-lcvc3 \$(LD_LIBS)|-Wl,--as-needed -lcvc3 \$(LD_LIBS)|" java/Makefile
|
|
|
72c7f33 |
|
|
|
75fa8e5 |
%build
|
|
|
75fa8e5 |
%configure --with-build=optimized --enable-dynamic --enable-java \
|
|
Jerry James |
8423de8 |
--disable-zchaff --with-java-home=%{java_home}
|
|
Jerry James |
8423de8 |
# FIXME: %%{?_smp_mflags} sometimes leads to build failures
|
|
Jerry James |
8423de8 |
make
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# Build the documentation
|
|
|
72c7f33 |
make -C doc
|
|
|
72c7f33 |
rm -f doc/html/*.{map,md5}
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%install
|
|
|
75fa8e5 |
mkdir -p %{buildroot}%{_libdir}/%{name}
|
|
|
75fa8e5 |
%makeinstall javadir=%{buildroot}%{_libdir}/%{name}
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# Byte compile the CVC3 mode file for Emacs
|
|
|
d7db038 |
mkdir -p %{buildroot}%{_emacs_sitelispdir}
|
|
|
d7db038 |
cp -p emacs/cvc-mode.el %{buildroot}%{_emacs_sitelispdir}
|
|
|
d7db038 |
pushd %{buildroot}%{_emacs_sitelispdir}
|
|
|
d7db038 |
%{_emacs_bytecompile} cvc-mode.el
|
|
|
75fa8e5 |
popd
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# Byte compile the CVC3 mode file for XEmacs
|
|
|
d7db038 |
mkdir -p %{buildroot}%{_xemacs_sitelispdir}
|
|
|
d7db038 |
cp -p emacs/cvc-mode.el %{buildroot}%{_xemacs_sitelispdir}
|
|
|
d7db038 |
pushd %{buildroot}%{_xemacs_sitelispdir}
|
|
|
d7db038 |
%{_xemacs_bytecompile} cvc-mode.el
|
|
|
75fa8e5 |
popd
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# Add missing executable bits to the shared libraries
|
|
|
75fa8e5 |
chmod a+x %{buildroot}%{_libdir}/*.so.*
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
# Move the JNI libraries to the right place
|
|
|
75fa8e5 |
mv %{buildroot}%{_libdir}/libcvc3jni.* %{buildroot}%{_libdir}/%{name}
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%check
|
|
|
e65a070 |
# Due to Fedora's policy of changing System.loadLibrary() with a mutable path
|
|
|
e65a070 |
# to System.load() with a fixed path, it is not possible to run the Java tests,
|
|
|
e65a070 |
# since the JNI shared objects are not in the fixed location until the RPM is
|
|
|
e65a070 |
# installed.
|
|
|
e65a070 |
sed -i "s/^BUILD_JAVA = 1/BUILD_JAVA = 0/" Makefile.local
|
|
|
72c7f33 |
LD_LIBRARY_PATH=`pwd`/lib make regress4
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%post -p /sbin/ldconfig
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%postun -p /sbin/ldconfig
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files
|
|
|
72c7f33 |
%doc INSTALL LICENSE PEOPLE README
|
|
|
75fa8e5 |
%{_bindir}/cvc3
|
|
|
75fa8e5 |
%{_libdir}/libcvc3.so.*
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files devel
|
|
|
75fa8e5 |
%{_includedir}/cvc3
|
|
|
75fa8e5 |
%{_libdir}/*.so
|
|
|
72c7f33 |
%{_libdir}/pkgconfig/%{name}.pc
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files doc
|
|
|
75fa8e5 |
%doc doc/html
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files java
|
|
|
75fa8e5 |
%{_libdir}/%{name}
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files emacs
|
|
|
d7db038 |
%{_emacs_sitelispdir}/*.elc
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files emacs-el
|
|
|
d7db038 |
%{_emacs_sitelispdir}/*.el
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files xemacs
|
|
|
d7db038 |
%{_xemacs_sitelispdir}/*.elc
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%files xemacs-el
|
|
|
d7db038 |
%{_xemacs_sitelispdir}/*.el
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
%changelog
|
|
|
b4a92f5 |
* Mon Apr 29 2013 Jerry James <loganjerry@gmail.com> - 2.4.1-6
|
|
|
b4a92f5 |
- Add -aarch64 support (bz 925213)
|
|
Jerry James |
8423de8 |
- Turn off parallel builds; they sometimes fail while building the Java code
|
|
|
b4a92f5 |
|
|
|
907a5e1 |
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-5
|
|
|
907a5e1 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
|
|
907a5e1 |
|
|
|
0bc0329 |
* Wed Jul 18 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-4
|
|
|
0bc0329 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
|
|
|
0bc0329 |
|
|
|
9bb5ad1 |
* Tue Feb 28 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.4.1-3
|
|
|
9bb5ad1 |
- Rebuilt for c++ ABI breakage
|
|
|
9bb5ad1 |
|
|
|
afbc0c5 |
* Fri Jan 6 2012 Jerry James <loganjerry@gmail.com> - 2.4.1-2
|
|
|
afbc0c5 |
- Rebuild for GCC 4.7
|
|
|
afbc0c5 |
|
|
|
3434f1f |
* Thu Oct 20 2011 Marcela Mašláňová <mmaslano@redhat.com> - 2.4.1-1.2
|
|
|
3434f1f |
- rebuild with new gmp without compat lib
|
|
|
3434f1f |
|
|
|
1243d9d |
* Mon Oct 10 2011 Peter Schiffer <pschiffe@redhat.com> - 2.4.1-1.1
|
|
|
1243d9d |
- rebuild with new gmp
|
|
|
1243d9d |
|
|
|
72c7f33 |
* Tue Sep 6 2011 Jerry James <loganjerry@gmail.com> - 2.4.1-1
|
|
|
72c7f33 |
- New upstream version
|
|
|
72c7f33 |
- Drop unnecessary spec file elements (BuildRoot, etc.)
|
|
|
e65a070 |
- Don't run the Java tests; they can't find the JNI shared objects
|
|
|
72c7f33 |
|
|
|
1d0a540 |
* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.2-3
|
|
|
1d0a540 |
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
|
|
|
1d0a540 |
|
|
|
fb3f538 |
* Thu Jun 3 2010 Jerry James <loganjerry@gmail.com> - 2.2-2
|
|
|
fb3f538 |
- Add python BR (bz 599887)
|
|
|
fb3f538 |
|
|
|
b8ae206 |
* Thu Nov 19 2009 Jerry James <loganjerry@gmail.com> - 2.2-1
|
|
|
b8ae206 |
- Update to 2.2
|
|
|
b8ae206 |
- Drop upstreamed patches (gcc4 and java)
|
|
|
b8ae206 |
|
|
|
d7db038 |
* Tue Oct 27 2009 Jerry James <loganjerry@gmail.com> - 2.1-3
|
|
|
d7db038 |
- Drop the graphviz BR to block generation of huge class graphs
|
|
|
d7db038 |
- Use the new (X)Emacs RPM macros to simplify the spec file
|
|
|
d7db038 |
|
|
|
75fa8e5 |
* Mon Oct 19 2009 Jerry James <loganjerry@gmail.com> - 2.1-2
|
|
|
75fa8e5 |
- Fix problems found on review
|
|
|
75fa8e5 |
- Enable the Java interface
|
|
|
75fa8e5 |
|
|
|
75fa8e5 |
* Thu Oct 15 2009 Jerry James <loganjerry@gmail.com> - 2.1-1
|
|
|
75fa8e5 |
- Initial RPM
|