2 # ianb@erislabs.net 20081202
3 # configure a mir system for sun or gcj java
4 # checkpoint code taken from zak's mir-setup
8 # NAME is used when called from mir-prepare
14 CUR_CHECKPOINT=$(($CUR_CHECKPOINT + 1))
15 if [ -n "$START_CHECKPOINT" ]; then
16 if [ "$CUR_CHECKPOINT" -lt "$START_CHECKPOINT" ]; then
17 echo "${NAME}Skipping checkpoint $CUR_CHECKPOINT: $@"
20 echo "${NAME}Running from checkpoint $CUR_CHECKPOINT: $@"
24 echo "${NAME}Checkpoint $CUR_CHECKPOINT: $@"
32 echo >&2 "Try $PROG --help";
37 echo >&2 "Usage: $PROG [options] sun|gcj"
38 echo >&2 " Configures java implementation to use with mir"
39 echo >&2 " -d|--debug Debugging output, including 'set -x' shell trace"
40 echo >&2 " -p|--checkpoint <start> Run from specified checkpoint after failed run"
41 echo >&2 " sun Use Sun Java (non-free)"
42 echo >&2 " gcj Use the GNU Java Compiler"
53 -d|--debug) set -x; DEBUG=1 ;;
54 -p|--checkpoint) shift; START_CHECKPOINT="$1" ;;
55 --subprocess) NAME="[mir-choose-java] " ;;
56 -h|-?|--help) usage; exit 0 ;;
57 -*) optdie "$PROG: unknown option $1" ;;
58 sun) JAVA=sun ; break;;
59 gcj) JAVA=gcj ; break;;
60 *) optdie "$PROG: unexpected argument '$1'" ;;
68 PACKAGES="sun-java6-jdk sun-java6-jre"
69 RTPATH=/usr/lib/jvm/java-6-sun/jre/lib/rt.jar
73 RTPATH=/usr/lib/jvm/java-1.5.0-gcj-4.3-1.5.0.0/jre/lib/rt.jar
76 JAVAHOME="/usr/lib/jvm/$JAVANAME"
80 checkpoint "Adding non-free archive for sun java"
84 'if(/^deb/ && !/security\.debian\.org/ && !/non-free/) { s/(main)/$1 contrib non-free/; }' \
89 # so checkpoint numbers don't differ
90 checkpoint "Skipping non-free archive configuration - gcj is in main"
93 checkpoint "Installing packages"
96 apt-get install $PACKAGES
97 echo "You probably want to do 'apt-get clean'"
100 checkpoint "Selecting JDK"
103 update-java-alternatives --set $JAVANAME || true
106 checkpoint "Configuring apache jakarta JVM"
109 if grep -q '^workers.java_home' /etc/libapache2-mod-jk/workers.properties
111 perl -pi.bak -e 's,workers.java_home.*,workers.java_home='"$JAVAHOME"',;' \
112 /etc/libapache2-mod-jk/workers.properties
116 checkpoint "Configuring tomcat JVM"
119 TOMCATDEFAULTS=/etc/default/tomcat6
120 if grep -q '^#\?JAVA_HOME' $TOMCATDEFAULTS
122 perl -pi.bak -e 's,^\#?JAVA_HOME.*,JAVA_HOME='"$JAVAHOME"',;' $TOMCATDEFAULTS
124 echo "JAVA_HOME=$JAVAHOME" >> $TOMCATDEFAULTS
128 checkpoint "Configuring /etc/mir-setup/lib/rt.jar symlink"
131 mkdir -p /etc/mir-setup/lib
132 ln -sf $RTPATH /etc/mir-setup/lib/rt.jar
135 checkpoint "Restarting tomcat and apache"
138 invoke-rc.d tomcat6 force-reload
139 invoke-rc.d apache2 force-reload
142 checkpoint "Finished!"