From ec408a198fd117b21cd387201d47f94ad5e22e4b Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 31 Jan 2019 13:13:44 +0000
Subject: [PATCH 01/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 9df0f9f..a4c5a33 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -9,7 +9,7 @@
Name: alt-ergo
Version: 1.30
-Release: 15%{?dist}
+Release: 16%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: CeCILL-C
@@ -137,6 +137,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From aa097b342b5124e871618848830bd3df6f529868 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Wed, 5 Jun 2019 19:55:51 -0600
Subject: [PATCH 02/77] Update to version 2.0.0.
Also:
- Add -newline patch to fix FTBFS.
- Add a 256x256 icon.
---
.gitignore | 4 +---
alt-ergo-2.0.0-newline.patch | 18 ++++++++++++++++++
alt-ergo.spec | 28 ++++++++++++++++------------
sources | 4 ++--
4 files changed, 37 insertions(+), 17 deletions(-)
create mode 100644 alt-ergo-2.0.0-newline.patch
diff --git a/.gitignore b/.gitignore
index e139737..7da3b50 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,2 @@
/alt-ergo-icons.tar.xz
-/alt-ergo-0.99.1.tar.gz
-/alt-ergo-1.01.tar.gz
-/alt-ergo-1.30.tar.gz
+/alt-ergo-*.tar.gz
diff --git a/alt-ergo-2.0.0-newline.patch b/alt-ergo-2.0.0-newline.patch
new file mode 100644
index 0000000..ed46c53
--- /dev/null
+++ b/alt-ergo-2.0.0-newline.patch
@@ -0,0 +1,18 @@
+--- alt-ergo-2.0.0/Makefile.users.orig 2017-11-14 10:01:38.000000000 -0700
++++ alt-ergo-2.0.0/Makefile.users 2019-05-31 10:27:59.204322901 -0600
+@@ -180,12 +180,12 @@ lib/util/cmdline_parser.ml: config.statu
+ @echo "(* parse_args () should be called as soon as possible (put earlier" > lib/util/cmdline_parser.ml
+ @echo " when linking) because some choices during compilation depend on" >> lib/util/cmdline_parser.ml
+ @echo " given options (e.g. dfs-sat)" >> lib/util/cmdline_parser.ml
+- @echo "\n -> The following call:" >> lib/util/cmdline_parser.ml
++ @echo -e "\n -> The following call:" >> lib/util/cmdline_parser.ml
+ @echo " 1 - should be kept when builtind Alt-Ergo tools" >> lib/util/cmdline_parser.ml
+ @echo " 2 - should be removed to build and use only the library." >> lib/util/cmdline_parser.ml
+- @echo "\n Alternatively to 2, one can just remove cmdline_parser.cmo/cmx in" >> lib/util/cmdline_parser.ml
++ @echo -e "\n Alternatively to 2, one can just remove cmdline_parser.cmo/cmx in" >> lib/util/cmdline_parser.ml
+ @echo " Makefile.users *)" >> lib/util/cmdline_parser.ml
+- @echo "\nlet () = Options.parse_cmdline_arguments ()" >> lib/util/cmdline_parser.ml
++ @echo -e "\nlet () = Options.parse_cmdline_arguments ()" >> lib/util/cmdline_parser.ml
+
+ META: config.status
+ @echo "description = \"API of Alt-Ergo: An automatic theorem prover dedicated to program verification\"" > META
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a4c5a33..b9c3c97 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,10 +8,10 @@
%endif
Name: alt-ergo
-Version: 1.30
-Release: 16%{?dist}
+Version: 2.0.0
+Release: 1%{?dist}
Summary: Automated theorem prover including linear arithmetic
-License: CeCILL-C
+License: ASL 2.0
URL: http://alt-ergo.ocamlpro.com/
Source0: http://alt-ergo.ocamlpro.com/http/%{name}-%{version}/%{name}-%{version}.tar.gz
@@ -21,15 +21,18 @@ Source2: %{name}.desktop
Source3: %{name}.appdata.xml
# Use the asmrun_pic variant when linking the binary.
-Patch1: alt-ergo-1.30-use-pic.patch
+Patch0: %{name}-1.30-use-pic.patch
+
+# Process embedded newlines in echo commands
+Patch1: %{name}-2.0.0-newline.patch
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
BuildRequires: ocaml
BuildRequires: ocaml-findlib
BuildRequires: ocaml-lablgtk-devel
+BuildRequires: ocaml-menhir-devel
BuildRequires: ocaml-num-devel
-BuildRequires: ocaml-ocamlgraph-devel
BuildRequires: ocaml-ocplib-simplex-devel
BuildRequires: ocaml-zarith-devel
BuildRequires: ocaml-zip-devel
@@ -58,17 +61,12 @@ A graphical front end for the alt-ergo theorem prover.
%setup -q
%setup -q -T -D -a 1
+%patch0 -p1
%patch1 -p1
cp -p %{SOURCE2} .
-# Fix encoding
-iconv -f ISO-8859-1 -t UTF-8 -o LICENSE.utf8 LICENSE
-touch -r LICENSE LICENSE.utf8
-mv -f LICENSE.utf8 LICENSE
-
# Use Fedora LDFLAGS
-sed -i "s|^OFLAGS =.*|& -g|" Makefile.users
for arg in $RPM_LD_FLAGS; do
sed -i "s|^OFLAGS =.*-g|& -ccopt $arg|" Makefile.users
done
@@ -125,9 +123,10 @@ done
%files
%doc README.md CHANGES examples
-%license COPYING.md LICENSE
+%license COPYING.md LICENSE.md
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
+%{_libdir}/%{name}/
%files gui
%{_bindir}/altgr-ergo
@@ -137,6 +136,11 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
diff --git a/sources b/sources
index 6f0dcae..7b8dc34 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-c7100ebd625fbd7d3e5247dbac689748 alt-ergo-1.30.tar.gz
-90052f03870cc94a1ceb8ac3fae77b7b alt-ergo-icons.tar.xz
+SHA512 (alt-ergo-2.0.0.tar.gz) = aaf8d948a8bd77cd1ff0d8fffcaf0dd30a906a90769c4c463705c212c4b12e1bd124024b50cd244334c96088b367a8a41ae2a16876732f116c9bd418be4ec341
+SHA512 (alt-ergo-icons.tar.xz) = cb2e93bab3359f6f198e80e3e68840ed4b25a213b61f388a2de8abc299fd3c89240f64f610290ac89e6005088c484b2718a68ec18063076f73d7871a38ee038f
From 84816c8abd454e51a4304fc2dedbd6c380c84d8d Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Sat, 8 Jun 2019 20:18:21 -0600
Subject: [PATCH 03/77] Add a workaround for
https://github.com/ocaml/ocaml/issues/7608.
---
alt-ergo.spec | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index b9c3c97..2dbf9af 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -71,6 +71,12 @@ for arg in $RPM_LD_FLAGS; do
sed -i "s|^OFLAGS =.*-g|& -ccopt $arg|" Makefile.users
done
+%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|^OFLAGS =|& -fno-thumb|" Makefile.users
+%endif
+
%build
%configure
From 87d647fe87c70470607956527e7e20b2aa246235 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 24 Jul 2019 17:48:33 +0000
Subject: [PATCH 04/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2dbf9af..661bf12 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -9,7 +9,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -142,6 +142,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 004cf953dfdaf2aad39b94581beaa221db0959be Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Thu, 1 Aug 2019 00:02:40 +0100
Subject: [PATCH 05/77] OCaml 4.08.1 (rc2) rebuild.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 661bf12..e013532 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -9,7 +9,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -142,6 +142,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 199f1599a88273e280495297bda3d0a7ff7a147a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Fri, 16 Aug 2019 16:28:54 +0100
Subject: [PATCH 06/77] OCaml 4.08.1 (final) rebuild.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index e013532..57c7be7 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -9,7 +9,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -142,6 +142,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From 23076e58d83d7afbd1be1ede01dd493184479d4f Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 6 Sep 2019 09:11:18 -0600
Subject: [PATCH 07/77] Rebuild for ocaml-zarith 1.9.
---
alt-ergo.spec | 13 ++++++-------
1 file changed, 6 insertions(+), 7 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 57c7be7..cca9c21 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -2,14 +2,13 @@
# https://www.redhat.com/archives/fedora-packaging/2008-August/msg00017.html
# and ocaml-ocamlgraph spec file for a discussion of this issue.
-%global opt %(test -x %{_bindir}/ocamlopt && echo 1 || echo 0)
-%if !%{opt}
+%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
Name: alt-ergo
Version: 2.0.0
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -51,9 +50,6 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtksourceview2
Requires: hicolor-icon-theme
-Requires(post): coreutils
-Requires(postun): coreutils
-
%description gui
A graphical front end for the alt-ergo theorem prover.
@@ -80,7 +76,7 @@ sed -i "s|^OFLAGS =|& -fno-thumb|" Makefile.users
%build
%configure
-%if ! %{opt}
+%ifnarch %{ocaml_native_compiler}
%global opt_option OCAMLBEST=byte OCAMLC=ocamlc OCAMLLEX=ocamllex
%else
%global opt_option OCAMLBEST=opt OCAMLOPT=ocamlopt.opt
@@ -142,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From 44c4aa7df61e2b51f33bb4ab4f83dc5ea119a802 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Fri, 6 Dec 2019 13:33:22 +0000
Subject: [PATCH 08/77] OCaml 4.09.0 (final) rebuild.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index cca9c21..9a9cf01 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -138,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 4ecc6462d6fa761537040615f95c33b982ba1959 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Sun, 19 Jan 2020 14:47:50 +0000
Subject: [PATCH 09/77] OCaml 4.10.0+beta1 rebuild.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 9a9cf01..67df2ca 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -138,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From e409180af0727ff22f2dc79fdd36f7e1f44a1fdf Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Tue, 28 Jan 2020 11:28:29 +0000
Subject: [PATCH 10/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 67df2ca..9d5ee02 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -138,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From 41c768f03f642a8abed7e8909b1b23fd0ba401bf Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 26 Feb 2020 16:40:16 +0000
Subject: [PATCH 11/77] OCaml 4.10.0 final.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 9d5ee02..c25911b 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -138,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 0e23a449762820cd92c4c25d92b762cb122d94e7 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Wed, 25 Mar 2020 13:27:34 -0600
Subject: [PATCH 12/77] Rebuild for ocaml-menhir 20200211.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index c25911b..2d92e68 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -138,6 +138,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From 15bcc3b4c1996cdf02c8b39444d71e2a511ff156 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Wed, 1 Apr 2020 10:26:17 -0600
Subject: [PATCH 13/77] Rebuild for ocaml-zip 1.10.
---
alt-ergo.spec | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2d92e68..1c81541 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -67,6 +67,9 @@ for arg in $RPM_LD_FLAGS; do
sed -i "s|^OFLAGS =.*-g|& -ccopt $arg|" Makefile.users
done
+# 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.
@@ -138,6 +141,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From d1cd03adbed832a6d1ea2c7b94cf9292643c78cb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Fri, 3 Apr 2020 13:38:22 +0100
Subject: [PATCH 14/77] Update all OCaml dependencies for RPM 4.16.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 1c81541..7d95357 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -141,6 +141,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 220d1db4409f1fdfcc44bde167a04c704c8ccb3a Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Wed, 8 Apr 2020 21:14:29 -0600
Subject: [PATCH 15/77] Filter out Requires for private interfaces we do not
Provide.
---
alt-ergo.rpmlintrc | 14 ++++++++++++++
alt-ergo.spec | 8 +++++++-
2 files changed, 21 insertions(+), 1 deletion(-)
create mode 100644 alt-ergo.rpmlintrc
diff --git a/alt-ergo.rpmlintrc b/alt-ergo.rpmlintrc
new file mode 100644
index 0000000..7a6e1a4
--- /dev/null
+++ b/alt-ergo.rpmlintrc
@@ -0,0 +1,14 @@
+# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON
+# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors
+
+# The dictionary lacks some technical words
+addFilter(r'W: spelling-error .* (arithmetics|equational|instantiation|parameterized|prover)')
+
+# Caused by ocaml; this package cannot fix it
+addFilter(r'alt-ergo(-gui)?\.[^:]+: E: missing-call-to-chdir-with-chroot')
+
+# Documentation is in the main package
+addFilter(r'alt-ergo-gui\.[^:]+: W: no-documentation')
+
+# There is no man page for the graphical launcher
+addFilter(r'alt-ergo-gui\.[^:]+: W: no-manual-page-for-binary altgr-ergo')
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 7d95357..b018424 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -36,6 +36,9 @@ BuildRequires: ocaml-ocplib-simplex-devel
BuildRequires: ocaml-zarith-devel
BuildRequires: ocaml-zip-devel
+# Do not Require private ocaml interfaces that we don't Provide
+%global __requires_exclude ocamlx?\\\((Ccx|Com(bine|mands)|Ex(ception|planation)|F(ormula|un_sat)|H(consing|string)|In(equalities|stances)|L(iteral|oc)|Matching_types|Numbers(Interface)?|Options|P(arsed|olynome|rofiling)|S(at_solver(_sig)?|ig|ymbols)|T(erm|heory|imers|y(ped)?)|U(f|se|til))\\\)
+
%description
Alt-Ergo is an automated theorem prover implemented in OCaml. It is
based on CC(X) - a congruence closure algorithm parameterized by an
@@ -141,6 +144,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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.
From 60a1450297158b6e4b53e5e4997ed1fbd1024799 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 22 Apr 2020 15:45:05 +0100
Subject: [PATCH 16/77] OCaml 4.11.0 pre-release attempt 2
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index b018424..0f6493e 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -144,6 +144,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 941831eb84b83cf2ce35a3a8c1cddbc8933511d0 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 5 May 2020 16:25:31 +0100
Subject: [PATCH 17/77] OCaml 4.11.0+dev2-2020-04-22 rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 0f6493e..947569a 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.0.0
-Release: 14%{?dist}
+Release: 15%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -144,6 +144,9 @@ done
%{_datadir}/icons/hicolor/*/apps/%{name}.png
%changelog
+* 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
From 8d58e8b229178a38dbc868b51d035affd2c568cd Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 19 Jun 2020 15:30:19 -0600
Subject: [PATCH 18/77] Version 2.2.0. Drop upstreamed -newline patch.
---
alt-ergo-2.0.0-newline.patch | 18 --------
alt-ergo.spec | 90 +++++++++++++++++++++++++-----------
sources | 2 +-
3 files changed, 64 insertions(+), 46 deletions(-)
delete mode 100644 alt-ergo-2.0.0-newline.patch
diff --git a/alt-ergo-2.0.0-newline.patch b/alt-ergo-2.0.0-newline.patch
deleted file mode 100644
index ed46c53..0000000
--- a/alt-ergo-2.0.0-newline.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- alt-ergo-2.0.0/Makefile.users.orig 2017-11-14 10:01:38.000000000 -0700
-+++ alt-ergo-2.0.0/Makefile.users 2019-05-31 10:27:59.204322901 -0600
-@@ -180,12 +180,12 @@ lib/util/cmdline_parser.ml: config.statu
- @echo "(* parse_args () should be called as soon as possible (put earlier" > lib/util/cmdline_parser.ml
- @echo " when linking) because some choices during compilation depend on" >> lib/util/cmdline_parser.ml
- @echo " given options (e.g. dfs-sat)" >> lib/util/cmdline_parser.ml
-- @echo "\n -> The following call:" >> lib/util/cmdline_parser.ml
-+ @echo -e "\n -> The following call:" >> lib/util/cmdline_parser.ml
- @echo " 1 - should be kept when builtind Alt-Ergo tools" >> lib/util/cmdline_parser.ml
- @echo " 2 - should be removed to build and use only the library." >> lib/util/cmdline_parser.ml
-- @echo "\n Alternatively to 2, one can just remove cmdline_parser.cmo/cmx in" >> lib/util/cmdline_parser.ml
-+ @echo -e "\n Alternatively to 2, one can just remove cmdline_parser.cmo/cmx in" >> lib/util/cmdline_parser.ml
- @echo " Makefile.users *)" >> lib/util/cmdline_parser.ml
-- @echo "\nlet () = Options.parse_cmdline_arguments ()" >> lib/util/cmdline_parser.ml
-+ @echo -e "\nlet () = Options.parse_cmdline_arguments ()" >> lib/util/cmdline_parser.ml
-
- META: config.status
- @echo "description = \"API of Alt-Ergo: An automatic theorem prover dedicated to program verification\"" > META
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 947569a..98b16ed 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -7,23 +7,20 @@
%endif
Name: alt-ergo
-Version: 2.0.0
-Release: 15%{?dist}
+Version: 2.2.0
+Release: 1%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
-URL: http://alt-ergo.ocamlpro.com/
-Source0: http://alt-ergo.ocamlpro.com/http/%{name}-%{version}/%{name}-%{version}.tar.gz
+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}.appdata.xml
# Use the asmrun_pic variant when linking the binary.
-Patch0: %{name}-1.30-use-pic.patch
-
-# Process embedded newlines in echo commands
-Patch1: %{name}-2.0.0-newline.patch
+Patch0: %{name}-1.30-use-pic.patch
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
@@ -33,54 +30,69 @@ BuildRequires: ocaml-lablgtk-devel
BuildRequires: ocaml-menhir-devel
BuildRequires: ocaml-num-devel
BuildRequires: ocaml-ocplib-simplex-devel
+BuildRequires: ocaml-psmt2-frontend-devel
BuildRequires: ocaml-zarith-devel
BuildRequires: ocaml-zip-devel
-# Do not Require private ocaml interfaces that we don't Provide
-%global __requires_exclude ocamlx?\\\((Ccx|Com(bine|mands)|Ex(ception|planation)|F(ormula|un_sat)|H(consing|string)|In(equalities|stances)|L(iteral|oc)|Matching_types|Numbers(Interface)?|Options|P(arsed|olynome|rofiling)|S(at_solver(_sig)?|ig|ymbols)|T(erm|heory|imers|y(ped)?)|U(f|se|til))\\\)
+Requires: ocaml-alt-ergo%{?_isa} = %{version}-%{release}
-%description
+# 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.
+instantiation mechanism by which it fully supports quantifiers.}
+
+%description %_desc
%package gui
-Summary: Graphical front end for alt-ergo
+Summary: Graphical front end for Alt-Ergo
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtksourceview2
Requires: hicolor-icon-theme
-%description gui
-A graphical front end for the alt-ergo theorem prover.
+%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
-%setup -q
+%autosetup -p1
%setup -q -T -D -a 1
-%patch0 -p1
-%patch1 -p1
-
cp -p %{SOURCE2} .
-# Use Fedora LDFLAGS
-for arg in $RPM_LD_FLAGS; do
- sed -i "s|^OFLAGS =.*-g|& -ccopt $arg|" Makefile.users
-done
-
# 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|^OFLAGS =|& -fno-thumb|" Makefile.users
+sed -i "s|^LIGHT_OFLAGS =|& -fno-thumb|" Makefile.users
%endif
%build
-%configure
+%configure --libdir=%{_libdir}/ocaml
%ifnarch %{ocaml_native_compiler}
%global opt_option OCAMLBEST=byte OCAMLC=ocamlc OCAMLLEX=ocamllex
@@ -134,7 +146,6 @@ done
%license COPYING.md LICENSE.md
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
-%{_libdir}/%{name}/
%files gui
%{_bindir}/altgr-ergo
@@ -143,7 +154,32 @@ done
%{_datadir}/gtksourceview-2.0/language-specs/%{name}.lang
%{_datadir}/icons/hicolor/*/apps/%{name}.png
+%files -n ocaml-alt-ergo
+%dir %{_libdir}/ocaml/%{name}/
+%{_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
+%{_libdir}/ocaml/%{name}/META
+%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
+* 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
diff --git a/sources b/sources
index 7b8dc34..8679a4d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (alt-ergo-2.0.0.tar.gz) = aaf8d948a8bd77cd1ff0d8fffcaf0dd30a906a90769c4c463705c212c4b12e1bd124024b50cd244334c96088b367a8a41ae2a16876732f116c9bd418be4ec341
+SHA512 (alt-ergo-2.2.0.tar.gz) = 08ac8250ef2b853edc4885038ffbc8a5b4bbbedd170812fda3a4c4e59609f9642ae995d3a75ed637fbabb1163c6e84afa61c41204d41ba4b1377b3b84cc01eb8
SHA512 (alt-ergo-icons.tar.xz) = cb2e93bab3359f6f198e80e3e68840ed4b25a213b61f388a2de8abc299fd3c89240f64f610290ac89e6005088c484b2718a68ec18063076f73d7871a38ee038f
From 08fa9904e77e0bb70f765a63997f58abd117195b Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 21 Jul 2020 20:36:44 -0600
Subject: [PATCH 19/77] Replace obsolete ocaml-menhir-devel BR with
ocaml-menhir.
---
alt-ergo.spec | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 98b16ed..cb428aa 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -27,7 +27,7 @@ BuildRequires: gtksourceview2-devel
BuildRequires: ocaml
BuildRequires: ocaml-findlib
BuildRequires: ocaml-lablgtk-devel
-BuildRequires: ocaml-menhir-devel
+BuildRequires: ocaml-menhir
BuildRequires: ocaml-num-devel
BuildRequires: ocaml-ocplib-simplex-devel
BuildRequires: ocaml-psmt2-frontend-devel
From 43e929537f651a145ef21e68f1e44edbd15a5bf9 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Mon, 27 Jul 2020 11:58:12 +0000
Subject: [PATCH 20/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index cb428aa..3ed9f07 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -176,6 +176,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 4b9dbb22feba94d5e6c1623e07c8e1f52912dd02 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Fri, 21 Aug 2020 19:58:39 +0100
Subject: [PATCH 21/77] OCaml 4.11.0 rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 3ed9f07..1cecddd 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -176,6 +176,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 2a865ec4382b6a83289c4118537428dec2f1ad42 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 2 Sep 2020 00:13:21 +0100
Subject: [PATCH 22/77] OCaml 4.11.1 rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 1cecddd..cbe870d 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -176,6 +176,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From bd924aba140d6926181528fd1e10ebcb4636ea8a Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 25 Sep 2020 12:22:22 -0600
Subject: [PATCH 23/77] Rebuild for ocaml-zarith 1.10.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index cbe870d..75167f2 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -176,6 +176,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 0b8900769504c2c15bf34d612e4ef29c7ad612ab Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 9 Nov 2020 10:48:15 -0700
Subject: [PATCH 24/77] Explicitly BR make.
---
alt-ergo.spec | 1 +
1 file changed, 1 insertion(+)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 75167f2..d4b22af 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -24,6 +24,7 @@ Patch0: %{name}-1.30-use-pic.patch
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
+BuildRequires: make
BuildRequires: ocaml
BuildRequires: ocaml-findlib
BuildRequires: ocaml-lablgtk-devel
From 1599ff6b11fc506608a3cd2ccc6d42276e1b48af Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 16 Nov 2020 17:51:27 -0700
Subject: [PATCH 25/77] Rebuild for ocaml-zarith 1.11.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index d4b22af..c965da6 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -177,6 +177,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From c78b6cc3b9c43bfba5e6594ca53ce3fdf0245539 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Tue, 26 Jan 2021 00:01:26 +0000
Subject: [PATCH 26/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index c965da6..93fb250 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -177,6 +177,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From eae4588b66681be25c7686962bb80425d3f171d0 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 4 Feb 2021 09:01:16 -0700
Subject: [PATCH 27/77] Updates to the desktop and metainfo files. Add
-pervasives patch.
---
alt-ergo-pervasives.patch | 566 ++++++++++++++++++
alt-ergo.appdata.xml => alt-ergo.metainfo.xml | 14 +-
alt-ergo.spec | 33 +-
3 files changed, 597 insertions(+), 16 deletions(-)
create mode 100644 alt-ergo-pervasives.patch
rename alt-ergo.appdata.xml => alt-ergo.metainfo.xml (69%)
diff --git a/alt-ergo-pervasives.patch b/alt-ergo-pervasives.patch
new file mode 100644
index 0000000..b782e21
--- /dev/null
+++ b/alt-ergo-pervasives.patch
@@ -0,0 +1,566 @@
+--- alt-ergo-2.2.0/lib/frontend/parsers.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/frontend/parsers.ml 2021-01-29 16:42:13.025134465 -0700
+@@ -100,7 +100,7 @@ let parse_input_file file =
+ stdin, Lexing.from_string file_content, false, ext
+ else
+ let ext = Filename.extension file in
+- if Pervasives.(<>) file "" then
++ if Stdlib.(<>) file "" then
+ let cin = open_in file in
+ cin, Lexing.from_channel cin, true, ext
+ else
+--- alt-ergo-2.2.0/lib/frontend/triggers.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/frontend/triggers.ml 2021-01-29 16:15:57.819513468 -0700
+@@ -33,7 +33,7 @@ module Sy = Symbols
+ type polarity = Pos | Neg
+
+ module Vterm = Sy.Set
+-module Vtype = Set.Make(struct type t=int let compare=Pervasives.compare end)
++module Vtype = Set.Make(struct type t=int let compare=Stdlib.compare end)
+
+ module STRS = Set.Make(
+ struct
+@@ -50,12 +50,12 @@ module STRS = Set.Make(
+ let c=compare_term a1 a2 in if c=0 then compare_term b1 b2 else c
+ else c
+ | TTconst (Treal r1) , TTconst (Treal r2) -> Num.compare_num r1 r2
+- | x , y -> Pervasives.compare x y
++ | x , y -> Stdlib.compare x y
+ and compare_list l1 l2 = match l1,l2 with
+ [] , _ -> -1
+ | _ , [] -> 1
+ | x::l1 , y::l2 ->
+- let c = Pervasives.compare x y in if c=0 then compare_list l1 l2 else c
++ let c = Stdlib.compare x y in if c=0 then compare_list l1 l2 else c
+
+ let compare (t1,_,_) (t2,_,_) = compare_term t1 t2
+ end)
+@@ -75,7 +75,7 @@ let compare_tconstant c1 c2 =
+ | Tbitv s1, Tbitv s2 -> String.compare s1 s2
+ | Tbitv s1, _ -> 1
+ | _, Tbitv s2 -> -1
+- | _ -> Pervasives.compare c1 c2
++ | _ -> Stdlib.compare c1 c2
+
+ let rec depth_tterm t =
+ match t.c.tt_desc with
+@@ -153,7 +153,7 @@ let rec compare_tterm t1 t2 =
+
+ | TTinInterval (e1, a1, b1, c1, d1), TTinInterval (e2, a2, b2, c2, d2) ->
+ let c = compare_tterm e1 e2 in
+- if c <> 0 then c else Pervasives.compare (a1, b1, c1, d1) (a2, b2, c2, d2)
++ if c <> 0 then c else Stdlib.compare (a1, b1, c1, d1) (a2, b2, c2, d2)
+
+ | TTinInterval _, _ -> -1
+ | _, TTinInterval _ -> 1
+@@ -191,7 +191,7 @@ let rec compare_tterm t1 t2 =
+ | TTconcat _, _ -> -1
+ | _, TTconcat _ -> 1
+ | TTdot(t1, a1), TTdot(t2,a2) ->
+- let c = Pervasives.compare a1 a2 in
++ let c = Stdlib.compare a1 a2 in
+ if c<>0 then c else
+ compare_tterm t1 t2
+ | TTdot _, _ -> -1
+--- alt-ergo-2.2.0/lib/frontend/typechecker.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/frontend/typechecker.ml 2021-01-29 16:43:14.235096310 -0700
+@@ -36,7 +36,7 @@ module S = Set.Make(String)
+ module Sy = Symbols.Set
+
+ module MString =
+- Map.Make(struct type t = string let compare = Pervasives.compare end)
++ Map.Make(struct type t = string let compare = Stdlib.compare end)
+
+ module Types = struct
+
+@@ -78,7 +78,7 @@ module Types = struct
+ List.for_all2
+ (fun pp x ->
+ match pp with
+- | PPTvarid (y, _) -> Pervasives.(=) x y
++ | PPTvarid (y, _) -> Stdlib.(=) x y
+ | _ -> false
+ ) lpp lvars
+ with Invalid_argument _ -> false
+@@ -97,7 +97,7 @@ module Types = struct
+ to_tyvars := MString.add s nty !to_tyvars;
+ nty
+ end
+- | PPTexternal (l, s, loc) when Pervasives.(=) s "farray" ->
++ | PPTexternal (l, s, loc) when Stdlib.(=) s "farray" ->
+ let t1,t2 = match l with
+ | [t2] -> PPTint,t2
+ | [t1;t2] -> t1,t2
+@@ -108,7 +108,7 @@ module Types = struct
+ | PPTexternal (l, s, loc) ->
+ begin
+ match rectype with
+- | Some (id, vars, ty) when Pervasives.(=) s id &&
++ | Some (id, vars, ty) when Stdlib.(=) s id &&
+ equal_pp_vars l vars -> ty
+ | _ ->
+ try
+@@ -769,7 +769,7 @@ and type_form ?(in_theory=false) env f =
+ try
+ List.iter2 Ty.unify lt lt_args;
+ let r =
+- if Pervasives.(=) p "<=" || Pervasives.(=) p "<" then
++ if Stdlib.(=) p "<=" || Stdlib.(=) p "<" then
+ TFatom { c = TAbuilt(Hstring.make p,te_args);
+ annot=new_id ()}
+ else
+@@ -1871,10 +1871,10 @@ let file ld =
+ exit 1
+
+ let is_local_hyp s =
+- try Pervasives.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
++ try Stdlib.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
+
+ let is_global_hyp s =
+- try Pervasives.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
++ try Stdlib.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
+
+ let split_goals_aux f l =
+ let _, _, _, ret =
+--- alt-ergo-2.2.0/lib/reasoners/fun_sat.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/reasoners/fun_sat.ml 2021-01-29 16:44:04.915064713 -0700
+@@ -69,7 +69,7 @@ module Make (Th : Theory.S) : Sat_solver
+ SF.fold
+ (fun f mp ->
+ let w = var_inc +. try MF.find f mp with Not_found -> 0. in
+- stable := !stable && Pervasives.(<=) w 1e100;
++ stable := !stable && Stdlib.(<=) w 1e100;
+ MF.add f w mp
+ )(Ex.bj_formulas_of expl) mp
+ in
+@@ -95,9 +95,9 @@ module Make (Th : Theory.S) : Sat_solver
+ let dec =
+ List.fast_sort
+ (fun (_, x1, b1) (_, x2, b2) ->
+- let c = Pervasives.compare b2 b1 in
++ let c = Stdlib.compare b2 b1 in
+ if c <> 0 then c
+- else Pervasives.compare x2 x1
++ else Stdlib.compare x2 x1
+ )dec
+ in
+ (*
+@@ -967,7 +967,7 @@ module Make (Th : Theory.S) : Sat_solver
+ let i = abs (interpretation ()) in
+ assert (i = 1 || i = 2 || i = 3);
+ if not !(env.model_gen_mode) &&
+- Pervasives.(<>) (Options.interpretation_timelimit ()) 0. then
++ Stdlib.(<>) (Options.interpretation_timelimit ()) 0. then
+ begin
+ Options.Time.unset_timeout ~is_gui:(Options.get_is_gui());
+ Options.Time.set_timeout
+--- alt-ergo-2.2.0/lib/reasoners/ite.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/reasoners/ite.ml 2021-01-29 15:13:41.631062282 -0700
+@@ -72,7 +72,7 @@ module Relation (X : ALIEN) (Uf : Uf.S)
+ type t = T.t * bool
+ let compare (a1, b1) (a2, b2) =
+ let c = T.compare a1 a2 in
+- if c <> 0 then c else Pervasives.compare b1 b2
++ if c <> 0 then c else Stdlib.compare b1 b2
+ end)
+
+ type t =
+--- alt-ergo-2.2.0/lib/reasoners/satml_frontend.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/reasoners/satml_frontend.ml 2021-01-29 16:16:47.003462456 -0700
+@@ -533,7 +533,7 @@ module Make (Th : Theory.S) : Sat_solver
+ if res <> 0 then res
+ else
+ (* higher weight is better hence compare w2 w1 *)
+- let res = Pervasives.compare w2 w1 in
++ let res = Stdlib.compare w2 w1 in
+ if res <> 0 then res
+ else
+ (* lower index is better *)
+@@ -922,7 +922,7 @@ module Make (Th : Theory.S) : Sat_solver
+
+ (* copied from sat_solvers.ml *)
+ let max_term_depth_in_sat env =
+- let aux mx f = Pervasives.max mx (F.max_term_depth f) in
++ let aux mx f = Stdlib.max mx (F.max_term_depth f) in
+ let max_t = MF.fold (fun f _ mx -> aux mx f) env.gamma 0 in
+ A.Map.fold (fun _ {F.f} mx -> aux mx f) env.ground_preds max_t
+
+--- alt-ergo-2.2.0/lib/reasoners/satml.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/reasoners/satml.ml 2021-01-29 16:44:54.595033743 -0700
+@@ -351,7 +351,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+ *)
+
+ let f_weight env i j =
+- Pervasives.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
++ Stdlib.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
+
+ let f_filter env i = (Vec.get env.vars i).level < 0
+
+@@ -365,7 +365,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+
+ let var_bump_activity env v =
+ v.weight <- v.weight +. env.var_inc;
+- if Pervasives.(>) v.weight 1e100 then begin
++ if Stdlib.(>) v.weight 1e100 then begin
+ for i = 0 to env.vars.Vec.sz - 1 do
+ (Vec.get env.vars i).weight <- (Vec.get env.vars i).weight *. 1e-100
+ done;
+@@ -377,7 +377,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+
+ let clause_bump_activity env c =
+ c.activity <- c.activity +. env.clause_inc;
+- if Pervasives.(>) c.activity 1e20 then begin
++ if Stdlib.(>) c.activity 1e20 then begin
+ for i = 0 to env.learnts.Vec.sz - 1 do
+ (Vec.get env.learnts i).activity <-
+ (Vec.get env.learnts i).activity *. 1e-20;
+@@ -861,7 +861,7 @@ let compute_facts_for_theory_propagate e
+ let f_sort_db c1 c2 =
+ let sz1 = Vec.size c1.atoms in
+ let sz2 = Vec.size c2.atoms in
+- let c = Pervasives.compare c1.activity c2.activity in
++ let c = Stdlib.compare c1.activity c2.activity in
+ if sz1 = sz2 && c = 0 then 0
+ else
+ if sz1 > 2 && (sz2 = 2 || c < 0) then -1
+--- alt-ergo-2.2.0/lib/structures/formula.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/formula.ml 2021-01-29 16:34:03.946514585 -0700
+@@ -108,8 +108,8 @@ type gformula = {
+ let size (t,_) = t.size
+
+ let compare ((v1,_) as f1) ((v2,_) as f2) =
+- let c = Pervasives.compare (size f1) (size f2) in
+- if c=0 then Pervasives.compare v1.tag v2.tag else c
++ let c = Stdlib.compare (size f1) (size f2) in
++ if c=0 then Stdlib.compare v1.tag v2.tag else c
+
+ let equal (f1,_) (f2,_) =
+ assert ((f1 == f2) == (f1.tag == f2.tag));
+@@ -866,7 +866,7 @@ let label f =
+ | _ -> Hstring.empty
+
+ let label_model h =
+- try Pervasives.(=) (String.sub (Hstring.view h) 0 6) "model:"
++ try Stdlib.(=) (String.sub (Hstring.view h) 0 6) "model:"
+ with Invalid_argument _ -> false
+
+ let is_in_model f =
+--- alt-ergo-2.2.0/lib/structures/literal.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/literal.ml 2021-01-29 15:11:35.935224734 -0700
+@@ -95,7 +95,7 @@ module Make (X : OrderedType) : S with t
+
+ type t = { at : atom; neg : bool; tpos : int; tneg : int }
+
+- let compare a1 a2 = Pervasives.compare a1.tpos a2.tpos
++ let compare a1 a2 = Stdlib.compare a1.tpos a2.tpos
+ let equal a1 a2 = a1.tpos = a2.tpos (* XXX == *)
+ let hash a1 = a1.tpos
+ let uid a1 = a1.tpos
+--- alt-ergo-2.2.0/lib/structures/profiling.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/profiling.ml 2021-01-29 16:41:48.035150044 -0700
+@@ -86,7 +86,7 @@ let state =
+ let set_sigprof () =
+ let tm =
+ let v = Options.profiling_period () in
+- if Pervasives.(>) v 0. then v else -. v
++ if Stdlib.(>) v 0. then v else -. v
+ in
+ ignore
+ (Unix.setitimer Unix.ITIMER_PROF
+@@ -626,9 +626,9 @@ let switch () =
+
+
+ let float_print fmt v =
+- if Pervasives.(=) v 0. then fprintf fmt "-- "
+- else if Pervasives.(<) v 10. then fprintf fmt "%0.5f" v
+- else if Pervasives.(<) v 100. then fprintf fmt "%0.4f" v
++ if Stdlib.(=) v 0. then fprintf fmt "-- "
++ else if Stdlib.(<) v 10. then fprintf fmt "%0.5f" v
++ else if Stdlib.(<) v 100. then fprintf fmt "%0.4f" v
+ else fprintf fmt "%0.3f" v
+
+ let line_of_module arr f =
+--- alt-ergo-2.2.0/lib/structures/symbols.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/symbols.ml 2021-01-29 15:10:23.775316438 -0700
+@@ -114,7 +114,7 @@ let compare s1 s2 = match s1, s2 with
+ | Op(Access s1), Op(Access s2) -> Hstring.compare s1 s2
+ | Op(Access _), _ -> -1
+ | _, Op(Access _) -> 1
+- | _ -> Pervasives.compare s1 s2
++ | _ -> Stdlib.compare s1 s2
+
+ let equal s1 s2 = compare s1 s2 = 0
+
+--- alt-ergo-2.2.0/lib/structures/term.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/term.ml 2021-01-29 16:33:11.033560074 -0700
+@@ -270,7 +270,7 @@ let gen_sko ty = make (Sy.fresh "@sko")
+
+ let is_skolem_cst v =
+ try
+- Pervasives.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
++ Stdlib.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
+ with Invalid_argument _ -> false
+
+ let find_skolem =
+@@ -338,7 +338,7 @@ let label t = try Labels.find labels t w
+
+
+ let label_model h =
+- try Pervasives.(=) (String.sub (Hstring.view h) 0 6) "model:"
++ try Stdlib.(=) (String.sub (Hstring.view h) 0 6) "model:"
+ with Invalid_argument _ -> false
+
+ let rec is_in_model_rec depth { f = f; xs = xs } =
+--- alt-ergo-2.2.0/lib/structures/ty.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/structures/ty.ml 2021-01-29 16:18:15.746370389 -0700
+@@ -202,7 +202,7 @@ let rec equal t1 t2 =
+
+ let rec compare t1 t2 =
+ match shorten t1 , shorten t2 with
+- | Tvar{v=v1} , Tvar{v=v2} -> Pervasives.compare v1 v2
++ | Tvar{v=v1} , Tvar{v=v2} -> Stdlib.compare v1 v2
+ | Tvar _, _ -> -1 | _ , Tvar _ -> 1
+ | Text(l1, s1) , Text(l2, s2) ->
+ let c = Hstring.compare s1 s2 in
+@@ -225,7 +225,7 @@ let rec compare t1 t2 =
+ let l1, l2 = List.map snd l1, List.map snd l2 in
+ compare_list l1 l2
+ | Trecord _, _ -> -1 | _ , Trecord _ -> 1
+- | t1 , t2 -> Pervasives.compare t1 t2
++ | t1 , t2 -> Stdlib.compare t1 t2
+ and compare_list l1 l2 = match l1, l2 with
+ | [] , [] -> 0
+ | [] , _ -> -1
+@@ -268,7 +268,7 @@ let rec unify t1 t2 =
+
+
+ (*** matching with a substitution mechanism ***)
+-module M = Map.Make(struct type t=int let compare = Pervasives.compare end)
++module M = Map.Make(struct type t=int let compare = Stdlib.compare end)
+ type subst = t M.t
+
+ let esubst = M.empty
+@@ -340,9 +340,9 @@ let instantiate lvar lty ty =
+ let union_subst s1 s2 =
+ M.fold (fun k x s2 -> M.add k x s2) (M.map (apply_subst s2) s1) s2
+
+-let compare_subst = M.compare Pervasives.compare
++let compare_subst = M.compare Stdlib.compare
+
+-let equal_subst = M.equal Pervasives.(=)
++let equal_subst = M.equal Stdlib.(=)
+
+ let rec fresh ty subst =
+ match ty with
+@@ -383,7 +383,7 @@ and fresh_list lty subst =
+ ty::lty, subst) lty ([], subst)
+
+ module Svty =
+- Set.Make(struct type t = int let compare = Pervasives.compare end)
++ Set.Make(struct type t = int let compare = Stdlib.compare end)
+
+ module Set =
+ Set.Make(struct
+--- alt-ergo-2.2.0/lib/util/myUnix.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/util/myUnix.ml 2021-01-29 16:45:33.010009798 -0700
+@@ -16,7 +16,7 @@ module Default_Unix = struct
+ let cur_time () = (times()).tms_utime
+
+ let set_timeout ~is_gui timelimit =
+- if Pervasives.(<>) timelimit 0. then
++ if Stdlib.(<>) timelimit 0. then
+ let itimer =
+ if is_gui then Unix.ITIMER_REAL (* troubles with VIRTUAL *)
+ else Unix.ITIMER_VIRTUAL
+--- alt-ergo-2.2.0/lib/util/numbers.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/util/numbers.ml 2021-01-29 16:46:06.130989159 -0700
+@@ -48,8 +48,8 @@ module Q = struct
+ else
+ let v = to_float q in
+ let w =
+- if Pervasives.(<) v min_float then min_float
+- else if Pervasives.(>) v max_float then max_float
++ if Stdlib.(<) v min_float then min_float
++ else if Stdlib.(>) v max_float then max_float
+ else v
+ in
+ let flt = if n = 2 then sqrt w else w ** (1. /. float n) in
+--- alt-ergo-2.2.0/lib/util/options.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/util/options.ml 2021-01-29 16:11:53.387767103 -0700
+@@ -902,8 +902,7 @@ let (>) (a: int) (b: int) = a > b
+ let (<=) (a: int) (b: int) = a <= b
+ let (>=) (a: int) (b: int) = a >= b
+
+-let compare (a: int) (b: int) = Pervasives.compare a b
+-
++let compare (a: int) (b: int) = Stdlib.compare a b
+
+ (* extra **)
+
+--- alt-ergo-2.2.0/lib/util/zarithNumbers.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/lib/util/zarithNumbers.ml 2021-01-29 16:08:45.571962041 -0700
+@@ -153,7 +153,7 @@ module Q : NumbersInterface.QSig with mo
+ let floor t = from_z (Z.fdiv (num t) (den t))
+ let ceiling t = from_z (Z.cdiv (num t) (den t))
+ let power t n =
+- let abs_n = Pervasives.abs n in
++ let abs_n = Stdlib.abs n in
+ let num_pow = Z.power (num t) abs_n in
+ let den_pow = Z.power (den t) abs_n in
+ if n >= 0 then from_zz num_pow den_pow else from_zz den_pow num_pow
+--- alt-ergo-2.2.0/tools/gui/annoted_ast.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/tools/gui/annoted_ast.ml 2021-01-29 16:47:08.762950125 -0700
+@@ -188,7 +188,7 @@ type annoted_node =
+ module MDep = Map.Make (
+ struct
+ type t = atyped_decl annoted
+- let compare = Pervasives.compare
++ let compare = Stdlib.compare
+ end)
+
+
+@@ -862,9 +862,9 @@ let find_dep_by_string dep s =
+ | None -> begin
+ match d.c with
+ | ALogic (_, ls, ty) when List.mem s ls -> Some d
+- | ATypeDecl (_, _, s', _) when Pervasives.(=) s s'-> Some d
+- | APredicate_def (_, p, _, _) when Pervasives.(=) s p -> Some d
+- | AFunction_def (_, f, _, _, _) when Pervasives.(=) s f -> Some d
++ | ATypeDecl (_, _, s', _) when Stdlib.(=) s s'-> Some d
++ | APredicate_def (_, p, _, _) when Stdlib.(=) s p -> Some d
++ | AFunction_def (_, f, _, _, _) when Stdlib.(=) s f -> Some d
+ | _ -> None
+ end
+ ) dep None
+@@ -874,7 +874,7 @@ let find_tag_deps dep tag =
+ (fun d (deps,_) found ->
+ match found with
+ | Some _ -> found
+- | None -> if Pervasives.(=) d.tag tag then Some deps else None
++ | None -> if Stdlib.(=) d.tag tag then Some deps else None
+ ) dep None
+
+ let find_tag_inversedeps dep tag =
+@@ -882,7 +882,7 @@ let find_tag_inversedeps dep tag =
+ (fun d (_,deps) found ->
+ match found with
+ | Some _ -> found
+- | None -> if Pervasives.(=) d.tag tag then Some deps else None
++ | None -> if Stdlib.(=) d.tag tag then Some deps else None
+ ) dep None
+
+ let make_dep_string d ex dep s =
+@@ -1965,7 +1965,7 @@ and findtags_aform sl aform acc =
+ (fun sl (sy, _) ->
+ let s = Symbols.to_string_clean sy in
+ List.fold_left
+- (fun l s' -> if Pervasives.(=) s' s then l else s'::l) [] sl
++ (fun l s' -> if Stdlib.(=) s' s then l else s'::l) [] sl
+ )sl l
+ in
+ findtags_aform sl aaf.c acc
+--- alt-ergo-2.2.0/tools/gui/connected_ast.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/tools/gui/connected_ast.ml 2021-01-29 16:47:43.226928651 -0700
+@@ -386,7 +386,7 @@ let rec unquantify_aform (buffer:sbuffer
+ List.fold_left (fun (nbv, used, goal_used, ve, uplet, lets) v ->
+ let ((s, _) as v'), e = List.hd ve in
+ let cdr_ve = List.tl ve in
+- assert (Pervasives.(=) v v');
++ assert (Stdlib.(=) v v');
+ if String.length e == 0 then
+ (v'::nbv, used, goal_used, cdr_ve, v'::uplet, lets)
+ else
+@@ -541,7 +541,7 @@ let rec add_instance_aux ?(register=true
+ make_instance env.inst_buffer vars entries af goal_form tyenv in
+ let ln_form = least_nested_form used_vars goal_form in
+ env.inst_buffer#place_cursor ~where:env.inst_buffer#end_iter;
+- if Pervasives.(=) ln_form (Exists goal_form) then begin
++ if Stdlib.(=) ln_form (Exists goal_form) then begin
+ let hy =
+ AAxiom (loc, (sprintf "%s%s" "_instance_" aname), ax_kd, instance.c) in
+ let ahy = new_annot env.inst_buffer hy instance.id ptag in
+@@ -735,7 +735,7 @@ and add_trigger ?(register=true) t qid e
+ if register then
+ save env.actions
+ (AddTrigger (qf.id,
+- Pervasives.(=) sbuf env.inst_buffer, str));
++ Stdlib.(=) sbuf env.inst_buffer, str));
+ commit_tags_buffer sbuf
+ | _ -> assert false
+ end
+--- alt-ergo-2.2.0/tools/gui/main_gui.ml.orig 2018-04-21 11:02:10.000000000 -0600
++++ alt-ergo-2.2.0/tools/gui/main_gui.ml 2021-01-29 16:49:56.218845792 -0700
+@@ -148,7 +148,7 @@ let save_session envs =
+
+ let save_dialog cancel envs () =
+ if List.exists
+- (fun env -> Pervasives.(<>) env.actions env.saved_actions) envs then
++ (fun env -> Stdlib.(<>) env.actions env.saved_actions) envs then
+ if List.exists
+ (fun env -> not (Gui_session.safe_session env.actions)) envs then
+ GToolbox.message_box
+@@ -247,7 +247,7 @@ let pop_model sat_env () =
+ let compare_rows icol_number (model:#GTree.model) row1 row2 =
+ let t1 = model#get ~row:row1 ~column:icol_number in
+ let t2 = model#get ~row:row2 ~column:icol_number in
+- Pervasives.compare t1 t2
++ Stdlib.compare t1 t2
+
+
+ let empty_inst_model () =
+@@ -382,7 +382,7 @@ let refresh_timers t () =
+ let total =
+ tsat +. tmatch +. tcc +. tarith +. tarrays +. tsum +. trecords +. tac in
+
+- let total = if Pervasives.(=) total 0. then 1. else total in
++ let total = if Stdlib.(=) total 0. then 1. else total in
+
+ t.tl_sat#set_text (sprintf "%3.2f s" tsat);
+ t.tl_match#set_text (sprintf "%3.2f s" tmatch);
+@@ -455,7 +455,7 @@ let add_inst ({h=h} as inst_model) orig
+ let id = Formula.id orig in
+ let name =
+ match Formula.view orig with
+- | Formula.Lemma {Formula.name=n} when Pervasives.(<>) n "" -> n
++ | Formula.Lemma {Formula.name=n} when Stdlib.(<>) n "" -> n
+ | _ -> string_of_int id
+ in
+ let r, n, limit, to_add =
+@@ -604,7 +604,7 @@ let vt_signal =
+
+ let force_interrupt old_action_ref n =
+ (* This function is called just before the thread's timeslice ends *)
+- if Pervasives.(=) (Some (Thread.id(Thread.self()))) !interrupt then
++ if Stdlib.(=) (Some (Thread.id(Thread.self()))) !interrupt then
+ raise Abort_thread;
+ match !old_action_ref with
+ | Sys.Signal_handle f -> f n
+@@ -718,8 +718,8 @@ let remove_context env () =
+ toggle_prune env td
+ | AAxiom (_, s, _, _)
+ when String.length s = 0 ||
+- (Pervasives.(<>) s.[0] '_' &&
+- Pervasives.(<>) s.[0] '@') ->
++ (Stdlib.(<>) s.[0] '_' &&
++ Stdlib.(<>) s.[0] '@') ->
+ toggle_prune env td
+ | _ -> ()
+ ) env.ast
+@@ -945,7 +945,7 @@ let search_all entry (sv:GSourceView2.so
+ buf#remove_tag found_all_tag ~start:buf#start_iter ~stop:buf#end_iter;
+ let str = entry#text in
+ let iter = ref buf#start_iter in
+- if Pervasives.(<>) str "" then
++ if Stdlib.(<>) str "" then
+ let result = ref None in
+ search_one buf str result iter found_all_tag;
+ while !result != None do
+@@ -1286,7 +1286,7 @@ let start_gui () =
+
+ let set_wrap_lines _ =
+ List.iter (fun env ->
+- if Pervasives.(=) env.goal_view#wrap_mode `NONE then (
++ if Stdlib.(=) env.goal_view#wrap_mode `NONE then (
+ env.goal_view#set_wrap_mode `CHAR;
+ env.inst_view#set_wrap_mode `CHAR;
+ Gui_config.update_wrap true
diff --git a/alt-ergo.appdata.xml b/alt-ergo.metainfo.xml
similarity index 69%
rename from alt-ergo.appdata.xml
rename to alt-ergo.metainfo.xml
index 145c9a1..cdb417e 100644
--- a/alt-ergo.appdata.xml
+++ b/alt-ergo.metainfo.xml
@@ -1,6 +1,6 @@
-
- alt-ergo.desktop
+
+ com.ocamlpro.alt-ergo
CC0-1.0
CECILL-C
Alt-Ergo
@@ -17,13 +17,19 @@
by which it fully supports quantifiers.
+ com.ocamlpro.alt-ergo.desktop
http://jjames.fedorapeople.org/alt-ergo/altgr-ergo-screenshot.png
Basic Alt-Ergo usage
- loganjerry@gmail.com
- http://alt-ergo.ocamlpro.com/
+ loganjerry@gmail.com
+ https://alt-ergo.ocamlpro.com/
https://github.com/OCamlPro/alt-ergo/issues
+ https://alt-ergo.ocamlpro.com/#services
+
+
+ altgr-ergo
+
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 93fb250..c5ff404 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -17,13 +17,16 @@ Source0: https://alt-ergo.ocamlpro.com/http/%{name}-%{version}/%{name}-%{version
# Created with gimp from official upstream icon
Source1: %{name}-icons.tar.xz
Source2: %{name}.desktop
-Source3: %{name}.appdata.xml
+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: desktop-file-utils
BuildRequires: gtksourceview2-devel
+BuildRequires: libappstream-glib
BuildRequires: make
BuildRequires: ocaml
BuildRequires: ocaml-findlib
@@ -78,10 +81,9 @@ This package contains development files needed to build applications
that use the Alt-Ergo library.
%prep
-%autosetup -p1
-%setup -q -T -D -a 1
+%autosetup -p1 -a 1
-cp -p %{SOURCE2} .
+cp -p %{SOURCE2} com.ocamlpro.%{name}.desktop
# Look for zip instead of camlzip
sed -i 's/camlzip/zip/g' configure opam
@@ -102,11 +104,10 @@ sed -i "s|^LIGHT_OFLAGS =|& -fno-thumb|" Makefile.users
%endif
make %{opt_option}
-make %{opt_option} gui
%install
mkdir -p %{buildroot}%{_bindir}
-make %{opt_option} DESTDIR=%{buildroot} install install-gui
+make %{opt_option} DESTDIR=%{buildroot} install
# Move the gtksourceview file to the right place
mv %{buildroot}%{_datadir}/%{name}/gtksourceview-2.0 %{buildroot}%{_datadir}
@@ -114,11 +115,15 @@ rmdir %{buildroot}%{_datadir}/%{name}
# Install the desktop file
mkdir -p %{buildroot}%{_datadir}/applications
-desktop-file-install --dir %{buildroot}%{_datadir}/applications %{name}.desktop
+desktop-file-install --dir %{buildroot}%{_datadir}/applications \
+ com.ocamlpro.%{name}.desktop
# Install the AppData file
-mkdir -p %{buildroot}%{_datadir}/appdata
-install -pm 644 %{SOURCE3} %{buildroot}%{_datadir}/appdata
+mkdir -p %{buildroot}%{_metainfodir}
+install -pm 644 %{SOURCE3} \
+ %{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
+appstream-util validate-relax --nonet \
+ %{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
# Install the icons
mkdir -p %{buildroot}%{_datadir}/icons
@@ -150,10 +155,10 @@ done
%files gui
%{_bindir}/altgr-ergo
-%{_datadir}/appdata/%{name}.appdata.xml
-%{_datadir}/applications/%{name}.desktop
+%{_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}/
@@ -177,6 +182,10 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 3a917b3309e26ce4047ab1b540b53d0567ca32fc Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 2 Mar 2021 11:26:15 +0000
Subject: [PATCH 28/77] OCaml 4.12.0 build
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index c5ff404..0d261ed 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 335accbed6e4aa4db24e07e8ca1d95f23f0e8062 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Wed, 3 Mar 2021 12:07:12 -0700
Subject: [PATCH 29/77] Rebuild for ocaml-zarith 1.12.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 0d261ed..f1d22c9 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From a0af6956e8d953280625f8517b3cf8a628a1a4bc Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 24 Jun 2021 14:53:02 -0600
Subject: [PATCH 30/77] Rebuild for ocaml-lablgtk without gnomeui.
---
alt-ergo.spec | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index f1d22c9..ca6cf7b 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -24,9 +24,9 @@ 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: libappstream-glib
BuildRequires: make
BuildRequires: ocaml
BuildRequires: ocaml-findlib
@@ -122,7 +122,7 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications \
mkdir -p %{buildroot}%{_metainfodir}
install -pm 644 %{SOURCE3} \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
-appstream-util validate-relax --nonet \
+appstreamcli validate --no-net \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
# Install the icons
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 3480332c8e8a4bbc809373a7c7cdeb7e4a89d031 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 19 Jul 2021 13:19:50 -0600
Subject: [PATCH 31/77] Move META to the main package.
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index ca6cf7b..1b3abd2 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -162,6 +162,7 @@ done
%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
@@ -171,7 +172,6 @@ done
%endif
%files -n ocaml-%{name}-devel
-%{_libdir}/ocaml/%{name}/META
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/%{name}/altErgoLib.a
%{_libdir}/ocaml/%{name}/altErgoLib.cmx
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 154f03ab069c55237e63011a69914064eeb467be Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 21 Jul 2021 12:33:38 +0000
Subject: [PATCH 32/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
From d4fa98b0182fc2c9fa0571120bdf7878977896e5 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 21 Jul 2021 17:29:03 +0000
Subject: [PATCH 33/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 1b3abd2..6818f2c 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* 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
From 9a10ab3b2a47cf684f402c404e1adc7ee15b70d9 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 29 Jul 2021 12:57:23 -0600
Subject: [PATCH 34/77] Rebuild for changed ocamlx(Dynlink).
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 6818f2c..9fedc78 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -182,6 +182,9 @@ done
%{_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
From ed81837150d45206a2b06d7cf3e0077422c095c1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 5 Oct 2021 12:54:42 +0100
Subject: [PATCH 35/77] OCaml 4.13.1 build
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 9fedc78..81eca7a 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.2.0
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -182,6 +182,9 @@ done
%{_libdir}/ocaml/%{name}/altErgoLib.cmt
%changelog
+* Tue Oct 05 2021 Richard W.M. Jones - 2.2.0-14
+- OCaml 4.13.1 build
+
* Thu Jul 29 2021 Jerry James - 2.2.0-13
- Rebuild for changed ocamlx(Dynlink)
From 4b29dc3ccc4cabd7aba6c4e8651049e6f616963b Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 30 Dec 2021 17:12:44 -0700
Subject: [PATCH 36/77] Version 2.3.0.
New ocaml-alt-ergo-lib and ocaml-alt-ergo-parsers subpackages.
---
README.md | 9 +
alt-ergo-1.30-use-pic.patch | 19 -
alt-ergo-pervasives.patch | 687 ++++++++++++++++++----------------
alt-ergo-psmt2-frontend.patch | 12 +
alt-ergo.spec | 190 ++++++----
sources | 2 +-
6 files changed, 500 insertions(+), 419 deletions(-)
create mode 100644 README.md
delete mode 100644 alt-ergo-1.30-use-pic.patch
create mode 100644 alt-ergo-psmt2-frontend.patch
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fa65fbb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,9 @@
+# alt-ergo
+
+[Alt-Ergo](https://alt-ergo.ocamlpro.com/) 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.
diff --git a/alt-ergo-1.30-use-pic.patch b/alt-ergo-1.30-use-pic.patch
deleted file mode 100644
index 71d6ad0..0000000
--- a/alt-ergo-1.30-use-pic.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- alt-ergo-1.30.old/Makefile.users 2017-11-09 09:55:47.337871409 +0000
-+++ alt-ergo-1.30/Makefile.users 2017-11-09 10:00:52.374639872 +0000
-@@ -140,14 +140,14 @@
- $(OCAMLC) $(BFLAGS) -o $@ $(BIBBYTE) $^
-
- $(NAME).opt: $(MAINCMX)
-- $(OCAMLOPT) $(OFLAGS) -o $@ $(BIBOPT) $^
-+ $(OCAMLOPT) $(OFLAGS) -runtime-variant _pic -o $@ $(BIBOPT) $^
-
- ####
- $(GUINAME).byte: $(GUICMO)
- $(OCAMLC) $(BFLAGS) -o $(GUINAME).byte $(BIBBYTE) $(BIBGUIBYTE) $^
-
- $(GUINAME).opt: $(GUICMX)
-- $(OCAMLOPT) $(OFLAGS) -o $(GUINAME).opt $(BIBOPT) $(BIBGUIOPT) $^
-+ $(OCAMLOPT) $(OFLAGS) -runtime-variant _pic -o $(GUINAME).opt $(BIBOPT) $(BIBGUIOPT) $^
-
- ifeq ($(ENABLEGUI),yes)
- gui: $(GUINAME).$(OCAMLBEST)
diff --git a/alt-ergo-pervasives.patch b/alt-ergo-pervasives.patch
index b782e21..23ad048 100644
--- a/alt-ergo-pervasives.patch
+++ b/alt-ergo-pervasives.patch
@@ -1,71 +1,7 @@
---- alt-ergo-2.2.0/lib/frontend/parsers.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/frontend/parsers.ml 2021-01-29 16:42:13.025134465 -0700
-@@ -100,7 +100,7 @@ let parse_input_file file =
- stdin, Lexing.from_string file_content, false, ext
- else
- let ext = Filename.extension file in
-- if Pervasives.(<>) file "" then
-+ if Stdlib.(<>) file "" then
- let cin = open_in file in
- cin, Lexing.from_channel cin, true, ext
- else
---- alt-ergo-2.2.0/lib/frontend/triggers.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/frontend/triggers.ml 2021-01-29 16:15:57.819513468 -0700
-@@ -33,7 +33,7 @@ module Sy = Symbols
- type polarity = Pos | Neg
-
- module Vterm = Sy.Set
--module Vtype = Set.Make(struct type t=int let compare=Pervasives.compare end)
-+module Vtype = Set.Make(struct type t=int let compare=Stdlib.compare end)
-
- module STRS = Set.Make(
- struct
-@@ -50,12 +50,12 @@ module STRS = Set.Make(
- let c=compare_term a1 a2 in if c=0 then compare_term b1 b2 else c
- else c
- | TTconst (Treal r1) , TTconst (Treal r2) -> Num.compare_num r1 r2
-- | x , y -> Pervasives.compare x y
-+ | x , y -> Stdlib.compare x y
- and compare_list l1 l2 = match l1,l2 with
- [] , _ -> -1
- | _ , [] -> 1
- | x::l1 , y::l2 ->
-- let c = Pervasives.compare x y in if c=0 then compare_list l1 l2 else c
-+ let c = Stdlib.compare x y in if c=0 then compare_list l1 l2 else c
-
- let compare (t1,_,_) (t2,_,_) = compare_term t1 t2
- end)
-@@ -75,7 +75,7 @@ let compare_tconstant c1 c2 =
- | Tbitv s1, Tbitv s2 -> String.compare s1 s2
- | Tbitv s1, _ -> 1
- | _, Tbitv s2 -> -1
-- | _ -> Pervasives.compare c1 c2
-+ | _ -> Stdlib.compare c1 c2
-
- let rec depth_tterm t =
- match t.c.tt_desc with
-@@ -153,7 +153,7 @@ let rec compare_tterm t1 t2 =
-
- | TTinInterval (e1, a1, b1, c1, d1), TTinInterval (e2, a2, b2, c2, d2) ->
- let c = compare_tterm e1 e2 in
-- if c <> 0 then c else Pervasives.compare (a1, b1, c1, d1) (a2, b2, c2, d2)
-+ if c <> 0 then c else Stdlib.compare (a1, b1, c1, d1) (a2, b2, c2, d2)
-
- | TTinInterval _, _ -> -1
- | _, TTinInterval _ -> 1
-@@ -191,7 +191,7 @@ let rec compare_tterm t1 t2 =
- | TTconcat _, _ -> -1
- | _, TTconcat _ -> 1
- | TTdot(t1, a1), TTdot(t2,a2) ->
-- let c = Pervasives.compare a1 a2 in
-+ let c = Stdlib.compare a1 a2 in
- if c<>0 then c else
- compare_tterm t1 t2
- | TTdot _, _ -> -1
---- alt-ergo-2.2.0/lib/frontend/typechecker.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/frontend/typechecker.ml 2021-01-29 16:43:14.235096310 -0700
-@@ -36,7 +36,7 @@ module S = Set.Make(String)
- module Sy = Symbols.Set
+--- alt-ergo-2.3.0/lib/frontend/typechecker.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/frontend/typechecker.ml 2021-12-13 11:22:42.669959468 -0700
+@@ -37,7 +37,7 @@ module S = Set.Make(String)
+ module HSS = Hstring.Set
module MString =
- Map.Make(struct type t = string let compare = Pervasives.compare end)
@@ -73,17 +9,17 @@
module Types = struct
-@@ -78,7 +78,7 @@ module Types = struct
+@@ -86,7 +86,7 @@ module Types = struct
List.for_all2
- (fun pp x ->
- match pp with
-- | PPTvarid (y, _) -> Pervasives.(=) x y
-+ | PPTvarid (y, _) -> Stdlib.(=) x y
- | _ -> false
+ (fun pp x ->
+ match pp with
+- | PPTvarid (y, _) -> Pervasives.(=) x y
++ | PPTvarid (y, _) -> Stdlib.(=) x y
+ | _ -> false
) lpp lvars
with Invalid_argument _ -> false
-@@ -97,7 +97,7 @@ module Types = struct
- to_tyvars := MString.add s nty !to_tyvars;
+@@ -105,7 +105,7 @@ module Types = struct
+ to_tyvars := MString.add s nty !to_tyvars;
nty
end
- | PPTexternal (l, s, loc) when Pervasives.(=) s "farray" ->
@@ -91,49 +27,27 @@
let t1,t2 = match l with
| [t2] -> PPTint,t2
| [t1;t2] -> t1,t2
-@@ -108,7 +108,7 @@ module Types = struct
+@@ -116,7 +116,7 @@ module Types = struct
| PPTexternal (l, s, loc) ->
begin
- match rectype with
-- | Some (id, vars, ty) when Pervasives.(=) s id &&
-+ | Some (id, vars, ty) when Stdlib.(=) s id &&
- equal_pp_vars l vars -> ty
- | _ ->
- try
-@@ -769,7 +769,7 @@ and type_form ?(in_theory=false) env f =
+ match rectype with
+- | Some (id, vars, ty) when Pervasives.(=) s id &&
++ | Some (id, vars, ty) when Stdlib.(=) s id &&
+ equal_pp_vars l vars -> ty
+ | _ ->
try
- List.iter2 Ty.unify lt lt_args;
- let r =
-- if Pervasives.(=) p "<=" || Pervasives.(=) p "<" then
-+ if Stdlib.(=) p "<=" || Stdlib.(=) p "<" then
- TFatom { c = TAbuilt(Hstring.make p,te_args);
- annot=new_id ()}
- else
-@@ -1871,10 +1871,10 @@ let file ld =
- exit 1
-
- let is_local_hyp s =
-- try Pervasives.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
-+ try Stdlib.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
-
- let is_global_hyp s =
-- try Pervasives.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
-+ try Stdlib.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
-
- let split_goals_aux f l =
- let _, _, _, ret =
---- alt-ergo-2.2.0/lib/reasoners/fun_sat.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/reasoners/fun_sat.ml 2021-01-29 16:44:04.915064713 -0700
-@@ -69,7 +69,7 @@ module Make (Th : Theory.S) : Sat_solver
- SF.fold
+--- alt-ergo-2.3.0/lib/reasoners/fun_sat.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/reasoners/fun_sat.ml 2021-12-13 11:17:14.158193751 -0700
+@@ -75,7 +75,7 @@ module Make (Th : Theory.S) : Sat_solver
+ SE.fold
(fun f mp ->
- let w = var_inc +. try MF.find f mp with Not_found -> 0. in
+ let w = var_inc +. try ME.find f mp with Not_found -> 0. in
- stable := !stable && Pervasives.(<=) w 1e100;
+ stable := !stable && Stdlib.(<=) w 1e100;
- MF.add f w mp
+ ME.add f w mp
)(Ex.bj_formulas_of expl) mp
in
-@@ -95,9 +95,9 @@ module Make (Th : Theory.S) : Sat_solver
+@@ -118,9 +118,9 @@ module Make (Th : Theory.S) : Sat_solver
let dec =
List.fast_sort
(fun (_, x1, b1) (_, x2, b2) ->
@@ -145,7 +59,7 @@
)dec
in
(*
-@@ -967,7 +967,7 @@ module Make (Th : Theory.S) : Sat_solver
+@@ -1171,7 +1171,7 @@ module Make (Th : Theory.S) : Sat_solver
let i = abs (interpretation ()) in
assert (i = 1 || i = 2 || i = 3);
if not !(env.model_gen_mode) &&
@@ -154,20 +68,20 @@
begin
Options.Time.unset_timeout ~is_gui:(Options.get_is_gui());
Options.Time.set_timeout
---- alt-ergo-2.2.0/lib/reasoners/ite.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/reasoners/ite.ml 2021-01-29 15:13:41.631062282 -0700
-@@ -72,7 +72,7 @@ module Relation (X : ALIEN) (Uf : Uf.S)
- type t = T.t * bool
- let compare (a1, b1) (a2, b2) =
- let c = T.compare a1 a2 in
-- if c <> 0 then c else Pervasives.compare b1 b2
-+ if c <> 0 then c else Stdlib.compare b1 b2
- end)
+--- alt-ergo-2.3.0/lib/reasoners/ite_rel.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/reasoners/ite_rel.ml 2021-12-13 11:18:06.781156246 -0700
+@@ -32,7 +32,7 @@ module TB =
+ type t = E.t * bool
+ let compare (a1, b1) (a2, b2) =
+ let c = E.compare a1 a2 in
+- if c <> 0 then c else Pervasives.compare b1 b2
++ if c <> 0 then c else Stdlib.compare b1 b2
+ end)
- type t =
---- alt-ergo-2.2.0/lib/reasoners/satml_frontend.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/reasoners/satml_frontend.ml 2021-01-29 16:16:47.003462456 -0700
-@@ -533,7 +533,7 @@ module Make (Th : Theory.S) : Sat_solver
+ type t =
+--- alt-ergo-2.3.0/lib/reasoners/satml_frontend.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/reasoners/satml_frontend.ml 2021-12-13 11:17:48.709169125 -0700
+@@ -508,7 +508,7 @@ module Make (Th : Theory.S) : Sat_solver
if res <> 0 then res
else
(* higher weight is better hence compare w2 w1 *)
@@ -176,27 +90,45 @@
if res <> 0 then res
else
(* lower index is better *)
-@@ -922,7 +922,7 @@ module Make (Th : Theory.S) : Sat_solver
+@@ -844,7 +844,7 @@ module Make (Th : Theory.S) : Sat_solver
+ }
+
+ let normal_mconf () =
+- {Util.nb_triggers = Pervasives.max 2 (nb_triggers () * 2);
++ {Util.nb_triggers = Stdlib.max 2 (nb_triggers () * 2);
+ no_ematching = no_Ematching();
+ triggers_var = triggers_var ();
+ use_cs = false;
+@@ -853,7 +853,7 @@ module Make (Th : Theory.S) : Sat_solver
+ }
+
+ let greedy_mconf () =
+- {Util.nb_triggers = Pervasives.max 10 (nb_triggers () * 10);
++ {Util.nb_triggers = Stdlib.max 10 (nb_triggers () * 10);
+ no_ematching = false;
+ triggers_var = true;
+ use_cs = true;
+@@ -951,7 +951,7 @@ module Make (Th : Theory.S) : Sat_solver
(* copied from sat_solvers.ml *)
let max_term_depth_in_sat env =
-- let aux mx f = Pervasives.max mx (F.max_term_depth f) in
-+ let aux mx f = Stdlib.max mx (F.max_term_depth f) in
- let max_t = MF.fold (fun f _ mx -> aux mx f) env.gamma 0 in
- A.Map.fold (fun _ {F.f} mx -> aux mx f) env.ground_preds max_t
+- let aux mx f = Pervasives.max mx (E.depth f) in
++ let aux mx f = Stdlib.max mx (E.depth f) in
+ let max_t = ME.fold (fun f _ mx -> aux mx f) env.gamma 0 in
+ ME.fold (fun _ ({ E.ff = f; _ }, _) mx -> aux mx f) env.ground_preds max_t
---- alt-ergo-2.2.0/lib/reasoners/satml.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/reasoners/satml.ml 2021-01-29 16:44:54.595033743 -0700
-@@ -351,7 +351,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+--- alt-ergo-2.3.0/lib/reasoners/satml.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/reasoners/satml.ml 2021-12-13 11:18:53.173123173 -0700
+@@ -361,7 +361,7 @@ module Make (Th : Theory.S) : SAT_ML wit
*)
let f_weight env i j =
- Pervasives.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
+ Stdlib.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
- let f_filter env i = (Vec.get env.vars i).level < 0
+ (* unused -- let f_filter env i = (Vec.get env.vars i).level < 0 *)
-@@ -365,7 +365,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+@@ -375,7 +375,7 @@ module Make (Th : Theory.S) : SAT_ML wit
let var_bump_activity env v =
v.weight <- v.weight +. env.var_inc;
@@ -205,7 +137,7 @@
for i = 0 to env.vars.Vec.sz - 1 do
(Vec.get env.vars i).weight <- (Vec.get env.vars i).weight *. 1e-100
done;
-@@ -377,7 +377,7 @@ module Make (Th : Theory.S) : SAT_ML wit
+@@ -387,7 +387,7 @@ module Make (Th : Theory.S) : SAT_ML wit
let clause_bump_activity env c =
c.activity <- c.activity +. env.clause_inc;
@@ -214,51 +146,77 @@
for i = 0 to env.learnts.Vec.sz - 1 do
(Vec.get env.learnts i).activity <-
(Vec.get env.learnts i).activity *. 1e-20;
-@@ -861,7 +861,7 @@ let compute_facts_for_theory_propagate e
- let f_sort_db c1 c2 =
- let sz1 = Vec.size c1.atoms in
- let sz2 = Vec.size c2.atoms in
-- let c = Pervasives.compare c1.activity c2.activity in
-+ let c = Stdlib.compare c1.activity c2.activity in
- if sz1 = sz2 && c = 0 then 0
- else
- if sz1 > 2 && (sz2 = 2 || c < 0) then -1
---- alt-ergo-2.2.0/lib/structures/formula.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/formula.ml 2021-01-29 16:34:03.946514585 -0700
-@@ -108,8 +108,8 @@ type gformula = {
- let size (t,_) = t.size
+--- alt-ergo-2.3.0/lib/structures/expr.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/expr.ml 2021-12-13 11:27:30.381754212 -0700
+@@ -1031,7 +1031,7 @@ let mk_builtin ~is_pos n l =
+ (** Substitutions *)
- let compare ((v1,_) as f1) ((v2,_) as f2) =
-- let c = Pervasives.compare (size f1) (size f2) in
-- if c=0 then Pervasives.compare v1.tag v2.tag else c
-+ let c = Stdlib.compare (size f1) (size f2) in
-+ if c=0 then Stdlib.compare v1.tag v2.tag else c
-
- let equal (f1,_) (f2,_) =
- assert ((f1 == f2) == (f1.tag == f2.tag));
-@@ -866,7 +866,7 @@ let label f =
- | _ -> Hstring.empty
-
- let label_model h =
-- try Pervasives.(=) (String.sub (Hstring.view h) 0 6) "model:"
-+ try Stdlib.(=) (String.sub (Hstring.view h) 0 6) "model:"
+ let is_skolem_cst v =
+- try Pervasives.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
++ try Stdlib.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
with Invalid_argument _ -> false
- let is_in_model f =
---- alt-ergo-2.2.0/lib/structures/literal.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/literal.ml 2021-01-29 15:11:35.935224734 -0700
-@@ -95,7 +95,7 @@ module Make (X : OrderedType) : S with t
+ let get_skolem =
+@@ -1669,9 +1669,9 @@ module Triggers = struct
+ | { f = (Name _) as s1; xs=tl1; _ }, { f = (Name _) as s2; xs=tl2; _ } ->
+ let l1 = List.map score_term tl1 in
+ let l2 = List.map score_term tl2 in
+- let l1 = List.fast_sort Pervasives.compare l1 in
+- let l2 = List.fast_sort Pervasives.compare l2 in
+- let c = Util.cmp_lists l1 l2 Pervasives.compare in
++ let l1 = List.fast_sort Stdlib.compare l1 in
++ let l2 = List.fast_sort Stdlib.compare l2 in
++ let c = Util.cmp_lists l1 l2 Stdlib.compare in
+ if c <> 0 then c
+ else
+ let c = Sy.compare s1 s2 in
+@@ -1702,7 +1702,7 @@ module Triggers = struct
- type t = { at : atom; neg : bool; tpos : int; tneg : int }
+ | { f = Op (Access a1) ; xs=[t1]; _ },
+ { f = Op (Access a2) ; xs=[t2]; _ } ->
+- let c = Pervasives.compare a1 a2 in (* should be Hstring.compare *)
++ let c = Stdlib.compare a1 a2 in (* should be Hstring.compare *)
+ if c<>0 then c else cmp_trig_term t1 t2
-- let compare a1 a2 = Pervasives.compare a1.tpos a2.tpos
-+ let compare a1 a2 = Stdlib.compare a1.tpos a2.tpos
- let equal a1 a2 = a1.tpos = a2.tpos (* XXX == *)
- let hash a1 = a1.tpos
- let uid a1 = a1.tpos
---- alt-ergo-2.2.0/lib/structures/profiling.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/profiling.ml 2021-01-29 16:41:48.035150044 -0700
-@@ -86,7 +86,7 @@ let state =
+ | { f = Op (Access _); _ }, _ -> -1
+@@ -1710,7 +1710,7 @@ module Triggers = struct
+
+ | { f = Op (Destruct (_,a1)) ; xs = [t1]; _ },
+ { f = Op (Destruct (_,a2)) ; xs = [t2]; _ } ->
+- let c = Pervasives.compare a1 a2 in (* should be Hstring.compare *)
++ let c = Stdlib.compare a1 a2 in (* should be Hstring.compare *)
+ if c<>0 then c else cmp_trig_term t1 t2
+
+ | { f = Op (Destruct _); _ }, _ -> -1
+@@ -1725,9 +1725,9 @@ module Triggers = struct
+ (* ops that are not infix or prefix *)
+ let l1 = List.map score_term tl1 in
+ let l2 = List.map score_term tl2 in
+- let l1 = List.fast_sort Pervasives.compare l1 in
+- let l2 = List.fast_sort Pervasives.compare l2 in
+- let c = Util.cmp_lists l1 l2 Pervasives.compare in
++ let l1 = List.fast_sort Stdlib.compare l1 in
++ let l2 = List.fast_sort Stdlib.compare l2 in
++ let c = Util.cmp_lists l1 l2 Stdlib.compare in
+ if c <> 0 then c
+ else
+ let c = Sy.compare s1 s2 in
+@@ -1741,9 +1741,9 @@ module Triggers = struct
+ let cmp_trig_term_list tl2 tl1 =
+ let l1 = List.map score_term tl1 in
+ let l2 = List.map score_term tl2 in
+- let l1 = List.rev (List.fast_sort Pervasives.compare l1) in
+- let l2 = List.rev (List.fast_sort Pervasives.compare l2) in
+- let c = Util.cmp_lists l1 l2 Pervasives.compare in
++ let l1 = List.rev (List.fast_sort Stdlib.compare l1) in
++ let l2 = List.rev (List.fast_sort Stdlib.compare l2) in
++ let c = Util.cmp_lists l1 l2 Stdlib.compare in
+ if c <> 0 then c else Util.cmp_lists tl1 tl2 cmp_trig_term
+
+ let unique_stable_sort =
+--- alt-ergo-2.3.0/lib/structures/profiling.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/profiling.ml 2021-12-13 11:28:14.180722957 -0700
+@@ -85,7 +85,7 @@ let state =
let set_sigprof () =
let tm =
let v = Options.profiling_period () in
@@ -267,7 +225,7 @@
in
ignore
(Unix.setitimer Unix.ITIMER_PROF
-@@ -626,9 +626,9 @@ let switch () =
+@@ -629,9 +629,9 @@ let switch () =
let float_print fmt v =
@@ -280,59 +238,61 @@
else fprintf fmt "%0.3f" v
let line_of_module arr f =
---- alt-ergo-2.2.0/lib/structures/symbols.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/symbols.ml 2021-01-29 15:10:23.775316438 -0700
-@@ -114,7 +114,7 @@ let compare s1 s2 = match s1, s2 with
- | Op(Access s1), Op(Access s2) -> Hstring.compare s1 s2
- | Op(Access _), _ -> -1
- | _, Op(Access _) -> 1
-- | _ -> Pervasives.compare s1 s2
-+ | _ -> Stdlib.compare s1 s2
+--- alt-ergo-2.3.0/lib/structures/symbols.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/symbols.ml 2021-12-13 11:23:17.604934542 -0700
+@@ -124,7 +124,7 @@ let compare_operators op1 op2 =
+ (function
+ | Access h1, Access h2 | Constr h1, Constr h2 -> Hstring.compare h1 h2
+ | Destruct (h1, b1), Destruct(h2, b2) ->
+- let c = Pervasives.compare b1 b2 in
++ let c = Stdlib.compare b1 b2 in
+ if c <> 0 then c else Hstring.compare h1 h2
+ | _ , (Plus | Minus | Mult | Div | Modulo
+ | Concat | Extract | Get | Set | Fixed | Float | Reach
+@@ -155,7 +155,7 @@ let compare_forms f1 f2 =
+ Util.compare_algebraic f1 f2
+ (function
+ | F_Unit b1, F_Unit b2
+- | F_Clause b1, F_Clause b2 -> Pervasives.compare b1 b2
++ | F_Clause b1, F_Clause b2 -> Stdlib.compare b1 b2
+ | _, (F_Unit _ | F_Clause _ | F_Lemma | F_Skolem
+ | F_Iff | F_Xor) ->
+ assert false
+@@ -173,10 +173,10 @@ let compare_bounds a b =
+ let c = Ty.compare a.sort b.sort in
+ if c <> 0 then c
+ else
+- let c = Pervasives.compare a.is_open b.is_open in
++ let c = Stdlib.compare a.is_open b.is_open in
+ if c <> 0 then c
+ else
+- let c = Pervasives.compare a.is_lower b.is_lower in
++ let c = Stdlib.compare a.is_lower b.is_lower in
+ if c <> 0 then c
+ else compare_bounds_kind a.kind b.kind
- let equal s1 s2 = compare s1 s2 = 0
-
---- alt-ergo-2.2.0/lib/structures/term.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/term.ml 2021-01-29 16:33:11.033560074 -0700
-@@ -270,7 +270,7 @@ let gen_sko ty = make (Sy.fresh "@sko")
-
- let is_skolem_cst v =
- try
-- Pervasives.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
-+ Stdlib.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
- with Invalid_argument _ -> false
-
- let find_skolem =
-@@ -338,7 +338,7 @@ let label t = try Labels.find labels t w
-
-
- let label_model h =
-- try Pervasives.(=) (String.sub (Hstring.view h) 0 6) "model:"
-+ try Stdlib.(=) (String.sub (Hstring.view h) 0 6) "model:"
- with Invalid_argument _ -> false
-
- let rec is_in_model_rec depth { f = f; xs = xs } =
---- alt-ergo-2.2.0/lib/structures/ty.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/structures/ty.ml 2021-01-29 16:18:15.746370389 -0700
-@@ -202,7 +202,7 @@ let rec equal t1 t2 =
+--- alt-ergo-2.3.0/lib/structures/ty.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/ty.ml 2021-12-13 11:23:47.596913146 -0700
+@@ -201,7 +201,7 @@ and shorten_body _ _ =
let rec compare t1 t2 =
match shorten t1 , shorten t2 with
-- | Tvar{v=v1} , Tvar{v=v2} -> Pervasives.compare v1 v2
-+ | Tvar{v=v1} , Tvar{v=v2} -> Stdlib.compare v1 v2
- | Tvar _, _ -> -1 | _ , Tvar _ -> 1
- | Text(l1, s1) , Text(l2, s2) ->
- let c = Hstring.compare s1 s2 in
-@@ -225,7 +225,7 @@ let rec compare t1 t2 =
- let l1, l2 = List.map snd l1, List.map snd l2 in
- compare_list l1 l2
- | Trecord _, _ -> -1 | _ , Trecord _ -> 1
-- | t1 , t2 -> Pervasives.compare t1 t2
-+ | t1 , t2 -> Stdlib.compare t1 t2
- and compare_list l1 l2 = match l1, l2 with
- | [] , [] -> 0
- | [] , _ -> -1
-@@ -268,7 +268,7 @@ let rec unify t1 t2 =
+- | Tvar{ v = v1; _ } , Tvar{ v = v2; _ } -> Pervasives.compare v1 v2
++ | Tvar{ v = v1; _ } , Tvar{ v = v2; _ } -> Stdlib.compare v1 v2
+ | Tvar _, _ -> -1 | _ , Tvar _ -> 1
+ | Text(l1, s1) , Text(l2, s2) ->
+ let c = Hstring.compare s1 s2 in
+@@ -234,7 +234,7 @@ let rec compare t1 t2 =
+ | Tadt _, _ -> -1 | _ , Tadt _ -> 1
+
+- | t1 , t2 -> Pervasives.compare t1 t2
++ | t1 , t2 -> Stdlib.compare t1 t2
+
+
+ and compare_list l1 l2 = match l1, l2 with
+@@ -278,7 +278,7 @@ let rec equal t1 t2 =
+ | _ -> false
(*** matching with a substitution mechanism ***)
-module M = Map.Make(struct type t=int let compare = Pervasives.compare end)
@@ -340,7 +300,7 @@
type subst = t M.t
let esubst = M.empty
-@@ -340,9 +340,9 @@ let instantiate lvar lty ty =
+@@ -602,12 +602,12 @@ let instantiate lvar lty ty =
let union_subst s1 s2 =
M.fold (fun k x s2 -> M.add k x s2) (M.map (apply_subst s2) s1) s2
@@ -350,20 +310,61 @@
-let equal_subst = M.equal Pervasives.(=)
+let equal_subst = M.equal Stdlib.(=)
- let rec fresh ty subst =
- match ty with
-@@ -383,7 +383,7 @@ and fresh_list lty subst =
- ty::lty, subst) lty ([], subst)
-
module Svty =
- Set.Make(struct type t = int let compare = Pervasives.compare end)
+ Set.Make(struct type t = int let compare = Stdlib.compare end)
module Set =
Set.Make(struct
---- alt-ergo-2.2.0/lib/util/myUnix.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/util/myUnix.ml 2021-01-29 16:45:33.010009798 -0700
-@@ -16,7 +16,7 @@ module Default_Unix = struct
+--- alt-ergo-2.3.0/lib/structures/typed.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/typed.ml 2021-12-13 11:28:32.876709614 -0700
+@@ -369,8 +369,8 @@ let fresh_hypothesis_name =
+ | _ -> "@L"^(string_of_int !cpt)
+
+ let is_local_hyp s =
+- try Pervasives.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
++ try Stdlib.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
+
+ let is_global_hyp s =
+- try Pervasives.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
++ try Stdlib.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
+
+--- alt-ergo-2.3.0/lib/structures/xliteral.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/structures/xliteral.ml 2021-12-13 11:27:49.604740495 -0700
+@@ -103,7 +103,7 @@ module Make (X : OrderedType) : S with t
+
+ type t = { at : atom; neg : bool; tpos : int; tneg : int }
+
+- let compare a1 a2 = Pervasives.compare a1.tpos a2.tpos
++ let compare a1 a2 = Stdlib.compare a1.tpos a2.tpos
+ let equal a1 a2 = a1.tpos = a2.tpos (* XXX == *)
+ let hash a1 = a1.tpos
+ let uid a1 = a1.tpos
+--- alt-ergo-2.3.0/lib/util/emap.mli.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/emap.mli 2021-12-13 11:20:53.277037515 -0700
+@@ -41,8 +41,8 @@
+ struct
+ type t = int * int
+ let compare (x0,y0) (x1,y1) =
+- match Pervasives.compare x0 x1 with
+- 0 -> Pervasives.compare y0 y1
++ match Stdlib.compare x0 x1 with
++ 0 -> Stdlib.compare y0 y1
+ | c -> c
+ end
+
+@@ -68,7 +68,7 @@ sig
+ [f e1 e2] is strictly negative if [e1] is smaller than [e2],
+ and [f e1 e2] is strictly positive if [e1] is greater than [e2].
+ Example: a suitable ordering function is the generic structural
+- comparison function {!Pervasives.compare}. *)
++ comparison function {!Stdlib.compare}. *)
+ end
+ (** Input signature of the functor {!Map.Make}. *)
+
+--- alt-ergo-2.3.0/lib/util/myUnix.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/myUnix.ml 2021-12-13 11:19:46.141085403 -0700
+@@ -18,7 +18,7 @@ module Default_Unix = struct
let cur_time () = (times()).tms_utime
let set_timeout ~is_gui timelimit =
@@ -372,33 +373,54 @@
let itimer =
if is_gui then Unix.ITIMER_REAL (* troubles with VIRTUAL *)
else Unix.ITIMER_VIRTUAL
---- alt-ergo-2.2.0/lib/util/numbers.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/util/numbers.ml 2021-01-29 16:46:06.130989159 -0700
+--- alt-ergo-2.3.0/lib/util/numbers.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/numbers.ml 2021-12-13 11:22:11.316981841 -0700
@@ -48,8 +48,8 @@ module Q = struct
- else
- let v = to_float q in
- let w =
-- if Pervasives.(<) v min_float then min_float
-- else if Pervasives.(>) v max_float then max_float
-+ if Stdlib.(<) v min_float then min_float
-+ else if Stdlib.(>) v max_float then max_float
- else v
- in
- let flt = if n = 2 then sqrt w else w ** (1. /. float n) in
---- alt-ergo-2.2.0/lib/util/options.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/util/options.ml 2021-01-29 16:11:53.387767103 -0700
-@@ -902,8 +902,7 @@ let (>) (a: int) (b: int) = a > b
+ else
+ let v = to_float q in
+ let w =
+- if Pervasives.(<) v min_float then min_float
+- else if Pervasives.(>) v max_float then max_float
++ if Stdlib.(<) v min_float then min_float
++ else if Stdlib.(>) v max_float then max_float
+ else v
+ in
+ let flt = if n = 2 then sqrt w else w ** (1. /. float n) in
+--- alt-ergo-2.3.0/lib/util/options.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/options.ml 2021-12-13 11:21:27.477013115 -0700
+@@ -957,7 +957,7 @@ let (>) (a: int) (b: int) = a > b
let (<=) (a: int) (b: int) = a <= b
let (>=) (a: int) (b: int) = a >= b
-let compare (a: int) (b: int) = Pervasives.compare a b
--
+let compare (a: int) (b: int) = Stdlib.compare a b
- (* extra **)
---- alt-ergo-2.2.0/lib/util/zarithNumbers.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/lib/util/zarithNumbers.ml 2021-01-29 16:08:45.571962041 -0700
+ (* extra **)
+--- alt-ergo-2.3.0/lib/util/util.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/util.ml 2021-12-13 11:20:25.717057175 -0700
+@@ -83,7 +83,7 @@ let [@inline always] compare_algebraic s
+ let r1 = Obj.repr s1 in
+ let r2 = Obj.repr s2 in
+ match Obj.is_int r1, Obj.is_int r2 with
+- | true, true -> Pervasives.compare s1 s2 (* both constructors without args *)
++ | true, true -> Stdlib.compare s1 s2 (* both constructors without args *)
+ | true, false -> -1
+ | false, true -> 1
+ | false, false ->
+--- alt-ergo-2.3.0/lib/util/util.mli.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/util.mli 2021-12-13 11:20:10.341068143 -0700
+@@ -56,7 +56,7 @@ val string_of_th_ext : theories_extensio
+ (**
+ generic function for comparing algebraic data types.
+ [compare_algebraic a b f]
+- - Pervasives.compare a b is used if
++ - Stdlib.compare a b is used if
+
+ *)
+ val [@inline always] compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
+--- alt-ergo-2.3.0/lib/util/zarithNumbers.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/lib/util/zarithNumbers.ml 2021-12-13 11:19:11.821109879 -0700
@@ -153,7 +153,7 @@ module Q : NumbersInterface.QSig with mo
let floor t = from_z (Z.fdiv (num t) (den t))
let ceiling t = from_z (Z.cdiv (num t) (den t))
@@ -408,9 +430,20 @@
let num_pow = Z.power (num t) abs_n in
let den_pow = Z.power (den t) abs_n in
if n >= 0 then from_zz num_pow den_pow else from_zz den_pow num_pow
---- alt-ergo-2.2.0/tools/gui/annoted_ast.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/tools/gui/annoted_ast.ml 2021-01-29 16:47:08.762950125 -0700
-@@ -188,7 +188,7 @@ type annoted_node =
+--- alt-ergo-2.3.0/parsers/parsers.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/parsers/parsers.ml 2021-12-13 11:16:42.461216342 -0700
+@@ -124,7 +124,7 @@ let parse_input_file file =
+ stdin, Lexing.from_string file_content, false, ext
+ else
+ let ext = Filename.extension file in
+- if Pervasives.(<>) file "" then
++ if Stdlib.(<>) file "" then
+ let cin = open_in file in
+ cin, Lexing.from_channel cin, true, ext
+ else
+--- alt-ergo-2.3.0/tools/gui/annoted_ast.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/tools/gui/annoted_ast.ml 2021-12-13 11:15:02.334287694 -0700
+@@ -191,7 +191,7 @@ type annoted_node =
module MDep = Map.Make (
struct
type t = atyped_decl annoted
@@ -419,58 +452,58 @@
end)
-@@ -862,9 +862,9 @@ let find_dep_by_string dep s =
- | None -> begin
- match d.c with
- | ALogic (_, ls, ty) when List.mem s ls -> Some d
-- | ATypeDecl (_, _, s', _) when Pervasives.(=) s s'-> Some d
-- | APredicate_def (_, p, _, _) when Pervasives.(=) s p -> Some d
-- | AFunction_def (_, f, _, _, _) when Pervasives.(=) s f -> Some d
-+ | ATypeDecl (_, _, s', _) when Stdlib.(=) s s'-> Some d
-+ | APredicate_def (_, p, _, _) when Stdlib.(=) s p -> Some d
-+ | AFunction_def (_, f, _, _, _) when Stdlib.(=) s f -> Some d
- | _ -> None
- end
+@@ -880,9 +880,9 @@ let find_dep_by_string dep s =
+ | None -> begin
+ match d.c with
+ | ALogic (_, ls, _, _) when List.mem s ls -> Some d
+- | ATypeDecl (_, _, s', _, _) when Pervasives.(=) s s'-> Some d
+- | APredicate_def (_, p, _, _) when Pervasives.(=) s p -> Some d
+- | AFunction_def (_, f, _, _, _, _) when Pervasives.(=) s f -> Some d
++ | ATypeDecl (_, _, s', _, _) when Stdlib.(=) s s'-> Some d
++ | APredicate_def (_, p, _, _) when Stdlib.(=) s p -> Some d
++ | AFunction_def (_, f, _, _, _, _) when Stdlib.(=) s f -> Some d
+ | _ -> None
+ end
) dep None
-@@ -874,7 +874,7 @@ let find_tag_deps dep tag =
+@@ -892,7 +892,7 @@ let find_tag_deps dep tag =
(fun d (deps,_) found ->
- match found with
- | Some _ -> found
-- | None -> if Pervasives.(=) d.tag tag then Some deps else None
-+ | None -> if Stdlib.(=) d.tag tag then Some deps else None
+ match found with
+ | Some _ -> found
+- | None -> if Pervasives.(=) d.tag tag then Some deps else None
++ | None -> if Stdlib.(=) d.tag tag then Some deps else None
) dep None
let find_tag_inversedeps dep tag =
-@@ -882,7 +882,7 @@ let find_tag_inversedeps dep tag =
+@@ -900,7 +900,7 @@ let find_tag_inversedeps dep tag =
(fun d (_,deps) found ->
- match found with
- | Some _ -> found
-- | None -> if Pervasives.(=) d.tag tag then Some deps else None
-+ | None -> if Stdlib.(=) d.tag tag then Some deps else None
+ match found with
+ | Some _ -> found
+- | None -> if Pervasives.(=) d.tag tag then Some deps else None
++ | None -> if Stdlib.(=) d.tag tag then Some deps else None
) dep None
let make_dep_string d ex dep s =
-@@ -1965,7 +1965,7 @@ and findtags_aform sl aform acc =
- (fun sl (sy, _) ->
- let s = Symbols.to_string_clean sy in
- List.fold_left
-- (fun l s' -> if Pervasives.(=) s' s then l else s'::l) [] sl
-+ (fun l s' -> if Stdlib.(=) s' s then l else s'::l) [] sl
- )sl l
- in
- findtags_aform sl aaf.c acc
---- alt-ergo-2.2.0/tools/gui/connected_ast.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/tools/gui/connected_ast.ml 2021-01-29 16:47:43.226928651 -0700
-@@ -386,7 +386,7 @@ let rec unquantify_aform (buffer:sbuffer
- List.fold_left (fun (nbv, used, goal_used, ve, uplet, lets) v ->
- let ((s, _) as v'), e = List.hd ve in
- let cdr_ve = List.tl ve in
-- assert (Pervasives.(=) v v');
-+ assert (Stdlib.(=) v v');
- if String.length e == 0 then
- (v'::nbv, used, goal_used, cdr_ve, v'::uplet, lets)
- else
-@@ -541,7 +541,7 @@ let rec add_instance_aux ?(register=true
+@@ -2046,7 +2046,7 @@ and findtags_aform sl aform acc =
+ (fun sl (sy, _) ->
+ let s = Symbols.to_string_clean sy in
+ List.fold_left
+- (fun l s' -> if Pervasives.(=) s' s then l else s'::l) [] sl
++ (fun l s' -> if Stdlib.(=) s' s then l else s'::l) [] sl
+ )sl l
+ in
+ findtags_aform sl aaf.c acc
+--- alt-ergo-2.3.0/tools/gui/connected_ast.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/tools/gui/connected_ast.ml 2021-12-13 11:16:16.069235150 -0700
+@@ -388,7 +388,7 @@ let rec unquantify_aform (buffer:sbuffer
+ List.fold_left (fun (nbv, used, goal_used, ve, uplet, lets) v ->
+ let ((s, _) as v'), e = List.hd ve in
+ let cdr_ve = List.tl ve in
+- assert (Pervasives.(=) v v');
++ assert (Stdlib.(=) v v');
+ if String.length e == 0 then
+ (v'::nbv, used, goal_used, cdr_ve, v'::uplet, lets)
+ else
+@@ -545,7 +545,7 @@ let rec add_instance_aux ?(register=true
make_instance env.inst_buffer vars entries af goal_form tyenv in
let ln_form = least_nested_form used_vars goal_form in
env.inst_buffer#place_cursor ~where:env.inst_buffer#end_iter;
@@ -479,18 +512,18 @@
let hy =
AAxiom (loc, (sprintf "%s%s" "_instance_" aname), ax_kd, instance.c) in
let ahy = new_annot env.inst_buffer hy instance.id ptag in
-@@ -735,7 +735,7 @@ and add_trigger ?(register=true) t qid e
- if register then
- save env.actions
- (AddTrigger (qf.id,
-- Pervasives.(=) sbuf env.inst_buffer, str));
-+ Stdlib.(=) sbuf env.inst_buffer, str));
- commit_tags_buffer sbuf
- | _ -> assert false
- end
---- alt-ergo-2.2.0/tools/gui/main_gui.ml.orig 2018-04-21 11:02:10.000000000 -0600
-+++ alt-ergo-2.2.0/tools/gui/main_gui.ml 2021-01-29 16:49:56.218845792 -0700
-@@ -148,7 +148,7 @@ let save_session envs =
+@@ -739,7 +739,7 @@ and add_trigger ?(register=true) t qid e
+ if register then
+ save env.actions
+ (AddTrigger (qf.id,
+- Pervasives.(=) sbuf env.inst_buffer, str));
++ Stdlib.(=) sbuf env.inst_buffer, str));
+ commit_tags_buffer sbuf
+ | _ -> assert false
+ end
+--- alt-ergo-2.3.0/tools/gui/main_gui.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/tools/gui/main_gui.ml 2021-12-13 11:15:49.445254125 -0700
+@@ -151,7 +151,7 @@ let save_session envs =
let save_dialog cancel envs () =
if List.exists
@@ -499,7 +532,7 @@
if List.exists
(fun env -> not (Gui_session.safe_session env.actions)) envs then
GToolbox.message_box
-@@ -247,7 +247,7 @@ let pop_model sat_env () =
+@@ -250,7 +250,7 @@ let pop_model sat_env () =
let compare_rows icol_number (model:#GTree.model) row1 row2 =
let t1 = model#get ~row:row1 ~column:icol_number in
let t2 = model#get ~row:row2 ~column:icol_number in
@@ -517,16 +550,16 @@
t.tl_sat#set_text (sprintf "%3.2f s" tsat);
t.tl_match#set_text (sprintf "%3.2f s" tmatch);
-@@ -455,7 +455,7 @@ let add_inst ({h=h} as inst_model) orig
- let id = Formula.id orig in
+@@ -455,7 +455,7 @@ let add_inst ({ h; _ } as inst_model) or
+ let id = Expr.id orig in
let name =
- match Formula.view orig with
-- | Formula.Lemma {Formula.name=n} when Pervasives.(<>) n "" -> n
-+ | Formula.Lemma {Formula.name=n} when Stdlib.(<>) n "" -> n
- | _ -> string_of_int id
- in
- let r, n, limit, to_add =
-@@ -604,7 +604,7 @@ let vt_signal =
+ match Expr.form_view orig with
+- | Expr.Lemma { Expr.name = n ; _ } when Pervasives.(<>) n "" -> n
++ | Expr.Lemma { Expr.name = n ; _ } when Stdlib.(<>) n "" -> n
+ | Expr.Lemma _ | Expr.Unit _ | Expr.Clause _ | Expr.Literal _
+ | Expr.Skolem _ | Expr.Let _ | Expr.Iff _ | Expr.Xor _ ->
+ string_of_int id
+@@ -607,7 +607,7 @@ let vt_signal =
let force_interrupt old_action_ref n =
(* This function is called just before the thread's timeslice ends *)
@@ -535,18 +568,18 @@
raise Abort_thread;
match !old_action_ref with
| Sys.Signal_handle f -> f n
-@@ -718,8 +718,8 @@ let remove_context env () =
- toggle_prune env td
+@@ -723,8 +723,8 @@ let remove_context env () =
+ toggle_prune env td
| AAxiom (_, s, _, _)
- when String.length s = 0 ||
+ when String.length s = 0 ||
- (Pervasives.(<>) s.[0] '_' &&
- Pervasives.(<>) s.[0] '@') ->
+ (Stdlib.(<>) s.[0] '_' &&
+ Stdlib.(<>) s.[0] '@') ->
- toggle_prune env td
+ toggle_prune env td
| _ -> ()
) env.ast
-@@ -945,7 +945,7 @@ let search_all entry (sv:GSourceView2.so
+@@ -951,7 +951,7 @@ let search_all entry (_sv:GSourceView2.s
buf#remove_tag found_all_tag ~start:buf#start_iter ~stop:buf#end_iter;
let str = entry#text in
let iter = ref buf#start_iter in
@@ -555,7 +588,7 @@
let result = ref None in
search_one buf str result iter found_all_tag;
while !result != None do
-@@ -1286,7 +1286,7 @@ let start_gui () =
+@@ -1300,7 +1300,7 @@ let start_gui all_used_context =
let set_wrap_lines _ =
List.iter (fun env ->
diff --git a/alt-ergo-psmt2-frontend.patch b/alt-ergo-psmt2-frontend.patch
new file mode 100644
index 0000000..1c58d9e
--- /dev/null
+++ b/alt-ergo-psmt2-frontend.patch
@@ -0,0 +1,12 @@
+--- alt-ergo-2.3.0/parsers/psmt2_to_alt_ergo.ml.orig 2019-02-11 09:43:50.000000000 -0700
++++ alt-ergo-2.3.0/parsers/psmt2_to_alt_ergo.ml 2021-12-13 13:45:45.216802816 -0700
+@@ -403,6 +403,9 @@ module Translate = struct
+ | Cmd_Push _ -> not_supported "push"; assert false
+ | Cmd_Pop _ -> not_supported "pop"; assert false
+ | Cmd_Exit -> acc
++ | Cmd_CheckAllSat _ -> not_supported "check-all-sat"; assert false
++ | Cmd_Maximize _ -> not_supported "maximize"; assert false
++ | Cmd_Minimize _ -> not_supported "minimize"; assert false
+
+ let init () =
+ if Psmt2Frontend.Options.get_is_int_real () then
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 81eca7a..b1b8edf 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -7,8 +7,8 @@
%endif
Name: alt-ergo
-Version: 2.2.0
-Release: 14%{?dist}
+Version: 2.3.0
+Release: 1%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -18,30 +18,29 @@ Source0: https://alt-ergo.ocamlpro.com/http/%{name}-%{version}/%{name}-%{version
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
+Patch0: %{name}-pervasives.patch
+# Adapt to recent changes in psmt2-frontend
+Patch1: %{name}-psmt2-frontend.patch
BuildRequires: appstream
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
BuildRequires: make
-BuildRequires: ocaml
+BuildRequires: ocaml >= 4.04.0
+BuildRequires: ocaml-dune
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-ocplib-simplex-devel >= 0.4
+BuildRequires: ocaml-odoc
+BuildRequires: ocaml-psmt2-frontend-devel >= 0.2
+BuildRequires: ocaml-seq-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)\\\)
+Requires: ocaml-alt-ergo-parsers%{?_isa} = %{version}-%{release}
%global _desc %{expand:
Alt-Ergo is an automated theorem prover implemented in OCaml. It is
@@ -64,18 +63,41 @@ Requires: hicolor-icon-theme
This package contains a graphical front end for the Alt-Ergo theorem
prover.
-%package -n ocaml-alt-ergo
+%package -n ocaml-alt-ergo-parsers
+Summary: Parser library used by the Alt-Ergo SMT solver
+Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
+
+%description -n ocaml-alt-ergo-parsers %_desc
+
+This package contains the parser library used by the Alt-Ergo SMT solver.
+
+%package -n ocaml-alt-ergo-parsers-devel
+Summary: Development files for ocaml-alt-ergo-parsers
+Requires: ocaml-alt-ergo-lib-devel%{?_isa} = %{version}-%{release}
+Requires: ocaml-psmt2-frontend-devel%{?_isa}
+Requires: ocaml-zip-devel%{?_isa}
+
+%description -n ocaml-alt-ergo-parsers-devel %_desc
+
+This package contains development files needed to build applications
+that use the Alt-Ergo parser library.
+
+%package -n ocaml-alt-ergo-lib
Summary: Automated theorem prover library
-%description -n ocaml-alt-ergo %_desc
+%description -n ocaml-alt-ergo-lib %_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}
+%package -n ocaml-alt-ergo-lib-devel
+Summary: Development files for ocaml-alt-ergo-lib
+Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
+Requires: ocaml-num-devel%{?_isa}
+Requires: ocaml-ocplib-simplex-devel%{?_isa}
+Requires: ocaml-seq-devel%{?_isa}
+Requires: ocaml-zarith-devel%{?_isa}
-%description -n ocaml-alt-ergo-devel %_desc
+%description -n ocaml-alt-ergo-lib-devel %_desc
This package contains development files needed to build applications
that use the Alt-Ergo library.
@@ -85,33 +107,44 @@ that use the Alt-Ergo library.
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
+# Unzip an example
+cd examples/AB-Why3-plugin
+unzip p4_34.why.zip
+rm p4_34.why.zip
+cd -
%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}
+# This is not an autoconf-generated script. Do NOT use %%configure.
+./configure --prefix=%{_prefix} --libdir=%{_libdir}/ocaml --sharedir=%{_datadir}
+%make_build
+%make_build doc
%install
-mkdir -p %{buildroot}%{_bindir}
-make %{opt_option} DESTDIR=%{buildroot} install
+%make_install
-# Move the gtksourceview file to the right place
-mv %{buildroot}%{_datadir}/%{name}/gtksourceview-2.0 %{buildroot}%{_datadir}
-rmdir %{buildroot}%{_datadir}/%{name}
+# We do not want the dune markers
+find _build/default/_doc/_html -name .dune-keep -delete
+
+# We do not want the ml files
+find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+
+# We install the documentation with the doc macro
+rm -fr %{buildroot}%{_prefix}/doc
+
+# Install the man page
+mkdir -p %{buildroot}%{_mandir}/man1
+cp -p doc/alt-ergo.1 %{buildroot}%{_mandir}/man1
+
+# Make the plugins directory
+mkdir -p %{buildroot}%{_libdir}/ocaml/%{name}/plugins
+
+# Install the preludes
+cp -a preludes %{buildroot}%{_libdir}/ocaml/%{name}
+
+# Install the gtksourceview file
+mkdir -p %{buildroot}%{_datadir}/gtksourceview-2.0/language-specs
+cp -p doc/gtk-lang/alt-ergo.lang \
+ %{buildroot}%{_datadir}/gtksourceview-2.0/language-specs
# Install the desktop file
mkdir -p %{buildroot}%{_datadir}/applications
@@ -130,58 +163,71 @@ 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
+dune runtest --profile release
%files
%doc README.md CHANGES examples
%license COPYING.md LICENSE.md
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
+%{_libdir}/ocaml/%{name}/
%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
+%{_libdir}/ocaml/altgr-ergo/
%{_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
+%files -n ocaml-%{name}-parsers
+%dir %{_libdir}/ocaml/%{name}-parsers/
+%{_libdir}/ocaml/%{name}-parsers/META
+%{_libdir}/ocaml/%{name}-parsers/*.cma
+%{_libdir}/ocaml/%{name}-parsers/*.cmi
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}/altErgoLib.cmxs
+%{_libdir}/ocaml/%{name}-parsers/*.cmxs
%endif
-%files -n ocaml-%{name}-devel
+%files -n ocaml-%{name}-parsers-devel
+%{_libdir}/ocaml/%{name}-parsers/dune-package
+%{_libdir}/ocaml/%{name}-parsers/opam
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}/altErgoLib.a
-%{_libdir}/ocaml/%{name}/altErgoLib.cmx
-%{_libdir}/ocaml/%{name}/altErgoLib.cmxa
+%{_libdir}/ocaml/%{name}-parsers/*.a
+%{_libdir}/ocaml/%{name}-parsers/*.cmx
+%{_libdir}/ocaml/%{name}-parsers/*.cmxa
%endif
-%{_libdir}/ocaml/%{name}/altErgoLib.o
-%{_libdir}/ocaml/%{name}/altErgoLib.cmo
-%{_libdir}/ocaml/%{name}/altErgoLib.cmt
+%{_libdir}/ocaml/%{name}-parsers/*.mli
+%{_libdir}/ocaml/%{name}-parsers/*.cmt
+%{_libdir}/ocaml/%{name}-parsers/*.cmti
+
+%files -n ocaml-%{name}-lib
+%dir %{_libdir}/ocaml/%{name}-lib/
+%{_libdir}/ocaml/%{name}-lib/META
+%{_libdir}/ocaml/%{name}-lib/*.cma
+%{_libdir}/ocaml/%{name}-lib/*.cmi
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{name}-lib/*.cmxs
+%endif
+
+%files -n ocaml-%{name}-lib-devel
+%doc _build/default/_doc/*
+%{_libdir}/ocaml/%{name}-lib/dune-package
+%{_libdir}/ocaml/%{name}-lib/opam
+%ifarch %{ocaml_native_compiler}
+%{_libdir}/ocaml/%{name}-lib/*.a
+%{_libdir}/ocaml/%{name}-lib/*.cmx
+%{_libdir}/ocaml/%{name}-lib/*.cmxa
+%endif
+%{_libdir}/ocaml/%{name}-lib/*.mli
+%{_libdir}/ocaml/%{name}-lib/*.cmt
+%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Mon Dec 27 2021 Jerry James - 2.3.0-1
+- Version 2.3.0
+- New ocaml-alt-ergo-lib and ocaml-alt-ergo-parsers subpackages
+
* Tue Oct 05 2021 Richard W.M. Jones - 2.2.0-14
- OCaml 4.13.1 build
diff --git a/sources b/sources
index 8679a4d..f5aec05 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (alt-ergo-2.2.0.tar.gz) = 08ac8250ef2b853edc4885038ffbc8a5b4bbbedd170812fda3a4c4e59609f9642ae995d3a75ed637fbabb1163c6e84afa61c41204d41ba4b1377b3b84cc01eb8
+SHA512 (alt-ergo-2.3.0.tar.gz) = a2f209b62b8494bfefe84328cdc786185e0534c5e224e212b83045b078352a51d2ab02622f72c22c74c7de95c7a554cbdae2a9a8a0c41f3f26c841f8c72f6b21
SHA512 (alt-ergo-icons.tar.xz) = cb2e93bab3359f6f198e80e3e68840ed4b25a213b61f388a2de8abc299fd3c89240f64f610290ac89e6005088c484b2718a68ec18063076f73d7871a38ee038f
From 9cf9f87095d23cc63b2bca2622aab7997657d789 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 19 Jan 2022 21:10:09 +0000
Subject: [PATCH 37/77] - Rebuilt for
https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index b1b8edf..b968115 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,7 +8,7 @@
Name: alt-ergo
Version: 2.3.0
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -224,6 +224,9 @@ dune runtest --profile release
%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Wed Jan 19 2022 Fedora Release Engineering - 2.3.0-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
+
* Mon Dec 27 2021 Jerry James - 2.3.0-1
- Version 2.3.0
- New ocaml-alt-ergo-lib and ocaml-alt-ergo-parsers subpackages
From 4817f805f6023dcf39594ff9f683aa851ffa5f77 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Fri, 4 Feb 2022 20:19:28 +0000
Subject: [PATCH 38/77] OCaml 4.13.1 rebuild to remove package notes
---
alt-ergo.spec | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index b968115..5cecc07 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -1,3 +1,4 @@
+%undefine _package_note_flags
# 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.
@@ -8,7 +9,7 @@
Name: alt-ergo
Version: 2.3.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -224,6 +225,9 @@ dune runtest --profile release
%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Fri Feb 04 2022 Richard W.M. Jones - 2.3.0-3
+- OCaml 4.13.1 rebuild to remove package notes
+
* Wed Jan 19 2022 Fedora Release Engineering - 2.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
From 20c71462b63c4a182e78e2f69bc076f4f83c53e3 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 28 Feb 2022 12:02:56 -0700
Subject: [PATCH 39/77] Switch to the correct tarball.
- Drop unneeded ocaml-findlib BR.
- Add dependency on ocaml-alt-ergo-parsers from ocaml-alt-ergo-parsers-devel.
---
alt-ergo-pervasives.patch | 104 ++++++++++++++++++++--------------
alt-ergo-psmt2-frontend.patch | 4 +-
alt-ergo.rpmlintrc | 14 -----
alt-ergo.spec | 29 +++++++---
sources | 2 +-
5 files changed, 83 insertions(+), 70 deletions(-)
delete mode 100644 alt-ergo.rpmlintrc
diff --git a/alt-ergo-pervasives.patch b/alt-ergo-pervasives.patch
index 23ad048..4c0a255 100644
--- a/alt-ergo-pervasives.patch
+++ b/alt-ergo-pervasives.patch
@@ -1,5 +1,21 @@
---- alt-ergo-2.3.0/lib/frontend/typechecker.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/frontend/typechecker.ml 2021-12-13 11:22:42.669959468 -0700
+--- alt-ergo-2.3.0-free/extra/ocpChecker.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/extra/ocpChecker.ml 2022-02-23 12:58:05.976390283 -0700
+@@ -45,10 +45,10 @@ let update_file file lines =
+ exit 2
+ in
+ Queue.iter (fun line ->
+- Pervasives.output_string cout line;
+- Pervasives.output_string cout "\n"
++ Stdlib.output_string cout line;
++ Stdlib.output_string cout "\n"
+ )lines;
+- Pervasives.flush cout;
++ Stdlib.flush cout;
+ close_out cout
+
+
+--- alt-ergo-2.3.0-free/sources/lib/frontend/typechecker.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/frontend/typechecker.ml 2022-02-23 12:57:12.849376944 -0700
@@ -37,7 +37,7 @@ module S = Set.Make(String)
module HSS = Hstring.Set
@@ -36,8 +52,8 @@
equal_pp_vars l vars -> ty
| _ ->
try
---- alt-ergo-2.3.0/lib/reasoners/fun_sat.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/reasoners/fun_sat.ml 2021-12-13 11:17:14.158193751 -0700
+--- alt-ergo-2.3.0-free/sources/lib/reasoners/fun_sat.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/reasoners/fun_sat.ml 2022-02-23 12:57:12.849376944 -0700
@@ -75,7 +75,7 @@ module Make (Th : Theory.S) : Sat_solver
SE.fold
(fun f mp ->
@@ -68,8 +84,8 @@
begin
Options.Time.unset_timeout ~is_gui:(Options.get_is_gui());
Options.Time.set_timeout
---- alt-ergo-2.3.0/lib/reasoners/ite_rel.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/reasoners/ite_rel.ml 2021-12-13 11:18:06.781156246 -0700
+--- alt-ergo-2.3.0-free/sources/lib/reasoners/ite_rel.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/reasoners/ite_rel.ml 2022-02-23 12:57:12.850376945 -0700
@@ -32,7 +32,7 @@ module TB =
type t = E.t * bool
let compare (a1, b1) (a2, b2) =
@@ -79,8 +95,8 @@
end)
type t =
---- alt-ergo-2.3.0/lib/reasoners/satml_frontend.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/reasoners/satml_frontend.ml 2021-12-13 11:17:48.709169125 -0700
+--- alt-ergo-2.3.0-free/sources/lib/reasoners/satml_frontend.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/reasoners/satml_frontend.ml 2022-02-23 12:57:12.850376945 -0700
@@ -508,7 +508,7 @@ module Make (Th : Theory.S) : Sat_solver
if res <> 0 then res
else
@@ -117,8 +133,8 @@
let max_t = ME.fold (fun f _ mx -> aux mx f) env.gamma 0 in
ME.fold (fun _ ({ E.ff = f; _ }, _) mx -> aux mx f) env.ground_preds max_t
---- alt-ergo-2.3.0/lib/reasoners/satml.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/reasoners/satml.ml 2021-12-13 11:18:53.173123173 -0700
+--- alt-ergo-2.3.0-free/sources/lib/reasoners/satml.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/reasoners/satml.ml 2022-02-23 12:57:12.850376945 -0700
@@ -361,7 +361,7 @@ module Make (Th : Theory.S) : SAT_ML wit
*)
@@ -146,8 +162,8 @@
for i = 0 to env.learnts.Vec.sz - 1 do
(Vec.get env.learnts i).activity <-
(Vec.get env.learnts i).activity *. 1e-20;
---- alt-ergo-2.3.0/lib/structures/expr.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/expr.ml 2021-12-13 11:27:30.381754212 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/expr.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/expr.ml 2022-02-23 12:57:12.851376945 -0700
@@ -1031,7 +1031,7 @@ let mk_builtin ~is_pos n l =
(** Substitutions *)
@@ -214,8 +230,8 @@
if c <> 0 then c else Util.cmp_lists tl1 tl2 cmp_trig_term
let unique_stable_sort =
---- alt-ergo-2.3.0/lib/structures/profiling.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/profiling.ml 2021-12-13 11:28:14.180722957 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/profiling.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/profiling.ml 2022-02-23 12:57:12.851376945 -0700
@@ -85,7 +85,7 @@ let state =
let set_sigprof () =
let tm =
@@ -238,8 +254,8 @@
else fprintf fmt "%0.3f" v
let line_of_module arr f =
---- alt-ergo-2.3.0/lib/structures/symbols.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/symbols.ml 2021-12-13 11:23:17.604934542 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/symbols.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/symbols.ml 2022-02-23 12:57:12.851376945 -0700
@@ -124,7 +124,7 @@ let compare_operators op1 op2 =
(function
| Access h1, Access h2 | Constr h1, Constr h2 -> Hstring.compare h1 h2
@@ -271,8 +287,8 @@
if c <> 0 then c
else compare_bounds_kind a.kind b.kind
---- alt-ergo-2.3.0/lib/structures/ty.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/ty.ml 2021-12-13 11:23:47.596913146 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/ty.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/ty.ml 2022-02-23 12:57:12.852376945 -0700
@@ -201,7 +201,7 @@ and shorten_body _ _ =
let rec compare t1 t2 =
@@ -316,8 +332,8 @@
module Set =
Set.Make(struct
---- alt-ergo-2.3.0/lib/structures/typed.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/typed.ml 2021-12-13 11:28:32.876709614 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/typed.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/typed.ml 2022-02-23 12:57:12.852376945 -0700
@@ -369,8 +369,8 @@ let fresh_hypothesis_name =
| _ -> "@L"^(string_of_int !cpt)
@@ -329,8 +345,8 @@
- try Pervasives.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
+ try Stdlib.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
---- alt-ergo-2.3.0/lib/structures/xliteral.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/structures/xliteral.ml 2021-12-13 11:27:49.604740495 -0700
+--- alt-ergo-2.3.0-free/sources/lib/structures/xliteral.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/structures/xliteral.ml 2022-02-23 12:57:12.852376945 -0700
@@ -103,7 +103,7 @@ module Make (X : OrderedType) : S with t
type t = { at : atom; neg : bool; tpos : int; tneg : int }
@@ -340,8 +356,8 @@
let equal a1 a2 = a1.tpos = a2.tpos (* XXX == *)
let hash a1 = a1.tpos
let uid a1 = a1.tpos
---- alt-ergo-2.3.0/lib/util/emap.mli.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/emap.mli 2021-12-13 11:20:53.277037515 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/emap.mli.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/emap.mli 2022-02-23 12:57:12.852376945 -0700
@@ -41,8 +41,8 @@
struct
type t = int * int
@@ -362,8 +378,8 @@
end
(** Input signature of the functor {!Map.Make}. *)
---- alt-ergo-2.3.0/lib/util/myUnix.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/myUnix.ml 2021-12-13 11:19:46.141085403 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/myUnix.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/myUnix.ml 2022-02-23 12:57:12.852376945 -0700
@@ -18,7 +18,7 @@ module Default_Unix = struct
let cur_time () = (times()).tms_utime
@@ -373,8 +389,8 @@
let itimer =
if is_gui then Unix.ITIMER_REAL (* troubles with VIRTUAL *)
else Unix.ITIMER_VIRTUAL
---- alt-ergo-2.3.0/lib/util/numbers.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/numbers.ml 2021-12-13 11:22:11.316981841 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/numbers.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/numbers.ml 2022-02-23 12:57:12.853376946 -0700
@@ -48,8 +48,8 @@ module Q = struct
else
let v = to_float q in
@@ -386,8 +402,8 @@
else v
in
let flt = if n = 2 then sqrt w else w ** (1. /. float n) in
---- alt-ergo-2.3.0/lib/util/options.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/options.ml 2021-12-13 11:21:27.477013115 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/options.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/options.ml 2022-02-23 12:57:12.853376946 -0700
@@ -957,7 +957,7 @@ let (>) (a: int) (b: int) = a > b
let (<=) (a: int) (b: int) = a <= b
let (>=) (a: int) (b: int) = a >= b
@@ -397,8 +413,8 @@
(* extra **)
---- alt-ergo-2.3.0/lib/util/util.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/util.ml 2021-12-13 11:20:25.717057175 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/util.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/util.ml 2022-02-23 12:57:12.853376946 -0700
@@ -83,7 +83,7 @@ let [@inline always] compare_algebraic s
let r1 = Obj.repr s1 in
let r2 = Obj.repr s2 in
@@ -408,8 +424,8 @@
| true, false -> -1
| false, true -> 1
| false, false ->
---- alt-ergo-2.3.0/lib/util/util.mli.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/util.mli 2021-12-13 11:20:10.341068143 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/util.mli.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/util.mli 2022-02-23 12:57:12.853376946 -0700
@@ -56,7 +56,7 @@ val string_of_th_ext : theories_extensio
(**
generic function for comparing algebraic data types.
@@ -419,8 +435,8 @@
*)
val [@inline always] compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
---- alt-ergo-2.3.0/lib/util/zarithNumbers.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/lib/util/zarithNumbers.ml 2021-12-13 11:19:11.821109879 -0700
+--- alt-ergo-2.3.0-free/sources/lib/util/zarithNumbers.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/zarithNumbers.ml 2022-02-23 12:57:12.853376946 -0700
@@ -153,7 +153,7 @@ module Q : NumbersInterface.QSig with mo
let floor t = from_z (Z.fdiv (num t) (den t))
let ceiling t = from_z (Z.cdiv (num t) (den t))
@@ -430,8 +446,8 @@
let num_pow = Z.power (num t) abs_n in
let den_pow = Z.power (den t) abs_n in
if n >= 0 then from_zz num_pow den_pow else from_zz den_pow num_pow
---- alt-ergo-2.3.0/parsers/parsers.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/parsers/parsers.ml 2021-12-13 11:16:42.461216342 -0700
+--- alt-ergo-2.3.0-free/sources/parsers/parsers.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/parsers/parsers.ml 2022-02-23 12:57:12.853376946 -0700
@@ -124,7 +124,7 @@ let parse_input_file file =
stdin, Lexing.from_string file_content, false, ext
else
@@ -441,8 +457,8 @@
let cin = open_in file in
cin, Lexing.from_channel cin, true, ext
else
---- alt-ergo-2.3.0/tools/gui/annoted_ast.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/tools/gui/annoted_ast.ml 2021-12-13 11:15:02.334287694 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml 2022-02-23 12:57:12.854376946 -0700
@@ -191,7 +191,7 @@ type annoted_node =
module MDep = Map.Make (
struct
@@ -492,8 +508,8 @@
)sl l
in
findtags_aform sl aaf.c acc
---- alt-ergo-2.3.0/tools/gui/connected_ast.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/tools/gui/connected_ast.ml 2021-12-13 11:16:16.069235150 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml 2022-02-23 12:57:12.854376946 -0700
@@ -388,7 +388,7 @@ let rec unquantify_aform (buffer:sbuffer
List.fold_left (fun (nbv, used, goal_used, ve, uplet, lets) v ->
let ((s, _) as v'), e = List.hd ve in
@@ -521,8 +537,8 @@
commit_tags_buffer sbuf
| _ -> assert false
end
---- alt-ergo-2.3.0/tools/gui/main_gui.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/tools/gui/main_gui.ml 2021-12-13 11:15:49.445254125 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml 2022-02-23 12:57:12.854376946 -0700
@@ -151,7 +151,7 @@ let save_session envs =
let save_dialog cancel envs () =
diff --git a/alt-ergo-psmt2-frontend.patch b/alt-ergo-psmt2-frontend.patch
index 1c58d9e..caa9af7 100644
--- a/alt-ergo-psmt2-frontend.patch
+++ b/alt-ergo-psmt2-frontend.patch
@@ -1,5 +1,5 @@
---- alt-ergo-2.3.0/parsers/psmt2_to_alt_ergo.ml.orig 2019-02-11 09:43:50.000000000 -0700
-+++ alt-ergo-2.3.0/parsers/psmt2_to_alt_ergo.ml 2021-12-13 13:45:45.216802816 -0700
+--- alt-ergo-2.3.0-free/sources/parsers/psmt2_to_alt_ergo.ml.orig 2021-06-29 06:08:30.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/parsers/psmt2_to_alt_ergo.ml 2022-02-23 12:59:13.497394356 -0700
@@ -403,6 +403,9 @@ module Translate = struct
| Cmd_Push _ -> not_supported "push"; assert false
| Cmd_Pop _ -> not_supported "pop"; assert false
diff --git a/alt-ergo.rpmlintrc b/alt-ergo.rpmlintrc
deleted file mode 100644
index 7a6e1a4..0000000
--- a/alt-ergo.rpmlintrc
+++ /dev/null
@@ -1,14 +0,0 @@
-# THIS FILE IS FOR WHITELISTING RPMLINT ERRORS AND WARNINGS IN TASKOTRON
-# https://fedoraproject.org/wiki/Taskotron/Tasks/dist.rpmlint#Whitelisting_errors
-
-# The dictionary lacks some technical words
-addFilter(r'W: spelling-error .* (arithmetics|equational|instantiation|parameterized|prover)')
-
-# Caused by ocaml; this package cannot fix it
-addFilter(r'alt-ergo(-gui)?\.[^:]+: E: missing-call-to-chdir-with-chroot')
-
-# Documentation is in the main package
-addFilter(r'alt-ergo-gui\.[^:]+: W: no-documentation')
-
-# There is no man page for the graphical launcher
-addFilter(r'alt-ergo-gui\.[^:]+: W: no-manual-page-for-binary altgr-ergo')
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 5cecc07..0c15271 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -1,20 +1,21 @@
-%undefine _package_note_flags
# 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.
+%undefine _package_note_flags
+
%ifnarch %{ocaml_native_compiler}
%global debug_package %{nil}
%endif
Name: alt-ergo
Version: 2.3.0
-Release: 3%{?dist}
+Release: 4%{?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
+Source0: https://alt-ergo.ocamlpro.com/http/%{name}-free-%{version}/%{name}-free-%{version}.tar.gz
# Created with gimp from official upstream icon
Source1: %{name}-icons.tar.xz
Source2: %{name}.desktop
@@ -30,7 +31,6 @@ BuildRequires: gtksourceview2-devel
BuildRequires: make
BuildRequires: ocaml >= 4.04.0
BuildRequires: ocaml-dune
-BuildRequires: ocaml-findlib
BuildRequires: ocaml-lablgtk-devel
BuildRequires: ocaml-menhir
BuildRequires: ocaml-num-devel
@@ -74,6 +74,7 @@ This package contains the parser library used by the Alt-Ergo SMT solver.
%package -n ocaml-alt-ergo-parsers-devel
Summary: Development files for ocaml-alt-ergo-parsers
+Requires: ocaml-alt-ergo-parsers%{?_isa} = %{version}-%{release}
Requires: ocaml-alt-ergo-lib-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-psmt2-frontend-devel%{?_isa}
Requires: ocaml-zip-devel%{?_isa}
@@ -104,8 +105,9 @@ This package contains development files needed to build applications
that use the Alt-Ergo library.
%prep
-%autosetup -p1 -a 1
+%autosetup -n %{name}-%{version}-free -p1 -a 1
+cd sources
cp -p %{SOURCE2} com.ocamlpro.%{name}.desktop
# Unzip an example
@@ -116,11 +118,13 @@ cd -
%build
# This is not an autoconf-generated script. Do NOT use %%configure.
+cd sources
./configure --prefix=%{_prefix} --libdir=%{_libdir}/ocaml --sharedir=%{_datadir}
%make_build
%make_build doc
%install
+cd sources
%make_install
# We do not want the dune markers
@@ -160,15 +164,17 @@ appstreamcli validate --no-net \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
# Install the icons
+cd -
mkdir -p %{buildroot}%{_datadir}/icons
cp -a icons %{buildroot}%{_datadir}/icons/hicolor
%check
-dune runtest --profile release
+cd sources
+dune runtest --release
%files
-%doc README.md CHANGES examples
-%license COPYING.md LICENSE.md
+%doc README.md sources/CHANGES sources/examples publications/*.pdf
+%license COPYING.md LICENSE.md License.OCamlPro
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
%{_libdir}/ocaml/%{name}/
@@ -212,7 +218,7 @@ dune runtest --profile release
%endif
%files -n ocaml-%{name}-lib-devel
-%doc _build/default/_doc/*
+%doc sources/_build/default/_doc/*
%{_libdir}/ocaml/%{name}-lib/dune-package
%{_libdir}/ocaml/%{name}-lib/opam
%ifarch %{ocaml_native_compiler}
@@ -225,6 +231,11 @@ dune runtest --profile release
%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Mon Feb 28 2022 Jerry James - 2.3.0-4
+- Switch to the correct tarball
+- Drop unneeded ocaml-findlib BR
+- Add dependency on ocaml-alt-ergo-parsers from ocaml-alt-ergo-parsers-devel
+
* Fri Feb 04 2022 Richard W.M. Jones - 2.3.0-3
- OCaml 4.13.1 rebuild to remove package notes
diff --git a/sources b/sources
index f5aec05..56b9730 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (alt-ergo-2.3.0.tar.gz) = a2f209b62b8494bfefe84328cdc786185e0534c5e224e212b83045b078352a51d2ab02622f72c22c74c7de95c7a554cbdae2a9a8a0c41f3f26c841f8c72f6b21
+SHA512 (alt-ergo-free-2.3.0.tar.gz) = e15efc6bbde59065c6ccaf1ef2f8158b8b9be4b00b2c2365e5eeb7d7114be72c47c813fc06880a6278edd7e288f24ef4588c88e0630d9bda9378a3eda3fd07ca
SHA512 (alt-ergo-icons.tar.xz) = cb2e93bab3359f6f198e80e3e68840ed4b25a213b61f388a2de8abc299fd3c89240f64f610290ac89e6005088c484b2718a68ec18063076f73d7871a38ee038f
From 5f6eee8592100c36eee8bbde19b5db0950ea3992 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Sun, 19 Jun 2022 13:28:13 +0100
Subject: [PATCH 40/77] OCaml 4.14.0 rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 0c15271..c1413a7 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -10,7 +10,7 @@
Name: alt-ergo
Version: 2.3.0
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -231,6 +231,9 @@ dune runtest --release
%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Sun Jun 19 2022 Richard W.M. Jones - 2.3.0-5
+- OCaml 4.14.0 rebuild
+
* Mon Feb 28 2022 Jerry James - 2.3.0-4
- Switch to the correct tarball
- Drop unneeded ocaml-findlib BR
From cf26b7fc7efef5894e9e3b2814589a49147e7883 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 21 Jun 2022 09:01:13 -0600
Subject: [PATCH 41/77] Version 2.3.3.
- Add -menhir patch to fix FTBFS.
- Add -stdlib-shims patch since Fedora does not need stdlib-shims.
---
alt-ergo-menhir.patch | 18 ++
alt-ergo-pervasives.patch | 455 +-----------------------------------
alt-ergo-stdlib-shims.patch | 42 ++++
alt-ergo.spec | 61 +++--
sources | 1 +
5 files changed, 113 insertions(+), 464 deletions(-)
create mode 100644 alt-ergo-menhir.patch
create mode 100644 alt-ergo-stdlib-shims.patch
diff --git a/alt-ergo-menhir.patch b/alt-ergo-menhir.patch
new file mode 100644
index 0000000..4ab3e45
--- /dev/null
+++ b/alt-ergo-menhir.patch
@@ -0,0 +1,18 @@
+--- alt-ergo-2.3.0-free/sources/plugins/AB-Why3/dune.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/plugins/AB-Why3/dune 2022-06-20 13:27:36.662944620 -0600
+@@ -3,13 +3,13 @@
+
+ (menhir
+ (infer false)
+- (flags --fixed-exception)
++ (flags --fixed-exception --table)
+ (modules why3_parser)
+ )
+
+ (library
+ (name ABWhy3Plugin)
+- (libraries alt-ergo-lib alt-ergo-parsers)
++ (libraries alt-ergo-lib alt-ergo-parsers menhirLib)
+ (modules Why3_lexer Why3_parser Why3_loc Why3_ptree)
+ )
+
diff --git a/alt-ergo-pervasives.patch b/alt-ergo-pervasives.patch
index 4c0a255..bd72f54 100644
--- a/alt-ergo-pervasives.patch
+++ b/alt-ergo-pervasives.patch
@@ -14,451 +14,8 @@
close_out cout
---- alt-ergo-2.3.0-free/sources/lib/frontend/typechecker.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/frontend/typechecker.ml 2022-02-23 12:57:12.849376944 -0700
-@@ -37,7 +37,7 @@ module S = Set.Make(String)
- module HSS = Hstring.Set
-
- module MString =
-- Map.Make(struct type t = string let compare = Pervasives.compare end)
-+ Map.Make(struct type t = string let compare = Stdlib.compare end)
-
- module Types = struct
-
-@@ -86,7 +86,7 @@ module Types = struct
- List.for_all2
- (fun pp x ->
- match pp with
-- | PPTvarid (y, _) -> Pervasives.(=) x y
-+ | PPTvarid (y, _) -> Stdlib.(=) x y
- | _ -> false
- ) lpp lvars
- with Invalid_argument _ -> false
-@@ -105,7 +105,7 @@ module Types = struct
- to_tyvars := MString.add s nty !to_tyvars;
- nty
- end
-- | PPTexternal (l, s, loc) when Pervasives.(=) s "farray" ->
-+ | PPTexternal (l, s, loc) when Stdlib.(=) s "farray" ->
- let t1,t2 = match l with
- | [t2] -> PPTint,t2
- | [t1;t2] -> t1,t2
-@@ -116,7 +116,7 @@ module Types = struct
- | PPTexternal (l, s, loc) ->
- begin
- match rectype with
-- | Some (id, vars, ty) when Pervasives.(=) s id &&
-+ | Some (id, vars, ty) when Stdlib.(=) s id &&
- equal_pp_vars l vars -> ty
- | _ ->
- try
---- alt-ergo-2.3.0-free/sources/lib/reasoners/fun_sat.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/reasoners/fun_sat.ml 2022-02-23 12:57:12.849376944 -0700
-@@ -75,7 +75,7 @@ module Make (Th : Theory.S) : Sat_solver
- SE.fold
- (fun f mp ->
- let w = var_inc +. try ME.find f mp with Not_found -> 0. in
-- stable := !stable && Pervasives.(<=) w 1e100;
-+ stable := !stable && Stdlib.(<=) w 1e100;
- ME.add f w mp
- )(Ex.bj_formulas_of expl) mp
- in
-@@ -118,9 +118,9 @@ module Make (Th : Theory.S) : Sat_solver
- let dec =
- List.fast_sort
- (fun (_, x1, b1) (_, x2, b2) ->
-- let c = Pervasives.compare b2 b1 in
-+ let c = Stdlib.compare b2 b1 in
- if c <> 0 then c
-- else Pervasives.compare x2 x1
-+ else Stdlib.compare x2 x1
- )dec
- in
- (*
-@@ -1171,7 +1171,7 @@ module Make (Th : Theory.S) : Sat_solver
- let i = abs (interpretation ()) in
- assert (i = 1 || i = 2 || i = 3);
- if not !(env.model_gen_mode) &&
-- Pervasives.(<>) (Options.interpretation_timelimit ()) 0. then
-+ Stdlib.(<>) (Options.interpretation_timelimit ()) 0. then
- begin
- Options.Time.unset_timeout ~is_gui:(Options.get_is_gui());
- Options.Time.set_timeout
---- alt-ergo-2.3.0-free/sources/lib/reasoners/ite_rel.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/reasoners/ite_rel.ml 2022-02-23 12:57:12.850376945 -0700
-@@ -32,7 +32,7 @@ module TB =
- type t = E.t * bool
- let compare (a1, b1) (a2, b2) =
- let c = E.compare a1 a2 in
-- if c <> 0 then c else Pervasives.compare b1 b2
-+ if c <> 0 then c else Stdlib.compare b1 b2
- end)
-
- type t =
---- alt-ergo-2.3.0-free/sources/lib/reasoners/satml_frontend.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/reasoners/satml_frontend.ml 2022-02-23 12:57:12.850376945 -0700
-@@ -508,7 +508,7 @@ module Make (Th : Theory.S) : Sat_solver
- if res <> 0 then res
- else
- (* higher weight is better hence compare w2 w1 *)
-- let res = Pervasives.compare w2 w1 in
-+ let res = Stdlib.compare w2 w1 in
- if res <> 0 then res
- else
- (* lower index is better *)
-@@ -844,7 +844,7 @@ module Make (Th : Theory.S) : Sat_solver
- }
-
- let normal_mconf () =
-- {Util.nb_triggers = Pervasives.max 2 (nb_triggers () * 2);
-+ {Util.nb_triggers = Stdlib.max 2 (nb_triggers () * 2);
- no_ematching = no_Ematching();
- triggers_var = triggers_var ();
- use_cs = false;
-@@ -853,7 +853,7 @@ module Make (Th : Theory.S) : Sat_solver
- }
-
- let greedy_mconf () =
-- {Util.nb_triggers = Pervasives.max 10 (nb_triggers () * 10);
-+ {Util.nb_triggers = Stdlib.max 10 (nb_triggers () * 10);
- no_ematching = false;
- triggers_var = true;
- use_cs = true;
-@@ -951,7 +951,7 @@ module Make (Th : Theory.S) : Sat_solver
-
- (* copied from sat_solvers.ml *)
- let max_term_depth_in_sat env =
-- let aux mx f = Pervasives.max mx (E.depth f) in
-+ let aux mx f = Stdlib.max mx (E.depth f) in
- let max_t = ME.fold (fun f _ mx -> aux mx f) env.gamma 0 in
- ME.fold (fun _ ({ E.ff = f; _ }, _) mx -> aux mx f) env.ground_preds max_t
-
---- alt-ergo-2.3.0-free/sources/lib/reasoners/satml.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/reasoners/satml.ml 2022-02-23 12:57:12.850376945 -0700
-@@ -361,7 +361,7 @@ module Make (Th : Theory.S) : SAT_ML wit
- *)
-
- let f_weight env i j =
-- Pervasives.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
-+ Stdlib.(<) (Vec.get env.vars j).weight (Vec.get env.vars i).weight
-
- (* unused -- let f_filter env i = (Vec.get env.vars i).level < 0 *)
-
-@@ -375,7 +375,7 @@ module Make (Th : Theory.S) : SAT_ML wit
-
- let var_bump_activity env v =
- v.weight <- v.weight +. env.var_inc;
-- if Pervasives.(>) v.weight 1e100 then begin
-+ if Stdlib.(>) v.weight 1e100 then begin
- for i = 0 to env.vars.Vec.sz - 1 do
- (Vec.get env.vars i).weight <- (Vec.get env.vars i).weight *. 1e-100
- done;
-@@ -387,7 +387,7 @@ module Make (Th : Theory.S) : SAT_ML wit
-
- let clause_bump_activity env c =
- c.activity <- c.activity +. env.clause_inc;
-- if Pervasives.(>) c.activity 1e20 then begin
-+ if Stdlib.(>) c.activity 1e20 then begin
- for i = 0 to env.learnts.Vec.sz - 1 do
- (Vec.get env.learnts i).activity <-
- (Vec.get env.learnts i).activity *. 1e-20;
---- alt-ergo-2.3.0-free/sources/lib/structures/expr.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/expr.ml 2022-02-23 12:57:12.851376945 -0700
-@@ -1031,7 +1031,7 @@ let mk_builtin ~is_pos n l =
- (** Substitutions *)
-
- let is_skolem_cst v =
-- try Pervasives.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
-+ try Stdlib.(=) (String.sub (Sy.to_string v.f) 0 4) "_sko"
- with Invalid_argument _ -> false
-
- let get_skolem =
-@@ -1669,9 +1669,9 @@ module Triggers = struct
- | { f = (Name _) as s1; xs=tl1; _ }, { f = (Name _) as s2; xs=tl2; _ } ->
- let l1 = List.map score_term tl1 in
- let l2 = List.map score_term tl2 in
-- let l1 = List.fast_sort Pervasives.compare l1 in
-- let l2 = List.fast_sort Pervasives.compare l2 in
-- let c = Util.cmp_lists l1 l2 Pervasives.compare in
-+ let l1 = List.fast_sort Stdlib.compare l1 in
-+ let l2 = List.fast_sort Stdlib.compare l2 in
-+ let c = Util.cmp_lists l1 l2 Stdlib.compare in
- if c <> 0 then c
- else
- let c = Sy.compare s1 s2 in
-@@ -1702,7 +1702,7 @@ module Triggers = struct
-
- | { f = Op (Access a1) ; xs=[t1]; _ },
- { f = Op (Access a2) ; xs=[t2]; _ } ->
-- let c = Pervasives.compare a1 a2 in (* should be Hstring.compare *)
-+ let c = Stdlib.compare a1 a2 in (* should be Hstring.compare *)
- if c<>0 then c else cmp_trig_term t1 t2
-
- | { f = Op (Access _); _ }, _ -> -1
-@@ -1710,7 +1710,7 @@ module Triggers = struct
-
- | { f = Op (Destruct (_,a1)) ; xs = [t1]; _ },
- { f = Op (Destruct (_,a2)) ; xs = [t2]; _ } ->
-- let c = Pervasives.compare a1 a2 in (* should be Hstring.compare *)
-+ let c = Stdlib.compare a1 a2 in (* should be Hstring.compare *)
- if c<>0 then c else cmp_trig_term t1 t2
-
- | { f = Op (Destruct _); _ }, _ -> -1
-@@ -1725,9 +1725,9 @@ module Triggers = struct
- (* ops that are not infix or prefix *)
- let l1 = List.map score_term tl1 in
- let l2 = List.map score_term tl2 in
-- let l1 = List.fast_sort Pervasives.compare l1 in
-- let l2 = List.fast_sort Pervasives.compare l2 in
-- let c = Util.cmp_lists l1 l2 Pervasives.compare in
-+ let l1 = List.fast_sort Stdlib.compare l1 in
-+ let l2 = List.fast_sort Stdlib.compare l2 in
-+ let c = Util.cmp_lists l1 l2 Stdlib.compare in
- if c <> 0 then c
- else
- let c = Sy.compare s1 s2 in
-@@ -1741,9 +1741,9 @@ module Triggers = struct
- let cmp_trig_term_list tl2 tl1 =
- let l1 = List.map score_term tl1 in
- let l2 = List.map score_term tl2 in
-- let l1 = List.rev (List.fast_sort Pervasives.compare l1) in
-- let l2 = List.rev (List.fast_sort Pervasives.compare l2) in
-- let c = Util.cmp_lists l1 l2 Pervasives.compare in
-+ let l1 = List.rev (List.fast_sort Stdlib.compare l1) in
-+ let l2 = List.rev (List.fast_sort Stdlib.compare l2) in
-+ let c = Util.cmp_lists l1 l2 Stdlib.compare in
- if c <> 0 then c else Util.cmp_lists tl1 tl2 cmp_trig_term
-
- let unique_stable_sort =
---- alt-ergo-2.3.0-free/sources/lib/structures/profiling.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/profiling.ml 2022-02-23 12:57:12.851376945 -0700
-@@ -85,7 +85,7 @@ let state =
- let set_sigprof () =
- let tm =
- let v = Options.profiling_period () in
-- if Pervasives.(>) v 0. then v else -. v
-+ if Stdlib.(>) v 0. then v else -. v
- in
- ignore
- (Unix.setitimer Unix.ITIMER_PROF
-@@ -629,9 +629,9 @@ let switch () =
-
-
- let float_print fmt v =
-- if Pervasives.(=) v 0. then fprintf fmt "-- "
-- else if Pervasives.(<) v 10. then fprintf fmt "%0.5f" v
-- else if Pervasives.(<) v 100. then fprintf fmt "%0.4f" v
-+ if Stdlib.(=) v 0. then fprintf fmt "-- "
-+ else if Stdlib.(<) v 10. then fprintf fmt "%0.5f" v
-+ else if Stdlib.(<) v 100. then fprintf fmt "%0.4f" v
- else fprintf fmt "%0.3f" v
-
- let line_of_module arr f =
---- alt-ergo-2.3.0-free/sources/lib/structures/symbols.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/symbols.ml 2022-02-23 12:57:12.851376945 -0700
-@@ -124,7 +124,7 @@ let compare_operators op1 op2 =
- (function
- | Access h1, Access h2 | Constr h1, Constr h2 -> Hstring.compare h1 h2
- | Destruct (h1, b1), Destruct(h2, b2) ->
-- let c = Pervasives.compare b1 b2 in
-+ let c = Stdlib.compare b1 b2 in
- if c <> 0 then c else Hstring.compare h1 h2
- | _ , (Plus | Minus | Mult | Div | Modulo
- | Concat | Extract | Get | Set | Fixed | Float | Reach
-@@ -155,7 +155,7 @@ let compare_forms f1 f2 =
- Util.compare_algebraic f1 f2
- (function
- | F_Unit b1, F_Unit b2
-- | F_Clause b1, F_Clause b2 -> Pervasives.compare b1 b2
-+ | F_Clause b1, F_Clause b2 -> Stdlib.compare b1 b2
- | _, (F_Unit _ | F_Clause _ | F_Lemma | F_Skolem
- | F_Iff | F_Xor) ->
- assert false
-@@ -173,10 +173,10 @@ let compare_bounds a b =
- let c = Ty.compare a.sort b.sort in
- if c <> 0 then c
- else
-- let c = Pervasives.compare a.is_open b.is_open in
-+ let c = Stdlib.compare a.is_open b.is_open in
- if c <> 0 then c
- else
-- let c = Pervasives.compare a.is_lower b.is_lower in
-+ let c = Stdlib.compare a.is_lower b.is_lower in
- if c <> 0 then c
- else compare_bounds_kind a.kind b.kind
-
---- alt-ergo-2.3.0-free/sources/lib/structures/ty.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/ty.ml 2022-02-23 12:57:12.852376945 -0700
-@@ -201,7 +201,7 @@ and shorten_body _ _ =
-
- let rec compare t1 t2 =
- match shorten t1 , shorten t2 with
-- | Tvar{ v = v1; _ } , Tvar{ v = v2; _ } -> Pervasives.compare v1 v2
-+ | Tvar{ v = v1; _ } , Tvar{ v = v2; _ } -> Stdlib.compare v1 v2
- | Tvar _, _ -> -1 | _ , Tvar _ -> 1
- | Text(l1, s1) , Text(l2, s2) ->
- let c = Hstring.compare s1 s2 in
-@@ -234,7 +234,7 @@ let rec compare t1 t2 =
-
- | Tadt _, _ -> -1 | _ , Tadt _ -> 1
-
-- | t1 , t2 -> Pervasives.compare t1 t2
-+ | t1 , t2 -> Stdlib.compare t1 t2
-
-
- and compare_list l1 l2 = match l1, l2 with
-@@ -278,7 +278,7 @@ let rec equal t1 t2 =
- | _ -> false
-
- (*** matching with a substitution mechanism ***)
--module M = Map.Make(struct type t=int let compare = Pervasives.compare end)
-+module M = Map.Make(struct type t=int let compare = Stdlib.compare end)
- type subst = t M.t
-
- let esubst = M.empty
-@@ -602,12 +602,12 @@ let instantiate lvar lty ty =
- let union_subst s1 s2 =
- M.fold (fun k x s2 -> M.add k x s2) (M.map (apply_subst s2) s1) s2
-
--let compare_subst = M.compare Pervasives.compare
-+let compare_subst = M.compare Stdlib.compare
-
--let equal_subst = M.equal Pervasives.(=)
-+let equal_subst = M.equal Stdlib.(=)
-
- module Svty =
-- Set.Make(struct type t = int let compare = Pervasives.compare end)
-+ Set.Make(struct type t = int let compare = Stdlib.compare end)
-
- module Set =
- Set.Make(struct
---- alt-ergo-2.3.0-free/sources/lib/structures/typed.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/typed.ml 2022-02-23 12:57:12.852376945 -0700
-@@ -369,8 +369,8 @@ let fresh_hypothesis_name =
- | _ -> "@L"^(string_of_int !cpt)
-
- let is_local_hyp s =
-- try Pervasives.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
-+ try Stdlib.(=) (String.sub s 0 2) "@L" with Invalid_argument _ -> false
-
- let is_global_hyp s =
-- try Pervasives.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
-+ try Stdlib.(=) (String.sub s 0 2) "@H" with Invalid_argument _ -> false
-
---- alt-ergo-2.3.0-free/sources/lib/structures/xliteral.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/structures/xliteral.ml 2022-02-23 12:57:12.852376945 -0700
-@@ -103,7 +103,7 @@ module Make (X : OrderedType) : S with t
-
- type t = { at : atom; neg : bool; tpos : int; tneg : int }
-
-- let compare a1 a2 = Pervasives.compare a1.tpos a2.tpos
-+ let compare a1 a2 = Stdlib.compare a1.tpos a2.tpos
- let equal a1 a2 = a1.tpos = a2.tpos (* XXX == *)
- let hash a1 = a1.tpos
- let uid a1 = a1.tpos
---- alt-ergo-2.3.0-free/sources/lib/util/emap.mli.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/emap.mli 2022-02-23 12:57:12.852376945 -0700
-@@ -41,8 +41,8 @@
- struct
- type t = int * int
- let compare (x0,y0) (x1,y1) =
-- match Pervasives.compare x0 x1 with
-- 0 -> Pervasives.compare y0 y1
-+ match Stdlib.compare x0 x1 with
-+ 0 -> Stdlib.compare y0 y1
- | c -> c
- end
-
-@@ -68,7 +68,7 @@ sig
- [f e1 e2] is strictly negative if [e1] is smaller than [e2],
- and [f e1 e2] is strictly positive if [e1] is greater than [e2].
- Example: a suitable ordering function is the generic structural
-- comparison function {!Pervasives.compare}. *)
-+ comparison function {!Stdlib.compare}. *)
- end
- (** Input signature of the functor {!Map.Make}. *)
-
---- alt-ergo-2.3.0-free/sources/lib/util/myUnix.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/myUnix.ml 2022-02-23 12:57:12.852376945 -0700
-@@ -18,7 +18,7 @@ module Default_Unix = struct
- let cur_time () = (times()).tms_utime
-
- let set_timeout ~is_gui timelimit =
-- if Pervasives.(<>) timelimit 0. then
-+ if Stdlib.(<>) timelimit 0. then
- let itimer =
- if is_gui then Unix.ITIMER_REAL (* troubles with VIRTUAL *)
- else Unix.ITIMER_VIRTUAL
---- alt-ergo-2.3.0-free/sources/lib/util/numbers.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/numbers.ml 2022-02-23 12:57:12.853376946 -0700
-@@ -48,8 +48,8 @@ module Q = struct
- else
- let v = to_float q in
- let w =
-- if Pervasives.(<) v min_float then min_float
-- else if Pervasives.(>) v max_float then max_float
-+ if Stdlib.(<) v min_float then min_float
-+ else if Stdlib.(>) v max_float then max_float
- else v
- in
- let flt = if n = 2 then sqrt w else w ** (1. /. float n) in
---- alt-ergo-2.3.0-free/sources/lib/util/options.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/options.ml 2022-02-23 12:57:12.853376946 -0700
-@@ -957,7 +957,7 @@ let (>) (a: int) (b: int) = a > b
- let (<=) (a: int) (b: int) = a <= b
- let (>=) (a: int) (b: int) = a >= b
-
--let compare (a: int) (b: int) = Pervasives.compare a b
-+let compare (a: int) (b: int) = Stdlib.compare a b
-
-
- (* extra **)
---- alt-ergo-2.3.0-free/sources/lib/util/util.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/util.ml 2022-02-23 12:57:12.853376946 -0700
-@@ -83,7 +83,7 @@ let [@inline always] compare_algebraic s
- let r1 = Obj.repr s1 in
- let r2 = Obj.repr s2 in
- match Obj.is_int r1, Obj.is_int r2 with
-- | true, true -> Pervasives.compare s1 s2 (* both constructors without args *)
-+ | true, true -> Stdlib.compare s1 s2 (* both constructors without args *)
- | true, false -> -1
- | false, true -> 1
- | false, false ->
---- alt-ergo-2.3.0-free/sources/lib/util/util.mli.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/util.mli 2022-02-23 12:57:12.853376946 -0700
-@@ -56,7 +56,7 @@ val string_of_th_ext : theories_extensio
- (**
- generic function for comparing algebraic data types.
- [compare_algebraic a b f]
-- - Pervasives.compare a b is used if
-+ - Stdlib.compare a b is used if
-
- *)
- val [@inline always] compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
---- alt-ergo-2.3.0-free/sources/lib/util/zarithNumbers.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/util/zarithNumbers.ml 2022-02-23 12:57:12.853376946 -0700
-@@ -153,7 +153,7 @@ module Q : NumbersInterface.QSig with mo
- let floor t = from_z (Z.fdiv (num t) (den t))
- let ceiling t = from_z (Z.cdiv (num t) (den t))
- let power t n =
-- let abs_n = Pervasives.abs n in
-+ let abs_n = Stdlib.abs n in
- let num_pow = Z.power (num t) abs_n in
- let den_pow = Z.power (den t) abs_n in
- if n >= 0 then from_zz num_pow den_pow else from_zz den_pow num_pow
---- alt-ergo-2.3.0-free/sources/parsers/parsers.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/parsers/parsers.ml 2022-02-23 12:57:12.853376946 -0700
-@@ -124,7 +124,7 @@ let parse_input_file file =
- stdin, Lexing.from_string file_content, false, ext
- else
- let ext = Filename.extension file in
-- if Pervasives.(<>) file "" then
-+ if Stdlib.(<>) file "" then
- let cin = open_in file in
- cin, Lexing.from_channel cin, true, ext
- else
---- alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml 2022-02-23 12:57:12.854376946 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/annoted_ast.ml 2022-06-18 16:08:13.053310654 -0600
@@ -191,7 +191,7 @@ type annoted_node =
module MDep = Map.Make (
struct
@@ -508,8 +65,8 @@
)sl l
in
findtags_aform sl aaf.c acc
---- alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml 2022-02-23 12:57:12.854376946 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/connected_ast.ml 2022-06-18 16:08:37.469375133 -0600
@@ -388,7 +388,7 @@ let rec unquantify_aform (buffer:sbuffer
List.fold_left (fun (nbv, used, goal_used, ve, uplet, lets) v ->
let ((s, _) as v'), e = List.hd ve in
@@ -537,8 +94,8 @@
commit_tags_buffer sbuf
| _ -> assert false
end
---- alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml.orig 2021-06-29 06:08:30.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml 2022-02-23 12:57:12.854376946 -0700
+--- alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/tools/gui/main_gui.ml 2022-06-18 16:09:14.324472461 -0600
@@ -151,7 +151,7 @@ let save_session envs =
let save_dialog cancel envs () =
diff --git a/alt-ergo-stdlib-shims.patch b/alt-ergo-stdlib-shims.patch
new file mode 100644
index 0000000..5f266df
--- /dev/null
+++ b/alt-ergo-stdlib-shims.patch
@@ -0,0 +1,42 @@
+--- alt-ergo-2.3.0-free/sources/alt-ergo-lib-free.opam.orig 2022-05-20 03:15:57.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/alt-ergo-lib-free.opam 2022-06-18 16:35:11.569523676 -0600
+@@ -16,7 +16,6 @@ depends: [
+ "ocplib-simplex" {>= "0.4" }
+ "zarith"
+ "seq"
+- "stdlib-shims"
+ ]
+ conflicts: [
+ "alt-ergo"
+--- alt-ergo-2.3.0-free/sources/alt-ergo-parsers-free.opam.orig 2022-05-20 03:16:01.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/alt-ergo-parsers-free.opam 2022-06-18 16:35:52.177624279 -0600
+@@ -16,7 +16,6 @@ depends: [
+ "psmt2-frontend" { >= "0.2" & < "0.4" }
+ "camlzip"
+ "menhir" { < "20210310" }
+- "stdlib-shims"
+ ]
+ conflicts: [
+ "alt-ergo-parsers"
+--- alt-ergo-2.3.0-free/sources/lib/dune.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/dune 2022-06-18 16:34:45.634456726 -0600
+@@ -9,7 +9,7 @@
+ (public_name alt-ergo-lib)
+
+ ; external dependencies
+- (libraries seq unix num str zarith dynlink ocplib-simplex stdlib-shims)
++ (libraries seq unix num str zarith dynlink ocplib-simplex)
+
+ ; .mli only modules *also* need to be in this field
+ (modules_without_implementation matching_types numbersInterface sig sig_rel)
+--- alt-ergo-2.3.0-free/sources/parsers/dune.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/parsers/dune 2022-06-18 16:36:07.177661183 -0600
+@@ -14,7 +14,7 @@
+ (library
+ (name AltErgoParsers)
+ (public_name alt-ergo-parsers)
+- (libraries camlzip dynlink psmt2-frontend alt-ergo-lib stdlib-shims)
++ (libraries camlzip dynlink psmt2-frontend alt-ergo-lib)
+ (modules
+ ; common
+ Parsers Parsers_loader MyZip
diff --git a/alt-ergo.spec b/alt-ergo.spec
index c1413a7..79fa381 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -8,22 +8,39 @@
%global debug_package %{nil}
%endif
+# The major and minor releases contain a full tarball. Patch releases, however,
+# contain only the parts that have changed, typically just the sources
+# directory. Use this to set up everything up appropriately.
+%global minorver 2.3
+%global patchrel 3
+
Name: alt-ergo
-Version: 2.3.0
-Release: 5%{?dist}
+Version: %{minorver}.%{patchrel}
+Release: 1%{?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}-free-%{version}/%{name}-free-%{version}.tar.gz
+# The patch releases contain only the sources directory. The other files come
+# from the minor releases.
+Source0: https://alt-ergo.ocamlpro.com/http/%{name}-free-%{minorver}.0/%{name}-free-%{minorver}.0.tar.gz
+%if 0%{?patchrel} > 0
+Source1: https://alt-ergo.ocamlpro.com/http/%{name}-free-%{version}/%{name}-free-%{version}.tar.gz
+%endif
# Created with gimp from official upstream icon
-Source1: %{name}-icons.tar.xz
-Source2: %{name}.desktop
-Source3: %{name}.metainfo.xml
+Source2: %{name}-icons.tar.xz
+Source3: %{name}.desktop
+Source4: %{name}.metainfo.xml
# Do not use the deprecated Pervasives interface
Patch0: %{name}-pervasives.patch
# Adapt to recent changes in psmt2-frontend
Patch1: %{name}-psmt2-frontend.patch
+# Temporarily use the menhir table backend instead of the code backend for the
+# AB plugin. Menhir is unable to infer types with the current code and layout.
+# Check each new release to see if this is still necessary.
+Patch2: %{name}-menhir.patch
+# Fedora does not have or need the forward compatibility stdlib-shims package
+Patch3: %{name}-stdlib-shims.patch
BuildRequires: appstream
BuildRequires: desktop-file-utils
@@ -105,10 +122,17 @@ This package contains development files needed to build applications
that use the Alt-Ergo library.
%prep
-%autosetup -n %{name}-%{version}-free -p1 -a 1
+%autosetup -n %{name}-%{minorver}.0-free -N -a 2
+%if 0%{?patchrel} > 0
+# See above. Replace the minor release sources with the patch release sources.
+rm -rf sources
+tar xf %{SOURCE1}
+%endif
+
+%autopatch -p1
cd sources
-cp -p %{SOURCE2} com.ocamlpro.%{name}.desktop
+cp -p %{SOURCE3} com.ocamlpro.%{name}.desktop
# Unzip an example
cd examples/AB-Why3-plugin
@@ -119,7 +143,7 @@ cd -
%build
# This is not an autoconf-generated script. Do NOT use %%configure.
cd sources
-./configure --prefix=%{_prefix} --libdir=%{_libdir}/ocaml --sharedir=%{_datadir}
+./configure --prefix=%{_prefix} --libdir=%{_libdir}/ocaml --sharedir=%{_libdir}/ocaml
%make_build
%make_build doc
@@ -140,11 +164,10 @@ rm -fr %{buildroot}%{_prefix}/doc
mkdir -p %{buildroot}%{_mandir}/man1
cp -p doc/alt-ergo.1 %{buildroot}%{_mandir}/man1
-# Make the plugins directory
-mkdir -p %{buildroot}%{_libdir}/ocaml/%{name}/plugins
-
-# Install the preludes
-cp -a preludes %{buildroot}%{_libdir}/ocaml/%{name}
+# The install target in the Makefile puts these in the wrong place
+mv %{buildroot}%{_datadir}/alt-ergo/{plugins,preludes} \
+ %{buildroot}%{_libdir}/ocaml/alt-ergo
+rmdir %{buildroot}%{_datadir}/alt-ergo
# Install the gtksourceview file
mkdir -p %{buildroot}%{_datadir}/gtksourceview-2.0/language-specs
@@ -158,7 +181,7 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications \
# Install the AppData file
mkdir -p %{buildroot}%{_metainfodir}
-install -pm 644 %{SOURCE3} \
+install -pm 644 %{SOURCE4} \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
appstreamcli validate --no-net \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
@@ -178,6 +201,7 @@ dune runtest --release
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
%{_libdir}/ocaml/%{name}/
+%{_libdir}/ocaml/%{name}-free/
%files gui
%{_bindir}/altgr-ergo
@@ -195,6 +219,7 @@ dune runtest --release
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/%{name}-parsers/*.cmxs
%endif
+%{_libdir}/ocaml/%{name}-parsers-free/
%files -n ocaml-%{name}-parsers-devel
%{_libdir}/ocaml/%{name}-parsers/dune-package
@@ -216,6 +241,7 @@ dune runtest --release
%ifarch %{ocaml_native_compiler}
%{_libdir}/ocaml/%{name}-lib/*.cmxs
%endif
+%{_libdir}/ocaml/%{name}-lib-free/
%files -n ocaml-%{name}-lib-devel
%doc sources/_build/default/_doc/*
@@ -231,6 +257,11 @@ dune runtest --release
%{_libdir}/ocaml/%{name}-lib/*.cmti
%changelog
+* Mon Jun 20 2022 Jerry James - 2.3.3-1
+- Version 2.3.3
+- Add -menhir patch to fix FTBFS
+- Add -stdlib-shims patch since Fedora does not need stdlib-shims
+
* Sun Jun 19 2022 Richard W.M. Jones - 2.3.0-5
- OCaml 4.14.0 rebuild
diff --git a/sources b/sources
index 56b9730..2e808e5 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,3 @@
SHA512 (alt-ergo-free-2.3.0.tar.gz) = e15efc6bbde59065c6ccaf1ef2f8158b8b9be4b00b2c2365e5eeb7d7114be72c47c813fc06880a6278edd7e288f24ef4588c88e0630d9bda9378a3eda3fd07ca
+SHA512 (alt-ergo-free-2.3.3.tar.gz) = 0dc056c02c8ffdeb9eeaa127dd204d30a0ee95ffe38aa3f1a608b17019f377ea6520ccfc9cb09b109deac5f19e7e695b7e6ec18db969843312cfb17f3950c9ba
SHA512 (alt-ergo-icons.tar.xz) = cb2e93bab3359f6f198e80e3e68840ed4b25a213b61f388a2de8abc299fd3c89240f64f610290ac89e6005088c484b2718a68ec18063076f73d7871a38ee038f
From cf1a6b7780edc8d55a1f7bf68a927c1efd1eab4d Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 5 Jul 2022 17:03:29 -0600
Subject: [PATCH 42/77] Patch out uses of the dune external-lib-deps command.
- Patch out references to the seq forward compatibility module.
- Use new OCaml macros.
---
alt-ergo-dune3.patch | 29 ++++++
...ims.patch => alt-ergo-forward-compat.patch | 32 ++++++-
alt-ergo.spec | 91 +++++++++----------
3 files changed, 101 insertions(+), 51 deletions(-)
create mode 100644 alt-ergo-dune3.patch
rename alt-ergo-stdlib-shims.patch => alt-ergo-forward-compat.patch (60%)
diff --git a/alt-ergo-dune3.patch b/alt-ergo-dune3.patch
new file mode 100644
index 0000000..cb875a4
--- /dev/null
+++ b/alt-ergo-dune3.patch
@@ -0,0 +1,29 @@
+--- alt-ergo-2.3.0-free/sources/configure.ml.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/configure.ml 2022-07-05 16:42:35.856375154 -0600
+@@ -139,26 +139,6 @@ let () =
+ Format.eprintf "ERROR: Couldn't find dune in env@.";
+ exit 1
+
+-(* run dune to check that dependencies are installed *)
+-let () =
+- let p_opt = match !pkg with
+- | "" -> ""
+- | s -> Format.asprintf "-p %s" s
+- in
+- let cmd = Format.asprintf
+- "dune external-lib-deps --display=quiet --missing %s @install"
+- p_opt
+- in
+- let ch = Unix.open_process_in cmd in
+- let _ = read_all ch in
+- let res = Unix.close_process_in ch in
+- match res with
+- | Unix.WEXITED 0 ->
+- Format.printf "All deps are installed.@."
+- | _ ->
+- (* dune already prints the missing libs on stderr *)
+- exit 2
+-
+ let () =
+ Format.printf "Good to go !@."
+
diff --git a/alt-ergo-stdlib-shims.patch b/alt-ergo-forward-compat.patch
similarity index 60%
rename from alt-ergo-stdlib-shims.patch
rename to alt-ergo-forward-compat.patch
index 5f266df..b3be679 100644
--- a/alt-ergo-stdlib-shims.patch
+++ b/alt-ergo-forward-compat.patch
@@ -1,13 +1,25 @@
--- alt-ergo-2.3.0-free/sources/alt-ergo-lib-free.opam.orig 2022-05-20 03:15:57.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/alt-ergo-lib-free.opam 2022-06-18 16:35:11.569523676 -0600
-@@ -16,7 +16,6 @@ depends: [
++++ alt-ergo-2.3.0-free/sources/alt-ergo-lib-free.opam 2022-07-05 16:40:03.983955825 -0600
+@@ -15,8 +15,6 @@ depends: [
+ "num"
"ocplib-simplex" {>= "0.4" }
"zarith"
- "seq"
+- "seq"
- "stdlib-shims"
]
conflicts: [
"alt-ergo"
+--- alt-ergo-2.3.0-free/sources/alt-ergo-lib.opam.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/alt-ergo-lib.opam 2022-07-05 16:47:56.113259397 -0600
+@@ -15,8 +15,6 @@ depends: [
+ "num"
+ "ocplib-simplex" {>= "0.4" }
+ "zarith"
+- "seq"
+- "stdlib-shims"
+ ]
+ conflicts: [
+ "alt-ergo-free"
--- alt-ergo-2.3.0-free/sources/alt-ergo-parsers-free.opam.orig 2022-05-20 03:16:01.000000000 -0600
+++ alt-ergo-2.3.0-free/sources/alt-ergo-parsers-free.opam 2022-06-18 16:35:52.177624279 -0600
@@ -16,7 +16,6 @@ depends: [
@@ -18,14 +30,24 @@
]
conflicts: [
"alt-ergo-parsers"
+--- alt-ergo-2.3.0-free/sources/alt-ergo-parsers.opam.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/alt-ergo-parsers.opam 2022-07-05 16:39:33.254870985 -0600
+@@ -16,7 +16,6 @@ depends: [
+ "psmt2-frontend" { >= "0.2" }
+ "camlzip"
+ "menhir"
+- "stdlib-shims"
+ ]
+ homepage: "http://alt-ergo.ocamlpro.com/"
+ dev-repo: "git+https://github.com/OCamlPro/alt-ergo.git"
--- alt-ergo-2.3.0-free/sources/lib/dune.orig 2022-05-20 01:34:55.000000000 -0600
-+++ alt-ergo-2.3.0-free/sources/lib/dune 2022-06-18 16:34:45.634456726 -0600
++++ alt-ergo-2.3.0-free/sources/lib/dune 2022-07-05 16:50:35.778700249 -0600
@@ -9,7 +9,7 @@
(public_name alt-ergo-lib)
; external dependencies
- (libraries seq unix num str zarith dynlink ocplib-simplex stdlib-shims)
-+ (libraries seq unix num str zarith dynlink ocplib-simplex)
++ (libraries unix num str zarith dynlink ocplib-simplex)
; .mli only modules *also* need to be in this field
(modules_without_implementation matching_types numbersInterface sig sig_rel)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 79fa381..ecfba1b 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,7 +16,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 1%{?dist}
+Release: 2%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -39,8 +39,10 @@ Patch1: %{name}-psmt2-frontend.patch
# AB plugin. Menhir is unable to infer types with the current code and layout.
# Check each new release to see if this is still necessary.
Patch2: %{name}-menhir.patch
-# Fedora does not have or need the forward compatibility stdlib-shims package
-Patch3: %{name}-stdlib-shims.patch
+# Fedora does not need the forward compatibility seq and stdlib-shims packages
+Patch3: %{name}-forward-compat.patch
+# Dune 3 eliminated the external-lib-deps command
+Patch4: %{name}-dune3.patch
BuildRequires: appstream
BuildRequires: desktop-file-utils
@@ -52,9 +54,7 @@ BuildRequires: ocaml-lablgtk-devel
BuildRequires: ocaml-menhir
BuildRequires: ocaml-num-devel
BuildRequires: ocaml-ocplib-simplex-devel >= 0.4
-BuildRequires: ocaml-odoc
BuildRequires: ocaml-psmt2-frontend-devel >= 0.2
-BuildRequires: ocaml-seq-devel
BuildRequires: ocaml-zarith-devel
BuildRequires: ocaml-zip-devel
@@ -113,7 +113,6 @@ Summary: Development files for ocaml-alt-ergo-lib
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
Requires: ocaml-num-devel%{?_isa}
Requires: ocaml-ocplib-simplex-devel%{?_isa}
-Requires: ocaml-seq-devel%{?_isa}
Requires: ocaml-zarith-devel%{?_isa}
%description -n ocaml-alt-ergo-lib-devel %_desc
@@ -143,19 +142,15 @@ cd -
%build
# This is not an autoconf-generated script. Do NOT use %%configure.
cd sources
-./configure --prefix=%{_prefix} --libdir=%{_libdir}/ocaml --sharedir=%{_libdir}/ocaml
+./configure --prefix=%{_prefix} --libdir=%{ocamldir} --sharedir=%{ocamldir}
%make_build
-%make_build doc
%install
cd sources
%make_install
-# We do not want the dune markers
-find _build/default/_doc/_html -name .dune-keep -delete
-
# We do not want the ml files
-find %{buildroot}%{_libdir}/ocaml -name \*.ml -delete
+find %{buildroot}%{ocamldir} -name \*.ml -delete
# We install the documentation with the doc macro
rm -fr %{buildroot}%{_prefix}/doc
@@ -166,7 +161,7 @@ cp -p doc/alt-ergo.1 %{buildroot}%{_mandir}/man1
# The install target in the Makefile puts these in the wrong place
mv %{buildroot}%{_datadir}/alt-ergo/{plugins,preludes} \
- %{buildroot}%{_libdir}/ocaml/alt-ergo
+ %{buildroot}%{ocamldir}/alt-ergo
rmdir %{buildroot}%{_datadir}/alt-ergo
# Install the gtksourceview file
@@ -193,70 +188,74 @@ cp -a icons %{buildroot}%{_datadir}/icons/hicolor
%check
cd sources
-dune runtest --release
+%dune_check
%files
%doc README.md sources/CHANGES sources/examples publications/*.pdf
%license COPYING.md LICENSE.md License.OCamlPro
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
-%{_libdir}/ocaml/%{name}/
-%{_libdir}/ocaml/%{name}-free/
+%{ocamldir}/%{name}/
+%{ocamldir}/%{name}-free/
%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
-%{_libdir}/ocaml/altgr-ergo/
+%{ocamldir}/altgr-ergo/
%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
%files -n ocaml-%{name}-parsers
-%dir %{_libdir}/ocaml/%{name}-parsers/
-%{_libdir}/ocaml/%{name}-parsers/META
-%{_libdir}/ocaml/%{name}-parsers/*.cma
-%{_libdir}/ocaml/%{name}-parsers/*.cmi
+%dir %{ocamldir}/%{name}-parsers/
+%{ocamldir}/%{name}-parsers/META
+%{ocamldir}/%{name}-parsers/*.cma
+%{ocamldir}/%{name}-parsers/*.cmi
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}-parsers/*.cmxs
+%{ocamldir}/%{name}-parsers/*.cmxs
%endif
-%{_libdir}/ocaml/%{name}-parsers-free/
+%{ocamldir}/%{name}-parsers-free/
%files -n ocaml-%{name}-parsers-devel
-%{_libdir}/ocaml/%{name}-parsers/dune-package
-%{_libdir}/ocaml/%{name}-parsers/opam
+%{ocamldir}/%{name}-parsers/dune-package
+%{ocamldir}/%{name}-parsers/opam
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}-parsers/*.a
-%{_libdir}/ocaml/%{name}-parsers/*.cmx
-%{_libdir}/ocaml/%{name}-parsers/*.cmxa
+%{ocamldir}/%{name}-parsers/*.a
+%{ocamldir}/%{name}-parsers/*.cmx
+%{ocamldir}/%{name}-parsers/*.cmxa
%endif
-%{_libdir}/ocaml/%{name}-parsers/*.mli
-%{_libdir}/ocaml/%{name}-parsers/*.cmt
-%{_libdir}/ocaml/%{name}-parsers/*.cmti
+%{ocamldir}/%{name}-parsers/*.mli
+%{ocamldir}/%{name}-parsers/*.cmt
+%{ocamldir}/%{name}-parsers/*.cmti
%files -n ocaml-%{name}-lib
-%dir %{_libdir}/ocaml/%{name}-lib/
-%{_libdir}/ocaml/%{name}-lib/META
-%{_libdir}/ocaml/%{name}-lib/*.cma
-%{_libdir}/ocaml/%{name}-lib/*.cmi
+%dir %{ocamldir}/%{name}-lib/
+%{ocamldir}/%{name}-lib/META
+%{ocamldir}/%{name}-lib/*.cma
+%{ocamldir}/%{name}-lib/*.cmi
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}-lib/*.cmxs
+%{ocamldir}/%{name}-lib/*.cmxs
%endif
-%{_libdir}/ocaml/%{name}-lib-free/
+%{ocamldir}/%{name}-lib-free/
%files -n ocaml-%{name}-lib-devel
-%doc sources/_build/default/_doc/*
-%{_libdir}/ocaml/%{name}-lib/dune-package
-%{_libdir}/ocaml/%{name}-lib/opam
+%{ocamldir}/%{name}-lib/dune-package
+%{ocamldir}/%{name}-lib/opam
%ifarch %{ocaml_native_compiler}
-%{_libdir}/ocaml/%{name}-lib/*.a
-%{_libdir}/ocaml/%{name}-lib/*.cmx
-%{_libdir}/ocaml/%{name}-lib/*.cmxa
+%{ocamldir}/%{name}-lib/*.a
+%{ocamldir}/%{name}-lib/*.cmx
+%{ocamldir}/%{name}-lib/*.cmxa
%endif
-%{_libdir}/ocaml/%{name}-lib/*.mli
-%{_libdir}/ocaml/%{name}-lib/*.cmt
-%{_libdir}/ocaml/%{name}-lib/*.cmti
+%{ocamldir}/%{name}-lib/*.mli
+%{ocamldir}/%{name}-lib/*.cmt
+%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Jul 5 2022 Jerry James - 2.3.3-2
+- Patch out uses of the dune external-lib-deps command
+- Patch out references to the seq forward compatibility module
+- Use new OCaml macros
+
* Mon Jun 20 2022 Jerry James - 2.3.3-1
- Version 2.3.3
- Add -menhir patch to fix FTBFS
From 43489678cad85bc82bbe1d3cec64e28fa9b6fbf4 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 20 Jul 2022 20:41:54 +0000
Subject: [PATCH 43/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index ecfba1b..2f4e937 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,7 +16,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Automated theorem prover including linear arithmetic
License: ASL 2.0
@@ -251,6 +251,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jul 20 2022 Fedora Release Engineering - 2.3.3-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
+
* Tue Jul 5 2022 Jerry James - 2.3.3-2
- Patch out uses of the dune external-lib-deps command
- Patch out references to the seq forward compatibility module
From 61ce442efc897a263eb05d38a594e189056e5ca0 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 11 Aug 2022 09:24:41 -0600
Subject: [PATCH 44/77] Convert License tag to SPDX.
Note that the AB plugin has a different license.
---
alt-ergo.spec | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2f4e937..affd66d 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -10,7 +10,7 @@
# The major and minor releases contain a full tarball. Patch releases, however,
# contain only the parts that have changed, typically just the sources
-# directory. Use this to set up everything up appropriately.
+# directory. Use this to set up everything appropriately.
%global minorver 2.3
%global patchrel 3
@@ -18,8 +18,10 @@ Name: alt-ergo
Version: %{minorver}.%{patchrel}
Release: 3%{?dist}
Summary: Automated theorem prover including linear arithmetic
-License: ASL 2.0
+# The project as a whole is Apache-2.0.
+# The AB-Why3 plugin is LGPL-2.1-only WITH OCaml-LGPL-linking-exception
+License: Apache-2.0 AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception
URL: https://alt-ergo.ocamlpro.com/
# The patch releases contain only the sources directory. The other files come
# from the minor releases.
@@ -72,6 +74,7 @@ instantiation mechanism by which it fully supports quantifiers.}
%package gui
Summary: Graphical front end for Alt-Ergo
+License: Apache-2.0
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtksourceview2
Requires: hicolor-icon-theme
@@ -83,6 +86,7 @@ prover.
%package -n ocaml-alt-ergo-parsers
Summary: Parser library used by the Alt-Ergo SMT solver
+License: Apache-2.0
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
%description -n ocaml-alt-ergo-parsers %_desc
@@ -91,6 +95,7 @@ This package contains the parser library used by the Alt-Ergo SMT solver.
%package -n ocaml-alt-ergo-parsers-devel
Summary: Development files for ocaml-alt-ergo-parsers
+License: Apache-2.0
Requires: ocaml-alt-ergo-parsers%{?_isa} = %{version}-%{release}
Requires: ocaml-alt-ergo-lib-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-psmt2-frontend-devel%{?_isa}
@@ -103,6 +108,7 @@ that use the Alt-Ergo parser library.
%package -n ocaml-alt-ergo-lib
Summary: Automated theorem prover library
+License: Apache-2.0
%description -n ocaml-alt-ergo-lib %_desc
@@ -110,6 +116,7 @@ This package is the core of Alt-Ergo as an OCaml library.
%package -n ocaml-alt-ergo-lib-devel
Summary: Development files for ocaml-alt-ergo-lib
+License: Apache-2.0
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
Requires: ocaml-num-devel%{?_isa}
Requires: ocaml-ocplib-simplex-devel%{?_isa}
@@ -192,7 +199,6 @@ cd sources
%files
%doc README.md sources/CHANGES sources/examples publications/*.pdf
-%license COPYING.md LICENSE.md License.OCamlPro
%{_bindir}/%{name}
%{_mandir}/man1/alt-ergo.1.*
%{ocamldir}/%{name}/
@@ -230,6 +236,7 @@ cd sources
%files -n ocaml-%{name}-lib
%dir %{ocamldir}/%{name}-lib/
+%license LGPL-License.txt LICENSE.md License.OCamlPro
%{ocamldir}/%{name}-lib/META
%{ocamldir}/%{name}-lib/*.cma
%{ocamldir}/%{name}-lib/*.cmi
@@ -251,6 +258,10 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Thu Aug 11 2022 Jerry James - 2.3.3-3
+- Convert License tag to SPDX
+- Note that the AB plugin has a different license
+
* Wed Jul 20 2022 Fedora Release Engineering - 2.3.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
From 3901efd195b280f907eb901a9466331f81a6bd8a Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 18 Jan 2023 21:38:44 +0000
Subject: [PATCH 45/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index affd66d..4ffb323 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,7 +16,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -258,6 +258,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jan 18 2023 Fedora Release Engineering - 2.3.3-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
+
* Thu Aug 11 2022 Jerry James - 2.3.3-3
- Convert License tag to SPDX
- Note that the AB plugin has a different license
From 11fc19a34cfcf1ec30b85826acb7dec363367fae Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 24 Jan 2023 19:30:31 +0000
Subject: [PATCH 46/77] Rebuild OCaml packages for F38
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 4ffb323..3420b36 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,7 +16,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -258,6 +258,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Jan 24 2023 Richard W.M. Jones - 2.3.3-5
+- Rebuild OCaml packages for F38
+
* Wed Jan 18 2023 Fedora Release Engineering - 2.3.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
From 04eaf57e3a54133ed8291fe7604ae3e96321bbff Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 24 Mar 2023 10:04:51 -0600
Subject: [PATCH 47/77] Dune 3.7.0 changed the install location of mli files
---
alt-ergo.metainfo.xml | 4 ++--
alt-ergo.spec | 10 ++++++++--
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/alt-ergo.metainfo.xml b/alt-ergo.metainfo.xml
index cdb417e..5bf59c9 100644
--- a/alt-ergo.metainfo.xml
+++ b/alt-ergo.metainfo.xml
@@ -20,7 +20,7 @@
com.ocamlpro.alt-ergo.desktop
- http://jjames.fedorapeople.org/alt-ergo/altgr-ergo-screenshot.png
+ https://jjames.fedorapeople.org/alt-ergo/altgr-ergo-screenshot.png
Basic Alt-Ergo usage
@@ -28,7 +28,7 @@
https://alt-ergo.ocamlpro.com/
https://github.com/OCamlPro/alt-ergo/issues
https://alt-ergo.ocamlpro.com/#services
-
+
altgr-ergo
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 3420b36..2e48222 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,7 +16,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 5%{?dist}
+Release: 6%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -248,16 +248,22 @@ cd sources
%files -n ocaml-%{name}-lib-devel
%{ocamldir}/%{name}-lib/dune-package
%{ocamldir}/%{name}-lib/opam
+%{ocamldir}/%{name}-lib/frontend/
+%{ocamldir}/%{name}-lib/reasoners/
+%{ocamldir}/%{name}-lib/structures/
+%{ocamldir}/%{name}-lib/util/
%ifarch %{ocaml_native_compiler}
%{ocamldir}/%{name}-lib/*.a
%{ocamldir}/%{name}-lib/*.cmx
%{ocamldir}/%{name}-lib/*.cmxa
%endif
-%{ocamldir}/%{name}-lib/*.mli
%{ocamldir}/%{name}-lib/*.cmt
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Mar 24 2023 Jerry James - 2.3.3-6
+- Dune 3.7.0 changed the install location of mli files
+
* Tue Jan 24 2023 Richard W.M. Jones - 2.3.3-5
- Rebuild OCaml packages for F38
From f2cbc74c5e4c2f37a3c9d0863af4df287d9ebd7c Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 10 Jul 2023 16:57:48 -0600
Subject: [PATCH 48/77] OCaml 5.0.0 rebuild
---
alt-ergo.spec | 16 +++++++++-------
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2e48222..46d4279 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -2,12 +2,6 @@
# https://www.redhat.com/archives/fedora-packaging/2008-August/msg00017.html
# and ocaml-ocamlgraph spec file for a discussion of this issue.
-%undefine _package_note_flags
-
-%ifnarch %{ocaml_native_compiler}
-%global debug_package %{nil}
-%endif
-
# The major and minor releases contain a full tarball. Patch releases, however,
# contain only the parts that have changed, typically just the sources
# directory. Use this to set up everything appropriately.
@@ -16,7 +10,7 @@
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 6%{?dist}
+Release: 7%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -146,6 +140,11 @@ unzip p4_34.why.zip
rm p4_34.why.zip
cd -
+%ifnarch %{ocaml_native_compiler}
+# Do not require native plugins
+sed -i '/cmxs/d' plugins/{AB-Why3,fm-simplex}/dune
+%endif
+
%build
# This is not an autoconf-generated script. Do NOT use %%configure.
cd sources
@@ -261,6 +260,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Mon Jul 10 2023 Jerry James - 2.3.3-7
+- OCaml 5.0.0 rebuild
+
* Fri Mar 24 2023 Jerry James - 2.3.3-6
- Dune 3.7.0 changed the install location of mli files
From 5ec9dcf52b9add353269928daa426320844dbe04 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 11 Jul 2023 11:36:25 +0100
Subject: [PATCH 49/77] ExcludeArch i686
(https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/SPML7CUBSZNI36NLXGVHEG7DNHU3EWOJ/)
---
alt-ergo.spec | 3 +++
1 file changed, 3 insertions(+)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 46d4279..138bd95 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -1,3 +1,6 @@
+# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
+ExcludeArch: %{ix86}
+
# 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.
From 4aadcff56bbd242bf84e7e57862dda8443f38885 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 12 Jul 2023 01:39:34 +0100
Subject: [PATCH 50/77] OCaml 5.0 rebuild for Fedora 39
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 138bd95..cb17057 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 7%{?dist}
+Release: 8%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jul 12 2023 Richard W.M. Jones - 2.3.3-8
+- OCaml 5.0 rebuild for Fedora 39
+
* Mon Jul 10 2023 Jerry James - 2.3.3-7
- OCaml 5.0.0 rebuild
From 961a793aa4bb4160a553bf4be613376afa67db9e Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 18 Jul 2023 11:35:04 -0600
Subject: [PATCH 51/77] Validate appdata with appstream-util
---
alt-ergo.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index cb17057..2bc3f83 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -43,9 +43,9 @@ Patch3: %{name}-forward-compat.patch
# Dune 3 eliminated the external-lib-deps command
Patch4: %{name}-dune3.patch
-BuildRequires: appstream
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
+BuildRequires: libappstream-glib
BuildRequires: make
BuildRequires: ocaml >= 4.04.0
BuildRequires: ocaml-dune
@@ -187,7 +187,7 @@ desktop-file-install --dir %{buildroot}%{_datadir}/applications \
mkdir -p %{buildroot}%{_metainfodir}
install -pm 644 %{SOURCE4} \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
-appstreamcli validate --no-net \
+appstream-util validate-relax --nonet \
%{buildroot}%{_metainfodir}/com.ocamlpro.%{name}.metainfo.xml
# Install the icons
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Jul 18 2023 Jerry James - 2.3.3-8
+- Validate appdata with appstream-util
+
* Wed Jul 12 2023 Richard W.M. Jones - 2.3.3-8
- OCaml 5.0 rebuild for Fedora 39
From dcf60c5f1e5fce4586fcc17c3d839665efe9065b Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 19 Jul 2023 13:10:45 +0000
Subject: [PATCH 52/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2bc3f83..201b9ce 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 8%{?dist}
+Release: 9%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jul 19 2023 Fedora Release Engineering - 2.3.3-9
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
+
* Tue Jul 18 2023 Jerry James - 2.3.3-8
- Validate appdata with appstream-util
From 17e8a91f5087c14bd5ce2be2af1b5ca82b7c86ed Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 27 Jul 2023 10:22:59 -0600
Subject: [PATCH 53/77] Rebuild for ocaml-zarith 1.13
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 201b9ce..8bd6571 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 9%{?dist}
+Release: 10%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Thu Jul 27 2023 Jerry James - 2.3.3-10
+- Rebuild for ocaml-zarith 1.13
+
* Wed Jul 19 2023 Fedora Release Engineering - 2.3.3-9
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
From 95ebe8b78e5aeb4a41cc8f5bd76c4e163287f3db Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Thu, 5 Oct 2023 21:27:10 +0100
Subject: [PATCH 54/77] OCaml 5.1 rebuild for Fedora 40
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 8bd6571..fabc4c1 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 10%{?dist}
+Release: 11%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Thu Oct 05 2023 Richard W.M. Jones - 2.3.3-11
+- OCaml 5.1 rebuild for Fedora 40
+
* Thu Jul 27 2023 Jerry James - 2.3.3-10
- Rebuild for ocaml-zarith 1.13
From 03925961950310a6b50a6f9344c3a25cb3a171cb Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 12 Dec 2023 18:19:33 +0000
Subject: [PATCH 55/77] OCaml 5.1.1 rebuild for Fedora 40
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index fabc4c1..74da93d 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 11%{?dist}
+Release: 12%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Dec 12 2023 Richard W.M. Jones - 2.3.3-12
+- OCaml 5.1.1 rebuild for Fedora 40
+
* Thu Oct 05 2023 Richard W.M. Jones - 2.3.3-11
- OCaml 5.1 rebuild for Fedora 40
From f83c022bb375f52677563d9b14e0a14dd55f539c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Mon, 18 Dec 2023 20:42:39 +0000
Subject: [PATCH 56/77] OCaml 5.1.1 + s390x code gen fix for Fedora 40
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 74da93d..a9032d3 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 12%{?dist}
+Release: 13%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Mon Dec 18 2023 Richard W.M. Jones - 2.3.3-13
+- OCaml 5.1.1 + s390x code gen fix for Fedora 40
+
* Tue Dec 12 2023 Richard W.M. Jones - 2.3.3-12
- OCaml 5.1.1 rebuild for Fedora 40
From d55e3db9b2f86f547ee1fa44d2569c776650367d Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 18 Dec 2023 20:31:53 -0700
Subject: [PATCH 57/77] Update metainfo contact address
---
alt-ergo.metainfo.xml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/alt-ergo.metainfo.xml b/alt-ergo.metainfo.xml
index 5bf59c9..cff34da 100644
--- a/alt-ergo.metainfo.xml
+++ b/alt-ergo.metainfo.xml
@@ -24,7 +24,7 @@
Basic Alt-Ergo usage
- loganjerry@gmail.com
+ alt-ergo-maintainers@fedoraproject.org
https://alt-ergo.ocamlpro.com/
https://github.com/OCamlPro/alt-ergo/issues
https://alt-ergo.ocamlpro.com/#services
From 2d515533aeafb538abc92fca4fbd324a57ea4b7f Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 2 Jan 2024 11:28:58 -0700
Subject: [PATCH 58/77] Rebuild for ocaml-num
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a9032d3..a07e6cb 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 13%{?dist}
+Release: 14%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Jan 2 2024 Jerry James - 2.3.3-14
+- Rebuild for ocaml-num and ocaml-menhir 20231231
+
* Mon Dec 18 2023 Richard W.M. Jones - 2.3.3-13
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
From ba198bf5cf00926f98692aba297f09a1d10c2e8f Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Fri, 19 Jan 2024 12:46:18 +0000
Subject: [PATCH 59/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a07e6cb..3053df7 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 14%{?dist}
+Release: 15%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Jan 19 2024 Fedora Release Engineering - 2.3.3-15
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
* Tue Jan 2 2024 Jerry James - 2.3.3-14
- Rebuild for ocaml-num and ocaml-menhir 20231231
From 89e6861d48bb9d9a10b3e1174ec747ae2e0954ed Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Mon, 22 Jan 2024 22:57:19 +0000
Subject: [PATCH 60/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 3053df7..7df67ce 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 15%{?dist}
+Release: 16%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Mon Jan 22 2024 Fedora Release Engineering - 2.3.3-16
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
+
* Fri Jan 19 2024 Fedora Release Engineering - 2.3.3-15
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
From bd0a00952534e977b2063fa4b8604bd363d96541 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 2 Feb 2024 10:09:48 -0700
Subject: [PATCH 61/77] Rebuild for changed ocamlx(Dynlink) hash
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 7df67ce..c490048 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 16%{?dist}
+Release: 17%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -263,6 +263,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Feb 2 2024 Jerry James - 2.3.3-17
+- Rebuild for changed ocamlx(Dynlink) hash
+
* Mon Jan 22 2024 Fedora Release Engineering - 2.3.3-16
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
From ce64caea9cd1161c27605f9414443ed7d632a5e5 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 23 May 2024 10:57:15 -0600
Subject: [PATCH 62/77] Add patch to fix misplaced inline attributes
---
alt-ergo-inline-error.patch | 26 ++++++++++++++++++++++++++
alt-ergo.spec | 5 +++++
2 files changed, 31 insertions(+)
create mode 100644 alt-ergo-inline-error.patch
diff --git a/alt-ergo-inline-error.patch b/alt-ergo-inline-error.patch
new file mode 100644
index 0000000..ccb8356
--- /dev/null
+++ b/alt-ergo-inline-error.patch
@@ -0,0 +1,26 @@
+Fixes these errors:
+
+File "lib/util/util.mli", line 62, characters 6-12:
+62 | val [@inline always] compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
+ ^^^^^^
+Error (warning 53 [misplaced-attribute]): the "inline" attribute cannot appear in this context
+
+File "lib/util/util.mli", line 64, characters 6-12:
+64 | val [@inline always] cmp_lists: 'a list -> 'a list -> ('a -> 'a -> int) -> int
+ ^^^^^^
+Error (warning 53 [misplaced-attribute]): the "inline" attribute cannot appear in this context
+
+--- alt-ergo-2.3.0-free/sources/lib/util/util.mli.orig 2022-05-20 01:34:55.000000000 -0600
++++ alt-ergo-2.3.0-free/sources/lib/util/util.mli 2024-05-05 11:41:32.415674847 -0600
+@@ -59,9 +59,9 @@ val string_of_th_ext : theories_extensio
+ - Pervasives.compare a b is used if
+
+ *)
+-val [@inline always] compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
++val compare_algebraic : 'a -> 'a -> (('a * 'a) -> int) -> int
+
+-val [@inline always] cmp_lists: 'a list -> 'a list -> ('a -> 'a -> int) -> int
++val cmp_lists: 'a list -> 'a list -> ('a -> 'a -> int) -> int
+
+ type matching_env =
+ {
diff --git a/alt-ergo.spec b/alt-ergo.spec
index c490048..a62f7c7 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -42,6 +42,8 @@ Patch2: %{name}-menhir.patch
Patch3: %{name}-forward-compat.patch
# Dune 3 eliminated the external-lib-deps command
Patch4: %{name}-dune3.patch
+# Avoid errors due to misplaced inline attributes
+Patch5: %{name}-inline-error.patch
BuildRequires: desktop-file-utils
BuildRequires: gtksourceview2-devel
@@ -263,6 +265,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Thu May 23 2024 Jerry James - 2.3.%{patchrel}-17
+- Add patch to fix misplaced inline attributes
+
* Fri Feb 2 2024 Jerry James - 2.3.3-17
- Rebuild for changed ocamlx(Dynlink) hash
From 8d4dec6e83e7c845f311c787f4f077609a1d835c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 29 May 2024 23:50:30 +0100
Subject: [PATCH 63/77] OCaml 5.2.0 for Fedora 41
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a62f7c7..43b7bcd 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 17%{?dist}
+Release: 18%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -265,6 +265,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed May 29 2024 Richard W.M. Jones - 2.3.3-18
+- OCaml 5.2.0 for Fedora 41
+
* Thu May 23 2024 Jerry James - 2.3.%{patchrel}-17
- Add patch to fix misplaced inline attributes
From ffa1a2579918e6546fa992e813067edc5be0032e Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Wed, 19 Jun 2024 14:26:21 +0100
Subject: [PATCH 64/77] OCaml 5.2.0 ppc64le fix
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 43b7bcd..efe6fe8 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 18%{?dist}
+Release: 19%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -265,6 +265,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jun 19 2024 Richard W.M. Jones - 2.3.3-19
+- OCaml 5.2.0 ppc64le fix
+
* Wed May 29 2024 Richard W.M. Jones - 2.3.3-18
- OCaml 5.2.0 for Fedora 41
From fa4007b53c733a341532d3b5b401b91900a9ed1a Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 16 Jul 2024 10:39:18 -0600
Subject: [PATCH 65/77] Rebuild for ocaml-zarith 1.14
---
alt-ergo.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index efe6fe8..50d9743 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 19%{?dist}
+Release: 20%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -265,13 +265,16 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Jul 16 2024 Jerry James - 2.3.3-20
+- Rebuild for ocaml-zarith 1.14
+
* Wed Jun 19 2024 Richard W.M. Jones - 2.3.3-19
- OCaml 5.2.0 ppc64le fix
* Wed May 29 2024 Richard W.M. Jones - 2.3.3-18
- OCaml 5.2.0 for Fedora 41
-* Thu May 23 2024 Jerry James - 2.3.%{patchrel}-17
+* Thu May 23 2024 Jerry James - 2.3.3-17
- Add patch to fix misplaced inline attributes
* Fri Feb 2 2024 Jerry James - 2.3.3-17
From d49408568a28b9a414e38f1bb29522c6f17b238a Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 17 Jul 2024 16:53:51 +0000
Subject: [PATCH 66/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 50d9743..655c5ce 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 20%{?dist}
+Release: 21%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -265,6 +265,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jul 17 2024 Fedora Release Engineering - 2.3.3-21
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
+
* Tue Jul 16 2024 Jerry James - 2.3.3-20
- Rebuild for ocaml-zarith 1.14
From 51625d920756664142ce0d95e359579fcd68313b Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Mon, 5 Aug 2024 10:32:00 -0600
Subject: [PATCH 67/77] Rebuild for ocaml-menhir 20240715 and ocaml-zip 1.12
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 655c5ce..a31ff01 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 21%{?dist}
+Release: 22%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The project as a whole is Apache-2.0.
@@ -265,6 +265,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Mon Aug 5 2024 Jerry James - 2.3.3-22
+- Rebuild for ocaml-menhir 20240715 and ocaml-zip 1.12
+
* Wed Jul 17 2024 Fedora Release Engineering - 2.3.3-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
From 75bbe3f8fc8409a54c479a5fa476d3261bb4d8ad Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 27 Dec 2024 11:45:43 -0700
Subject: [PATCH 68/77] Correct License fields from Apache-2.0 to CECILL-C
- Do configuration steps in %conf
---
alt-ergo.spec | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a31ff01..0086789 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -16,9 +16,12 @@ Version: %{minorver}.%{patchrel}
Release: 22%{?dist}
Summary: Automated theorem prover including linear arithmetic
-# The project as a whole is Apache-2.0.
+# The top-level license files apply to the non-free main distribution of
+# alt-ergo. The alt-ergo-free distribution, which we package, is distributed
+# with the CeCILL-C license, as noted on the webiste and also in
+# sources/tools/gui/main_gui.ml.
# The AB-Why3 plugin is LGPL-2.1-only WITH OCaml-LGPL-linking-exception
-License: Apache-2.0 AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception
+License: CECILL-C AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception
URL: https://alt-ergo.ocamlpro.com/
# The patch releases contain only the sources directory. The other files come
# from the minor releases.
@@ -73,7 +76,7 @@ instantiation mechanism by which it fully supports quantifiers.}
%package gui
Summary: Graphical front end for Alt-Ergo
-License: Apache-2.0
+License: CECILL-C
Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtksourceview2
Requires: hicolor-icon-theme
@@ -85,7 +88,7 @@ prover.
%package -n ocaml-alt-ergo-parsers
Summary: Parser library used by the Alt-Ergo SMT solver
-License: Apache-2.0
+License: CECILL-C
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
%description -n ocaml-alt-ergo-parsers %_desc
@@ -94,7 +97,7 @@ This package contains the parser library used by the Alt-Ergo SMT solver.
%package -n ocaml-alt-ergo-parsers-devel
Summary: Development files for ocaml-alt-ergo-parsers
-License: Apache-2.0
+License: CECILL-C
Requires: ocaml-alt-ergo-parsers%{?_isa} = %{version}-%{release}
Requires: ocaml-alt-ergo-lib-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-psmt2-frontend-devel%{?_isa}
@@ -107,7 +110,7 @@ that use the Alt-Ergo parser library.
%package -n ocaml-alt-ergo-lib
Summary: Automated theorem prover library
-License: Apache-2.0
+License: CECILL-C
%description -n ocaml-alt-ergo-lib %_desc
@@ -115,7 +118,7 @@ This package is the core of Alt-Ergo as an OCaml library.
%package -n ocaml-alt-ergo-lib-devel
Summary: Development files for ocaml-alt-ergo-lib
-License: Apache-2.0
+License: CECILL-C
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
Requires: ocaml-num-devel%{?_isa}
Requires: ocaml-ocplib-simplex-devel%{?_isa}
@@ -136,6 +139,8 @@ tar xf %{SOURCE1}
%endif
%autopatch -p1
+
+%conf
cd sources
cp -p %{SOURCE3} com.ocamlpro.%{name}.desktop
@@ -150,10 +155,11 @@ cd -
sed -i '/cmxs/d' plugins/{AB-Why3,fm-simplex}/dune
%endif
-%build
# This is not an autoconf-generated script. Do NOT use %%configure.
-cd sources
./configure --prefix=%{_prefix} --libdir=%{ocamldir} --sharedir=%{ocamldir}
+
+%build
+cd sources
%make_build
%install
@@ -265,6 +271,10 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Mon Dec 23 2024 Jerry James - 2.3.3-22
+- Correct License fields from Apache-2.0 to CECILL-C
+- Do configuration steps in %%conf
+
* Mon Aug 5 2024 Jerry James - 2.3.3-22
- Rebuild for ocaml-menhir 20240715 and ocaml-zip 1.12
From f53232f95d99ff503768ea412a19d39bda7efc68 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Thu, 9 Jan 2025 16:33:00 -0700
Subject: [PATCH 69/77] OCaml 5.3.0 rebuild for Fedora 42
---
alt-ergo.spec | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 0086789..32bbaf1 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 22%{?dist}
+Release: 23%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -271,7 +271,8 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
-* Mon Dec 23 2024 Jerry James - 2.3.3-22
+* Thu Jan 9 2025 Jerry James - 2.3.3-23
+- OCaml 5.3.0 rebuild for Fedora 42
- Correct License fields from Apache-2.0 to CECILL-C
- Do configuration steps in %%conf
From 360d6af7b6a2338004212f863a4954c4a0c60ba8 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Thu, 16 Jan 2025 10:55:33 +0000
Subject: [PATCH 70/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 32bbaf1..42ae7d0 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 23%{?dist}
+Release: 24%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -271,6 +271,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Thu Jan 16 2025 Fedora Release Engineering - 2.3.3-24
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
+
* Thu Jan 9 2025 Jerry James - 2.3.3-23
- OCaml 5.3.0 rebuild for Fedora 42
- Correct License fields from Apache-2.0 to CECILL-C
From 0ecba542d3ae5f15455070f806d1e8719d0ab793 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 11 Jul 2025 21:31:19 -0600
Subject: [PATCH 71/77] Rebuild to fix OCaml dependencies
---
alt-ergo.spec | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 42ae7d0..a6a0b9b 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,12 +13,12 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 24%{?dist}
+Release: 25%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
# alt-ergo. The alt-ergo-free distribution, which we package, is distributed
-# with the CeCILL-C license, as noted on the webiste and also in
+# with the CeCILL-C license, as noted on the website and also in
# sources/tools/gui/main_gui.ml.
# The AB-Why3 plugin is LGPL-2.1-only WITH OCaml-LGPL-linking-exception
License: CECILL-C AND LGPL-2.1-only WITH OCaml-LGPL-linking-exception
@@ -271,6 +271,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Jul 11 2025 Jerry James - 2.3.3-25
+- Rebuild to fix OCaml dependencies
+
* Thu Jan 16 2025 Fedora Release Engineering - 2.3.3-24
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
From 0f343f3118a455ee41665fcb4d7054bad45bcb17 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Wed, 23 Jul 2025 16:55:43 +0000
Subject: [PATCH 72/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index a6a0b9b..286ebd7 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 25%{?dist}
+Release: 26%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -271,6 +271,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Wed Jul 23 2025 Fedora Release Engineering - 2.3.3-26
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
+
* Fri Jul 11 2025 Jerry James - 2.3.3-25
- Rebuild to fix OCaml dependencies
From 7497db4a079aaf57a946d8117f2551370b707285 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 5 Sep 2025 11:47:45 -0600
Subject: [PATCH 73/77] Rebuild for ocaml-menhir 20250903
---
alt-ergo.spec | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 286ebd7..9cd6d51 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 26%{?dist}
+Release: 27%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -203,6 +203,18 @@ cd -
mkdir -p %{buildroot}%{_datadir}/icons
cp -a icons %{buildroot}%{_datadir}/icons/hicolor
+# Put something interesting into the META files
+cat > %{buildroot}%{ocamldir}/alt-ergo/META << EOF
+version = "%{version}"
+description = "Automated theorem prover including linear arithmetic"
+requires = ""
+EOF
+rm %{buildroot}%{ocamldir}/{alt-ergo-free,altgr-ergo}/META
+ln %{buildroot}%{ocamldir}/alt-ergo/META \
+ %{buildroot}%{ocamldir}/alt-ergo-free/META
+ln %{buildroot}%{ocamldir}/alt-ergo/META \
+ %{buildroot}%{ocamldir}/altgr-ergo/META
+
%check
cd sources
%dune_check
@@ -271,10 +283,13 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Sep 05 2025 Jerry James - 2.3.3-27
+- Rebuild for ocaml-menhir 20250903
+
* Wed Jul 23 2025 Fedora Release Engineering - 2.3.3-26
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
-* Fri Jul 11 2025 Jerry James - 2.3.3-25
+* Fri Jul 11 2025 Jerry James - 2.3.3-25
- Rebuild to fix OCaml dependencies
* Thu Jan 16 2025 Fedora Release Engineering - 2.3.3-24
From 6544e1b439fec5a80666ac1b501f86bca57a69f9 Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Tue, 16 Sep 2025 15:08:42 -0600
Subject: [PATCH 74/77] Rebuild for ocaml-menhir 20250912
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 9cd6d51..07ead7c 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 27%{?dist}
+Release: 28%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -283,6 +283,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Sep 16 2025 Jerry James - 2.3.3-28
+- Rebuild for ocaml-menhir 20250912
+
* Fri Sep 05 2025 Jerry James - 2.3.3-27
- Rebuild for ocaml-menhir 20250903
From c9954a5c37134980826e6a234d43bfa93d43815c Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones"
Date: Tue, 14 Oct 2025 08:57:01 +0100
Subject: [PATCH 75/77] OCaml 5.4.0 rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 07ead7c..3dea37f 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 28%{?dist}
+Release: 29%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -283,6 +283,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Tue Oct 14 2025 Richard W.M. Jones - 2.3.3-29
+- OCaml 5.4.0 rebuild
+
* Tue Sep 16 2025 Jerry James - 2.3.3-28
- Rebuild for ocaml-menhir 20250912
From 94bbf330c30cb16e3da66b53c59d7c49d097edfd Mon Sep 17 00:00:00 2001
From: Jerry James
Date: Fri, 9 Jan 2026 11:59:52 -0700
Subject: [PATCH 76/77] Reflow the description text
---
alt-ergo.spec | 42 +++++++++++++++++++++++-------------------
1 file changed, 23 insertions(+), 19 deletions(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 3dea37f..2b2d934 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -64,15 +64,15 @@ BuildRequires: ocaml-zip-devel
Requires: ocaml-alt-ergo-parsers%{?_isa} = %{version}-%{release}
-%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.}
+%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
+%description
+%_desc
%package gui
Summary: Graphical front end for Alt-Ergo
@@ -81,17 +81,18 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
Requires: gtksourceview2
Requires: hicolor-icon-theme
-%description gui %_desc
+%description gui
+%_desc
-This package contains a graphical front end for the Alt-Ergo theorem
-prover.
+This package contains a graphical front end for the Alt-Ergo theorem prover.
%package -n ocaml-alt-ergo-parsers
Summary: Parser library used by the Alt-Ergo SMT solver
License: CECILL-C
Requires: ocaml-alt-ergo-lib%{?_isa} = %{version}-%{release}
-%description -n ocaml-alt-ergo-parsers %_desc
+%description -n ocaml-alt-ergo-parsers
+%_desc
This package contains the parser library used by the Alt-Ergo SMT solver.
@@ -103,16 +104,18 @@ Requires: ocaml-alt-ergo-lib-devel%{?_isa} = %{version}-%{release}
Requires: ocaml-psmt2-frontend-devel%{?_isa}
Requires: ocaml-zip-devel%{?_isa}
-%description -n ocaml-alt-ergo-parsers-devel %_desc
+%description -n ocaml-alt-ergo-parsers-devel
+%_desc
-This package contains development files needed to build applications
-that use the Alt-Ergo parser library.
+This package contains development files needed to build applications that use
+the Alt-Ergo parser library.
%package -n ocaml-alt-ergo-lib
Summary: Automated theorem prover library
License: CECILL-C
-%description -n ocaml-alt-ergo-lib %_desc
+%description -n ocaml-alt-ergo-lib
+%_desc
This package is the core of Alt-Ergo as an OCaml library.
@@ -124,10 +127,11 @@ Requires: ocaml-num-devel%{?_isa}
Requires: ocaml-ocplib-simplex-devel%{?_isa}
Requires: ocaml-zarith-devel%{?_isa}
-%description -n ocaml-alt-ergo-lib-devel %_desc
+%description -n ocaml-alt-ergo-lib-devel
+%_desc
-This package contains development files needed to build applications
-that use the Alt-Ergo library.
+This package contains development files needed to build applications that use
+the Alt-Ergo library.
%prep
%autosetup -n %{name}-%{minorver}.0-free -N -a 2
From 259c21b7500fd47ad98da229be11dbfb664af486 Mon Sep 17 00:00:00 2001
From: Fedora Release Engineering
Date: Fri, 16 Jan 2026 03:37:12 +0000
Subject: [PATCH 77/77] Rebuilt for
https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
---
alt-ergo.spec | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/alt-ergo.spec b/alt-ergo.spec
index 2b2d934..3adb6d8 100644
--- a/alt-ergo.spec
+++ b/alt-ergo.spec
@@ -13,7 +13,7 @@ ExcludeArch: %{ix86}
Name: alt-ergo
Version: %{minorver}.%{patchrel}
-Release: 29%{?dist}
+Release: 30%{?dist}
Summary: Automated theorem prover including linear arithmetic
# The top-level license files apply to the non-free main distribution of
@@ -287,6 +287,9 @@ cd sources
%{ocamldir}/%{name}-lib/*.cmti
%changelog
+* Fri Jan 16 2026 Fedora Release Engineering - 2.3.3-30
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
+
* Tue Oct 14 2025 Richard W.M. Jones - 2.3.3-29
- OCaml 5.4.0 rebuild