more explicit directory structure Admin/Release/;
authorwenzelm
Thu, 05 Jul 2012 14:13:14 +0200
changeset 48190 76b6207eb000
parent 48189 cd0a411b7fc1
child 48191 c1def7433a72
child 48199 0e552737cc5a
more explicit directory structure Admin/Release/; updated to Admin/components;
Admin/CHECKLIST
Admin/Release/CHECKLIST
Admin/Release/isasync
Admin/Release/makebin
Admin/Release/makebundle
Admin/Release/makedist
Admin/Release/mirror-website
Admin/isasync
Admin/makebin
Admin/makebundle
Admin/makedist
Admin/mira.py
Admin/mirror-website
--- a/Admin/CHECKLIST	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,81 +0,0 @@
-Checklist for official releases
-===============================
-
-- test polyml-5.4.1, polyml-5.4.0, polyml-5.3.0, smlnj;
-
-- test Proof General 4.1, 3.7.1.1;
-
-- check HTML header of library;
-
-- check CTRL-C, SIGINT in tty (also for external processes);
-
-- check persistent sessions with PG and Poly/ML 5.x;
-
-- check file positions within logic images (hyperlinks etc.);
-
-- Admin/update-keywords;
-
-- check ANNOUNCE, README, NEWS, COPYRIGHT, CONTRIBUTORS;
-
-- check Admin/contributed_components;
-
-- check funny base directory, e.g. "Test 中国";
-
-- diff NEWS wrt. last official release, which is read-only;
-
-- update https://isabelle.in.tum.de/repos/website;
-
-- maintain Docs:
-    doc-src: make all
-    doc-src/Dirs
-    doc/Contents
-
-- maintain Logics:
-    build
-    etc/components
-    lib/html/library_index_content.template
-
-- test separate compilation of Isabelle/Scala PIDE sources:
-    Admin/build jars_test
-
-- test Isabelle/jEdit:
-    print buffer
-
-- test contrib components:
-    x86_64-linux without 32bit C/C++ libraries
-    Mac OS X Leopard
-
-
-Packaging
-=========
-
-- makedist -j jedit_build-XXXX -r DISTNAME
-
-- makebin (multiplatform);
-
-- makebundle (multiplatform);
-
-- Mac OS X: hdiutil create -srcfolder DIR DMG;
-
-- Windows: cat 7zsd_All.sfx sfx.txt Isabelle.7z > Isabelle.exe
-
-- makebin -l on fast machine, based on renamed bundle with deleted heaps;
-
-
-Final release stage
-===================
-
-- makedist: REPOS_NAME="isabelle-release"
-
-- various .hg/hgrc files:
-  default = /home/isabelle-repository/repos/isabelle-release
-
-- isatest@macbroy28:hg-isabelle/.hg/hgrc
-- isatest@macbroy28:devel-page/content/index.content
-
-
-Post-release
-============
-
-- update /home/isabelle and /home/isabelle/html-data
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/CHECKLIST	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,81 @@
+Checklist for official releases
+===============================
+
+- test polyml-5.4.1, polyml-5.4.0, polyml-5.3.0, smlnj;
+
+- test Proof General 4.1, 3.7.1.1;
+
+- check HTML header of library;
+
+- check CTRL-C, SIGINT in tty (also for external processes);
+
+- check persistent sessions with PG and Poly/ML 5.x;
+
+- check file positions within logic images (hyperlinks etc.);
+
+- Admin/update-keywords;
+
+- check ANNOUNCE, README, NEWS, COPYRIGHT, CONTRIBUTORS;
+
+- check Admin/components;
+
+- check funny base directory, e.g. "Test 中国";
+
+- diff NEWS wrt. last official release, which is read-only;
+
+- update https://isabelle.in.tum.de/repos/website;
+
+- maintain Docs:
+    doc-src: make all
+    doc-src/Dirs
+    doc/Contents
+
+- maintain Logics:
+    build
+    etc/components
+    lib/html/library_index_content.template
+
+- test separate compilation of Isabelle/Scala PIDE sources:
+    Admin/build jars_test
+
+- test Isabelle/jEdit:
+    print buffer
+
+- test contrib components:
+    x86_64-linux without 32bit C/C++ libraries
+    Mac OS X Leopard
+
+
+Packaging
+=========
+
+- makedist -j jedit_build-XXXX -r DISTNAME
+
+- makebin (multiplatform);
+
+- makebundle (multiplatform);
+
+- Mac OS X: hdiutil create -srcfolder DIR DMG;
+
+- Windows: cat 7zsd_All.sfx sfx.txt Isabelle.7z > Isabelle.exe
+
+- makebin -l on fast machine, based on renamed bundle with deleted heaps;
+
+
+Final release stage
+===================
+
+- makedist: REPOS_NAME="isabelle-release"
+
+- various .hg/hgrc files:
+  default = /home/isabelle-repository/repos/isabelle-release
+
+- isatest@macbroy28:hg-isabelle/.hg/hgrc
+- isatest@macbroy28:devel-page/content/index.content
+
+
+Post-release
+============
+
+- update /home/isabelle and /home/isabelle/html-data
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/isasync	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,129 @@
+#!/usr/bin/env bash
+#
+# mirror script for Isabelle distribution or website
+
+
+## diagnostics
+
+PRG=`basename "$0"`
+
+usage()
+{
+  echo
+  echo "Usage: $PRG [OPTIONS] DEST"
+  echo
+  echo "  Options are:"
+  echo "    -h    print help message"
+  echo "    -n    dry run, don't do anything, just report what would happen"
+  echo "    -w    (ignored for backward compatibility)"
+  echo "    -d    delete files that are not on the server (BEWARE!)"
+  echo
+  exit 1
+}
+
+fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## process command line
+
+# options
+
+HELP=""
+ARGS=""
+SRC="isabelle-website"
+
+while getopts "hnwd" OPT
+do
+  case "$OPT" in
+    h)
+      HELP=true
+      ;;
+    n)
+      ARGS="$ARGS -n"
+      ;;
+    w)
+      echo "option -w ignored"
+      ;;
+    d)
+      ARGS="$ARGS --delete"
+      ;;
+    \?)
+      usage
+      ;;
+  esac
+done
+
+shift `expr $OPTIND - 1`
+
+
+# help
+
+if [ -n "$HELP" ]; then
+  cat <<EOF
+
+Mirroring the Isabelle distribution or website
+==============================================
+
+The Munich site maintains an rsync server for the Isabelle
+distribution or website.
+
+The rsync tool is very smart and efficient in mirroring large
+directory hierarchies.  See http://rsync.samba.org/ for more
+information.  The $PRG script provides a simple front-end
+for easy access to the Isabelle distribution.
+
+The script can be either run in conservative or clean-sweep mode.
+
+1) Basic mirroring works like this:
+
+  $PRG /foo/bar
+
+where /foo/bar refers to your local copy of the Isabelle distribution
+(the base directory has to exist already).  This operation is
+conservative in the sense that files are never deleted, thus garbage
+may accumulate over time as our master copy is changed.
+
+Avoiding garbage in your local copy requires some care.  Rsync
+provides a way to delete all additional local files that are absent in
+the master copy.  This provides an efficient way to purge large
+directory hierarchies, even unwillingly in case that a wrong
+destination is given!
+
+2a) This will invoke a safe dry-run of clean-sweep mirroring:
+
+  $PRG -dn /foo/bar
+
+where additions and deletions will be printed without any actual
+changes performed so far.
+
+2b) Exact mirroring with actual deletion of garbage may be performed
+like this:
+
+  $PRG -d /foo/bar
+
+
+After gaining some confidence in the workings of $PRG one
+would usually set up some automatic mirror scheme, e.g. a daily cron
+job run by the 'nobody' user.
+
+Add -w to the option list in order to mirror the whole Isabelle website
+
+EOF
+  exit 0
+fi
+
+
+# arguments
+
+[ $# -ne 1 ] && { echo "Bad arguments: $*"; usage; }
+
+DEST="$1"; shift;
+
+
+## main
+
+exec rsync -va $ARGS "rsync://isabelle.in.tum.de/$SRC" "$DEST/"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/makebin	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,118 @@
+#!/usr/bin/env bash
+#
+# makebin -- make Isabelle logic images for current platform
+
+
+## global settings
+
+TMP="/var/tmp/isabelle-makebin$$"
+
+
+## diagnostics
+
+PRG=$(basename "$0")
+
+function usage()
+{
+  echo
+  echo "Usage: $PRG [OPTIONS] ARCHIVE"
+  echo
+  echo "  Options are:"
+  echo "    -l           produce library"
+  echo
+  echo "  Precompile Isabelle for the current platform."
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## process command line
+
+# options
+
+DO_LIBRARY=""
+
+while getopts "l" OPT
+do
+  case "$OPT" in
+    l)
+      DO_LIBRARY=true
+      ;;
+    \?)
+      usage
+      ;;
+  esac
+done
+
+shift $(($OPTIND - 1))
+
+
+# args
+
+[ "$#" -gt 1 ] && usage
+
+ARCHIVE="$1"; shift
+
+
+## main
+
+[ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
+ARCHIVE_BASE="$(basename "$ARCHIVE")"
+ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
+ARCHIVE_FULL="$ARCHIVE_DIR/$ARCHIVE_BASE"
+
+ISABELLE_NAME="$(basename "$ARCHIVE_BASE" .tar.gz)"
+ISABELLE_HOME="$TMP/$ISABELLE_NAME"
+
+
+# build logics
+
+mkdir "$TMP" || fail "Cannot create directory $TMP"
+
+cd "$TMP"
+tar xzf "$ARCHIVE_FULL"
+cd "$ISABELLE_NAME"
+
+perl -pi \
+  -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1":;' \
+  etc/settings
+
+if [ -n "$DO_LIBRARY" ]; then
+  perl -pi -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1 -i true -d pdf -V outline=/proof,/ML":;' \
+    etc/settings
+fi
+
+ISABELLE_HOME_USER=$(./bin/isabelle getenv -b ISABELLE_HOME_USER)
+
+COMPILER=$(./bin/isabelle getenv -b ML_IDENTIFIER)
+PLATFORM=$(./bin/isabelle getenv -b ML_PLATFORM)
+
+if [ -n "$DO_LIBRARY" ]; then
+  ./build -bait -m all
+else
+  ./build -b HOL
+fi
+
+
+# prepare result
+
+cd "$TMP"
+
+chmod -R g=o "$TMP"
+chgrp -R isabelle "$TMP"
+
+if [ -n "$DO_LIBRARY" ]; then
+  tar -c -z -f "$ARCHIVE_DIR/${ISABELLE_NAME}_library.tar.gz" "$ISABELLE_NAME/browser_info"
+else
+  tar -c -z -f "$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz" "$ISABELLE_NAME/heaps"
+fi
+
+
+# clean up
+rm -rf "$TMP"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/makebundle	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,147 @@
+#!/usr/bin/env bash
+#
+# makebundle -- re-package with add-on components
+
+## diagnostics
+
+PRG=$(basename "$0")
+
+function usage()
+{
+  echo
+  echo "Usage: $PRG ARCHIVE PLATFORM"
+  echo
+  echo "  Re-package Isabelle source distribution with add-on components"
+  echo "  and heap images"
+  echo
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## implicit and explicit arguments
+
+TMP="/var/tmp/isabelle-makebundle$$"
+mkdir "$TMP" || fail "Cannot create directory $TMP"
+
+[ "$#" -ne 2 ] && usage
+
+ARCHIVE="$1"; shift
+PLATFORM="$1"; shift
+
+[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE"
+
+
+## main
+
+ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
+ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
+ISABELLE_HOME="$TMP/$ISABELLE_NAME"
+
+tar -C "$TMP" -x -z -f "$ARCHIVE"
+
+
+echo "#bundled components" >> "$ISABELLE_HOME/etc/components"
+
+for CONTRIB in "$ARCHIVE_DIR/contrib/"*.tar.gz "$ARCHIVE_DIR/contrib/$PLATFORM"/*.tar.gz
+do
+  if [ -f "$CONTRIB" ]; then
+    tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB"
+    NAME="$(basename "$CONTRIB" .tar.gz)"
+    [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB"
+
+    if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then
+      echo "component $NAME"
+      if [ "$PLATFORM" != x86-cygwin -a "$NAME" = ProofGeneral-3.7.1.1 ]; then
+        echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
+      elif [ "$PLATFORM" = x86-cygwin -a "$NAME" = ProofGeneral-4.1 ]; then
+        echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
+      else
+        echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
+      fi
+    else
+      echo "package $NAME"
+    fi
+  fi
+done
+
+if [ "$PLATFORM" = x86-cygwin ]; then
+  TAR="$ARCHIVE_DIR/contrib/x86-cygwin/Isabelle.tar"
+  [ -e "$TAR" ] || fail "Missing $TAR"
+  rm -f "$ISABELLE_HOME/Isabelle"
+  tar -C "$ISABELLE_HOME" -xv -f "$TAR"
+
+  (
+    cd "$ISABELLE_HOME"
+    for DIR in $(find contrib -name x86-linux -o -name x86_64-linux -o -name x86-darwin -o -name x86_64-darwin | sort)
+    do
+      echo "removing $DIR"
+      rm -rf "$DIR"
+    done
+  )
+
+  mv "$ISABELLE_HOME/contrib"/polyml* "$ISABELLE_HOME/contrib/cygwin-1.7.9/usr/local/"
+  (
+    cd "$ISABELLE_HOME/contrib/cygwin-1.7.9"
+    find usr/local/polyml-*/x86-cygwin | gzip > etc/setup/polyml.lst.gz
+  )
+
+  for NAME in ANNOUNCE README NEWS COPYRIGHT CONTRIBUTORS contrib/README
+  do
+    FILE="$ISABELLE_HOME/$NAME"
+    {
+      echo '<?xml version="1.0" encoding="utf-8" ?>'
+      echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
+      echo '<html xmlns="http://www.w3.org/1999/xhtml">'
+      echo '<head>'
+      echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
+      echo "<title>${NAME}</title>"
+      echo '</head>'
+      echo '<body>'
+      echo '<pre>'
+      perl -w -p -e "s/&/&amp;/g; s/</&lt;/g; s/>/&gt;/g; s/'/&apos;/g; s/\"/&quot;/g;" "$FILE"
+      echo '</pre>'
+      echo '</body>'
+    } > "${FILE}.html"
+  done
+fi
+
+
+HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz"
+[ -f "$HEAPS_ARCHIVE" ] || fail "Bad heaps archive: $HEAPS_ARCHIVE"
+echo "heaps"
+tar -C "$TMP" -x -z -f "$HEAPS_ARCHIVE"
+
+case "$PLATFORM" in
+  x86_64-linux)
+    perl -pi -e 's,^ML_PLATFORM=.*$,ML_PLATFORM="\$ISABELLE_PLATFORM64",g;' "$TMP/$ISABELLE_NAME/etc/settings"
+    perl -pi -e "s,^ML_OPTIONS=.*$,ML_OPTIONS=\"-H 400\",g;" "$TMP/$ISABELLE_NAME/etc/settings"
+    ;;
+  *-darwin)
+    perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.apple.laf.AquaLookAndFeel,g;" \
+      -e "s,delete-line.shortcut=.*,delete-line.shortcut=C+d,g;" \
+      -e "s,delete.shortcut2=.*,delete.shortcut2=A+d,g;" \
+      "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
+    ;;
+  *-cygwin)
+    perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel,g;" \
+      "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
+    ;;
+  *)
+    ;;
+esac
+
+BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
+
+echo "$(basename "$BUNDLE_ARCHIVE")"
+tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME"
+
+
+# clean up
+cd /tmp
+rm -rf "$TMP"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/makedist	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,235 @@
+#!/usr/bin/env bash
+#
+# makedist -- make Isabelle source distribution
+
+## global settings
+
+REPOS_NAME="isabelle"
+REPOS="${REPOS:-http://isabelle.in.tum.de/repos/${REPOS_NAME}}"
+DISTPREFIX="${DISTPREFIX:-$HOME/tmp/isadist}"
+
+umask 022
+
+
+## diagnostics
+
+PRG="$(basename "$0")"
+THIS="$(cd $(dirname "$0"); pwd)"
+
+function usage()
+{
+  cat <<EOF
+
+Usage: $PRG [OPTIONS] [VERSION]
+
+  Options are:
+    -j JEDIT_BUILD     build Isabelle/jEdit via given jedit_build component
+    -r RELEASE         proper release with name"
+
+  Make Isabelle distribution from the main Mercurial repository at TUM.
+
+  VERSION identifies the snapshot, using usual Mercurial terminology;
+  the default is RELEASE if given, otherwise "tip".
+
+EOF
+  exit 1
+}
+
+function fail()
+{
+  echo "$1" >&2
+  exit 2
+}
+
+
+## process command line
+
+# options
+
+RELEASE=""
+ISABELLE_JEDIT_BUILD_HOME=""
+
+while getopts "j:r:" OPT
+do
+  case "$OPT" in
+    j)
+      ISABELLE_JEDIT_BUILD_HOME="$OPTARG"
+      ;;
+    r)
+      RELEASE="$OPTARG"
+      ;;
+    \?)
+      usage
+      ;;
+  esac
+done
+
+shift $(($OPTIND - 1))
+
+
+# args
+
+VERSION=""
+[ "$#" -gt 0 ] && { VERSION="$1"; shift; }
+[ -z "$VERSION" ] && VERSION="$RELEASE"
+[ -z "$VERSION" ] && VERSION="tip"
+
+[ "$#" -gt 0 ] && usage
+
+
+## main
+
+# tmp
+
+TMP="tmp-$USER$$"
+function purge_tmp () { rm -rf "$DISTPREFIX/$TMP"; }
+
+
+# retrieve archive and resolve version identifier
+
+mkdir "$DISTPREFIX/$TMP" || fail "Failed to create fresh directory"
+cd "$DISTPREFIX/$TMP"
+
+echo "###"
+echo "### Retrieving Mercurial repository $VERSION"
+echo "###"
+
+if expr match "$REPOS" "https\?://" > /dev/null
+then
+  { wget -q "$REPOS/archive/${VERSION}.tar.gz" -O- | tar -xzf -; } || \
+    fail "Failed to retrieve $VERSION"
+else
+  { hg --repository "$REPOS" archive --type tgz - | tar -xzf -; } || \
+    fail "Failed to retrieve $VERSION"
+fi
+
+IDENT=$(echo * | sed "s/${REPOS_NAME}-//")
+
+rm -f "${REPOS_NAME}-${IDENT}/.hg_archival.txt"
+rm -f "${REPOS_NAME}-${IDENT}/.hgtags"
+rm -f "${REPOS_NAME}-${IDENT}/.hgignore"
+rm -f "${REPOS_NAME}-${IDENT}/README_REPOSITORY"
+
+
+# dist name
+
+DATE=$(env LC_ALL=C date "+%d-%b-%Y")
+DISTDATE=$(env LC_ALL=C date "+%B %Y")
+
+if [ -z "$RELEASE" ]; then
+  DISTNAME="Isabelle_$DATE"
+  DISTVERSION="Isabelle repository snapshot $IDENT $DATE"
+else
+  DISTNAME="$RELEASE"
+  DISTVERSION="$DISTNAME: $DISTDATE"
+fi
+
+DISTBASE="$DISTPREFIX/dist-$DISTNAME"
+mkdir -p "$DISTBASE" || { purge_tmp; fail "Unable to create distribution base dir $DISTBASE!"; }
+[ -e "$DISTBASE/$DISTNAME" ] && { purge_tmp; fail "$DISTBASE/$DISTNAME already exists!"; }
+
+cd "$DISTBASE"
+mv "$DISTPREFIX/$TMP/${REPOS_NAME}-${IDENT}" "$DISTNAME"
+purge_tmp
+
+cd "$DISTNAME" || fail "No dist directory: $DISTBASE/$DISTNAME"
+
+
+# prepare dist for release
+
+echo "###"
+echo "### Preparing distribution $DISTNAME"
+echo "###"
+
+rm -f .hgignore
+find . "(" -name \*.thy -o -name \*.ML -o -name \*.scala ")" -perm +111 -print | xargs chmod -f -x
+find . -print | xargs chmod -f u+rw
+
+perl -pi -e 's/^(ISABELLE_SCALA_BUILD_OPTIONS=")/$1-optimise /,' etc/settings
+
+./Admin/build all || fail "Failed to build distribution"
+
+if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then
+  [ -d "$ISABELLE_JEDIT_BUILD_HOME" ] || fail "Bad jedit_build component directory: \"$ISABELLE_JEDIT_BUILD_HOME\""
+  eval "$(fgrep ISABELLE_JEDIT_BUILD_VERSION "$ISABELLE_JEDIT_BUILD_HOME/etc/settings")"
+  [ -n "$ISABELLE_JEDIT_BUILD_VERSION" ] || fail "Bad ISABELLE_JEDIT_BUILD_VERSION"
+  export ISABELLE_JEDIT_BUILD_HOME ISABELLE_JEDIT_BUILD_VERSION
+  ./bin/isabelle jedit -b || fail "Failed to build Isabelle/jEdit"
+fi
+
+rm -rf Admin
+
+MOVE=$(find doc-src \( -type f -a -not -type l -a -not -name isabelle_isar.pdf -a -not -name pghead.pdf -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
+mv -f $MOVE doc
+rm doc/Isa-logics.eps
+rm doc/adaptation.dvi doc/adaptation.pdf doc/architecture.dvi doc/architecture.pdf
+rm -rf doc-src
+
+mkdir -p contrib
+cat >contrib/README <<EOF
+This directory contains add-on components that contribute to the main
+Isabelle distribution.  Separate licensing conditions apply, see each
+directory individually.
+EOF
+
+cp doc/isabelle*.eps lib/logo
+
+if [ -z "$RELEASE" ]; then
+  {
+    echo
+    echo "IMPORTANT NOTE"
+    echo "=============="
+    echo
+    echo "This is an unofficial snapshot of Isabelle, created by $LOGNAME $DATE."
+    echo "See $REPOS/log/$IDENT for details."
+    echo
+  } >ANNOUNCE
+else
+  perl -pi -e "s,val is_official = false,val is_official = true,g" src/Pure/ROOT.ML
+fi
+
+perl -pi -e "s,val changelog = \"\",val changelog = \"$REPOS/log/$IDENT\",g" src/Pure/ROOT.ML
+perl -pi -e "s,ISABELLE_ID=\"\",ISABELLE_ID=\"$IDENT\",g" lib/scripts/getsettings
+perl -pi -e "s,ISABELLE_IDENTIFIER=\"\",ISABELLE_IDENTIFIER=\"$DISTNAME\",g" lib/scripts/getsettings
+perl -pi -e "s,{ISABELLE},$DISTNAME,g" lib/html/library_index_header.template
+perl -pi -e "s,unidentified repository version,$DISTVERSION,g" src/Pure/ROOT.ML lib/Tools/version
+perl -pi -e "s,some unidentified repository version of Isabelle,$DISTVERSION,g" README
+
+
+# create archive
+
+echo "###"
+echo "### Creating archive ..."
+echo "###"
+
+cd "$DISTBASE"
+
+echo "$DISTBASE/$DISTNAME.tar.gz" > ../ISABELLE_DIST
+echo "$IDENT" >../ISABELLE_IDENT
+
+chown -R "$LOGNAME" "$DISTNAME"
+chmod -R u+w "$DISTNAME"
+chmod -R g=o "$DISTNAME"
+chgrp -R isabelle "$DISTNAME"
+
+echo "$DISTNAME.tar.gz"
+tar -czf "$DISTNAME.tar.gz" "$DISTNAME"
+
+
+# cleanup dist
+
+mv "$DISTNAME" "${DISTNAME}-old"
+mkdir "$DISTNAME"
+
+mv "${DISTNAME}-old/README" "${DISTNAME}-old/NEWS" "${DISTNAME}-old/ANNOUNCE" \
+  "${DISTNAME}-old/COPYRIGHT" "${DISTNAME}-old/CONTRIBUTORS" "$DISTNAME"
+mkdir "$DISTNAME/doc"
+mv "${DISTNAME}-old/doc/"*.pdf "${DISTNAME}-old/doc/Contents" "$DISTNAME/doc"
+
+rm -f Isabelle && ln -sf "$DISTNAME" Isabelle
+
+chgrp -R isabelle "$DISTNAME"
+
+rm -rf "${DISTNAME}-old"
+
+echo "DONE"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Admin/Release/mirror-website	Thu Jul 05 14:13:14 2012 +0200
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+#
+# mirrors the Isabelle website
+
+HOST=$(hostname)
+
+case ${HOST} in
+  sunbroy* | atbroy* | macbroy*)
+    DEST=/home/html/isabelle/html-data
+    ;;
+  *.cl.cam.ac.uk)
+    USER=paulson
+    DEST=/anfs/www/html/research/hvg/Isabelle
+    ;;
+  *)
+    echo "Unknown destination directory for ${HOST}"
+    exit 2
+    ;;
+esac
+
+exec $(dirname $0)/isasync $DEST
--- a/Admin/isasync	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,129 +0,0 @@
-#!/usr/bin/env bash
-#
-# mirror script for Isabelle distribution or website
-
-
-## diagnostics
-
-PRG=`basename "$0"`
-
-usage()
-{
-  echo
-  echo "Usage: $PRG [OPTIONS] DEST"
-  echo
-  echo "  Options are:"
-  echo "    -h    print help message"
-  echo "    -n    dry run, don't do anything, just report what would happen"
-  echo "    -w    (ignored for backward compatibility)"
-  echo "    -d    delete files that are not on the server (BEWARE!)"
-  echo
-  exit 1
-}
-
-fail()
-{
-  echo "$1" >&2
-  exit 2
-}
-
-
-## process command line
-
-# options
-
-HELP=""
-ARGS=""
-SRC="isabelle-website"
-
-while getopts "hnwd" OPT
-do
-  case "$OPT" in
-    h)
-      HELP=true
-      ;;
-    n)
-      ARGS="$ARGS -n"
-      ;;
-    w)
-      echo "option -w ignored"
-      ;;
-    d)
-      ARGS="$ARGS --delete"
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-shift `expr $OPTIND - 1`
-
-
-# help
-
-if [ -n "$HELP" ]; then
-  cat <<EOF
-
-Mirroring the Isabelle distribution or website
-==============================================
-
-The Munich site maintains an rsync server for the Isabelle
-distribution or website.
-
-The rsync tool is very smart and efficient in mirroring large
-directory hierarchies.  See http://rsync.samba.org/ for more
-information.  The $PRG script provides a simple front-end
-for easy access to the Isabelle distribution.
-
-The script can be either run in conservative or clean-sweep mode.
-
-1) Basic mirroring works like this:
-
-  $PRG /foo/bar
-
-where /foo/bar refers to your local copy of the Isabelle distribution
-(the base directory has to exist already).  This operation is
-conservative in the sense that files are never deleted, thus garbage
-may accumulate over time as our master copy is changed.
-
-Avoiding garbage in your local copy requires some care.  Rsync
-provides a way to delete all additional local files that are absent in
-the master copy.  This provides an efficient way to purge large
-directory hierarchies, even unwillingly in case that a wrong
-destination is given!
-
-2a) This will invoke a safe dry-run of clean-sweep mirroring:
-
-  $PRG -dn /foo/bar
-
-where additions and deletions will be printed without any actual
-changes performed so far.
-
-2b) Exact mirroring with actual deletion of garbage may be performed
-like this:
-
-  $PRG -d /foo/bar
-
-
-After gaining some confidence in the workings of $PRG one
-would usually set up some automatic mirror scheme, e.g. a daily cron
-job run by the 'nobody' user.
-
-Add -w to the option list in order to mirror the whole Isabelle website
-
-EOF
-  exit 0
-fi
-
-
-# arguments
-
-[ $# -ne 1 ] && { echo "Bad arguments: $*"; usage; }
-
-DEST="$1"; shift;
-
-
-## main
-
-exec rsync -va $ARGS "rsync://isabelle.in.tum.de/$SRC" "$DEST/"
--- a/Admin/makebin	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-#!/usr/bin/env bash
-#
-# makebin -- make Isabelle logic images for current platform
-
-
-## global settings
-
-TMP="/var/tmp/isabelle-makebin$$"
-
-
-## diagnostics
-
-PRG=$(basename "$0")
-
-function usage()
-{
-  echo
-  echo "Usage: $PRG [OPTIONS] ARCHIVE"
-  echo
-  echo "  Options are:"
-  echo "    -l           produce library"
-  echo
-  echo "  Precompile Isabelle for the current platform."
-  echo
-  exit 1
-}
-
-function fail()
-{
-  echo "$1" >&2
-  exit 2
-}
-
-
-## process command line
-
-# options
-
-DO_LIBRARY=""
-
-while getopts "l" OPT
-do
-  case "$OPT" in
-    l)
-      DO_LIBRARY=true
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-shift $(($OPTIND - 1))
-
-
-# args
-
-[ "$#" -gt 1 ] && usage
-
-ARCHIVE="$1"; shift
-
-
-## main
-
-[ ! -f "$ARCHIVE" ] && fail "Bad archive file $ARCHIVE"
-ARCHIVE_BASE="$(basename "$ARCHIVE")"
-ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
-ARCHIVE_FULL="$ARCHIVE_DIR/$ARCHIVE_BASE"
-
-ISABELLE_NAME="$(basename "$ARCHIVE_BASE" .tar.gz)"
-ISABELLE_HOME="$TMP/$ISABELLE_NAME"
-
-
-# build logics
-
-mkdir "$TMP" || fail "Cannot create directory $TMP"
-
-cd "$TMP"
-tar xzf "$ARCHIVE_FULL"
-cd "$ISABELLE_NAME"
-
-perl -pi \
-  -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1":;' \
-  etc/settings
-
-if [ -n "$DO_LIBRARY" ]; then
-  perl -pi -e 's:^ISABELLE_USEDIR_OPTIONS=.*$:ISABELLE_USEDIR_OPTIONS="-M 1 -i true -d pdf -V outline=/proof,/ML":;' \
-    etc/settings
-fi
-
-ISABELLE_HOME_USER=$(./bin/isabelle getenv -b ISABELLE_HOME_USER)
-
-COMPILER=$(./bin/isabelle getenv -b ML_IDENTIFIER)
-PLATFORM=$(./bin/isabelle getenv -b ML_PLATFORM)
-
-if [ -n "$DO_LIBRARY" ]; then
-  ./build -bait -m all
-else
-  ./build -b HOL
-fi
-
-
-# prepare result
-
-cd "$TMP"
-
-chmod -R g=o "$TMP"
-chgrp -R isabelle "$TMP"
-
-if [ -n "$DO_LIBRARY" ]; then
-  tar -c -z -f "$ARCHIVE_DIR/${ISABELLE_NAME}_library.tar.gz" "$ISABELLE_NAME/browser_info"
-else
-  tar -c -z -f "$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz" "$ISABELLE_NAME/heaps"
-fi
-
-
-# clean up
-rm -rf "$TMP"
--- a/Admin/makebundle	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-#!/usr/bin/env bash
-#
-# makebundle -- re-package with add-on components
-
-## diagnostics
-
-PRG=$(basename "$0")
-
-function usage()
-{
-  echo
-  echo "Usage: $PRG ARCHIVE PLATFORM"
-  echo
-  echo "  Re-package Isabelle source distribution with add-on components"
-  echo "  and heap images"
-  echo
-  exit 1
-}
-
-function fail()
-{
-  echo "$1" >&2
-  exit 2
-}
-
-
-## implicit and explicit arguments
-
-TMP="/var/tmp/isabelle-makebundle$$"
-mkdir "$TMP" || fail "Cannot create directory $TMP"
-
-[ "$#" -ne 2 ] && usage
-
-ARCHIVE="$1"; shift
-PLATFORM="$1"; shift
-
-[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE"
-
-
-## main
-
-ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
-ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
-ISABELLE_HOME="$TMP/$ISABELLE_NAME"
-
-tar -C "$TMP" -x -z -f "$ARCHIVE"
-
-
-echo "#bundled components" >> "$ISABELLE_HOME/etc/components"
-
-for CONTRIB in "$ARCHIVE_DIR/contrib/"*.tar.gz "$ARCHIVE_DIR/contrib/$PLATFORM"/*.tar.gz
-do
-  if [ -f "$CONTRIB" ]; then
-    tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB"
-    NAME="$(basename "$CONTRIB" .tar.gz)"
-    [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB"
-
-    if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then
-      echo "component $NAME"
-      if [ "$PLATFORM" != x86-cygwin -a "$NAME" = ProofGeneral-3.7.1.1 ]; then
-        echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
-      elif [ "$PLATFORM" = x86-cygwin -a "$NAME" = ProofGeneral-4.1 ]; then
-        echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
-      else
-        echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
-      fi
-    else
-      echo "package $NAME"
-    fi
-  fi
-done
-
-if [ "$PLATFORM" = x86-cygwin ]; then
-  TAR="$ARCHIVE_DIR/contrib/x86-cygwin/Isabelle.tar"
-  [ -e "$TAR" ] || fail "Missing $TAR"
-  rm -f "$ISABELLE_HOME/Isabelle"
-  tar -C "$ISABELLE_HOME" -xv -f "$TAR"
-
-  (
-    cd "$ISABELLE_HOME"
-    for DIR in $(find contrib -name x86-linux -o -name x86_64-linux -o -name x86-darwin -o -name x86_64-darwin | sort)
-    do
-      echo "removing $DIR"
-      rm -rf "$DIR"
-    done
-  )
-
-  mv "$ISABELLE_HOME/contrib"/polyml* "$ISABELLE_HOME/contrib/cygwin-1.7.9/usr/local/"
-  (
-    cd "$ISABELLE_HOME/contrib/cygwin-1.7.9"
-    find usr/local/polyml-*/x86-cygwin | gzip > etc/setup/polyml.lst.gz
-  )
-
-  for NAME in ANNOUNCE README NEWS COPYRIGHT CONTRIBUTORS contrib/README
-  do
-    FILE="$ISABELLE_HOME/$NAME"
-    {
-      echo '<?xml version="1.0" encoding="utf-8" ?>'
-      echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
-      echo '<html xmlns="http://www.w3.org/1999/xhtml">'
-      echo '<head>'
-      echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
-      echo "<title>${NAME}</title>"
-      echo '</head>'
-      echo '<body>'
-      echo '<pre>'
-      perl -w -p -e "s/&/&amp;/g; s/</&lt;/g; s/>/&gt;/g; s/'/&apos;/g; s/\"/&quot;/g;" "$FILE"
-      echo '</pre>'
-      echo '</body>'
-    } > "${FILE}.html"
-  done
-fi
-
-
-HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz"
-[ -f "$HEAPS_ARCHIVE" ] || fail "Bad heaps archive: $HEAPS_ARCHIVE"
-echo "heaps"
-tar -C "$TMP" -x -z -f "$HEAPS_ARCHIVE"
-
-case "$PLATFORM" in
-  x86_64-linux)
-    perl -pi -e 's,^ML_PLATFORM=.*$,ML_PLATFORM="\$ISABELLE_PLATFORM64",g;' "$TMP/$ISABELLE_NAME/etc/settings"
-    perl -pi -e "s,^ML_OPTIONS=.*$,ML_OPTIONS=\"-H 400\",g;" "$TMP/$ISABELLE_NAME/etc/settings"
-    ;;
-  *-darwin)
-    perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.apple.laf.AquaLookAndFeel,g;" \
-      -e "s,delete-line.shortcut=.*,delete-line.shortcut=C+d,g;" \
-      -e "s,delete.shortcut2=.*,delete.shortcut2=A+d,g;" \
-      "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
-    ;;
-  *-cygwin)
-    perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel,g;" \
-      "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
-    ;;
-  *)
-    ;;
-esac
-
-BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
-
-echo "$(basename "$BUNDLE_ARCHIVE")"
-tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME"
-
-
-# clean up
-cd /tmp
-rm -rf "$TMP"
--- a/Admin/makedist	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,235 +0,0 @@
-#!/usr/bin/env bash
-#
-# makedist -- make Isabelle source distribution
-
-## global settings
-
-REPOS_NAME="isabelle"
-REPOS="${REPOS:-http://isabelle.in.tum.de/repos/${REPOS_NAME}}"
-DISTPREFIX="${DISTPREFIX:-$HOME/tmp/isadist}"
-
-umask 022
-
-
-## diagnostics
-
-PRG="$(basename "$0")"
-THIS="$(cd $(dirname "$0"); pwd)"
-
-function usage()
-{
-  cat <<EOF
-
-Usage: $PRG [OPTIONS] [VERSION]
-
-  Options are:
-    -j JEDIT_BUILD     build Isabelle/jEdit via given jedit_build component
-    -r RELEASE         proper release with name"
-
-  Make Isabelle distribution from the main Mercurial repository at TUM.
-
-  VERSION identifies the snapshot, using usual Mercurial terminology;
-  the default is RELEASE if given, otherwise "tip".
-
-EOF
-  exit 1
-}
-
-function fail()
-{
-  echo "$1" >&2
-  exit 2
-}
-
-
-## process command line
-
-# options
-
-RELEASE=""
-ISABELLE_JEDIT_BUILD_HOME=""
-
-while getopts "j:r:" OPT
-do
-  case "$OPT" in
-    j)
-      ISABELLE_JEDIT_BUILD_HOME="$OPTARG"
-      ;;
-    r)
-      RELEASE="$OPTARG"
-      ;;
-    \?)
-      usage
-      ;;
-  esac
-done
-
-shift $(($OPTIND - 1))
-
-
-# args
-
-VERSION=""
-[ "$#" -gt 0 ] && { VERSION="$1"; shift; }
-[ -z "$VERSION" ] && VERSION="$RELEASE"
-[ -z "$VERSION" ] && VERSION="tip"
-
-[ "$#" -gt 0 ] && usage
-
-
-## main
-
-# tmp
-
-TMP="tmp-$USER$$"
-function purge_tmp () { rm -rf "$DISTPREFIX/$TMP"; }
-
-
-# retrieve archive and resolve version identifier
-
-mkdir "$DISTPREFIX/$TMP" || fail "Failed to create fresh directory"
-cd "$DISTPREFIX/$TMP"
-
-echo "###"
-echo "### Retrieving Mercurial repository $VERSION"
-echo "###"
-
-if expr match "$REPOS" "https\?://" > /dev/null
-then
-  { wget -q "$REPOS/archive/${VERSION}.tar.gz" -O- | tar -xzf -; } || \
-    fail "Failed to retrieve $VERSION"
-else
-  { hg --repository "$REPOS" archive --type tgz - | tar -xzf -; } || \
-    fail "Failed to retrieve $VERSION"
-fi
-
-IDENT=$(echo * | sed "s/${REPOS_NAME}-//")
-
-rm -f "${REPOS_NAME}-${IDENT}/.hg_archival.txt"
-rm -f "${REPOS_NAME}-${IDENT}/.hgtags"
-rm -f "${REPOS_NAME}-${IDENT}/.hgignore"
-rm -f "${REPOS_NAME}-${IDENT}/README_REPOSITORY"
-
-
-# dist name
-
-DATE=$(env LC_ALL=C date "+%d-%b-%Y")
-DISTDATE=$(env LC_ALL=C date "+%B %Y")
-
-if [ -z "$RELEASE" ]; then
-  DISTNAME="Isabelle_$DATE"
-  DISTVERSION="Isabelle repository snapshot $IDENT $DATE"
-else
-  DISTNAME="$RELEASE"
-  DISTVERSION="$DISTNAME: $DISTDATE"
-fi
-
-DISTBASE="$DISTPREFIX/dist-$DISTNAME"
-mkdir -p "$DISTBASE" || { purge_tmp; fail "Unable to create distribution base dir $DISTBASE!"; }
-[ -e "$DISTBASE/$DISTNAME" ] && { purge_tmp; fail "$DISTBASE/$DISTNAME already exists!"; }
-
-cd "$DISTBASE"
-mv "$DISTPREFIX/$TMP/${REPOS_NAME}-${IDENT}" "$DISTNAME"
-purge_tmp
-
-cd "$DISTNAME" || fail "No dist directory: $DISTBASE/$DISTNAME"
-
-
-# prepare dist for release
-
-echo "###"
-echo "### Preparing distribution $DISTNAME"
-echo "###"
-
-rm -f .hgignore
-find . "(" -name \*.thy -o -name \*.ML -o -name \*.scala ")" -perm +111 -print | xargs chmod -f -x
-find . -print | xargs chmod -f u+rw
-
-perl -pi -e 's/^(ISABELLE_SCALA_BUILD_OPTIONS=")/$1-optimise /,' etc/settings
-
-./Admin/build all || fail "Failed to build distribution"
-
-if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then
-  [ -d "$ISABELLE_JEDIT_BUILD_HOME" ] || fail "Bad jedit_build component directory: \"$ISABELLE_JEDIT_BUILD_HOME\""
-  eval "$(fgrep ISABELLE_JEDIT_BUILD_VERSION "$ISABELLE_JEDIT_BUILD_HOME/etc/settings")"
-  [ -n "$ISABELLE_JEDIT_BUILD_VERSION" ] || fail "Bad ISABELLE_JEDIT_BUILD_VERSION"
-  export ISABELLE_JEDIT_BUILD_HOME ISABELLE_JEDIT_BUILD_VERSION
-  ./bin/isabelle jedit -b || fail "Failed to build Isabelle/jEdit"
-fi
-
-rm -rf Admin
-
-MOVE=$(find doc-src \( -type f -a -not -type l -a -not -name isabelle_isar.pdf -a -not -name pghead.pdf -a \( -name \*.dvi -o -name \*.eps -o -name \*.ps -o -name \*.pdf \) -a -print \) | grep -v 'gfx/.*pdf')
-mv -f $MOVE doc
-rm doc/Isa-logics.eps
-rm doc/adaptation.dvi doc/adaptation.pdf doc/architecture.dvi doc/architecture.pdf
-rm -rf doc-src
-
-mkdir -p contrib
-cat >contrib/README <<EOF
-This directory contains add-on components that contribute to the main
-Isabelle distribution.  Separate licensing conditions apply, see each
-directory individually.
-EOF
-
-cp doc/isabelle*.eps lib/logo
-
-if [ -z "$RELEASE" ]; then
-  {
-    echo
-    echo "IMPORTANT NOTE"
-    echo "=============="
-    echo
-    echo "This is an unofficial snapshot of Isabelle, created by $LOGNAME $DATE."
-    echo "See $REPOS/log/$IDENT for details."
-    echo
-  } >ANNOUNCE
-else
-  perl -pi -e "s,val is_official = false,val is_official = true,g" src/Pure/ROOT.ML
-fi
-
-perl -pi -e "s,val changelog = \"\",val changelog = \"$REPOS/log/$IDENT\",g" src/Pure/ROOT.ML
-perl -pi -e "s,ISABELLE_ID=\"\",ISABELLE_ID=\"$IDENT\",g" lib/scripts/getsettings
-perl -pi -e "s,ISABELLE_IDENTIFIER=\"\",ISABELLE_IDENTIFIER=\"$DISTNAME\",g" lib/scripts/getsettings
-perl -pi -e "s,{ISABELLE},$DISTNAME,g" lib/html/library_index_header.template
-perl -pi -e "s,unidentified repository version,$DISTVERSION,g" src/Pure/ROOT.ML lib/Tools/version
-perl -pi -e "s,some unidentified repository version of Isabelle,$DISTVERSION,g" README
-
-
-# create archive
-
-echo "###"
-echo "### Creating archive ..."
-echo "###"
-
-cd "$DISTBASE"
-
-echo "$DISTBASE/$DISTNAME.tar.gz" > ../ISABELLE_DIST
-echo "$IDENT" >../ISABELLE_IDENT
-
-chown -R "$LOGNAME" "$DISTNAME"
-chmod -R u+w "$DISTNAME"
-chmod -R g=o "$DISTNAME"
-chgrp -R isabelle "$DISTNAME"
-
-echo "$DISTNAME.tar.gz"
-tar -czf "$DISTNAME.tar.gz" "$DISTNAME"
-
-
-# cleanup dist
-
-mv "$DISTNAME" "${DISTNAME}-old"
-mkdir "$DISTNAME"
-
-mv "${DISTNAME}-old/README" "${DISTNAME}-old/NEWS" "${DISTNAME}-old/ANNOUNCE" \
-  "${DISTNAME}-old/COPYRIGHT" "${DISTNAME}-old/CONTRIBUTORS" "$DISTNAME"
-mkdir "$DISTNAME/doc"
-mv "${DISTNAME}-old/doc/"*.pdf "${DISTNAME}-old/doc/Contents" "$DISTNAME/doc"
-
-rm -f Isabelle && ln -sf "$DISTNAME" Isabelle
-
-chgrp -R isabelle "$DISTNAME"
-
-rm -rf "${DISTNAME}-old"
-
-echo "DONE"
--- a/Admin/mira.py	Thu Jul 05 13:35:46 2012 +0200
+++ b/Admin/mira.py	Thu Jul 05 14:13:14 2012 +0200
@@ -313,7 +313,7 @@
     """Build of distribution"""
     ## FIXME This is rudimentary; study Admin/CHECKLIST to complete this configuration accordingly
     isabelle_home = paths[0]
-    (return_code, log) = env.run_process(path.join(isabelle_home, 'Admin', 'makedist'),
+    (return_code, log) = env.run_process(path.join(isabelle_home, 'Admin', 'Release', 'makedist'),
       REPOS = repositories.get(Isabelle).local_path, DISTPREFIX = os.getcwd())
     return (return_code == 0, '', ## FIXME might add summary here
       {}, {'log': log}, None) ## FIXME might add proper result here
--- a/Admin/mirror-website	Thu Jul 05 13:35:46 2012 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#!/usr/bin/env bash
-#
-# mirrors the Isabelle website
-
-HOST=$(hostname)
-
-case ${HOST} in
-  sunbroy* | atbroy* | macbroy*)
-    DEST=/home/html/isabelle/html-data
-    ;;
-  *.cl.cam.ac.uk)
-    USER=paulson
-    DEST=/anfs/www/html/research/hvg/Isabelle
-    ;;
-  *)
-    echo "Unknown destination directory for ${HOST}"
-    exit 2
-    ;;
-esac
-
-exec $(dirname $0)/isasync $DEST