Skip to content

Commit

Permalink
sci-mathematics/why3: new package; add version 1.4.0
Browse files Browse the repository at this point in the history
Move from ::guru to ::gentoo,
add François-Xavier Carton as a co-maintainer.

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Maciej Barć <[email protected]>
  • Loading branch information
xgqt committed Dec 12, 2021
1 parent 0eaa1f1 commit afa23b7
Show file tree
Hide file tree
Showing 3 changed files with 126 additions and 0 deletions.
1 change: 1 addition & 0 deletions sci-mathematics/why3/Manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
DIST why3-1.4.0.tar.gz 6306524 BLAKE2B ade7803a608d090ea06d974ae47e920993de92a5849d60bd63dba68252919a8f4fd1f0f6a3c975fdb727c4ae3afe13921b5d31a14c005e0d08f518e64bcf05e5 SHA512 b492f08a3c7073782b143a4849c47766b12045ad53c56aa8d251fd5b6bc1863ddebe260c99b3ddb27c4e1e1e9ab986c8b02286ec24f4c30f99f81f5f13fdc90a
33 changes: 33 additions & 0 deletions sci-mathematics/why3/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">

<pkgmetadata>
<maintainer type="person" proxied="yes">
<name>François-Xavier Carton</name>
<email>[email protected]</email>
</maintainer>
<maintainer type="project">
<email>[email protected]</email>
<name>ML</name>
</maintainer>
<longdescription>
Why3 is a platform for deductive program verification. It provides
a rich language for specification and programming, called WhyML,
and relies on external theorem provers, both automated and interactive,
to discharge verification conditions. Why3 comes with a standard
library of logical theories (integer and real arithmetic, Boolean
operations, sets and maps, etc.) and basic programming data structures
(arrays, queues, hash tables, etc.). A user can write WhyML programs
directly and get correct-by-construction OCaml programs through an
automated extraction mechanism. WhyML is also used as an intermediate
language for the verification of C, Java, or Ada programs.
</longdescription>
<use>
<flag name="coq">Add <pkg>sci-mathematics/coq</pkg> support</flag>
<flag name="gtk">Build the IDE <pkg>x11-libs/gtk+</pkg></flag>
<flag name="re">Use Re (<pkg>dev-ml/re</pkg>) instead of Str for regular expressions</flag>
<flag name="sexp">Add support for outputting S-expressions with <pkg>dev-ml/ppx_sexp_conv</pkg></flag>
<flag name="zarith">Use Zarith (<pkg>dev-ml/zarith</pkg>) instead of Nums (<pkg>dev-ml/num</pkg>) for computations</flag>
<flag name="zip">Enable compression of session files</flag>
</use>
</pkgmetadata>
92 changes: 92 additions & 0 deletions sci-mathematics/why3/why3-1.4.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

inherit autotools findlib

DESCRIPTION="Platform for deductive program verification"
HOMEPAGE="http://why3.lri.fr/"
SRC_URI="https://why3.gitlabpages.inria.fr/releases/${P}.tar.gz"

LICENSE="LGPL-2"
SLOT="0/${PV}"
KEYWORDS="~amd64"
IUSE="coq doc emacs gtk +ocamlopt re sexp +zarith zip"

RDEPEND="
!sci-mathematics/why3-for-spark
>=dev-lang/ocaml-4.05.0[ocamlopt?]
>=dev-ml/menhir-20151112
dev-ml/num
coq? ( >=sci-mathematics/coq-8.6 )
doc? (
dev-python/sphinx
dev-python/sphinxcontrib-bibtex
|| ( dev-texlive/texlive-latex dev-tex/latexmk dev-tex/rubber )
)
emacs? ( app-editors/emacs:* )
gtk? ( dev-ml/lablgtk:*[sourceview,ocamlopt?] )
re? ( dev-ml/re dev-ml/seq )
sexp? (
dev-ml/ppx_deriving[ocamlopt?]
dev-ml/ppx_sexp_conv[ocamlopt?]
dev-ml/sexplib[ocamlopt?]
)
zarith? ( dev-ml/zarith )
zip? ( dev-ml/camlzip )
"
DEPEND="${RDEPEND}"

DOCS=( CHANGES.md README.md )

src_prepare() {
mv configure.in configure.ac || die
sed -i 's/configure\.in/configure.ac/g' Makefile.in || die
sed -e '/^lib\/why3[a-z]*\$(EXE):/{n;s/-Wall/$(CFLAGS) $(LDFLAGS)/}' \
-e '/^%.o: %.c/{n;s/\$(CC).*-o/$(CC) $(CFLAGS) -o/}' \
-i Makefile.in || die

eautoreconf
default
}

src_configure() {
local myconf=(
--disable-hypothesis-selection
--disable-pvs-libs
--disable-isabelle-libs
--disable-frama-c
--disable-infer
--disable-web-ide
$(use_enable coq coq-libs)
$(use_enable doc)
$(use_enable emacs emacs-compilation)
$(use_enable gtk ide)
$(use_enable ocamlopt native-code)
$(use_enable re)
$(use_enable sexp pp-sexp)
$(use_enable zarith)
$(use_enable zip)
)
econf "${myconf[@]}"
}

src_compile() {
emake
emake plugins
use doc && emake doc
}

src_install(){
findlib_src_preinst
emake install install-lib DESTDIR="${ED}"

einstalldocs
docompress -x /usr/share/doc/${PF}/examples
dodoc -r examples
if use doc; then
dodoc doc/latex/manual.pdf
dodoc -r doc/html
fi
}

0 comments on commit afa23b7

Please sign in to comment.