diff options
author | 2015-01-25 13:08:28 +0000 | |
---|---|---|
committer | 2015-01-25 13:08:28 +0000 | |
commit | 8c6ada4b0dfefce860c1cb2d702b4dfbb9758430 (patch) | |
tree | e33aaa89a77d4427886f6550ade48f853ea2e41d /sci-mathematics/isabelle | |
parent | net-misc/networkmanager: fix build with /bin/sh != bash (diff) | |
download | gentoo-2-8c6ada4b0dfefce860c1cb2d702b4dfbb9758430.tar.gz gentoo-2-8c6ada4b0dfefce860c1cb2d702b4dfbb9758430.tar.bz2 gentoo-2-8c6ada4b0dfefce860c1cb2d702b4dfbb9758430.zip |
Bump isabelle to 2013.2. Fix Bug 536324 - sci-mathematics/isabelle: Slot dependencies for java packages. Add upper range dependency <dev-lang/scala-2.11.1 to 2013-r1.
(Portage version: 2.2.15/cvs/Linux x86_64, signed Manifest commit with key 618E971F)
Diffstat (limited to 'sci-mathematics/isabelle')
5 files changed, 616 insertions, 9 deletions
diff --git a/sci-mathematics/isabelle/ChangeLog b/sci-mathematics/isabelle/ChangeLog index 26d53a1136be..0a19e8e72d60 100644 --- a/sci-mathematics/isabelle/ChangeLog +++ b/sci-mathematics/isabelle/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sci-mathematics/isabelle -# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/ChangeLog,v 1.11 2014/01/07 13:36:33 tomwij Exp $ +# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/ChangeLog,v 1.12 2015/01/25 13:08:28 gienah Exp $ + +*isabelle-2013.2 (25 Jan 2015) + + 25 Jan 2015; Mark Wright <gienah@gentoo.org> + +files/isabelle-2013.2-HOL-Predicate_Compile_Examples.patch, + +files/isabelle-2013.2-classpath.patch, +isabelle-2013.2.ebuild, + isabelle-2013-r1.ebuild: + Bump isabelle to 2013.2. Fix Bug 536324 - sci-mathematics/isabelle: Slot + dependencies for java packages. Add upper range dependency <dev- + lang/scala-2.11.1 to 2013-r1. *isabelle-2012-r1 (07 Jan 2014) *isabelle-2013-r1 (07 Jan 2014) diff --git a/sci-mathematics/isabelle/files/isabelle-2013.2-HOL-Predicate_Compile_Examples.patch b/sci-mathematics/isabelle/files/isabelle-2013.2-HOL-Predicate_Compile_Examples.patch new file mode 100644 index 000000000000..e1253016837b --- /dev/null +++ b/sci-mathematics/isabelle/files/isabelle-2013.2-HOL-Predicate_Compile_Examples.patch @@ -0,0 +1,89 @@ +--- Isabelle2013-2-orig/src/HOL/Predicate_Compile_Examples/Hotel_Example_Prolog.thy 2013-12-06 02:18:50.000000000 +1100 ++++ Isabelle2013-2/src/HOL/Predicate_Compile_Examples/Hotel_Example_Prolog.thy 2014-02-09 22:21:20.676081140 +1100 +@@ -87,7 +87,7 @@ + *} + + lemma "\<lbrakk> hotel s; isinp s r g \<rbrakk> \<Longrightarrow> owns s r = Some g" +-quickcheck[tester = prolog, iterations = 1, expect = counterexample] ++quickcheck[tester = prolog, iterations = 1] + oops + + section {* Manual setup to find the counterexample *} +@@ -115,7 +115,7 @@ + + lemma + "hotel s ==> feels_safe s r ==> isinp s r g ==> owns s r = Some g" +-quickcheck[tester = prolog, iterations = 1, expect = counterexample] ++quickcheck[tester = prolog, iterations = 1] + oops + + section {* Using a global limit for limiting the execution *} +@@ -151,7 +151,7 @@ + + lemma + "hotel s ==> feels_safe s r ==> isinp s r g ==> owns s r = Some g" +-quickcheck[tester = prolog, iterations = 1, expect = counterexample] ++quickcheck[tester = prolog, iterations = 1] + oops + + end +\ No newline at end of file +--- Isabelle2013-2-orig/src/HOL/Predicate_Compile_Examples/Context_Free_Grammar_Example.thy 2013-12-06 02:18:50.000000000 +1100 ++++ Isabelle2013-2/src/HOL/Predicate_Compile_Examples/Context_Free_Grammar_Example.thy 2014-02-09 22:27:26.826238011 +1100 +@@ -36,7 +36,7 @@ + + lemma + "S\<^sub>1p w \<Longrightarrow> w = []" +-quickcheck[tester = prolog, iterations=1, expect = counterexample] ++quickcheck[tester = prolog, iterations=1] + oops + + definition "filter_a = filter (\<lambda>x. x = a)" +@@ -70,7 +70,7 @@ + + theorem S\<^sub>1_sound: + "S\<^sub>1p w \<Longrightarrow> length [x \<leftarrow> w. x = a] = length [x \<leftarrow> w. x = b]" +-quickcheck[tester = prolog, iterations=1, expect = counterexample] ++quickcheck[tester = prolog, iterations=1] + oops + + +@@ -94,7 +94,7 @@ + + theorem S\<^sub>2_sound: + "S\<^sub>2p w \<longrightarrow> length [x \<leftarrow> w. x = a] = length [x \<leftarrow> w. x = b]" +-quickcheck[tester = prolog, iterations=1, expect = counterexample] ++quickcheck[tester = prolog, iterations=1] + oops + + inductive_set S\<^sub>3 and A\<^sub>3 and B\<^sub>3 where +@@ -171,4 +171,4 @@ + hide_const a b + + +-end +\ No newline at end of file ++end +--- Isabelle2013-2-orig/src/HOL/Predicate_Compile_Examples/Lambda_Example.thy 2013-12-06 02:18:50.000000000 +1100 ++++ Isabelle2013-2/src/HOL/Predicate_Compile_Examples/Lambda_Example.thy 2014-02-09 22:21:20.677081168 +1100 +@@ -95,7 +95,7 @@ + + lemma + "\<Gamma> \<turnstile> t : U \<Longrightarrow> t \<rightarrow>\<^sub>\<beta> t' \<Longrightarrow> \<Gamma> \<turnstile> t' : U" +-quickcheck[tester = prolog, iterations = 1, expect = counterexample] ++quickcheck[tester = prolog, iterations = 1] + oops + + text {* Verifying that the found counterexample really is one by means of a proof *} +--- Isabelle2013-2-orig/src/HOL/Predicate_Compile_Examples/List_Examples.thy 2013-12-06 02:18:50.000000000 +1100 ++++ Isabelle2013-2/src/HOL/Predicate_Compile_Examples/List_Examples.thy 2014-02-09 22:21:20.678081196 +1100 +@@ -24,7 +24,7 @@ + lemma "(xs :: nat list) = ys @ ys --> rev xs = xs" + quickcheck[tester = random, iterations = 10000] + quickcheck[tester = smart_exhaustive, iterations = 1, expect = counterexample] +-quickcheck[tester = prolog, expect = counterexample] ++quickcheck[tester = prolog] + oops + + end +\ No newline at end of file diff --git a/sci-mathematics/isabelle/files/isabelle-2013.2-classpath.patch b/sci-mathematics/isabelle/files/isabelle-2013.2-classpath.patch new file mode 100644 index 000000000000..4532bd3b8ad3 --- /dev/null +++ b/sci-mathematics/isabelle/files/isabelle-2013.2-classpath.patch @@ -0,0 +1,135 @@ +--- Isabelle2013-2-orig/lib/Tools/java 2013-12-06 02:18:34.000000000 +1100 ++++ Isabelle2013-2/lib/Tools/java 2014-02-09 20:53:30.085279943 +1100 +@@ -10,5 +10,5 @@ + unset CLASSPATH + + isabelle_jdk java "${JAVA_ARGS[@]}" \ +- -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@" ++ -classpath "$(jvmpath "$ISABELLE_CLASSPATH:$(java-config -p scala | sed 's@\([^:]*\)/[^:]*:.*@\1@')")" "$@" + +--- Isabelle2013-2-orig/lib/Tools/scala 2013-12-06 02:18:34.000000000 +1100 ++++ Isabelle2013-2/lib/Tools/scala 2014-02-09 20:54:22.418737591 +1100 +@@ -7,5 +7,5 @@ + isabelle_admin_build jars || exit $? + + isabelle_scala scala -Dfile.encoding=UTF-8 \ +- -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@" ++ -classpath "$(jvmpath "$ISABELLE_CLASSPATH:$(java-config -p scala | sed 's@\([^:]*\)/[^:]*:.*@\1@')")" "$@" + +--- Isabelle2013-2-orig/lib/Tools/scalac 2013-12-06 02:18:34.000000000 +1100 ++++ Isabelle2013-2/lib/Tools/scalac 2014-02-09 20:55:03.999895037 +1100 +@@ -7,5 +7,5 @@ + isabelle_admin_build jars || exit $? + + isabelle_scala scalac -Dfile.encoding=UTF-8 \ +- -classpath "$(jvmpath "$ISABELLE_CLASSPATH")" "$@" ++ -classpath "$(jvmpath "$ISABELLE_CLASSPATH:$(java-config -p scala | sed 's@\([^:]*\)/[^:]*:.*@\1@')")" "$@" + +--- Isabelle2013-2-orig/src/Tools/jEdit/lib/Tools/jedit 2013-12-06 02:19:04.000000000 +1100 ++++ Isabelle2013-2/src/Tools/jEdit/lib/Tools/jedit 2014-02-09 20:59:14.026841490 +1100 +@@ -211,105 +211,6 @@ + "$ISABELLE_JEDIT_BUILD_HOME/contrib/jsr305-2.0.0.jar" + ) + +- +-# target +- +-TARGET="dist/jars/Isabelle-jEdit.jar" +- +-declare -a UPDATED=() +- +-if [ "$BUILD_JARS" = jars_fresh ]; then +- OUTDATED=true +-else +- OUTDATED=false +- if [ ! -e "$TARGET" ]; then +- OUTDATED=true +- else +- if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then +- declare -a DEPS=( +- "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$PURE_JAR" "$GRAPHVIEW_JAR" +- "${SOURCES[@]}" "${RESOURCES[@]}" +- ) +- elif [ -e "$ISABELLE_HOME/Admin/build" ]; then +- declare -a DEPS=("$PURE_JAR" "$GRAPHVIEW_JAR" "${SOURCES[@]}" "${RESOURCES[@]}") +- else +- declare -a DEPS=() +- fi +- for DEP in "${DEPS[@]}" +- do +- [ ! -e "$DEP" ] && fail "Missing file: $DEP" +- [ "$DEP" -nt "$TARGET" ] && { +- OUTDATED=true +- UPDATED["${#UPDATED[@]}"]="$DEP" +- } +- done +- fi +-fi +- +- +-# build +- +-if [ "$OUTDATED" = true ] +-then +- echo "### Building Isabelle/jEdit ..." +- +- [ "${#UPDATED[@]}" -gt 0 ] && { +- echo "Changed files:" +- for FILE in "${UPDATED[@]}" +- do +- echo " $FILE" +- done +- } +- +- [ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ +- fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" +- +- rm -rf dist || failed +- mkdir -p dist dist/classes || failed +- +- cp -p -R -f "$ISABELLE_JEDIT_BUILD_HOME/contrib/$ISABELLE_JEDIT_BUILD_VERSION/." dist/. +- cp -p -R -f "${RESOURCES[@]}" dist/classes/. +- cp src/jEdit.props dist/properties/. +- cp -p -R -f src/modes/. dist/modes/. +- +- perl -i -e 'while (<>) { +- if (m/NAME="javacc"/) { +- print qq,<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="*.thy"/>\n\n,; +- print qq,<MODE NAME="isabelle-news" FILE="isabelle-news.xml"/>\n\n,; +- print qq,<MODE NAME="isabelle-options" FILE="isabelle-options.xml"/>\n\n,; +- print qq,<MODE NAME="isabelle-root" FILE="isabelle-root.xml" FILE_NAME_GLOB="ROOT"/>\n\n,; } +- print; }' dist/modes/catalog +- +- cd dist +- isabelle_jdk jar xf jedit.jar +- cp "$ISABELLE_HOME/lib/logo/isabelle-32.gif" \ +- "org/gjt/sp/jedit/icons/themes/classic/32x32/apps/isabelle.gif" || failed +- cp "$ISABELLE_HOME/lib/logo/isabelle-32.gif" \ +- "org/gjt/sp/jedit/icons/themes/tango/32x32/apps/isabelle.gif" || failed +- isabelle_jdk jar cfe jedit.jar org.gjt.sp.jedit.jEdit org || failed +- rm -rf META-INF org +- cd .. +- +- cp -p -R -f "${JEDIT_JARS[@]}" dist/jars/. || failed +- ( +- #workaround for scalac 2.10.2 +- function stty() { :; } +- export -f stty +- +- for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$PURE_JAR" "$GRAPHVIEW_JAR" +- do +- classpath "$JAR" +- done +- export CLASSPATH="$(jvmpath "$ISABELLE_CLASSPATH")" +- exec "$SCALA_HOME/bin/scalac" $ISABELLE_SCALA_BUILD_OPTIONS -d dist/classes "${SOURCES[@]}" +- ) || fail "Failed to compile sources" +- +- cd dist/classes +- isabelle_jdk jar cf "../jars/Isabelle-jEdit.jar" * || failed +- cd ../.. +- rm -rf dist/classes +-fi +- + popd >/dev/null + + diff --git a/sci-mathematics/isabelle/isabelle-2013-r1.ebuild b/sci-mathematics/isabelle/isabelle-2013-r1.ebuild index f85f9aec6e48..6f57d1ef679f 100644 --- a/sci-mathematics/isabelle/isabelle-2013-r1.ebuild +++ b/sci-mathematics/isabelle/isabelle-2013-r1.ebuild @@ -1,6 +1,6 @@ -# Copyright 1999-2014 Gentoo Foundation +# Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/isabelle-2013-r1.ebuild,v 1.1 2014/01/07 13:36:33 tomwij Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/isabelle-2013-r1.ebuild,v 1.2 2015/01/25 13:08:28 gienah Exp $ EAPI="5" @@ -37,10 +37,10 @@ IUSE="doc graphbrowsing ledit readline proofgeneral" #bash 2.x/3.x, Poly/ML 5.x, Perl 5.x, #for document preparation: complete LaTeX DEPEND=">=app-shells/bash-3.0 - dev-java/ant-core - >=dev-java/jcommon-1.0.18 - >=dev-java/jfreechart-1.0.14 - >=dev-java/itext-2.1.5 + dev-java/ant-core:0 + >=dev-java/jcommon-1.0.18:1.0 + >=dev-java/jfreechart-1.0.14:1.0 + >=dev-java/itext-2.1.5:0 dev-java/xml-xmlbeans:1 >=dev-lang/ghc-7.6.3 >=dev-lang/polyml-5.5.0:=[-portable] @@ -51,7 +51,7 @@ DEPEND=">=app-shells/bash-3.0 virtual/latex-base dev-tex/rail ) - >=dev-lang/scala-2.10.2 + >=dev-lang/scala-2.10.2 <dev-lang/scala-2.11.1 ledit? ( app-misc/ledit ) diff --git a/sci-mathematics/isabelle/isabelle-2013.2.ebuild b/sci-mathematics/isabelle/isabelle-2013.2.ebuild new file mode 100644 index 000000000000..7e6d8cf25bd1 --- /dev/null +++ b/sci-mathematics/isabelle/isabelle-2013.2.ebuild @@ -0,0 +1,373 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-mathematics/isabelle/isabelle-2013.2.ebuild,v 1.1 2015/01/25 13:08:28 gienah Exp $ + +EAPI="5" + +inherit eutils java-pkg-2 multilib versionator + +MY_PN="Isabelle" +MY_PV=$(replace_all_version_separators '-') +MY_P="${MY_PN}${MY_PV}" + +JEDIT_PV="20131106" +JEDIT_PN="jedit_build" +JEDIT_P="${JEDIT_PN}-${JEDIT_PV}" +JEDIT_IC_PN="${JEDIT_PN}-isabelle-component" +JEDIT_IC_P="${JEDIT_IC_PN}-${JEDIT_PV}" + +JFREECHART_PV="1.0.14-1" +JFREECHART_PN="jfreechart" +JFREECHART_P="${JFREECHART_PN}-${JFREECHART_PV}" +JFREECHART_IC_PN="${JFREECHART_PN}-isabelle-component" +JFREECHART_IC_P="${JFREECHART_IC_PN}-${JFREECHART_PV}" + +POLYML_PV="5.5.1-1" +POLYML_PN="polyml" +POLYML_P="${POLYML_PN}-${POLYML_PV}" +POLYML_IC_PN="${POLYML_PN}-isabelle-component" +POLYML_IC_P="${POLYML_IC_PN}-${POLYML_PV}" + +DESCRIPTION="Isabelle is a generic proof assistant" +HOMEPAGE="http://www.cl.cam.ac.uk/research/hvg/Isabelle/index.html" +SRC_URI="http://isabelle.in.tum.de/dist/${MY_P}.tar.gz + http://isabelle.in.tum.de/components/${JEDIT_P}.tar.gz -> ${JEDIT_IC_P}.tar.gz + http://isabelle.in.tum.de/dist/contrib/${JFREECHART_P}.tar.gz -> ${JFREECHART_IC_P}.tar.gz + http://dev.gentoo.org/~gienah/snapshots/${POLYML_IC_P}.tar.gz" + +LICENSE="BSD" +SLOT="0/${PV}" +KEYWORDS="~amd64 ~x86" +IUSE="doc graphbrowsing ledit readline proofgeneral" + +#upstream says +#bash 2.x/3.x, Poly/ML 5.x, Perl 5.x, +#for document preparation: complete LaTeX +DEPEND=">=app-shells/bash-3.0 + dev-java/ant-core:0 + >=dev-java/jcommon-1.0.18:1.0 + >=dev-java/jfreechart-1.0.14:1.0 + >=dev-java/itext-2.1.5:0 + dev-java/xml-xmlbeans:1 + dev-java/xz-java:0 + >=dev-lang/ghc-7.6.3 + >=dev-lang/polyml-5.5.1:=[-portable] + >=dev-lang/perl-5.8.8-r2 + dev-lang/swi-prolog + virtual/jdk:1.7 + doc? ( + virtual/latex-base + dev-tex/rail + ) + >=dev-lang/scala-2.11.1 + ledit? ( + app-misc/ledit + ) + readline? ( + app-misc/rlwrap + )" + +RDEPEND="dev-perl/libwww-perl + sci-mathematics/sha1-polyml + >=virtual/jre-1.7 + proofgeneral? ( + >=app-emacs/proofgeneral-4.1 + ) + ${DEPEND}" + +S="${WORKDIR}"/Isabelle${MY_PV} +JEDIT_S="${WORKDIR}/${JEDIT_P}" +JFREECHART_S="${WORKDIR}/${JFREECHART_P}" +TARGETDIR="/usr/share/Isabelle"${MY_PV} +LIBDIR="/usr/"$(get_libdir)"/Isabelle"${MY_PV} + +# Notes on QA warnings: * Class files not found via DEPEND in package.env +# Stuff with $ in the name appear to be spurious: +# isabelle/Markup_Tree$$anonfun$results$1$1.class +# scala/tools/nsc/backend/jvm/GenJVM$BytecodeGenerator$$anonfun$computeLocalVarsIndex$1.class +# It wants javafx, I am unsure how to fix this. I test isabelle with the Sun JDK: +# javafx/application/Platform.class javafx +# Presumably the user can provide the jEdit plugins if they are necessary: +# marker/MarkerSetsPlugin.class http://plugins.jedit.org/plugins/?MarkerSets +# projectviewer/gui/OptionPaneBase.class http://plugins.jedit.org/plugins/?ProjectViewer + +LIBRARY_PKGS="ant-core,itext,jcommon-1.0,jfreechart-1.0,scala,xml-xmlbeans-1,xz-java" + +src_unpack() { + unpack "${MY_P}.tar.gz" + pushd "${S}/contrib" || die + unpack ${JEDIT_IC_P}.tar.gz + unpack ${JFREECHART_IC_P}.tar.gz + unpack ${POLYML_IC_P}.tar.gz +} + +pkg_setup() { + java-pkg-2_pkg_setup +} + +src_prepare() { + java-pkg-2_src_prepare + java-pkg_getjars ${LIBRARY_PKGS} + epatch "${FILESDIR}/${PN}-2013-gentoo-settings.patch" + epatch "${FILESDIR}/${PN}-2013.2-classpath.patch" + polymlver=$(poly -v | cut -d' ' -f2) + polymlarch=$(poly -v | cut -d' ' -f9 | cut -d'-' -f1) + sed -e "s@5.5.0@${polymlver}@g" \ + -i "${S}/etc/settings" \ + || die "Could not configure polyml version in etc/settings" + sed -e "s@ML_HOME=\"/@ML_HOME=\"${ROOT}@" \ + -i "${S}/etc/settings" \ + || die "Could not configure polyml ML_HOME in etc/settings" + sed -e "s@x86_64@${polymlarch}@g" \ + -i "${S}/etc/settings" \ + || die "Could not configure polyml arch in etc/settings" + sed -e "s@PROOFGENERAL_HOME=\"/@PROOFGENERAL_HOME=\"${ROOT}@" \ + -i "${S}/etc/settings" \ + || die "Could not configure PROOFGENERAL_HOME in etc/settings" + sed -e "s@/usr/lib64/Isabelle${MY_PV}@${LIBDIR}@g" \ + -i "${S}/etc/settings" \ + || die "Could not configure Isabelle lib directory in etc/settings" + epatch "${FILESDIR}/${PN}-2012-graphbrowser.patch" + epatch "${FILESDIR}/${PN}-2012-libsha1.patch" + # this example fails to compile with swi-prolog 6.5.2, so patch it so that + # Isabelle will build, then reverse the patch so that the user can see the + # original code. + epatch "${FILESDIR}/${PN}-2013.2-HOL-Predicate_Compile_Examples.patch" + cat <<- EOF >> "${S}/etc/settings" + + ISABELLE_GHC="${ROOT}usr/bin/ghc" + ISABELLE_OCAML="${ROOT}usr/bin/ocaml" + ISABELLE_SWIPL="${ROOT}usr/bin/swipl" + ISABELLE_JDK_HOME="\$(java-config --jdk-home)" + SCALA_HOME="${ROOT}usr/share/scala" + SHA1_HOME="/usr/$(get_libdir)/sha1-polyml" + EOF + cat <<- EOF >> "${S}/etc/components" + #bundled components + contrib/${JEDIT_P} + contrib/${JFREECHART_P} + contrib/${POLYML_P} + EOF + if use ledit && ! use readline; then + epatch "${FILESDIR}/${PN}-2012-reverse-line-editor-order.patch" + fi + rm -f "${S}/contrib/jfreechart-1.0.14-1/lib/iText-2.1.5.jar" \ + "${S}/contrib/jfreechart-1.0.14-1/lib/jfreechart-1.0.14.jar" \ + "${S}/contrib/jfreechart-1.0.14-1/lib/jcommon-1.0.18.jar" \ + "${S}/lib/classes/ext/scala-actors.jar" \ + "${S}/lib/classes/ext/scala-compiler.jar" \ + "${S}/lib/classes/ext/scala-library.jar" \ + "${S}/lib/classes/ext/scala-reflect.jar" \ + "${S}/lib/classes/ext/scala-swing.jar" \ + || die "Could not rm bundled jar files supplied by Gentoo" +} + +src_compile() { + einfo "Building Isabelle. This may take some time." + ./bin/isabelle build -a -b -s -v || die "isabelle build failed" + epatch --reverse "${FILESDIR}/${PN}-2013.2-HOL-Predicate_Compile_Examples.patch" + if use graphbrowsing + then + rm -f "${S}/lib/browser/GraphBrowser.jar" \ + || die "failed cleaning graph browser directory" + pushd "${S}/lib/browser" \ + || die "Could not change directory to lib/browser" + ./build || die "failed building the graph browser" + popd + fi + ./bin/isabelle jedit -b -f || die "pide build failed" +} + +src_install() { + insinto ${TARGETDIR} + doins -r src + doins -r lib + doins -r contrib + doins ROOTS + + docompress -x /usr/share/doc/${PF} + dodoc -r doc + if use doc; then + dosym /usr/share/doc/${PF}/doc "${TARGETDIR}/doc" + # The build of sci-mathematics/haskabelle with use doc requires + # sci-mathematics/isabelle[doc?]. The haskabelle doc build requires + # the src/Doc directory stuff in the isabelle package. + doins -r src/Doc + for i in "./src/Doc/Classes/document/build" \ + "./src/Doc/Codegen/document/build" \ + "./src/Doc/Datatypes/document/build" \ + "./src/Doc/fixbookmarks" \ + "./src/Doc/Functions/document/build" \ + "./src/Doc/Intro/document/build" \ + "./src/Doc/IsarImplementation/document/build" \ + "./src/Doc/IsarRef/document/build" \ + "./src/Doc/IsarRef/document/showsymbols" \ + "./src/Doc/JEdit/document/build" \ + "./src/Doc/LaTeXsugar/document/build" \ + "./src/Doc/Locales/document/build" \ + "./src/Doc/Logics/document/build" \ + "./src/Doc/Main/document/build" \ + "./src/Doc/Nitpick/document/build" \ + "./src/Doc/prepare_document" \ + "./src/Doc/ProgProve/document/build" \ + "./src/Doc/sedindex" \ + "./src/Doc/Sledgehammer/document/build" \ + "./src/Doc/System/document/build" \ + "./src/Doc/Tutorial/document/build" \ + "./src/Doc/Tutorial/document/isa-index" \ + "./src/Doc/ZF/document/build" + do + exeinto $(dirname "${TARGETDIR}/${i}") + doexe ${i} + done + fi + + for i in "./bin/isabelle" \ + "./bin/isabelle-process" \ + "./bin/isabelle_scala_script" \ + "./lib/browser/build" \ + "./lib/scripts/feeder" \ + "./lib/scripts/getsettings" \ + "./lib/scripts/polyml-version" \ + "./lib/scripts/process" \ + "./lib/scripts/run-polyml" \ + "./lib/scripts/run-polyml-5.5.1" \ + "./lib/scripts/run-smlnj" \ + "./lib/scripts/unsymbolize" \ + "./lib/scripts/update_sub_sup" \ + "./lib/scripts/yxml" \ + "./lib/Tools/browser" \ + "./lib/Tools/build" \ + "./lib/Tools/components" \ + "./lib/Tools/display" \ + "./lib/Tools/doc" \ + "./lib/Tools/document" \ + "./lib/Tools/emacs" \ + "./lib/Tools/env" \ + "./lib/Tools/findlogics" \ + "./lib/Tools/getenv" \ + "./lib/Tools/install" \ + "./lib/Tools/java" \ + "./lib/Tools/keywords" \ + "./lib/Tools/latex" \ + "./lib/Tools/logo" \ + "./lib/Tools/mkroot" \ + "./lib/Tools/options" \ + "./lib/Tools/scala" \ + "./lib/Tools/scalac" \ + "./lib/Tools/tty" \ + "./lib/Tools/unsymbolize" \ + "./lib/Tools/update_sub_sup" \ + "./lib/Tools/version" \ + "./lib/Tools/yxml" \ + "./src/HOL/IMP/export.sh" \ + "./src/HOL/Library/Sum_of_Squares/neos_csdp_client" \ + "./src/HOL/Mirabelle/lib/Tools/mirabelle" \ + "./src/HOL/Mutabelle/lib/Tools/mutabelle" \ + "./src/HOL/SPARK/Examples/README" \ + "./src/HOL/Tools/ATP/scripts/dummy_atp" \ + "./src/HOL/Tools/ATP/scripts/remote_atp" \ + "./src/HOL/Tools/Sledgehammer/MaSh/src/compareStats.py" \ + "./src/HOL/Tools/Sledgehammer/MaSh/src/mash.py" \ + "./src/HOL/Tools/Sledgehammer/MaSh/src/server.py" \ + "./src/HOL/Tools/SMT/lib/scripts/remote_smt" \ + "./src/HOL/TPTP/lib/Tools/tptp_graph" \ + "./src/HOL/TPTP/lib/Tools/tptp_isabelle" \ + "./src/HOL/TPTP/lib/Tools/tptp_isabelle_hot" \ + "./src/HOL/TPTP/lib/Tools/tptp_nitpick" \ + "./src/HOL/TPTP/lib/Tools/tptp_refute" \ + "./src/HOL/TPTP/lib/Tools/tptp_sledgehammer" \ + "./src/HOL/TPTP/TPTP_Parser/make_mlyacclib" \ + "./src/HOL/TPTP/TPTP_Parser/make_tptp_parser" \ + "./src/Pure/build" \ + "./src/Pure/build-jars" \ + "./src/Tools/Code/lib/Tools/codegen" \ + "./src/Tools/Graphview/lib/Tools/graphview" \ + "./src/Tools/jEdit/lib/Tools/jedit" \ + "./src/Tools/Metis/fix_metis_license" \ + "./src/Tools/Metis/make_metis" \ + "./src/Tools/Metis/scripts/mlpp" \ + "./src/Tools/WWW_Find/lib/Tools/wwwfind" + do + exeinto $(dirname "${TARGETDIR}/${i}") + doexe ${i} + done + + insinto /etc/isabelle + doins -r etc/* + dosym /etc/isabelle "${TARGETDIR}/etc" + + dosym "${LIBDIR}/heaps" "${TARGETDIR}/heaps" + insinto ${LIBDIR} + doins -r heaps + + bin/isabelle install -d ${TARGETDIR} "${ED}usr/bin" \ + || die "isabelle install failed" + newicon lib/icons/"${PN}.xpm" "${PN}.xpm" + newicon lib/icons/"${PN}-mini.xpm" "${PN}-mini.xpm" + dodoc ANNOUNCE CONTRIBUTORS COPYRIGHT NEWS README + + java-pkg_regjar \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/Console.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/ErrorList.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/Highlight.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/idea-icons.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/jedit-5.1.0-patched/jars/QuickNotepad.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/jedit-5.1.0-patched/jedit.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/jsr305-2.0.0.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/MacOSX.jar" \ + "${ED}${TARGETDIR}/contrib/jedit_build-20131106/contrib/SideKick.jar" \ + "${ED}${TARGETDIR}/contrib/jfreechart-1.0.14-1/jfreechart-1.0.14-demo.jar" \ + "${ED}${TARGETDIR}/lib/browser/GraphBrowser.jar" \ + "${ED}${TARGETDIR}/lib/classes/Graphview.jar" \ + "${ED}${TARGETDIR}/lib/classes/Pure.jar" \ + "${ED}${TARGETDIR}/lib/classes/scala-actors.jar" \ + "${ED}${TARGETDIR}/lib/classes/scala-compiler.jar" \ + "${ED}${TARGETDIR}/lib/classes/scala-library.jar" \ + "${ED}${TARGETDIR}/lib/classes/scala-reflect.jar" \ + "${ED}${TARGETDIR}/lib/classes/scala-swing.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Console.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/ErrorList.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Highlight.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/idea-icons.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/Isabelle-jEdit.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/jsr305-2.0.0.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/MacOSX.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/QuickNotepad.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jars/SideKick.jar" \ + "${ED}${TARGETDIR}/src/Tools/jEdit/dist/jedit.jar" +} + +pkg_postinst() { + # If any of the directories in /etc/isabelle/components do not exist, then + # even isabelle getenv ISABELLE_HOME fails. Hence it is necessary to + # to delete any non-existing directories. If an old Isabelle version was + # installed with component ebuilds like sci-mathematics/e, then the + # Isabelle version is upgraded, then the contrib directories will not + # exist initially, it is necessary to delete them from /etc/isabelle/components. + # Then these components are rebuilt (creating these directories) using the + # EAPI=5 subslot depends. + for i in $(egrep '^[^#].*$' "${ROOT}etc/isabelle/components") + do + if [ ! -d /usr/share/${MY_P}/${i} ]; then + sed -e "\@${i}@d" -i "${ROOT}etc/isabelle/components" + fi + done + if use ledit && use readline; then + elog "Both readline and ledit use flags specified. The default setting" + elog "if both are installed is to use readline (rlwrap), this can be" + elog "modfied by editing the ISABELLE_LINE_EDITOR setting in" + elog "${ROOT}/etc/isabelle/settings" + fi + elog "Please ensure you have a pdf viewer installed, for example:" + elog "As root: emerge app-text/zathura-pdf-poppler" + elog "Please configure your preferred pdf viewer, something like:" + elog "As normal user: xdg-mime default zathura.desktop application/pdf" + elog "Or alternatively by editing the PDF_VIEWER variable in the system" + elog "settings file ${ROOT}etc/isabelle/settings and/or the user" + elog "settings file \$HOME/.isabelle/${MY_P}/etc/settings" + elog "To improve sledgehammer performance, consider installing:" + elog "USE=isabelle emerge sci-mathematics/e sci-mathematics/spass" + elog "For nitpick it is necessary to install:" + elog "emerge sci-mathematics/kodkodi" +} |