Compare commits

...

54 Commits
f33 ... rawhide

Author SHA1 Message Date
Jerry James 7e13c11207 Fix python package library load name (bz 2255464) 2023-12-21 09:06:18 -07:00
Richard W.M. Jones 4b6c6d8a09 OCaml 5.1.1 + s390x code gen fix for Fedora 40 2023-12-18 17:56:01 +00:00
Richard W.M. Jones 28838627de OCaml 5.1.1 rebuild for Fedora 40 2023-12-12 16:17:08 +00:00
Jerry James 69a9e69b24 Version 4.12.4
Drop upstreamed patches: python, stdint, escapes
2023-12-10 10:31:57 -07:00
Richard W.M. Jones 6e97219e4f OCaml 5.1 rebuild for Fedora 40 2023-10-05 20:46:07 +01:00
Jerry James 75819831d1 Rebuild for ocaml-zarith 1.13 2023-07-27 10:28:07 -06:00
Jerry James e32772559e Exclude OCaml BRs on i386 2023-07-23 10:03:32 -06:00
Jerry James 7ce32a5a19 Do not build or install the i386 OCaml interface 2023-07-23 08:41:01 -06:00
Fedora Release Engineering 8f4eee1504 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 19:35:07 +00:00
Jerry James 7fe18e3f96 Exclude the OCaml and Java subpackages only on i386 2023-07-21 08:41:35 -06:00
Richard W.M. Jones 332c05596a OCaml 5.0 rebuild for Fedora 39 2023-07-12 15:30:38 +01:00
Richard W.M. Jones a9a7082547 ExcludeArch i686 (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/SPML7CUBSZNI36NLXGVHEG7DNHU3EWOJ/) 2023-07-11 11:36:26 +01:00
Jerry James b4c9000b46 OCaml 5.0.0 rebuild 2023-07-10 16:55:13 -06:00
Jerry James 67bb880db8 Rebuild for OCaml 5.0 2023-06-21 13:39:46 -06:00
Python Maint 647df7bf04 Rebuilt for Python 3.12 2023-06-15 14:41:58 +02:00
Jerry James ee66c97a95 Version 4.12.2 2023-05-15 08:44:33 -06:00
Richard W.M. Jones 0c0af7bf22 Rebuild OCaml packages for F38 2023-01-24 09:20:14 +00:00
Jerry James 42e82b1a86 Version 4.12.1. 2023-01-21 10:25:11 -07:00
Fedora Release Engineering fed39e8c56 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 08:09:46 +00:00
Jerry James 70124da6df Version 4.12.0.
Drop upstreamed -data-race and -uninit patches.
2023-01-17 15:01:03 -07:00
Jerry James aca6b5306f Add -data-race patch to fix segfault (bz 2157972).
Add -uninit patch to fix use of an uninitialized value.
2023-01-08 21:56:34 -07:00
Jerry James 6264c50021 Further clarify license of the doc subpackage (SPDX). 2022-12-14 16:15:48 -07:00
Jerry James 6bc865dcfc Version 4.11.2. 2022-09-04 13:17:38 -06:00
Jerry James 1b84535f23 Version 4.11.0. Clarify license of the doc subpackage. 2022-08-19 13:32:07 -06:00
Jerry James 52e2a85d5e Version 4.10.2. 2022-08-08 06:33:35 -06:00
Fedora Release Engineering 700febff68 Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-07-23 13:49:24 +00:00
Jerry James 013801252f Do not support Java on i686 (rhbz#2104112).
Use new OCaml macros.
2022-07-05 13:23:31 -06:00
Python Maint d607dff554 Rebuilt for Python 3.11 2022-06-20 10:45:53 +02:00
Richard W.M. Jones c6dc115d0d OCaml 4.14.0 rebuild 2022-06-18 15:25:55 +01:00
Python Maint 6bc7033f70 Rebuilt for Python 3.11 2022-06-13 17:27:26 +02:00
Jerry James d11a9bc22b Version 4.8.17. Drop upstreamed -ambiguous-overload patch. 2022-05-19 11:32:13 -06:00
Jerry James d44508e7e3 Add -ambiguous-overload patch to fix cppcheck build failure. 2022-03-24 13:58:33 -06:00
Jerry James 0d4eb3e8f9 Version 4.8.15. 2022-03-21 12:04:45 -06:00
Jiri d4a35ac719 Rebuilt for java-17-openjdk as system jdk
https://fedoraproject.org/wiki/Changes/Java17
2022-02-06 00:53:17 +01:00
Richard W.M. Jones cea5f750e3 OCaml 4.13.1 rebuild to remove package notes 2022-02-04 13:29:49 +00:00
Fedora Release Engineering 4a9d6bf0fd - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2022-01-22 05:46:08 +00:00
Jerry James 6ffdbbf843 Version 4.8.14. Conditionalize the %check script. 2021-12-24 11:30:57 -07:00
Jerry James 533bf73c99 Version 4.8.13. 2021-11-19 12:28:26 -07:00
Richard W.M. Jones 25c7a7705b OCaml 4.13.1 build 2021-10-04 20:45:36 +01:00
Fedora Release Engineering 969a5ffd21 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-07-23 22:12:33 +00:00
Jerry James 1db6cfa63f Version 4.8.12. 2021-07-13 13:11:43 -06:00
Jerry James 61301a359d Version 4.8.11. 2021-06-08 08:27:35 -06:00
Python Maint 306bdba1f5 Rebuilt for Python 3.10 2021-06-04 21:20:40 +02:00
Jerry James b504b06e75 Rebuild for ocaml-zarith 1.12. 2021-03-03 12:11:52 -07:00
Richard W.M. Jones bad77dc612 Bump release and rebuild. 2021-03-01 20:17:49 +00:00
Richard W.M. Jones 813e700557 Bump release and rebuild. 2021-03-01 19:41:17 +00:00
Richard W.M. Jones 2a1214c7dc OCaml 4.12.0 build 2021-03-01 16:57:46 +00:00
Jerry James 09e6f045f4 Version 4.8.10. 2021-02-13 09:47:28 -07:00
Fedora Release Engineering 6ca61cb935 - Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2021-01-28 00:37:04 +00:00
Jerry James a7058774ee Fix the python interface (bz 1910923). 2020-12-26 07:44:31 -07:00
Jerry James 259befebd7 Rebuild for ocaml-zarith 1.11. 2020-11-16 17:52:06 -07:00
Jerry James 1844f63fc1 Explicitly BR make. 2020-11-09 21:38:07 -07:00
Jerry James 753e0f37ec Rebuild for ocaml-zarith 1.10. 2020-09-25 12:23:02 -06:00
Jerry James b42ca529b7 Version 4.8.9. 2020-09-11 10:11:15 -06:00
5 changed files with 381 additions and 98 deletions

5
README.md Normal file
View File

@ -0,0 +1,5 @@
# z3
[Z3](https://github.com/Z3Prover/z3) is a theorem prover from Microsoft
Research. If you are not familiar with Z3, you can start
[here](https://github.com/Z3Prover/z3/wiki#background).

View File

@ -1 +1 @@
SHA512 (z3-4.8.8.tar.gz) = a6823cadb7cdad11b8f0db1530676c0ec4853886dfb3c4dbc5b798c5dbd445afb0c61675f81cb7f99c1b1734d9cd0ec96a07c68a948da3c25801fc6767fea47f
SHA512 (z3-4.12.4.tar.gz) = fcb778d2e3e0d13fc68afcd8724548279f9edbbb4aac1bbb93e00959c33330ab2fd84f2c2e4b0b78f767819725a90b845fc606a9adc931ae1f0a11f4deae433b

56
z3-ocaml.patch Normal file
View File

@ -0,0 +1,56 @@
--- z3-z3-4.12.2/scripts/mk_util.py.orig 2023-05-12 13:59:04.000000000 -0600
+++ z3-z3-4.12.2/scripts/mk_util.py 2023-07-06 11:53:06.045350565 -0600
@@ -34,7 +34,7 @@ EXAMP_DEBUG_FLAG=''
LDFLAGS=getenv("LDFLAGS", "")
JNI_HOME=getenv("JNI_HOME", None)
OCAMLC=getenv("OCAMLC", "ocamlc")
-OCAMLOPT=getenv("OCAMLOPT", "ocamlopt")
+OCAMLOPT=getenv("OCAMLOPT", None)
OCAML_LIB=getenv("OCAML_LIB", None)
OCAMLFIND=getenv("OCAMLFIND", "ocamlfind")
DOTNET="dotnet"
@@ -460,13 +460,9 @@ def check_ml():
raise MKException('Failed testing ocamlc compiler. Set environment variable OCAMLC with the path to the Ocaml compiler')
if is_verbose():
print ('Testing %s...' % OCAMLOPT)
- r = exec_cmd([OCAMLOPT, '-o', 'a.out', 'hello.ml'])
- if r != 0:
- raise MKException('Failed testing ocamlopt compiler. Set environment variable OCAMLOPT with the path to the Ocaml native compiler. Note that ocamlopt may require flexlink to be in your path.')
try:
rmf('hello.cmi')
rmf('hello.cmo')
- rmf('hello.cmx')
rmf('a.out')
rmf('hello.o')
except:
@@ -2069,7 +2065,7 @@ class MLComponent(Component):
out.write('\t%s -linkall -shared -o %s.cmxs -I . -I %s %s.cmxa\n' % (OCAMLOPTF, z3mls, self.sub_dir, z3mls))
out.write('\n')
- out.write('ml: %s.cma %s.cmxa %s.cmxs\n' % (z3mls, z3mls, z3mls))
+ out.write('ml: %s.cma\n' % z3mls)
if IS_OSX:
out.write('\tinstall_name_tool -id %s/libz3.dylib libz3.dylib\n' % (stubs_install_path))
out.write('\tinstall_name_tool -change libz3.dylib %s/libz3.dylib api/ml/dllz3ml.so\n' % (stubs_install_path))
@@ -2091,8 +2087,6 @@ class MLComponent(Component):
out.write(get_component(Z3_DLL_COMPONENT).dll_name + '$(SO_EXT) ')
out.write(os.path.join(self.sub_dir, 'META '))
out.write(os.path.join(self.sub_dir, 'z3ml.cma '))
- out.write(os.path.join(self.sub_dir, 'z3ml.cmxa '))
- out.write(os.path.join(self.sub_dir, 'z3ml.cmxs '))
def mk_install(self, out):
if is_ml_enabled() and self._install_bindings():
@@ -2119,12 +2113,9 @@ class MLComponent(Component):
else:
out.write(' ' + os.path.join(self.sub_dir, m) + '.mli')
out.write(' ' + os.path.join(self.sub_dir, m) + '.cmi')
- out.write(' ' + os.path.join(self.sub_dir, m) + '.cmx')
out.write(' %s' % ((os.path.join(self.sub_dir, 'libz3ml$(LIB_EXT)'))))
out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml$(LIB_EXT)'))))
out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml.cma'))))
- out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml.cmxa'))))
- out.write(' %s' % ((os.path.join(self.sub_dir, 'z3ml.cmxs'))))
out.write(' %s' % ((os.path.join(self.sub_dir, 'dllz3ml'))))
if is_windows() or is_cygwin_mingw() or is_msys2():
out.write('.dll')

View File

@ -1,25 +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 is missing some technical terms
addFilter(r'W: spelling-error .* ((S|s)atisfiability|datatypes)')
# Shared objects in the python arch directory are not devel files
addFilter(r'python3-z3\.[^:]+: W: devel-file-in-non-devel-package .*libz3\.so')
# The documentation is in the -doc subpackage
addFilter(r'W: no-documentation')
# Oh yes, we have no manual page
addFilter(r'W: no-manual-page-for-binary z3')
# The configure script is not an autotools-generated script
addFilter(r'z3\.spec:[^:]*: W: configure-without-libdir-spec')
# The spec file moves the shared object from /usr/lib to /usr/lib64 on 64-bit
# systems, the opposite of the problem this warning is intended to catch.
addFilter(r'z3\.spec:[^:]+: E: hardcoded-library-path in %{_prefix}/lib/libz3\.so\*')
# This is where JAR files are supposed to go when there is a binary interface.
addFilter(r'z3\.spec:[^:]+: E: hardcoded-library-path in %{_prefix}/lib/\*\.jar')
addFilter(r'z3\.spec:[^:]+: E: hardcoded-library-path in %{_prefix}/lib/lib%{name}java\.so')

391
z3.spec
View File

@ -1,24 +1,45 @@
# TODO: A Julia interface is now available, but requires
# https://github.com/JuliaInterop/libcxxwrap-julia, which is not currently
# available in Fedora.
# TODO: A JavaScript interface is now available. Given the generally poor
# state of JavaScript in Fedora, I do not plan to add a subpackage for it
# unless somebody is really, really persuasive and available to help fix it
# if it breaks.
# Tests are off by default because some of the tests require more memory than
# the koji builders have available.
%bcond_with test
Name: z3
Version: 4.8.8
Release: 7%{?dist}
Version: 4.12.4
Release: 4%{?dist}
Summary: Satisfiability Modulo Theories (SMT) solver
License: MIT
URL: https://github.com/Z3Prover/z3
Source0: https://github.com/Z3Prover/z3/archive/%{name}-%{version}.tar.gz
# Do not try to build or install native OCaml artifacts on bytecode-only arches
Patch0: %{name}-ocaml.patch
BuildRequires: cmake
BuildRequires: doxygen
BuildRequires: gcc-c++
BuildRequires: gmp-devel
BuildRequires: graphviz
BuildRequires: help2man
%ifarch %{java_arches}
BuildRequires: java-devel
BuildRequires: javapackages-tools
%endif
BuildRequires: make
BuildRequires: ninja-build
%ifnarch %{ix86}
BuildRequires: ocaml
BuildRequires: ocaml-findlib
BuildRequires: ocaml-ocamldoc
BuildRequires: ocaml-zarith-devel
%endif
BuildRequires: python3-devel
BuildRequires: %{py3_dist setuptools}
@ -33,17 +54,55 @@ uninterpreted functions, and quantifiers.
%package libs
Summary: Library for applications that use z3 functionality
# This can be removed when F40 reaches EOL
%ifnarch %{java_arches}
Obsoletes: java-z3 < 4.8.17-5
%endif
%description libs
Library for applications that use z3 functionality.
%package devel
Summary: Header files for build applications that use z3
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: z3-libs%{?_isa} = %{version}-%{release}
%description devel
Header files for build applications that use z3.
%package doc
# The content is MIT.
# Two files in examples are GPL-3.0-or-later WITH Bison-exception 2.2:
# examples/tptp/tptp5.tab.c
# examples/tptp/tptp5.tab.c
# Other licenses are due to files installed by doxygen.
# html/bc_s.png: GPL-1.0-or-later
# html/bdwn.png: GPL-1.0-or-later
# html/closed.png: GPL-1.0-or-later
# html/doc.png: GPL-1.0-or-later
# html/doxygen.css: GPL-1.0-or-later
# html/doxygen.svg: GPL-1.0-or-later
# html/dynsections.js: MIT
# html/folderclosed.png: GPL-1.0-or-later
# html/folderopen.png: GPL-1.0-or-later
# html/jquery.js: MIT
# html/nav_f.png: GPL-1.0-or-later
# html/nav_g.png: GPL-1.0-or-later
# html/nav_h.png: GPL-1.0-or-later
# html/open.png: GPL-1.0-or-later
# html/search/search.css: GPL-1.0-or-later
# html/search/search.js: MIT
# html/search/search_l.png: GPL-1.0-or-later
# html/search/search_m.png: GPL-1.0-or-later
# html/search/search_r.png: GPL-1.0-or-later
# html/splitbar.png: GPL-1.0-or-later
# html/sync_off.png: GPL-1.0-or-later
# html/sync_on.png: GPL-1.0-or-later
# html/tab_a.png: GPL-1.0-or-later
# html/tab_b.png: GPL-1.0-or-later
# html/tab_h.png: GPL-1.0-or-later
# html/tab_s.png: GPL-1.0-or-later
# html/tabs.css: GPL-1.0-or-later
License: MIT AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-1.0-or-later
Summary: API documentation for Z3
# FIXME: this should be noarch, but we end up with different numbers of inheritance
# graphs on different architectures. Why?
@ -51,39 +110,49 @@ Summary: API documentation for Z3
%description doc
API documentation for Z3.
%package -n java-%{name}
%ifarch %{java_arches}
%package -n java-z3
Summary: Java interface to z3
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: z3-libs%{?_isa} = %{version}-%{release}
Requires: java
Requires: javapackages-tools
%description -n java-%{name}
%description -n java-z3
Java interface to z3.
%endif
%package -n ocaml-%{name}
# OCaml packages not built on i686 since OCaml 5 / Fedora 39.
%ifnarch %{ix86}
%package -n ocaml-z3
Summary: Ocaml interface to z3
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
Requires: z3-libs%{?_isa} = %{version}-%{release}
%description -n ocaml-%{name}
%description -n ocaml-z3
Ocaml interface to z3.
%package -n ocaml-%{name}-devel
%package -n ocaml-z3-devel
Summary: Files for building ocaml applications that use z3
Requires: ocaml-%{name}%{?_isa} = %{version}-%{release}
Requires: ocaml-z3%{?_isa} = %{version}-%{release}
Requires: ocaml-zarith-devel%{?_isa}
%description -n ocaml-%{name}-devel
%description -n ocaml-z3-devel
Files for building ocaml applications that use z3.
%endif
%package -n python3-%{name}
%package -n python3-z3
Summary: Python 3 interface to z3
BuildArch: noarch
Requires: %{name}-libs = %{version}-%{release}
Requires: z3-libs = %{version}-%{release}
%description -n python3-%{name}
%description -n python3-z3
Python 3 interface to z3.
%prep
%autosetup -p1 -n %{name}-%{name}-%{version}
%autosetup -N -n %{name}-%{name}-%{version}
%ifnarch %{ocaml_native_compiler}
%patch -P0 -p1
%endif
%autopatch -m 1 -p1
# Enable verbose builds, use Fedora CFLAGS, preserve timestamps when installing,
# include the entire contents of the archives in the library, link the library
@ -92,34 +161,32 @@ sed \
-e 's/@$(CXX)/$(CXX)/' \
-e '/O3/d' \
-e "s/\(['\"]\)cp\([^[:alnum:]]\)/\1cp -p\2/" \
-e "s/\(SLIBEXTRAFLAGS = '\)'/\1-Wl,--no-whole-archive -Wl,--as-needed'/" \
-e "/SLIBFLAGS/s|-shared|& $RPM_LD_FLAGS -Wl,--whole-archive|" \
-e "s/\(SLIBEXTRAFLAGS = '\)'/\1-Wl,--no-whole-archive'/" \
-e '/SLIBFLAGS/s|-shared|& %{build_ldflags} -Wl,--whole-archive|' \
-e 's/\(libz3$(SO_EXT)\)\(\\n\)/\1 -Wl,--no-whole-archive\2/' \
-e "s/OCAML_FLAGS = ''/OCAML_FLAGS = '-g'/" \
-i scripts/mk_util.py
# Comply with the Java packaging guidelines
sed -e '/catch/s,\(System\.load\)Library("\(.*\)"),\1("%{_libdir}/z3/\2.so"),' \
# Comply with the Java packaging guidelines and fill in the version for python
majver=$(cut -d. -f-2 <<< %{version})
sed -e '/libz3java/s,\(System\.load\)Library("\(.*\)"),\1("%{_libdir}/z3/\2.so"),' \
-e "s/'so'/'so.$majver'/" \
-i scripts/update_api.py
# Update an OCaml interface
sed -i 's/Pervasives/Stdlib/' src/api/ml/z3.ml
# Fix character encoding
iconv -f iso8859-1 -t utf-8 RELEASE_NOTES > RELEASE_NOTES.utf8
touch -r RELEASE_NOTES RELEASE_NOTES.utf8
mv -f RELEASE_NOTES.utf8 RELEASE_NOTES
# Turn off HTML timestamps for reproducible builds
sed -i '/HTML_TIMESTAMP/s/YES/NO/' doc/z3api.cfg.in doc/z3code.dox
%build
export CXXFLAGS="$RPM_OPT_FLAGS"
export LANG="C.UTF-8"
export PYTHON="%{__python3}"
export LANG=C.UTF-8
export PYTHON=%{python3}
%cmake -G Ninja \
-DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/%{name} \
-DCMAKE_INSTALL_INCLUDEDIR=%{_includedir}/z3 \
-DCMAKE_JAVA_COMPILE_FLAGS="-source;1.8;-target;1.8" \
-DZ3_BUILD_DOCUMENTATION:BOOL=ON \
%ifarch %{java_arches}
-DZ3_BUILD_JAVA_BINDINGS:BOOL=ON \
%endif
-DZ3_BUILD_PYTHON_BINDINGS:BOOL=ON \
-DZ3_INCLUDE_GIT_HASH:BOOL=OFF \
-DZ3_INCLUDE_GIT_DESCRIBE:BOOL=OFF \
@ -127,6 +194,7 @@ export PYTHON="%{__python3}"
%cmake_build
%ifnarch %{ix86}
# The cmake build system does not build the OCaml interface. Do that manually.
#
# First, run the configure script to generate several files.
@ -135,7 +203,7 @@ export PYTHON="%{__python3}"
# Second, to prevent make from rebuilding the entire library, copy the
# cmake-built library to where make expects it.
cp -dp %{__cmake_builddir}/libz3.so* build
cp -dp %{_vpath_builddir}/libz3.so* build
# Third, make wants to rebuild libz3.so since its dependencies do not exist.
# Do selective Makefile surgery to prevent this.
@ -143,6 +211,7 @@ sed -i '/^api/s/ libz3\$(SO_EXT)//g' build/Makefile
# Fourth, build the OCaml interface
%make_build -C build ml
%endif
%install
export LANG="C.UTF-8"
@ -150,72 +219,250 @@ export LANG="C.UTF-8"
# Install the C++, python3, and Java interfaces
%cmake_install
%ifarch %{java_arches}
# Move the Java interface to its correct location
mkdir -p %{buildroot}%{_libdir}/%{name}
mkdir -p %{buildroot}%{_libdir}/z3
mkdir -p %{buildroot}%{_jnidir}
mv %{buildroot}%{_javadir}/*.jar %{buildroot}%{_jnidir}
ln -s %{_jnidir}/com.microsoft.z3.jar %{buildroot}%{_libdir}/%{name}
mv %{buildroot}%{_libdir}/lib%{name}java.so %{buildroot}%{_libdir}/%{name}
ln -s %{_jnidir}/com.microsoft.z3.jar %{buildroot}%{_libdir}/z3
mv %{buildroot}%{_libdir}/libz3java.so %{buildroot}%{_libdir}/z3
%endif
%ifnarch %{ix86}
# Install the OCaml interface
pushd build/api/ml
mkdir -p %{buildroot}%{_libdir}/ocaml/Z3
cp -p META *.{a,cma,cmi,cmx,cmxa,cmxs,mli} %{buildroot}%{_libdir}/ocaml/Z3
mkdir -p %{buildroot}%{_libdir}/ocaml/stublibs
cp -p *.so %{buildroot}%{_libdir}/ocaml/stublibs
popd
cd build/api/ml
mkdir -p %{buildroot}%{ocamldir}/Z3
%ifarch %{ocaml_native_compiler}
cp -p *.cmx{,a,s} %{buildroot}%{ocamldir}/Z3
%endif
cp -p META *.{a,cma,cmi,mli} %{buildroot}%{ocamldir}/Z3
mkdir -p %{buildroot}%{ocamldir}/stublibs
cp -p *.so %{buildroot}%{ocamldir}/stublibs
cd -
%endif
# We handle the documentation files below
rm -rf %{buildroot}%{_docdir}/Z3
#%%check
# Some of the tests require more memory than the koji builders have available.
#
#export LANG="C.UTF-8"
#pushd build
#make test-z3
#./test-z3 /a
#popd
# Make a man page
mkdir -p %{buildroot}%{_mandir}/man1
help2man -N -o %{buildroot}%{_mandir}/man1/z3.1 %{_vpath_builddir}/z3
# Fix the pkgconfig file
sed -i 's,//usr,,' %{buildroot}%{_libdir}/pkgconfig/z3.pc
%if %{with test}
%check
export LANG="C.UTF-8"
cd build
make test-z3
./test-z3 /a
cd -
%endif
%files
%doc README.md RELEASE_NOTES
%{_bindir}/%{name}
%doc README.md RELEASE_NOTES.md
%{_bindir}/z3
%{_mandir}/man1/z3.1*
%files libs
%license LICENSE.txt
%{_libdir}/lib%{name}.so.4*
%{_libdir}/libz3.so.4.12*
%files devel
%{_includedir}/%{name}/
%{_libdir}/lib%{name}.so
%{_libdir}/cmake/%{name}/
%{_includedir}/z3/
%{_libdir}/libz3.so
%{_libdir}/cmake/z3/
%{_libdir}/pkgconfig/z3.pc
%files doc
%doc %{__cmake_builddir}/doc/api/html examples
%doc %{_vpath_builddir}/doc/api/html examples
%license LICENSE.txt
%files -n java-%{name}
%{_libdir}/%{name}/
%ifarch %{java_arches}
%files -n java-z3
%{_libdir}/z3/
%{_jnidir}/com.microsoft.z3*jar
%endif
%files -n ocaml-%{name}
%dir %{_libdir}/ocaml/Z3/
%{_libdir}/ocaml/Z3/META
%{_libdir}/ocaml/Z3/*.cma
%{_libdir}/ocaml/Z3/*.cmi
%{_libdir}/ocaml/Z3/*.cmxs
%{_libdir}/ocaml/stublibs/*.so
%ifnarch %{ix86}
%files -n ocaml-z3
%dir %{ocamldir}/Z3/
%{ocamldir}/Z3/META
%{ocamldir}/Z3/*.cma
%{ocamldir}/Z3/*.cmi
%ifarch %{ocaml_native_compiler}
%{ocamldir}/Z3/*.cmxs
%endif
%{ocamldir}/stublibs/*.so
%files -n ocaml-%{name}-devel
%{_libdir}/ocaml/Z3/*.a
%{_libdir}/ocaml/Z3/*.cmx
%{_libdir}/ocaml/Z3/*.cmxa
%{_libdir}/ocaml/Z3/*.mli
%files -n ocaml-z3-devel
%{ocamldir}/Z3/*.a
%ifarch %{ocaml_native_compiler}
%{ocamldir}/Z3/*.cmx
%{ocamldir}/Z3/*.cmxa
%endif
%{ocamldir}/Z3/*.mli
%endif
%files -n python3-%{name}
%{python3_sitelib}/%{name}/
%files -n python3-z3
%{python3_sitelib}/z3/
%changelog
* Thu Dec 21 2023 Jerry James <loganjerry@gmail.com> - 4.12.4-4
- Fix python package library load name (bz 2255464)
* Mon Dec 18 2023 Richard W.M. Jones <rjones@redhat.com> - 4.12.4-3
- OCaml 5.1.1 + s390x code gen fix for Fedora 40
* Tue Dec 12 2023 Richard W.M. Jones <rjones@redhat.com> - 4.12.4-2
- OCaml 5.1.1 rebuild for Fedora 40
* Sat Dec 9 2023 Jerry James <loganjerry@gmail.com> - 4.12.4-1
- Version 4.12.4
- Drop upstreamed patches: python, stdint, escapes
* Thu Oct 05 2023 Richard W.M. Jones <rjones@redhat.com> - 4.12.2-7
- OCaml 5.1 rebuild for Fedora 40
* Thu Jul 27 2023 Jerry James <loganjerry@gmail.com> - 4.12.2-6
- Rebuild for ocaml-zarith 1.13
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.2-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Fri Jul 21 2023 Jerry James <loganjerry@gmail.com> - 4.12.2-4
- Exclude the OCaml and Java subpackages only on i386
* Wed Jul 12 2023 Richard W.M. Jones <rjones@redhat.com> - 4.12.2-4
- OCaml 5.0 rebuild for Fedora 39
* Mon Jul 10 2023 Jerry James <loganjerry@gmail.com> - 4.12.2-3
- OCaml 5.0.0 rebuild
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 4.12.2-2
- Rebuilt for Python 3.12
* Mon May 15 2023 Jerry James <loganjerry@gmail.com> - 4.12.2-1
- Version 4.12.2
* Tue Jan 24 2023 Richard W.M. Jones <rjones@redhat.com> - 4.12.1-2
- Rebuild OCaml packages for F38
* Sat Jan 21 2023 Jerry James <loganjerry@gmail.com> - 4.12.1-1
- Version 4.12.1
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.12.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Jan 17 2023 Jerry James <loganjerry@gmail.com> - 4.12.0-1
- Version 4.12.0
- Drop upstreamed -data-race and -uninit patches
* Sun Jan 8 2023 Jerry James <loganjerry@gmail.com> - 4.11.2-2
- Add -data-race patch to fix segfault (bz 2157972)
- Add -uninit patch to fix use of an uninitialized value
* Wed Dec 14 2022 Jerry James <loganjerry@gmail.com> - 4.11.2-1
- Further clarify license of the doc subpackage (SPDX)
* Sun Sep 4 2022 Jerry James <loganjerry@gmail.com> - 4.11.2-1
- Version 4.11.2
* Fri Aug 19 2022 Jerry James <loganjerry@gmail.com> - 4.11.0-1
- Version 4.11.0
- Clarify license of the doc subpackage
* Mon Aug 8 2022 Jerry James <loganjerry@gmail.com> - 4.10.2-1
- Version 4.10.2
* Sat Jul 23 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.17-6
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 28 2022 Jerry James <loganjerry@gmail.com> - 4.8.17-5
- Do not support Java on i686 (rhbz#2104112)
- Use new OCaml macros
* Mon Jun 20 2022 Python Maint <python-maint@redhat.com> - 4.8.17-4
- Rebuilt for Python 3.11
* Sat Jun 18 2022 Richard W.M. Jones <rjones@redhat.com> - 4.8.17-3
- OCaml 4.14.0 rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 4.8.17-2
- Rebuilt for Python 3.11
* Mon May 16 2022 Jerry James <loganjerry@gmail.com> - 4.8.17-1
- Version 4.8.17
- Drop upstreamed -ambiguous-overload patch
* Thu Mar 24 2022 Jerry James <loganjerry@gmail.com> - 4.8.15-2
- Add -ambiguous-overload patch to fix cppcheck build failure
* Mon Mar 21 2022 Jerry James <loganjerry@gmail.com> - 4.8.15-1
- Version 4.8.15
* Sat Feb 05 2022 Jiri Vanek <jvanek@redhat.com> - 4.8.14-4
- Rebuilt for java-17-openjdk as system jdk
* Fri Feb 04 2022 Richard W.M. Jones <rjones@redhat.com> - 4.8.14-3
- OCaml 4.13.1 rebuild to remove package notes
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Fri Dec 24 2021 Jerry James <loganjerry@gmail.com> - 4.8.14-1
- Version 4.8.14
- Conditionalize the %%check script
* Fri Nov 19 2021 Jerry James <loganjerry@gmail.com> - 4.8.13-1
- Version 4.8.13
* Mon Oct 04 2021 Richard W.M. Jones <rjones@redhat.com> - 4.8.12-3
- OCaml 4.13.1 build
* Fri Jul 23 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.12-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Tue Jul 13 2021 Jerry James <loganjerry@gmail.com> - 4.8.12-1
- Version 4.8.12
* Sun Jun 6 2021 Jerry James <loganjerry@gmail.com> - 4.8.11-1
- Version 4.8.11
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 4.8.10-6
- Rebuilt for Python 3.10
* Wed Mar 3 2021 Jerry James <loganjerry@gmail.com> - 4.8.10-5
- Rebuild for ocaml-zarith 1.12
* Mon Mar 1 20:17:48 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 4.8.10-4
- Bump release and rebuild.
* Mon Mar 1 19:41:16 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 4.8.10-3
- Bump release and rebuild.
* Mon Mar 1 16:57:45 GMT 2021 Richard W.M. Jones <rjones@redhat.com> - 4.8.10-2
- OCaml 4.12.0 build
* Sat Feb 13 2021 Jerry James <loganjerry@gmail.com> - 4.8.10-1
- Version 4.8.10
* Thu Jan 28 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.8.9-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Dec 25 2020 Jerry James <loganjerry@gmail.com> - 4.8.9-4
- Fix the python interface (bz 1910923)
* Mon Nov 16 2020 Jerry James <loganjerry@gmail.com> - 4.8.9-3
- Rebuild for ocaml-zarith 1.11
* Fri Sep 25 2020 Jerry James <loganjerry@gmail.com> - 4.8.9-2
- Rebuild for ocaml-zarith 1.10
* Fri Sep 11 2020 Jerry James <loganjerry@gmail.com> - 4.8.9-1
- Version 4.8.9
* Tue Sep 01 2020 Richard W.M. Jones <rjones@redhat.com> - 4.8.8-7
- OCaml 4.11.1 rebuild