summaryrefslogtreecommitdiff
path: root/sci-mathematics/z3
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /sci-mathematics/z3
reinit the tree, so we can have metadata
Diffstat (limited to 'sci-mathematics/z3')
-rw-r--r--sci-mathematics/z3/Manifest6
-rw-r--r--sci-mathematics/z3/files/z3-4.4.1-gcc-6.patch18
-rw-r--r--sci-mathematics/z3/metadata.xml25
-rw-r--r--sci-mathematics/z3/z3-4.4.1.ebuild178
-rw-r--r--sci-mathematics/z3/z3-4.5.0.ebuild186
5 files changed, 413 insertions, 0 deletions
diff --git a/sci-mathematics/z3/Manifest b/sci-mathematics/z3/Manifest
new file mode 100644
index 000000000000..3baa36cae6c2
--- /dev/null
+++ b/sci-mathematics/z3/Manifest
@@ -0,0 +1,6 @@
+AUX z3-4.4.1-gcc-6.patch 668 SHA256 b9a5d3f0946784eb12ac08536afd2704b2d78b868eec9aaa54b7d7aede6a0894 SHA512 2efd883026643f365141665f257a863c6b22ad30327db82ad03719d33abfd58bc681cf4c9db9145098584817e57e59f7b1fe90a5390e72a49bce66cd23481f7f WHIRLPOOL 8acc53aa97dd584db739300a4fbcdbff05d1204c18ef56c29a7cf4c5e7fdda192457c417bf50592593d7c1ebd1dce81c0c3449f123f8bf99faddf82a7ef67ee6
+DIST z3-4.4.1.tar.gz 3347371 SHA256 50967cca12c5c6e1612d0ccf8b6ebf5f99840a783d6cf5216336a2b59c37c0ce SHA512 76991a24f47f2b53ceb8d7a9a6be19913c57994ffb6cf6acfe30f61b2e73959cf02a99f656053594fccb5aaf4d1f44b3ae7e51f1c8953b213d738ceeeaea74f8 WHIRLPOOL aea616b43ae1a962cf00f4748b5a51b38586ccee393e4e27efbf806635a35af416edd6143b4cf01cf2b0df043f64ab4822f7767bb1c0a340fd57ee03627d39e5
+DIST z3-4.5.0.tar.gz 3573695 SHA256 aeae1d239c5e06ac183be7dd853775b84698db1265cb2258e5918a28372d4a0c SHA512 1ebc2c908d90b6b879f1e819c864ff894613276af47a440f27cf94968c195656952434754c3eb20f4bdbdd8497d227d22e1b4821c0d320b11052b5648d9e2dc7 WHIRLPOOL 3178973c2cce1ab3a87db134f7314d54aa5b491500c9f7c30c74d5672cb4995f7d468e62cd18d54b312d4d94fee8b1267c25d09e95075361e869bb36859810ab
+EBUILD z3-4.4.1.ebuild 4306 SHA256 2ac180da21241461f46b628ff963a18e2ad54cc4bd06425002f6048684ac52d1 SHA512 1a370b019b33e83d5984b6abf321b39ff25f3b633ca60b2c48ddf9e33b30252389b5cb6f2e34e0dc1103730c9e5bf60ac688d67914d9c5dae52cf5fc5354620c WHIRLPOOL 5fa1e75f31911c623630937db78f4bcfff86e04eda794d320f51ed8fc5431c6af128461b8deebb62c0707bcc9b82932cf7056541b09d197b381ad49fe4bcb8bf
+EBUILD z3-4.5.0.ebuild 4721 SHA256 d64e6cfe0eecb2f4a1c287c51060777fb8cbc6f42ce675e73a3d1a644ce18ca4 SHA512 e52d01917d884d10c24bf081303bdef7b1efa3b042f838ebc7de678a473fdd01d7738a216c9e14c4929b847fe7e5c3abe7a92bdafc827a1c1aa54b86abe46664 WHIRLPOOL eea7393a9cecb7170fb9f231886043a2037fe1eeed0475507b9d149461a4b281cba460a98ae965b97782987a01dfdcede4d19d70e52d126b92f7c767e0cf5c14
+MISC metadata.xml 780 SHA256 1fcc4b2666bc35c6fbb0d8a01af2ff616f4188e7a7c17d846d3746137d6b51eb SHA512 0be5e944d18dad2cc18350eae6e736f1c5b3705e5a05115a6de8df8ec37322b240952784673e59a3daf51253a3fb91b952b50a3c14628747156b4ff12f09b624 WHIRLPOOL f4b820645c53ba2580f9edb7c6dfd2fc7318b79ef6482cd3b80c0d325d73e6d9d40a49de06729272f4713ed08cd9b09096a8ed5afa2036484ec19df728fa210a
diff --git a/sci-mathematics/z3/files/z3-4.4.1-gcc-6.patch b/sci-mathematics/z3/files/z3-4.4.1-gcc-6.patch
new file mode 100644
index 000000000000..2dc0ddd12f26
--- /dev/null
+++ b/sci-mathematics/z3/files/z3-4.4.1-gcc-6.patch
@@ -0,0 +1,18 @@
+diff --git a/src/util/debug.cpp b/src/util/debug.cpp
+index 54c67fe..66676c6 100644
+--- a/src/util/debug.cpp
++++ b/src/util/debug.cpp
+@@ -78,3 +78,3 @@ void invoke_gdb() {
+ char result;
+- bool ok = (std::cin >> result);
++ bool ok = bool(std::cin >> result);
+ if (!ok) exit(ERR_INTERNAL_FATAL); // happens if std::cin is eof or unattached.
+diff --git a/src/util/mpz.cpp b/src/util/mpz.cpp
+index 8559279..7dca14b 100644
+--- a/src/util/mpz.cpp
++++ b/src/util/mpz.cpp
+@@ -136,3 +136,3 @@ mpz_manager<SYNCH>::mpz_manager():
+ mpz one(1);
+- set(m_two64, UINT64_MAX);
++ set(m_two64, (uint64)UINT64_MAX);
+ add(m_two64, one, m_two64);
diff --git a/sci-mathematics/z3/metadata.xml b/sci-mathematics/z3/metadata.xml
new file mode 100644
index 000000000000..350861622f3d
--- /dev/null
+++ b/sci-mathematics/z3/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>gienah@gentoo.org</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>haskell@gentoo.org</email>
+ <name>Gentoo Haskell</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sci@gentoo.org</email>
+ <name>Gentoo Science Project</name>
+ </maintainer>
+ <longdescription lang="en">
+Z3 is a high-performance theorem prover being developed at Microsoft Research.
+ </longdescription>
+ <use>
+ <flag name="isabelle">Add integration support for the Isabelle/HOL
+ theorem prover.</flag>
+ </use>
+ <upstream>
+ <remote-id type="github">Z3Prover/z3</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/sci-mathematics/z3/z3-4.4.1.ebuild b/sci-mathematics/z3/z3-4.4.1.ebuild
new file mode 100644
index 000000000000..8fd027f17feb
--- /dev/null
+++ b/sci-mathematics/z3/z3-4.4.1.ebuild
@@ -0,0 +1,178 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit flag-o-matic java-pkg-2 java-pkg-simple python-r1 toolchain-funcs
+
+DESCRIPTION="An efficient theorem prover"
+HOMEPAGE="http://z3.codeplex.com/"
+SRC_URI="https://github.com/Z3Prover/z3/archive/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples gmp isabelle java python"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ gmp? ( dev-libs/gmp:0 )"
+DEPEND="${RDEPEND}
+ java? ( >=virtual/jdk-1.8 )"
+
+S=${WORKDIR}/${PN}-${P}
+JAVA_SRC_DIR=${S}/src/api/java
+
+SO1="0"
+SO2="1"
+SOVER="${SO1}.${SO2}"
+
+pkg_setup() {
+ python_setup
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp; then
+ ewarn "Please use an openmp compatible compiler"
+ ewarn "like >gcc-4.2 with USE=openmp"
+ die "Openmp support missing in compiler"
+ fi
+ fi
+}
+
+src_prepare() {
+ eapply "${FILESDIR}"/${P}-gcc-6.patch
+ default
+
+ sed \
+ -e 's:-O3::g' \
+ -e 's:-fomit-frame-pointer::' \
+ -e 's:-msse2::g' \
+ -e 's:-msse::g' \
+ -e "/LINK_EXTRA_FLAGS/s:@LDFLAGS@:-lrt $(usex gmp -lgmp ""):g" \
+ -e 's:t@\$:t\$:g' \
+ -i scripts/*mk* || die
+
+ sed \
+ -e "s:SLIBEXTRAFLAGS = '':SLIBEXTRAFLAGS = '-Wl,-soname,lib${PN}.so.${SOVER}':" \
+ -i scripts/mk_util.py || die
+
+ append-ldflags -fopenmp
+
+ cat <<- EOF > "${S}/src/api/python/__init__.py" || die
+ from .z3 import *
+
+ from . import z3num
+ from . import z3poly
+ from . import z3printer
+ from . import z3rcf
+ from . import z3types
+ from . import z3util
+
+ # generated files
+ from . import z3core
+ from . import z3consts
+ EOF
+}
+
+src_configure() {
+ export Z3_INSTALL_LIB_DIR="$(get_libdir)"
+ export Z3_INSTALL_INCLUDE_DIR="include/z3"
+ set -- \
+ $(usex gmp --gmp "") \
+ $(usex java --java "")
+ echo ./configure "$@" >&2
+ ./configure "$@" || die
+ ${EPYTHON} scripts/mk_make.py || die
+}
+
+src_compile() {
+ emake \
+ --directory="build" \
+ CXX=$(tc-getCXX) \
+ LINK="$(tc-getCXX) ${LDFLAGS}" \
+ LINK_FLAGS="${LDFLAGS}"
+
+ use java && java-pkg-simple_src_compile
+}
+
+src_install() {
+ dodir /usr/include/${PN}
+ insinto /usr/include/${PN}
+ doins src/api/z3*.h src/api/c++/z3*.h
+ dolib.so build/lib${PN}.so
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "/usr/$(get_libdir)/lib${PN}.so.${SO1}" \
+ || die "Could not create /usr/$(get_libdir)/lib${PN}.so.${SO1} symlink"
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "/usr/$(get_libdir)/lib${PN}.so.${SOVER}" \
+ || die "Could not create libz3.so soname symlink"
+ dobin build/z3
+
+ if use examples; then
+ insinto /usr/share/${PN}
+ doins -r examples
+ fi
+
+ if use python; then
+ python_moduleinto "${PN}"
+ instpybind() {
+ python_domodule src/api/python/*.py
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "$(python_get_sitedir)/${PN}/lib${PN}.so" \
+ || die "Could not create $(python_get_sitedir)/lib${PN}.so symlink for python module"
+ }
+ python_foreach_impl instpybind
+ fi
+
+ use java && java-pkg-simple_src_install
+
+ if use isabelle; then
+ ISABELLE_HOME="${ROOT}usr/share/Isabelle"
+ dodir "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
+ cat <<- EOF >> "${S}/settings" || die
+ Z3_COMPONENT="\$COMPONENT"
+ Z3_HOME="${ROOT}usr/bin"
+ Z3_SOLVER="${ROOT}usr/bin/z3"
+ Z3_REMOTE_SOLVER="z3"
+ Z3_VERSION="${PV}"
+ Z3_INSTALLED="yes"
+ Z3_NON_COMMERCIAL="yes"
+ EOF
+ insinto "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
+ doins "${S}/settings"
+ fi
+
+ local DOCS=( "README" "RELEASE_NOTES" )
+ use doc && einstalldocs
+}
+
+pkg_postinst() {
+ if use isabelle; then
+ if [ -f "${ROOT}etc/isabelle/components" ]; then
+ if egrep "contrib/${PN}-[0-9.]*" "${ROOT}etc/isabelle/components"; then
+ sed -e "/contrib\/${PN}-[0-9.]*/d" \
+ -i "${ROOT}etc/isabelle/components"
+ fi
+ cat <<- EOF >> "${ROOT}etc/isabelle/components"
+ contrib/${PN}-${PV}
+ EOF
+ fi
+ fi
+}
+
+pkg_postrm() {
+ if use isabelle; then
+ if [ ! -f "${ROOT}usr/bin/Z3" ]; then
+ if [ -f "${ROOT}etc/isabelle/components" ]; then
+ # Note: this sed should only match the version of this ebuild
+ # Which is what we want as we do not want to remove the line
+ # of a new Isabelle component being installed during an upgrade.
+ sed -e "/contrib\/${PN}-${PV}/d" \
+ -i "${ROOT}etc/isabelle/components"
+ fi
+ fi
+ fi
+}
diff --git a/sci-mathematics/z3/z3-4.5.0.ebuild b/sci-mathematics/z3/z3-4.5.0.ebuild
new file mode 100644
index 000000000000..5f19493a454c
--- /dev/null
+++ b/sci-mathematics/z3/z3-4.5.0.ebuild
@@ -0,0 +1,186 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit flag-o-matic java-pkg-2 java-pkg-simple python-r1 toolchain-funcs
+
+DESCRIPTION="An efficient theorem prover"
+HOMEPAGE="http://z3.codeplex.com/"
+SRC_URI="https://github.com/Z3Prover/z3/archive/${P}.tar.gz"
+
+SLOT="0"
+LICENSE="MIT"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples gmp isabelle java python"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ gmp? ( dev-libs/gmp:0 )"
+DEPEND="${RDEPEND}
+ doc? ( app-doc/doxygen )
+ java? ( >=virtual/jdk-1.8 )"
+
+S=${WORKDIR}/${PN}-${P}
+JAVA_SRC_DIR=${S}/src/api/java
+
+SO1="0"
+SO2="1"
+SOVER="${SO1}.${SO2}"
+
+pkg_setup() {
+ python_setup
+
+ if [[ ${MERGE_TYPE} != binary ]]; then
+ if [[ $(tc-getCXX)$ == *g++* ]] && ! tc-has-openmp; then
+ ewarn "Please use an openmp compatible compiler"
+ ewarn "like >gcc-4.2 with USE=openmp"
+ die "Openmp support missing in compiler"
+ fi
+ fi
+}
+
+src_prepare() {
+ default
+
+ sed \
+ -e 's:-O3::g' \
+ -e 's:-fomit-frame-pointer::' \
+ -e 's:-msse2::g' \
+ -e 's:-msse::g' \
+ -e "/LINK_EXTRA_FLAGS/s:@LDFLAGS@:-lrt $(usex gmp -lgmp ""):g" \
+ -e 's:t@\$:t\$:g' \
+ -i scripts/*mk* || die
+
+ sed \
+ -e "s:SLIBEXTRAFLAGS = '':SLIBEXTRAFLAGS = '-Wl,-soname,lib${PN}.so.${SOVER}':" \
+ -i scripts/mk_util.py || die
+
+ sed -e 's:api\\html\\ml:api/html/ml:' \
+ -e 's:python/z3.py:python/z3/z3.py:' \
+ -i doc/mk_api_doc.py || die
+
+ append-ldflags -fopenmp
+}
+
+src_configure() {
+ local PYTHON_SITEDIR
+ python_export PYTHON_SITEDIR
+ export Z3_INSTALL_LIB_DIR="$(get_libdir)"
+ export Z3_INSTALL_INCLUDE_DIR="include/z3"
+ set -- \
+ --pypkgdir="${PYTHON_SITEDIR}/${PN}" \
+ --prefix="${ROOT}usr" \
+ $(usex gmp --gmp "") \
+ $(usex python --python "") \
+ $(usex java --java "")
+ echo ./configure "$@" >&2
+ # LANG=C to force external tools to output ascii text only
+ # otherwise configure crashes as:
+ # File "scripts/mk_make.py", line 21, in <module>
+ # UnicodeEncodeError: 'ascii' codec can't encode characters in position 80-82: ordinal not in range(128)
+ LANG=C ./configure "$@" || die
+ echo ${EPYTHON} scripts/mk_make.py "$@" >&2
+ LANG=C ${EPYTHON} scripts/mk_make.py || die
+}
+
+src_compile() {
+ emake \
+ --directory="build" \
+ CXX=$(tc-getCXX) \
+ LINK="$(tc-getCXX) ${LDFLAGS}" \
+ LINK_FLAGS="${LDFLAGS}"
+
+ use java && java-pkg-simple_src_compile
+
+ if use doc; then
+ pushd doc || die
+ ${EPYTHON} mk_api_doc.py || die
+ popd || die
+ fi
+}
+
+src_install() {
+ emake \
+ --directory="build" \
+ CXX=$(tc-getCXX) \
+ LINK="$(tc-getCXX) ${LDFLAGS}" \
+ LINK_FLAGS="${LDFLAGS}" \
+ install DESTDIR="${D}"
+
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "/usr/$(get_libdir)/lib${PN}.so.${SO1}" \
+ || die "Could not create /usr/$(get_libdir)/lib${PN}.so.${SO1} symlink"
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "/usr/$(get_libdir)/lib${PN}.so.${SOVER}" \
+ || die "Could not create libz3.so soname symlink"
+
+ if use examples; then
+ insinto /usr/share/${PN}
+ doins -r examples
+ fi
+
+ if use python; then
+ python_moduleinto "${PN}"
+ instpybind() {
+ python_domodule src/api/python/z3/*.py
+ dosym "/usr/$(get_libdir)/lib${PN}.so" \
+ "$(python_get_sitedir)/${PN}/lib${PN}.so" \
+ || die "Could not create $(python_get_sitedir)/lib${PN}.so symlink for python module"
+ }
+ python_foreach_impl instpybind
+ fi
+
+ use java && java-pkg-simple_src_install
+
+ if use isabelle; then
+ ISABELLE_HOME="${ROOT}usr/share/Isabelle"
+ dodir "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
+ cat <<- EOF >> "${S}/settings" || die
+ Z3_COMPONENT="\$COMPONENT"
+ Z3_HOME="${ROOT}usr/bin"
+ Z3_SOLVER="${ROOT}usr/bin/z3"
+ Z3_REMOTE_SOLVER="z3"
+ Z3_VERSION="${PV}"
+ Z3_INSTALLED="yes"
+ Z3_NON_COMMERCIAL="yes"
+ EOF
+ insinto "${ISABELLE_HOME}/contrib/${PN}-${PV}/etc"
+ doins "${S}/settings"
+ fi
+
+ local DOCS=( "README.md" "RELEASE_NOTES" )
+ local HTML_DOCS=( "doc/api/html/." )
+ use doc && einstalldocs
+}
+
+pkg_postinst() {
+ if use isabelle; then
+ if [ -f "${ROOT}etc/isabelle/components" ]; then
+ if egrep "contrib/${PN}-[0-9.]*" "${ROOT}etc/isabelle/components"; then
+ sed -e "/contrib\/${PN}-[0-9.]*/d" \
+ -i "${ROOT}etc/isabelle/components"
+ fi
+ cat <<- EOF >> "${ROOT}etc/isabelle/components"
+ contrib/${PN}-${PV}
+ EOF
+ fi
+ fi
+}
+
+pkg_postrm() {
+ if use isabelle; then
+ if [ ! -f "${ROOT}usr/bin/Z3" ]; then
+ if [ -f "${ROOT}etc/isabelle/components" ]; then
+ # Note: this sed should only match the version of this ebuild
+ # Which is what we want as we do not want to remove the line
+ # of a new Isabelle component being installed during an upgrade.
+ sed -e "/contrib\/${PN}-${PV}/d" \
+ -i "${ROOT}etc/isabelle/components"
+ fi
+ fi
+ fi
+}