# rpmlint "no-binary" error is not really an error - see: # https://www.redhat.com/archives/fedora-packaging/2008-August/msg00017.html # and ocaml-ocamlgraph spec file for a discussion of this issue. %ifnarch %{ocaml_native_compiler} %global debug_package %{nil} %endif Name: alt-ergo Version: 2.2.0 Release: 13%{?dist} Summary: Automated theorem prover including linear arithmetic License: ASL 2.0 URL: https://alt-ergo.ocamlpro.com/ Source0: https://alt-ergo.ocamlpro.com/http/%{name}-%{version}/%{name}-%{version}.tar.gz # Created with gimp from official upstream icon Source1: %{name}-icons.tar.xz Source2: %{name}.desktop Source3: %{name}.metainfo.xml # Use the asmrun_pic variant when linking the binary. Patch0: %{name}-1.30-use-pic.patch # Do not use the deprecated Pervasives interface Patch1: %{name}-pervasives.patch BuildRequires: appstream BuildRequires: desktop-file-utils BuildRequires: gtksourceview2-devel BuildRequires: make BuildRequires: ocaml BuildRequires: ocaml-findlib BuildRequires: ocaml-lablgtk-devel BuildRequires: ocaml-menhir BuildRequires: ocaml-num-devel BuildRequires: ocaml-ocplib-simplex-devel BuildRequires: ocaml-psmt2-frontend-devel BuildRequires: ocaml-zarith-devel BuildRequires: ocaml-zip-devel Requires: ocaml-alt-ergo%{?_isa} = %{version}-%{release} # Do not Require private ocaml interfaces that we don't Provide %global __requires_exclude ocamlx?\\\((Commands|Ex(ception|planation)|Formula|Hstring|Inequalities|L(iteral|oc)|Matching_types|Numbers(Interface)?|Options|P(arsed|olynome)|S(atml_types|ig|ymbols)|T(erm|y(ped)?)|U(f|til)|Vec)\\\) %global _desc %{expand: Alt-Ergo is an automated theorem prover implemented in OCaml. It is based on CC(X) - a congruence closure algorithm parameterized by an equational theory X. This algorithm is reminiscent of the Shostak algorithm. Currently CC(X) is instantiated by the theory of linear arithmetics. Alt-Ergo also contains a home made SAT-solver and an instantiation mechanism by which it fully supports quantifiers.} %description %_desc %package gui Summary: Graphical front end for Alt-Ergo Requires: %{name}%{?_isa} = %{version}-%{release} Requires: gtksourceview2 Requires: hicolor-icon-theme %description gui %_desc This package contains a graphical front end for the Alt-Ergo theorem prover. %package -n ocaml-alt-ergo Summary: Automated theorem prover library %description -n ocaml-alt-ergo %_desc This package is the core of Alt-Ergo as an OCaml library. %package -n ocaml-alt-ergo-devel Summary: Development files for ocaml-altergolib Requires: ocaml-alt-ergo%{?_isa} = %{version}-%{release} %description -n ocaml-alt-ergo-devel %_desc This package contains development files needed to build applications that use the Alt-Ergo library. %prep %autosetup -p1 -a 1 cp -p %{SOURCE2} com.ocamlpro.%{name}.desktop # Look for zip instead of camlzip sed -i 's/camlzip/zip/g' configure opam %ifarch %{arm} # Work around for https://github.com/ocaml/ocaml/issues/7608 # Remove this once a released ocaml version fixes that issue. sed -i "s|^LIGHT_OFLAGS =|& -fno-thumb|" Makefile.users %endif %build %configure --libdir=%{_libdir}/ocaml %ifnarch %{ocaml_native_compiler} %global opt_option OCAMLBEST=byte OCAMLC=ocamlc OCAMLLEX=ocamllex %else %global opt_option OCAMLBEST=opt OCAMLOPT=ocamlopt.opt %endif make %{opt_option} %install mkdir -p %{buildroot}%{_bindir} make %{opt_option} DESTDIR=%{buildroot} install # Move the gtksourceview file to the right place mv %{buildroot}%{_datadir}/%{name}/gtksourceview-2.0 %{buildroot}%{_datadir} rmdir %{buildroot}%{_datadir}/%{name} # Install the desktop file mkdir -p %{buildroot}%{_datadir}/applications desktop-file-install --dir %{buildroot}%{_datadir}/applications \ com.ocamlpro.%{name}.desktop # Install the AppData file mkdir -p %{buildroot}%{_metainfodir} install -pm 644 %{SOURCE3} \ %{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml appstreamcli validate --no-net \ %{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml # Install the icons mkdir -p %{buildroot}%{_datadir}/icons cp -a icons %{buildroot}%{_datadir}/icons/hicolor %check # Test alt-ergo on the examples. %define altergo %{buildroot}%{_bindir}/alt-ergo cd examples/valid for fil in *.why; do if ! %{altergo} $fil | grep -Fq Valid; then echo $fil was not found valid exit 1 fi done cd ../invalid for fil in *.why; do if %{altergo} $fil | grep -Fq Valid; then echo $fil was erroneously found valid exit 1 fi done %files %doc README.md CHANGES examples %license COPYING.md LICENSE.md %{_bindir}/%{name} %{_mandir}/man1/alt-ergo.1.* %files gui %{_bindir}/altgr-ergo %{_datadir}/applications/com.ocamlpro.%{name}.desktop %{_datadir}/gtksourceview-2.0/language-specs/%{name}.lang %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml %files -n ocaml-alt-ergo %dir %{_libdir}/ocaml/%{name}/ %{_libdir}/ocaml/%{name}/META %{_libdir}/ocaml/%{name}/plugins/ %{_libdir}/ocaml/%{name}/preludes/ %{_libdir}/ocaml/%{name}/altErgoLib.cma %{_libdir}/ocaml/%{name}/altErgoLib.cmi %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{name}/altErgoLib.cmxs %endif %files -n ocaml-%{name}-devel %ifarch %{ocaml_native_compiler} %{_libdir}/ocaml/%{name}/altErgoLib.a %{_libdir}/ocaml/%{name}/altErgoLib.cmx %{_libdir}/ocaml/%{name}/altErgoLib.cmxa %endif %{_libdir}/ocaml/%{name}/altErgoLib.o %{_libdir}/ocaml/%{name}/altErgoLib.cmo %{_libdir}/ocaml/%{name}/altErgoLib.cmt %changelog * Thu Jul 29 2021 Jerry James - 2.2.0-13 - Rebuild for changed ocamlx(Dynlink) * Wed Jul 21 2021 Fedora Release Engineering - 2.2.0-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Mon Jul 19 2021 Jerry James - 2.2.0-11 - Move META to the main package * Tue Jun 22 2021 Jerry James - 2.2.0-11 - Rebuild for ocaml-lablgtk without gnomeui * Wed Mar 3 2021 Jerry James - 2.2.0-10 - Rebuild for ocaml-zarith 1.12 * Tue Mar 2 11:26:14 GMT 2021 Richard W.M. Jones - 2.2.0-9 - OCaml 4.12.0 build * Thu Feb 4 2021 Jerry James - 2.2.0-8 - Updates to the desktop and metainfo files - Add -pervasives patch * Tue Jan 26 2021 Fedora Release Engineering - 2.2.0-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild * Mon Nov 16 2020 Jerry James - 2.2.0-6 - Rebuild for ocaml-zarith 1.11 * Fri Sep 25 2020 Jerry James - 2.2.0-5 - Rebuild for ocaml-zarith 1.10 * Tue Sep 01 2020 Richard W.M. Jones - 2.2.0-4 - OCaml 4.11.1 rebuild * Fri Aug 21 2020 Richard W.M. Jones - 2.2.0-3 - OCaml 4.11.0 rebuild * Mon Jul 27 2020 Fedora Release Engineering - 2.2.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild * Fri Jun 19 2020 Jerry James - 2.2.0-1 - Version 2.2.0 - Drop upstreamed -newline patch * Tue May 05 2020 Richard W.M. Jones - 2.0.0-15 - OCaml 4.11.0+dev2-2020-04-22 rebuild * Wed Apr 22 2020 Richard W.M. Jones - 2.0.0-14 - OCaml 4.11.0 pre-release attempt 2 * Wed Apr 8 2020 Jerry James - 2.0.0-13 - Filter out Requires for private interfaces we do not Provide * Fri Apr 03 2020 Richard W.M. Jones - 2.0.0-12 - Update all OCaml dependencies for RPM 4.16. * Mon Mar 30 2020 Jerry James - 2.0.0-11 - Rebuild for ocaml-zip 1.10 * Tue Mar 24 2020 Jerry James - 2.0.0-10 - Rebuild for ocaml-menhir 20200211 * Wed Feb 26 2020 Richard W.M. Jones - 2.0.0-9 - OCaml 4.10.0 final. * Tue Jan 28 2020 Fedora Release Engineering - 2.0.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild * Sun Jan 19 2020 Richard W.M. Jones - 2.0.0-7 - OCaml 4.10.0+beta1 rebuild. * Fri Dec 06 2019 Richard W.M. Jones - 2.0.0-6 - OCaml 4.09.0 (final) rebuild. * Fri Sep 6 2019 Jerry James - 2.0.0-5 - Rebuild for ocaml-zarith 1.9 * Fri Aug 16 2019 Richard W.M. Jones - 2.0.0-4 - OCaml 4.08.1 (final) rebuild. * Wed Jul 31 2019 Richard W.M. Jones - 2.0.0-3 - OCaml 4.08.1 (rc2) rebuild. * Wed Jul 24 2019 Fedora Release Engineering - 2.0.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild * Wed Jun 5 2019 Jerry James - 2.0.0-1 - Update to version 2.0.0 - Add -newline patch to fix FTBFS - Add a 256x256 icon * Thu Jan 31 2019 Fedora Release Engineering - 1.30-16 - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild * Thu Jul 12 2018 Fedora Release Engineering - 1.30-15 - Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild * Wed Jul 11 2018 Richard W.M. Jones - 1.30-14 - OCaml 4.07.0 (final) rebuild. * Wed Jun 20 2018 Richard W.M. Jones - 1.30-13 - OCaml 4.07.0-rc1 rebuild. * Wed Feb 07 2018 Fedora Release Engineering - 1.30-12 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild * Sun Jan 07 2018 Igor Gnatenko - 1.30-11 - Remove obsolete scriptlets * Wed Nov 08 2017 Richard W.M. Jones - 1.30-10 - OCaml 4.06.0 rebuild. * Mon Aug 07 2017 Richard W.M. Jones - 1.30-9 - OCaml 4.05.0 rebuild. * Wed Aug 02 2017 Fedora Release Engineering - 1.30-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild * Wed Jul 26 2017 Fedora Release Engineering - 1.30-7 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild * Mon Jun 26 2017 Richard W.M. Jones - 1.30-6 - OCaml 4.04.2 rebuild. * Fri May 12 2017 Richard W.M. Jones - 1.30-5 - Bump release and rebuild. * Fri May 12 2017 Richard W.M. Jones - 1.30-4 - Bump release and rebuild. * Fri May 12 2017 Richard W.M. Jones - 1.30-3 - OCaml 4.04.1 rebuild. * Fri Feb 10 2017 Fedora Release Engineering - 1.30-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild * Mon Nov 28 2016 Jerry James - 1.30-1 - Update to version 1.30 * Mon Nov 07 2016 Richard W.M. Jones - 1.01-3 - Rebuild for OCaml 4.04.0. * Sat Apr 16 2016 Jerry James - 1.01-2 - Rebuild for ocaml-ocamlgraph 1.8.7 * Wed Feb 17 2016 Jerry James - 1.01-1 - Update to version 1.01 * Wed Feb 03 2016 Fedora Release Engineering - 0.99.1-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild * Wed Nov 25 2015 Jerry James - 0.99.1-9 - Rebuild for zarith 1.4.1 * Tue Jul 28 2015 Richard W.M. Jones - 0.99.1-8 - OCaml 4.02.3 rebuild. * Wed Jun 24 2015 Richard W.M. Jones - 0.99.1-7 - ocaml-4.02.2 final rebuild. * Wed Jun 17 2015 Richard W.M. Jones - 0.99.1-6 - ocaml-4.02.2 rebuild. * Tue Jun 16 2015 Fedora Release Engineering - 0.99.1-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild * Wed Mar 18 2015 Jerry James - 0.99.1-4 - Rebuild for ocaml-ocamlgraph 1.8.6 * Fri Mar 13 2015 Jerry James - 0.99.1-3 - Fix FTBFS (bz 1099153) * Wed Feb 18 2015 Richard W.M. Jones - 0.99.1-2 - ocaml-4.02.1 rebuild. * Tue Jan 6 2015 Jerry James - 0.99.1-1 - Update to version 0.99.1 * Thu Oct 30 2014 Jerry James - 0.95.2-14 - Rebuild for new ocaml-lablgtk * Tue Oct 14 2014 Jerry James - 0.95.2-13 - Rebuild for ocaml-zarith 1.3 - Fix license handling * Tue Sep 2 2014 Jerry James - 0.95.2-12 - ocaml-4.02.0 final rebuild. * Sat Aug 23 2014 Richard W.M. Jones - 0.95.2-11 - ocaml-4.02.0+rc1 rebuild. * Fri Aug 15 2014 Fedora Release Engineering - 0.95.2-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild * Sat Aug 02 2014 Richard W.M. Jones - 0.95.2-9 - ocaml-4.02.0-0.8.git10e45753.fc22 rebuild. * Fri Jul 25 2014 Richard W.M. Jones - 0.95.2-8 - Bump release and rebuild. * Fri Jul 25 2014 Richard W.M. Jones - 0.95.2-7 - Rebuild for OCaml 4.02.0 beta. * Sat Jun 07 2014 Fedora Release Engineering - 0.95.2-6 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild * Mon Apr 21 2014 Jerry James - 0.95.2-5 - Rebuild for ocamlgraph 1.8.5 * Tue Apr 15 2014 Richard W.M. Jones - 0.95.2-4 - Remove ocaml_arches macro (RHBZ#1087794). * Mon Mar 24 2014 Jerry James - 0.95.2-3 - Add desktop icons - Drop unnecessary gmp-devel BR (pulled in by ocaml-zarith-devel) - Fix bytecode build - Drop screenshot, now hosted externally * Tue Mar 4 2014 Jerry James - 0.95.2-2 - Add an AppData file and screenshot - Adapt to ocamlgraph 1.8.4 * Fri Sep 20 2013 Jerry James - 0.95.2-1 - Update to version 0.95.2 - Web pages and downloads now hosted by ocamlpro.com - Add ocaml-findlib, ocaml-zarith, and gmp-devel BRs - Drop prelink BR; execstack is no longer set - Fix bogus changelog dates * Sat Sep 14 2013 Richard W.M. Jones - 0.95.1-4 - Rebuild for OCaml 4.01.0. - Enable debuginfo. - Change some define -> global. - Remove Group lines not needed by modern RPM. * Sat Aug 03 2013 Fedora Release Engineering - 0.95.1-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild * Tue May 14 2013 Jerry James - 0.95.1-2 - Rebuild for ocaml-ocamlgraph 1.8.3 - Make the binaries full RELRO due to network use * Tue Mar 5 2013 Jerry James - 0.95.1-1 - Update to version 0.95.1 - Drop upstreamed -install patch * Wed Feb 13 2013 Fedora Release Engineering - 0.95-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild * Mon Jan 14 2013 Jerry James - 0.95-1 - Update to version 0.95 - Add -install patch to fix installation failure * Wed Oct 17 2012 Jerry James - 0.94-7 - Rebuild for OCaml 4.00.1 * Mon Jul 30 2012 Jerry James - 0.94-6 - Rebuild for ocaml-ocamlgraph 1.8.2 * Wed Jul 18 2012 Fedora Release Engineering - 0.94-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild * Tue Jun 12 2012 Jerry James - 0.94-4 - Rebuild for OCaml 4.00.0 * Thu Jan 12 2012 Fedora Release Engineering - 0.94-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild * Sat Jan 7 2012 Jerry James - 0.94-2 - Rebuild for OCaml 3.12.1 * Tue Dec 6 2011 Jerry James - 0.94-1 - Add a desktop file for the gui. - Update to version 0.94. This means: - The theory of records replaces the theory of pairs - Bug fixes (intervals, term data-structure, stack-overflows, matching, existentials, distincts, CC, GUI) - Improvements (SMT-Lib2 front-end, intervals, case-splits, triggers, lets) - Multiset ordering for AC(X) - Manual lemma instantiation in the GUI * Mon Nov 14 2011 Jerry James - 0.93-2 - Build on all arches with ocaml * Thu May 12 2011 Jerry James - 0.93-1 - Update to version 0.93. This means: - New command-line options -steps, -max-split, and -proof - New polymorphic theory of arrays - Built-in support for enumeration types - Graphical front end - New predicate distinct() - New constructs: let x = in , let x = in - Partial support for the division operator - Unspecified bug fixes * Mon Feb 07 2011 Fedora Release Engineering - 0.92.1-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Wed Oct 06 2010 David A. Wheeler 0.92.1-1 - Update to version 0.92.1. This means: - New built-in syntax for the theory of arrays - Fixes a bug in the arithmetic module - Allows folding and unfolding of predicate definitions * Tue Jun 08 2010 David A. Wheeler 0.91-1 - Update to version 0.91. This means: - partial support for non-linear arithmetics - support case split on integer variables - new support for Euclidean division and modulo operators * Tue Aug 04 2009 Alan Dunn 0.9-2 - Added ExcludeArch sparc64 due to no OCaml * Fri Jul 24 2009 Alan Dunn 0.9-1 - New upstream version - Removed code for check for Fedora version (8) that is EOL - Removed comments re: CeCILL-C license as it is ok to have (no rpmlint warnings to explain either). * Wed Jun 17 2009 Karsten Hopp 0.8-5.1 - ExcludeArch s390x as there's no ocaml available * Mon Feb 23 2009 Fedora Release Engineering - 0.8-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Dec 24 2008 Alan Dunn 0.8-4 - Rebuild: Source upstream appears to have changed even with same version number (seems like bug fix from examination of changes) - Changed hardcoded version number in source string * Fri Sep 05 2008 Alan Dunn 0.8-3 - Fixed BuildRequires to add prelink (for execstack). * Tue Aug 26 2008 Alan Dunn 0.8-2 - Fixed BuildRequires to add ocaml-ocamlgraph-devel instead of ocaml-ocamlgraph, made other minor changes. * Mon Aug 25 2008 Alan Dunn 0.8-1 - Initial Fedora RPM version.