--- /dev/null
+--- Isabelle2016-1-orig/src/Tools/jEdit/lib/Tools/jedit 2016-12-13 01:03:49.000000000 +1100
++++ Isabelle2016-1/src/Tools/jEdit/lib/Tools/jedit 2017-01-01 17:24:50.107722845 +1100
+@@ -239,125 +239,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"
+- "${SOURCES[@]}" "${RESOURCES[@]}"
+- )
+- elif [ -e "$ISABELLE_HOME/Admin/build" ]; then
+- declare -a DEPS=("$PURE_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/FILE="ml.xml"/ or m/FILE_NAME_GLOB="...sml,ml."/) { }
+- elsif (m/NAME="javacc"/) {
+- print qq!<MODE NAME="isabelle" FILE="isabelle.xml" FILE_NAME_GLOB="{*.thy,ROOT0.ML,ROOT.ML}"/>\n\n!;
+- print qq!<MODE NAME="isabelle-ml" FILE="isabelle-ml.xml" FILE_NAME_GLOB="*.ML"/>\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;
+- }
+- elsif (m/NAME="sqr"/) {
+- print qq!<MODE NAME="sml" FILE="sml.xml" FILE_NAME_GLOB="*.{sml,sig}"/>\n\n!;
+- print;
+- }
+- else { print; }
+- }' dist/modes/catalog
+-
+- cd dist
+- isabelle_jdk jar xf jedit.jar
+- cp "$ISABELLE_HOME/lib/logo/isabelle_transparent-32.gif" \
+- "org/gjt/sp/jedit/icons/themes/classic/32x32/apps/isabelle.gif" || failed
+- cp "$ISABELLE_HOME/lib/logo/isabelle_transparent-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
+- (
+- #FIXME workarounds for scalac 2.11.0
+- export CYGWIN="nodosfilewarning"
+- function stty() { :; }
+- export -f stty
+-
+- for JAR in "$JEDIT_JAR" "${JEDIT_JARS[@]}" "$PURE_JAR"
+- do
+- classpath "$JAR"
+- done
+- export CLASSPATH="$(platform_path "$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
+-
+- cp "$ISABELLE_JEDIT_BUILD_HOME/doc/jedit5.3.0manual-a4.pdf" dist/doc/jedit-manual.pdf
+- cp dist/doc/CHANGES.txt dist/doc/jedit-changes
+- cat > dist/doc/Contents <<EOF
+-Original jEdit Documentation
+- jedit-manual jEdit 5.3 User's Guide
+- jedit-changes jEdit 5.3 Version History
+-
+-EOF
+-
+-fi
+-
+ popd >/dev/null
+
+
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit eutils check-reqs java-pkg-2 versionator
+
+MY_PN="Isabelle"
+MY_PV=$(replace_all_version_separators '-')
+MY_P="${MY_PN}${MY_PV}"
+
+BP_PV="1.2.1"
+BP_PN="bash_process"
+BP_P="${BP_PN}-${BP_PV}"
+BP_IC_PN="${BP_PN}-isabelle-component"
+BP_IC_P="${BP_IC_PN}-${BP_PV}"
+
+# csdp is used in the compile of HOL_ex in
+# Library/Sum_of_Squares/sos_wrapper.ML where it execs $ISABELLE_CSDP
+CSDP_PV="6.x"
+CSDP_PN="csdp"
+CSDP_P="${CSDP_PN}-${CSDP_PV}"
+CSDP_IC_PN="${CSDP_PN}-isabelle-component"
+CSDP_IC_P="${CSDP_IC_PN}-${CSDP_PV}"
+
+ISABELLE_FONTS_PV="20160830"
+ISABELLE_FONTS_PN="isabelle_fonts"
+ISABELLE_FONTS_P="${ISABELLE_FONTS_PN}-${ISABELLE_FONTS_PV}"
+ISABELLE_FONTS_IC_PN="${ISABELLE_FONTS_PN}-isabelle-component"
+ISABELLE_FONTS_IC_P="${ISABELLE_FONTS_IC_PN}-${ISABELLE_FONTS_PV}"
+
+JEDIT_PV="20161024"
+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}"
+
+JORTHO_PV="1.0-2"
+JORTHO_PN="jortho"
+JORTHO_P="${JORTHO_PN}-${JORTHO_PV}"
+JORTHO_IC_PN="${JORTHO_PN}-isabelle-component"
+JORTHO_IC_P="${JORTHO_IC_PN}-${JORTHO_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.6-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}"
+
+SSH_JAVA_PV="20161009"
+SSH_JAVA_PN="ssh-java"
+SSH_JAVA_P="${SSH_JAVA_PN}-${SSH_JAVA_PV}"
+SSH_JAVA_IC_PN="${SSH_JAVA_PN}-isabelle-component"
+SSH_JAVA_IC_P="${SSH_JAVA_IC_PN}-${SSH_JAVA_PV}"
+
+XZ_JAVA_PV="1.5"
+XZ_JAVA_PN="xz-java"
+XZ_JAVA_P="${XZ_JAVA_PN}-${XZ_JAVA_PV}"
+XZ_JAVA_IC_PN="${XZ_JAVA_PN}-isabelle-component"
+XZ_JAVA_IC_P="${XZ_JAVA_IC_PN}-${XZ_JAVA_PV}"
+
+SS="2.11"
+
+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/website-${MY_P}/dist/${MY_P}.tar.gz
+ http://isabelle.in.tum.de/dist/contrib/${BP_P}.tar.gz -> ${BP_IC_P}.tar.gz
+ http://dev.gentoo.org/~gienah/snapshots/${CSDP_IC_P}.tar.gz
+ http://isabelle.in.tum.de/dist/contrib/${ISABELLE_FONTS_P}.tar.gz -> ${ISABELLE_FONTS_IC_P}.tar.gz
+ http://isabelle.in.tum.de/components/${JORTHO_P}.tar.gz -> ${JORTHO_IC_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
+ http://isabelle.in.tum.de/dist/contrib/${SSH_JAVA_P}.tar.gz -> ${SSH_JAVA_IC_P}.tar.gz
+ http://dev.gentoo.org/~gienah/snapshots/${XZ_JAVA_IC_P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc graphbrowsing ledit readline"
+
+#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/jcommon-1.0.18:1.0
+ dev-java/jortho:0
+ >=dev-java/jfreechart-1.0.14:1.0
+ >=dev-java/itext-2.1.5:0
+ dev-java/xz-java:0
+ >=dev-lang/ghc-7.6.3
+ >=dev-lang/polyml-5.6:=[-portable]
+ >=dev-lang/perl-5.8.8-r2
+ >=dev-lang/swi-prolog-6.6.6
+ sci-libs/coinor-csdp
+ =sci-mathematics/z3-4.4*[isabelle]
+ >=virtual/jdk-1.8
+ doc? (
+ virtual/latex-base
+ dev-tex/rail
+ )
+ >=dev-lang/scala-2.11.8:${SS}
+ ledit? (
+ app-misc/ledit
+ )
+ readline? (
+ app-misc/rlwrap
+ )"
+
+RDEPEND="dev-perl/libwww-perl
+ sci-mathematics/sha1-polyml
+ >=virtual/jre-1.8
+ ${DEPEND}"
+
+S="${WORKDIR}"/Isabelle${MY_PV}
+TARGETDIR="/usr/share/Isabelle"
+
+# 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
+
+JAVA_GENTOO_CLASSPATH="itext,jcommon-1.0,jortho,jfreechart-1.0,scala-${SS},xz-java"
+
+CHECKREQS_MEMORY="8192M"
+CHECKREQS_DISK_BUILD="17G"
+CHECKREQS_DISK_USR="8G"
+
+src_unpack() {
+ unpack "${MY_P}.tar.gz"
+ cd "${S}/contrib" || die
+ unpack ${BP_IC_P}.tar.gz
+ unpack ${CSDP_IC_P}.tar.gz
+ unpack ${ISABELLE_FONTS_IC_P}.tar.gz
+ unpack ${JEDIT_IC_P}.tar.gz
+ unpack ${JORTHO_IC_P}.tar.gz
+ unpack ${JFREECHART_IC_P}.tar.gz
+ unpack ${POLYML_IC_P}.tar.gz
+ unpack ${SSH_JAVA_IC_P}.tar.gz
+ unpack ${XZ_JAVA_IC_P}.tar.gz
+}
+
+pkg_setup() {
+ java-pkg-2_pkg_setup
+ check-reqs_pkg_setup
+}
+
+src_prepare() {
+ java-pkg-2_src_prepare
+ java-pkg_getjars ${JAVA_GENTOO_CLASSPATH}
+ rm -rf "${S}/contrib/${BP_P}/{x86-cygwin,x86-darwin,x86_64-darwin,x86-linux,x86_64-linux}" \
+ || die "Could not remove bash_process binaries"
+ rm -f "${S}/contrib/${JORTHI_P}/${JORTHO_PN}.jar" \
+ || die "Could not remove contrib/${JORTHI_P}/${JORTHO_PN}.jar"
+ eapply "${FILESDIR}/${PN}-2016-classpath.patch"
+ eapply "${FILESDIR}/${PN}-2016-jfreechart-classpath.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-bash_process-1.2.1-settings.patch"
+ eapply "${FILESDIR}/${PN}-2012-graphbrowser.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-libsha1.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-smt_timeout.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-smt_read_only_certificates.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-disable-jedit-build-after-install.patch"
+ eapply "${FILESDIR}/${PN}-2016.1-jortho-1.0-2-classpath.patch"
+ local polymlver=$(poly -v | cut -d' ' -f2)
+ local polymlarch=$(poly -v | cut -d' ' -f9 | cut -d'-' -f1)
+ cat <<- EOF >> "${S}/etc/settings"
+ # Poly/ML Gentoo (${polymlarch,,})
+ ML_PLATFORM=${polymlarch,,}-linux
+ ML_HOME="${ROOT}usr/bin"
+ ML_SYSTEM=polyml-${polymlver}
+ ML_OPTIONS="-H 1000"
+ ML_SOURCES="${ROOT}usr/src/debug/dev-lang/polyml-${polymlver}"
+
+ 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)"
+ ISABELLE_BUILD_JAVA_OPTIONS="-Djava.awt.headless=true"
+ SCALA_HOME="${ROOT}usr/share/scala-${SS}"
+ SHA1_HOME="${ROOT}usr/$(get_libdir)/sha1-polyml"
+ EOF
+ local Z3_P="$(best_version sci-mathematics/z3 | sed 's:sci-mathematics/::')"
+ cat <<- EOF >> "${S}/etc/components"
+ #bundled components
+ contrib/${BP_P}
+ contrib/${CSDP_P}
+ contrib/${ISABELLE_FONTS_P}
+ contrib/${JEDIT_P}
+ contrib/${JORTHO_P}
+ contrib/${JFREECHART_P}
+ contrib/${POLYML_P}
+ contrib/${SSH_JAVA_P}
+ contrib/${XZ_JAVA_P}
+ contrib/${Z3_P}
+ EOF
+ local Z3_RC="${ROOT}usr/share/Isabelle/contrib/${Z3_P}"
+ [ -d "${Z3_RC}" ] \
+ || die "z3 isabelle component directory ${Z3_RC} does not exist"
+ ln -s "${Z3_RC}" \
+ "${S}/contrib/${Z3_P}" \
+ || die "Failed to create z3 isabelle component symbolic link"
+ if use ledit && ! use readline; then
+ eapply "${FILESDIR}/${PN}-2012-reverse-line-editor-order.patch"
+ fi
+ rm -f "${S}/contrib/${JFREECHART_P}/lib"/*.jar \
+ || die "Could not rm bundled jar files supplied by Gentoo"
+}
+
+src_compile() {
+ unset DISPLAY
+ einfo "Building Isabelle. This may take some time."
+ pushd contrib/${BP_P} || die "Could not cd to contrib/${BP_P}"
+ $(tc-getCC) ${CFLAGS} ${LDFLAGS} -o ${BP_PN} ${BP_PN}.c \
+ || die "Could not build ${BP_PN}"
+ popd || die
+ 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"
+ pushd "${S}"/src/Pure || die "Could not change directory to src/Pure"
+ ../../bin/isabelle env ./build-jars -f || die "build-jars failed"
+ popd || die
+ ./bin/isabelle build -a -b -s -v || die "isabelle build failed"
+}
+
+src_install() {
+ local Z3_P="$(best_version sci-mathematics/z3 | sed 's:sci-mathematics/::')"
+ rm "${S}/contrib/${Z3_P}" \
+ || die "Failed to remove z3 isabelle component symbolic link"
+
+ 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 $(find ./src/Doc -type f -executable -print)
+ do
+ exeinto $(dirname "${TARGETDIR}/${i}")
+ doexe ${i}
+ done
+ fi
+
+ for i in $(find \
+ ./{bin,lib,"contrib/${BP_P}/${BP_PN}",src/HOL,src/Pure,src/Tools} \
+ -type f -executable -print)
+ do
+ exeinto $(dirname "${TARGETDIR}/${i}")
+ doexe ${i}
+ done
+
+ insinto /etc/isabelle
+ doins -r etc/*
+ dosym /etc/isabelle "${TARGETDIR}/etc"
+
+ local LIBDIR="/usr/"$(get_libdir)"/Isabelle"${MY_PV}
+ 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"
+
+ java-pkg_regjar \
+ $(find . -type f -name \*.jar -print | sed -e "s@^\.@${ED}${TARGETDIR}@g")
+
+ local DOCS=( "ANNOUNCE" "CONTRIBUTORS" "COPYRIGHT" "NEWS" "README" )
+ einstalldocs
+}
+
+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 ${TARGETDIR}/${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 "For nitpick it is necessary to install:"
+ elog "emerge sci-mathematics/kodkodi"
+}