1.1 --- a/Admin/Release/makebundle Wed Jan 09 17:04:59 2013 +0100
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,147 +0,0 @@
1.4 -#!/usr/bin/env bash
1.5 -#
1.6 -# makebundle -- re-package with add-on components
1.7 -
1.8 -## diagnostics
1.9 -
1.10 -PRG=$(basename "$0")
1.11 -
1.12 -function usage()
1.13 -{
1.14 - echo
1.15 - echo "Usage: $PRG ARCHIVE PLATFORM"
1.16 - echo
1.17 - echo " Re-package Isabelle source distribution with add-on components"
1.18 - echo " and heap images"
1.19 - echo
1.20 - exit 1
1.21 -}
1.22 -
1.23 -function fail()
1.24 -{
1.25 - echo "$1" >&2
1.26 - exit 2
1.27 -}
1.28 -
1.29 -
1.30 -## implicit and explicit arguments
1.31 -
1.32 -TMP="/var/tmp/isabelle-makebundle$$"
1.33 -mkdir "$TMP" || fail "Cannot create directory $TMP"
1.34 -
1.35 -[ "$#" -ne 2 ] && usage
1.36 -
1.37 -ARCHIVE="$1"; shift
1.38 -PLATFORM="$1"; shift
1.39 -
1.40 -[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE"
1.41 -
1.42 -
1.43 -## main
1.44 -
1.45 -ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
1.46 -ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
1.47 -ISABELLE_HOME="$TMP/$ISABELLE_NAME"
1.48 -
1.49 -tar -C "$TMP" -x -z -f "$ARCHIVE"
1.50 -
1.51 -
1.52 -echo "#bundled components" >> "$ISABELLE_HOME/etc/components"
1.53 -
1.54 -for CONTRIB in "$ARCHIVE_DIR/contrib/"*.tar.gz "$ARCHIVE_DIR/contrib/$PLATFORM"/*.tar.gz
1.55 -do
1.56 - if [ -f "$CONTRIB" ]; then
1.57 - tar -C "$ISABELLE_HOME/contrib" -x -z -f "$CONTRIB"
1.58 - NAME="$(basename "$CONTRIB" .tar.gz)"
1.59 - [ -d "$ISABELLE_HOME/contrib/$NAME" ] || fail "Bad archive content $CONTRIB"
1.60 -
1.61 - if [ -e "$ISABELLE_HOME/contrib/$NAME/etc/settings" ]; then
1.62 - echo "component $NAME"
1.63 - if [ "$PLATFORM" != x86-cygwin -a "$NAME" = ProofGeneral-3.7.1.1 ]; then
1.64 - echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
1.65 - elif [ "$PLATFORM" = x86-cygwin -a "$NAME" = ProofGeneral-4.1 ]; then
1.66 - echo "#contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
1.67 - else
1.68 - echo "contrib/$NAME" >> "$ISABELLE_HOME/etc/components"
1.69 - fi
1.70 - else
1.71 - echo "package $NAME"
1.72 - fi
1.73 - fi
1.74 -done
1.75 -
1.76 -if [ "$PLATFORM" = x86-cygwin ]; then
1.77 - TAR="$ARCHIVE_DIR/contrib/x86-cygwin/Isabelle.tar"
1.78 - [ -e "$TAR" ] || fail "Missing $TAR"
1.79 - rm -f "$ISABELLE_HOME/Isabelle"
1.80 - tar -C "$ISABELLE_HOME" -xv -f "$TAR"
1.81 -
1.82 - (
1.83 - cd "$ISABELLE_HOME"
1.84 - for DIR in $(find contrib -name x86-linux -o -name x86_64-linux -o -name x86-darwin -o -name x86_64-darwin | sort)
1.85 - do
1.86 - echo "removing $DIR"
1.87 - rm -rf "$DIR"
1.88 - done
1.89 - )
1.90 -
1.91 - mv "$ISABELLE_HOME/contrib"/polyml* "$ISABELLE_HOME/contrib/cygwin-1.7.9/usr/local/"
1.92 - (
1.93 - cd "$ISABELLE_HOME/contrib/cygwin-1.7.9"
1.94 - find usr/local/polyml-*/x86-cygwin | gzip > etc/setup/polyml.lst.gz
1.95 - )
1.96 -
1.97 - for NAME in ANNOUNCE README NEWS COPYRIGHT CONTRIBUTORS contrib/README
1.98 - do
1.99 - FILE="$ISABELLE_HOME/$NAME"
1.100 - {
1.101 - echo '<?xml version="1.0" encoding="utf-8" ?>'
1.102 - echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
1.103 - echo '<html xmlns="http://www.w3.org/1999/xhtml">'
1.104 - echo '<head>'
1.105 - echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
1.106 - echo "<title>${NAME}</title>"
1.107 - echo '</head>'
1.108 - echo '<body>'
1.109 - echo '<pre>'
1.110 - perl -w -p -e "s/&/&/g; s/</</g; s/>/>/g; s/'/'/g; s/\"/"/g;" "$FILE"
1.111 - echo '</pre>'
1.112 - echo '</body>'
1.113 - } > "${FILE}.html"
1.114 - done
1.115 -fi
1.116 -
1.117 -
1.118 -HEAPS_ARCHIVE="$ARCHIVE_DIR/${ISABELLE_NAME}_heaps_${PLATFORM}.tar.gz"
1.119 -[ -f "$HEAPS_ARCHIVE" ] || fail "Bad heaps archive: $HEAPS_ARCHIVE"
1.120 -echo "heaps"
1.121 -tar -C "$TMP" -x -z -f "$HEAPS_ARCHIVE"
1.122 -
1.123 -case "$PLATFORM" in
1.124 - x86_64-linux)
1.125 - perl -pi -e 's,^ML_PLATFORM=.*$,ML_PLATFORM="\$ISABELLE_PLATFORM64",g;' "$TMP/$ISABELLE_NAME/etc/settings"
1.126 - perl -pi -e "s,^ML_OPTIONS=.*$,ML_OPTIONS=\"-H 400\",g;" "$TMP/$ISABELLE_NAME/etc/settings"
1.127 - ;;
1.128 - *-darwin)
1.129 - perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.apple.laf.AquaLookAndFeel,g;" \
1.130 - -e "s,delete-line.shortcut=.*,delete-line.shortcut=C+d,g;" \
1.131 - -e "s,delete.shortcut2=.*,delete.shortcut2=A+d,g;" \
1.132 - "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
1.133 - ;;
1.134 - *-cygwin)
1.135 - perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel,g;" \
1.136 - "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
1.137 - ;;
1.138 - *)
1.139 - ;;
1.140 -esac
1.141 -
1.142 -BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM}.tar.gz"
1.143 -
1.144 -echo "$(basename "$BUNDLE_ARCHIVE")"
1.145 -tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME"
1.146 -
1.147 -
1.148 -# clean up
1.149 -cd /tmp
1.150 -rm -rf "$TMP"
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
2.2 +++ b/Admin/components/bundled Wed Jan 09 18:12:21 2013 +0100
2.3 @@ -0,0 +1,3 @@
2.4 +#additional components to be bundled for release
2.5 +ProofGeneral-4.1
2.6 +
3.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
3.2 +++ b/Admin/lib/Tools/makebundles Wed Jan 09 18:12:21 2013 +0100
3.3 @@ -0,0 +1,181 @@
3.4 +#!/usr/bin/env bash
3.5 +#
3.6 +# DESCRIPTION: re-package Isabelle distribution with add-on components
3.7 +
3.8 +## diagnostics
3.9 +
3.10 +PRG=$(basename "$0")
3.11 +
3.12 +function usage()
3.13 +{
3.14 + echo
3.15 + echo "Usage: isabelle $PRG ARCHIVE"
3.16 + echo
3.17 + echo " Re-package Isabelle source distribution with add-on components"
3.18 + echo " and post-hoc patches for platform families linux, macos, windows."
3.19 + echo
3.20 + echo " Add-on components are that of the running Isabelle version!"
3.21 + echo
3.22 + exit 1
3.23 +}
3.24 +
3.25 +function fail()
3.26 +{
3.27 + echo "$1" >&2
3.28 + exit 2
3.29 +}
3.30 +
3.31 +
3.32 +## arguments
3.33 +
3.34 +[ "$#" -ne 1 ] && usage
3.35 +
3.36 +ARCHIVE="$1"; shift
3.37 +
3.38 +[ -f "$ARCHIVE" ] || fail "Bad source archive: $ARCHIVE"
3.39 +
3.40 +ARCHIVE_DIR="$(cd $(dirname "$ARCHIVE"); echo "$PWD")"
3.41 +ISABELLE_NAME="$(basename "$ARCHIVE" .tar.gz)"
3.42 +
3.43 +
3.44 +## main
3.45 +
3.46 +for PLATFORM_FAMILY in linux macos windows
3.47 +do
3.48 +
3.49 +echo
3.50 +echo "*** $PLATFORM_FAMILY ***"
3.51 +
3.52 +TMP="/var/tmp/isabelle-makebundle$$"
3.53 +mkdir "$TMP" || fail "Cannot create directory $TMP"
3.54 +
3.55 +ISABELLE_TARGET="$TMP/$ISABELLE_NAME"
3.56 +
3.57 +tar -C "$TMP" -x -z -f "$ARCHIVE"
3.58 +
3.59 +
3.60 +# bundled components
3.61 +
3.62 +mkdir -p "$ARCHIVE_DIR/contrib"
3.63 +
3.64 +echo "#bundled components" >> "$ISABELLE_TARGET/etc/components"
3.65 +
3.66 +for CATALOG in main bundled "$PLATFORM_FAMILY"
3.67 +do
3.68 + CATALOG_FILE="$ISABELLE_HOME/Admin/components/$CATALOG"
3.69 + if [ -f "$CATALOG_FILE" ]
3.70 + then
3.71 + echo "catalog ${CATALOG}"
3.72 + {
3.73 + while { unset REPLY; read -r; test "$?" = 0 -o -n "$REPLY"; }
3.74 + do
3.75 + case "$REPLY" in
3.76 + \#* | "") ;;
3.77 + *)
3.78 + COMPONENT="$REPLY"
3.79 + case "$COMPONENT" in
3.80 + jedit_build*) ;;
3.81 + *)
3.82 + echo " component $COMPONENT"
3.83 + CONTRIB="$ARCHIVE_DIR/contrib/${COMPONENT}.tar.gz"
3.84 + if [ ! -f "$CONTRIB" ]; then
3.85 + REMOTE="$ISABELLE_COMPONENT_REPOSITORY/${COMPONENT}.tar.gz"
3.86 + echo " download $REMOTE"
3.87 + perl -MLWP::Simple -e "getprint '$REMOTE';" > "$CONTRIB"
3.88 + perl -e "exit((stat('${CONTRIB}'))[7] == 0 ? 0 : 1);" && exit 2
3.89 + fi
3.90 +
3.91 + tar -C "$ISABELLE_TARGET/contrib" -x -z -f "$CONTRIB"
3.92 + echo "contrib/$COMPONENT" >> "$ISABELLE_TARGET/etc/components"
3.93 + ;;
3.94 + esac
3.95 + ;;
3.96 + esac
3.97 + done
3.98 + } < "$CATALOG_FILE"
3.99 + fi
3.100 +done
3.101 +
3.102 +
3.103 +# platform patches
3.104 +
3.105 +case "$PLATFORM_FAMILY" in
3.106 + linux)
3.107 + (
3.108 + cd "$ISABELLE_TARGET"
3.109 + for DIR in contrib/jdk*/*-darwin contrib/jdk*/*-cygwin
3.110 + do
3.111 + echo "removing $DIR"
3.112 + rm -rf "$DIR"
3.113 + done
3.114 + )
3.115 + ;;
3.116 + macos)
3.117 + (
3.118 + cd "$ISABELLE_TARGET"
3.119 + for DIR in contrib/jdk*/*-linux contrib/jdk*/*-cygwin
3.120 + do
3.121 + echo "removing $DIR"
3.122 + rm -rf "$DIR"
3.123 + done
3.124 + )
3.125 + perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.apple.laf.AquaLookAndFeel,g;" \
3.126 + -e "s,delete-line.shortcut=.*,delete-line.shortcut=C+d,g;" \
3.127 + -e "s,delete.shortcut2=.*,delete.shortcut2=A+d,g;" \
3.128 + "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
3.129 + ;;
3.130 + windows)
3.131 + (
3.132 + cd "$ISABELLE_TARGET"
3.133 + for DIR in \
3.134 + $(find contrib -name x86-linux -o -name x86_64-linux -o -name x86-darwin -o -name x86_64-darwin | sort)
3.135 + do
3.136 + echo "removing $DIR"
3.137 + rm -rf "$DIR"
3.138 + done
3.139 + )
3.140 +
3.141 + perl -pi -e "s,lookAndFeel=.*,lookAndFeel=com.sun.java.swing.plaf.windows.WindowsLookAndFeel,g;" \
3.142 + "$TMP/$ISABELLE_NAME/src/Tools/jEdit/dist/properties/jEdit.props"
3.143 +
3.144 +# FIXME include cygwin.tar.gz etc.
3.145 +#
3.146 +# TAR="$ARCHIVE_DIR/contrib/windows/Isabelle.tar"
3.147 +# [ -e "$TAR" ] || fail "Missing $TAR"
3.148 +# rm -f "$ISABELLE_TARGET/Isabelle"
3.149 +# tar -C "$ISABELLE_TARGET" -xv -f "$TAR"
3.150 +
3.151 + for NAME in ANNOUNCE README NEWS COPYRIGHT CONTRIBUTORS contrib/README
3.152 + do
3.153 + FILE="$ISABELLE_TARGET/$NAME"
3.154 + {
3.155 + echo '<?xml version="1.0" encoding="utf-8" ?>'
3.156 + echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'
3.157 + echo '<html xmlns="http://www.w3.org/1999/xhtml">'
3.158 + echo '<head>'
3.159 + echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>'
3.160 + echo "<title>${NAME}</title>"
3.161 + echo '</head>'
3.162 + echo '<body>'
3.163 + echo '<pre>'
3.164 + perl -w -p -e "s/&/&/g; s/</</g; s/>/>/g; s/'/'/g; s/\"/"/g;" "$FILE"
3.165 + echo '</pre>'
3.166 + echo '</body>'
3.167 + } > "${FILE}.html"
3.168 + done
3.169 + ;;
3.170 + *)
3.171 + ;;
3.172 +esac
3.173 +
3.174 +BUNDLE_ARCHIVE="${ARCHIVE_DIR}/${ISABELLE_NAME}_bundle_${PLATFORM_FAMILY}.tar.gz"
3.175 +
3.176 +echo "packaging $(basename "$BUNDLE_ARCHIVE")"
3.177 +tar -C "$TMP" -c -z -f "$BUNDLE_ARCHIVE" "$ISABELLE_NAME"
3.178 +
3.179 +
3.180 +# clean up
3.181 +rm -rf "$TMP"
3.182 +
3.183 +done
3.184 +