summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Wright <gienah@gentoo.org>2015-01-25 13:08:28 +0000
committerMark Wright <gienah@gentoo.org>2015-01-25 13:08:28 +0000
commit8c6ada4b0dfefce860c1cb2d702b4dfbb9758430 (patch)
treee33aaa89a77d4427886f6550ade48f853ea2e41d /sci-mathematics/isabelle
parentnet-misc/networkmanager: fix build with /bin/sh != bash (diff)
downloadgentoo-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')
-rw-r--r--sci-mathematics/isabelle/ChangeLog14
-rw-r--r--sci-mathematics/isabelle/files/isabelle-2013.2-HOL-Predicate_Compile_Examples.patch89
-rw-r--r--sci-mathematics/isabelle/files/isabelle-2013.2-classpath.patch135
-rw-r--r--sci-mathematics/isabelle/isabelle-2013-r1.ebuild14
-rw-r--r--sci-mathematics/isabelle/isabelle-2013.2.ebuild373
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"
+}