diff --git a/java-init/Pkgfile b/java-init/Pkgfile index 4e07b67..042d7b0 100644 --- a/java-init/Pkgfile +++ b/java-init/Pkgfile @@ -1,7 +1,7 @@ # Description: Initial Java bootstrap -# URL: https://stygian.me/java-bootstrap/ -# Maintainer: John Vogel, jvogel4 at stny dot rr dot com -# Depends on: libffi unzip zip +# URL: https://stygian.me/java-bootstrap/ +# Maintainer: +# Depends on: libffi unzip zip name=java-init version=20180530 @@ -15,211 +15,214 @@ jamvm2_vers=2.0.0 jikes_vers=1.22 release=1 source=(https://ftp.gnu.org/gnu/classpath/classpath-$cp1_vers.tar.gz - https://ftp.gnu.org/gnu/classpath/classpath-$cp2_vers.tar.gz - http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm1_vers/jamvm-$jamvm1_vers.tar.gz - http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm2_vers/jamvm-$jamvm2_vers.tar.gz - http://archive.apache.org/dist/ant/source/apache-ant-$ant_vers-src.tar.bz2 - http://archive.eclipse.org/eclipse/downloads/drops/R-$ecj_vers/ecjsrc.zip - http://download.savannah.nongnu.org/releases/fastjar/fastjar-$fastjar_vers.tar.gz - https://sourceforge.net/projects/jikes/files/Jikes/$jikes_vers/jikes-$jikes_vers.tar.bz2 - fastjar-jartool.c_rev1.62.patch - fix-update-mode.diff - build.xml) + https://ftp.gnu.org/gnu/classpath/classpath-$cp2_vers.tar.gz + http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm1_vers/jamvm-$jamvm1_vers.tar.gz + http://sourceforge.net/projects/jamvm/files/jamvm/JamVM%20$jamvm2_vers/jamvm-$jamvm2_vers.tar.gz + http://archive.apache.org/dist/ant/source/apache-ant-$ant_vers-src.tar.bz2 + http://archive.eclipse.org/eclipse/downloads/drops/R-$ecj_vers/ecjsrc.zip + http://download.savannah.nongnu.org/releases/fastjar/fastjar-$fastjar_vers.tar.gz + https://sourceforge.net/projects/jikes/files/Jikes/$jikes_vers/jikes-$jikes_vers.tar.bz2 + fastjar-jartool.c_rev1.62.patch + fix-update-mode.diff + build.xml) unpack_source() { - for file in ${source[@]}; do - case ${file##*/} in - apache-ant-$ant_vers-src.tar.bz2|\ - classpath-$cp1_vers.tar.gz|\ - classpath-$cp2_vers.tar.gz|\ - fastjar-$fastjar_vers.tar.gz|\ - jamvm-$jamvm1_vers.tar.gz|\ - jamvm-$jamvm2_vers.tar.gz|\ - jikes-$jikes_vers.tar.bz2) - bsdtar -p -o -C $SRC -xf $(get_filename $file) ;; - *) - cp $(get_filename $file) $SRC ;; - esac - done + for file in ${source[@]}; do + case ${file##*/} in + apache-ant-$ant_vers-src.tar.bz2|\ + classpath-$cp1_vers.tar.gz|\ + classpath-$cp2_vers.tar.gz|\ + fastjar-$fastjar_vers.tar.gz|\ + jamvm-$jamvm1_vers.tar.gz|\ + jamvm-$jamvm2_vers.tar.gz|\ + jikes-$jikes_vers.tar.bz2) + bsdtar -p -o -C $SRC -xf $(get_filename $file) ;; + *) + cp $(get_filename $file) $SRC ;; + esac + done } build() { - find $SRC ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \ - -exec chmod go-w,u+w,a+r {} \; + find $SRC ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \ + -exec chmod go-w,u+w,a+r {} \; - mkdir -p $SRC/$name/{bin,lib,share/java} + mkdir -p $SRC/$name/{bin,lib,share/java} - cd $SRC/fastjar-$fastjar_vers - patch -i $SRC/fastjar-jartool.c_rev1.62.patch - patch -i $SRC/fix-update-mode.diff - ./configure --prefix=$SRC/$name - make - make install - rm -r $SRC/$name/share/{info,man} + cd $SRC/fastjar-$fastjar_vers + patch -i $SRC/fastjar-jartool.c_rev1.62.patch + patch -i $SRC/fix-update-mode.diff + ./configure --prefix=$SRC/$name + make + make install + rm -r $SRC/$name/share/{info,man} - # Shutting off fp-emulation stopped jikes from segfaulting. - # We need the source15 to build new enough classpath and to build openjdk6 later. - cd $SRC/jikes-$jikes_vers - ./configure \ - --prefix=$SRC/$name \ - --disable-fp-emulation \ - --enable-source15 - make - make install - rm -r $SRC/$name/{man,share/doc} + # Shutting off fp-emulation stopped jikes from segfaulting. + # We need the source15 to build new enough classpath and to build openjdk6 later. + cd $SRC/jikes-$jikes_vers + ./configure \ + --prefix=$SRC/$name \ + --disable-fp-emulation \ + --enable-source15 + make + make install + rm -r $SRC/$name/{man,share/doc} - OLD_PATH=$PATH - export JAVA_HOME=$SRC/$name - export PATH=$JAVA_HOME/bin:$PATH - mkdir -p $SRC/tmp - export HOME=$SRC/tmp + OLD_PATH=$PATH + export JAVA_HOME=$SRC/$name + export PATH=$JAVA_HOME/bin:$PATH + mkdir -p $SRC/tmp + export HOME=$SRC/tmp - cd $SRC/classpath-$cp1_vers + cd $SRC/classpath-$cp1_vers - ./configure \ - --prefix=$SRC/$name \ - --disable-alsa \ - --disable-dssi \ - --disable-examples \ - --disable-gtk-peer \ - --disable-gconf-peer \ - --disable-plugin \ - --disable-Werror \ - --without-gjdoc - make - make install - ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar - ln -s ../share/classpath/tools.zip $SRC/$name/lib/tools.jar - rm -r $SRC/$name/info + ./configure \ + --prefix=$SRC/$name \ + --disable-alsa \ + --disable-dssi \ + --disable-examples \ + --disable-gtk-peer \ + --disable-gconf-peer \ + --disable-plugin \ + --disable-Werror \ + --without-gjdoc + make + make install + ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar + ln -s ../share/classpath/tools.zip $SRC/$name/lib/tools.jar + rm -r $SRC/$name/info - cd $SRC/jamvm-$jamvm1_vers + cd $SRC/jamvm-$jamvm1_vers - ./configure \ - --prefix=$SRC/$name \ - --enable-ffi \ - --with-classpath-install-dir=$SRC/$name - make - make install - # jamvm install replaces the rt.jar link with one that's invalid. - rm $SRC/$name/lib/rt.jar - ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar - mv $SRC/$name/bin/jamvm{,.bin} - # jamvm seems to have issues with running mutli-threaded, this set of options - # seems to do a good job of preventing that. - cat > $SRC/$name/bin/jamvm << EOF + ./configure \ + --prefix=$SRC/$name \ + --enable-ffi \ + --with-classpath-install-dir=$SRC/$name + make + make install + # jamvm install replaces the rt.jar link with one that's invalid. + rm $SRC/$name/lib/rt.jar + ln -s ../share/classpath/glibj.zip $SRC/$name/lib/rt.jar + mv $SRC/$name/bin/jamvm{,.bin} + # jamvm seems to have issues with running mutli-threaded, this set of options + # seems to do a good job of preventing that. + cat > $SRC/$name/bin/jamvm << EOF #!/bin/sh exec $SRC/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@" EOF - chmod 0755 $SRC/$name/bin/jamvm - ln -s jamvm $SRC/$name/bin/java + chmod 0755 $SRC/$name/bin/jamvm + ln -s jamvm $SRC/$name/bin/java - cd $SRC/apache-ant-$ant_vers + cd $SRC/apache-ant-$ant_vers - sed -i -e 's|\(depends="jars\),test-jar\("\)|\1\2|' build.xml - touch $HOME/.ant.properties - JAVAC=jikes \ - JAVACMD=$JAVA_HOME/bin/jamvm \ - CLASSPATH=$JAVA_HOME/lib/rt.jar \ - ANT_OPTS="-Dbuild.compiler=jikes" \ - BOOTJAVAC_OPTS="-nowarn" \ - /bin/bash ./build.sh -Ddist.dir=out dist - rm -r out/manual - rm out/{INSTALL,KEYS,LICENSE,NOTICE,README,WHATSNEW,lib/README} - cp -a out $SRC/$name/lib/ant - ln -s ../lib/ant/bin/ant $JAVA_HOME/bin/ant - install -d -m 0755 $PKG/opt/$name/{bin,lib} - cp -a out $PKG/opt/$name/lib/ant - ln -s ../lib/ant/bin/ant $PKG/opt/$name/bin/ant + sed -i -e 's|\(depends="jars\),test-jar\("\)|\1\2|' build.xml + touch $HOME/.ant.properties + JAVAC=jikes \ + JAVACMD=$JAVA_HOME/bin/jamvm \ + CLASSPATH=$JAVA_HOME/lib/rt.jar \ + ANT_OPTS="-Dbuild.compiler=jikes" \ + BOOTJAVAC_OPTS="-nowarn" \ + /bin/bash ./build.sh -Ddist.dir=out dist + rm -r out/manual + rm out/{INSTALL,KEYS,LICENSE,NOTICE,README,WHATSNEW,lib/README} + cp -a out $SRC/$name/lib/ant + ln -s ../lib/ant/bin/ant $JAVA_HOME/bin/ant + install -d -m 0755 $PKG/opt/$name/{bin,lib} + cp -a out $PKG/opt/$name/lib/ant + ln -s ../lib/ant/bin/ant $PKG/opt/$name/bin/ant - mkdir -p $SRC/ecj-$ecj_vers/src - mv $SRC/ecjsrc.zip $SRC/ecj-$ecj_vers/src/ecj.zip - cd $SRC/ecj-$ecj_vers - mv $SRC/build.xml . - ant --usejikes -f build.xml - install -D ecj.jar $SRC/$name/share/java/ecj.jar - install -D ecj.jar $PKG/opt/$name/share/java/ecj.jar + mkdir -p $SRC/ecj-$ecj_vers/src + mv $SRC/ecjsrc.zip $SRC/ecj-$ecj_vers/src/ecj.zip + cd $SRC/ecj-$ecj_vers + mv $SRC/build.xml . + ant --usejikes -f build.xml + install -D ecj.jar $SRC/$name/share/java/ecj.jar + install -D ecj.jar $PKG/opt/$name/share/java/ecj.jar - cat > $SRC/$name/bin/ecj << EOF + cat > $SRC/$name/bin/ecj << EOF #!/bin/sh exec $SRC/$name/bin/jamvm -cp $SRC/$name/share/java/ecj.jar \\ - org.eclipse.jdt.internal.compiler.batch.Main "\$@" + org.eclipse.jdt.internal.compiler.batch.Main "\$@" EOF - chmod 0755 $SRC/$name/bin/ecj - cat > $PKG/opt/$name/bin/ecj << EOF + chmod 0755 $SRC/$name/bin/ecj + cat > $PKG/opt/$name/bin/ecj << EOF #!/bin/sh exec /opt/$name/bin/jamvm -cp /opt/$name/share/java/ecj.jar \ - org.eclipse.jdt.internal.compiler.batch.Main "\$@" + org.eclipse.jdt.internal.compiler.batch.Main "\$@" EOF - chmod 0755 $PKG/opt/$name/bin/ecj + chmod 0755 $PKG/opt/$name/bin/ecj - cd $SRC/classpath-$cp2_vers + cd $SRC/classpath-$cp2_vers - JAVAC=$JAVA_HOME/bin/ecj \ - JAVA=$JAVA_HOME/bin/jamvm \ - GCJ_JAVAC_TRUE=no \ - ./configure \ - --prefix=/opt/$name \ - --disable-alsa \ - --disable-dssi \ - --disable-examples \ - --disable-gconf-peer \ - --disable-gjdoc \ - --disable-gtk-peer \ - --disable-plugin \ - --disable-Werror \ - --with-ecj-jar=/opt/$name/share/java/ecj.jar \ - ac_cv_prog_java_works=yes - make - make DESTDIR=$PKG install - rm -f $PKG/opt/$name/lib/{rt,tools}.jar - ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar - ln -s ../share/classpath/tools.zip $PKG/opt/$name/lib/tools.jar - - rm -r $PKG/opt/$name/share/{info,man} + JAVAC=$JAVA_HOME/bin/ecj \ + JAVA=$JAVA_HOME/bin/jamvm \ + GCJ_JAVAC_TRUE=no \ + ./configure \ + --prefix=/opt/$name \ + --disable-alsa \ + --disable-dssi \ + --disable-examples \ + --disable-gconf-peer \ + --disable-gjdoc \ + --disable-gtk-peer \ + --disable-plugin \ + --disable-Werror \ + --with-ecj-jar=/opt/$name/share/java/ecj.jar \ + ac_cv_prog_java_works=yes + make + make DESTDIR=$PKG install + rm -f $PKG/opt/$name/lib/{rt,tools}.jar + ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar + ln -s ../share/classpath/tools.zip $PKG/opt/$name/lib/tools.jar - # TODO: eventually try to fix this by patching the classpath buildfiles. - for f in gappletviewer gjar gjarsigner gjavah gkeytool gnative2ascii \ - gorbd grmic grmid grmiregistry gserialver gtnameserv; do - sed -i -e "s,^\(exec\) .* \(-classpath .*\)$,\1 /opt/$name/bin/jamvm \2," \ - $PKG/opt/$name/bin/$f - done + rm -r $PKG/opt/$name/share/{info,man} - ln -s . $PKG/opt/$name/jre - ln -s ecj $PKG/opt/$name/bin/javac - ln -s gjar $PKG/opt/$name/bin/jar - ln -s gjarsigner $PKG/opt/$name/bin/jarsigner - ln -s gjavah $PKG/opt/$name/bin/javah - ln -s gkeytool $PKG/opt/$name/bin/keytool - ln -s gnative2ascii $PKG/opt/$name/bin/native2ascii - ln -s gorbd $PKG/opt/$name/bin/orbd - ln -s grmic $PKG/opt/$name/bin/rmic - ln -s grmid $PKG/opt/$name/bin/rmid - ln -s grmiregistry $PKG/opt/$name/bin/rmiregistry - ln -s gserialver $PKG/opt/$name/bin/serialver - ln -s gtnameserv $PKG/opt/$name/bin/tnameserv + # TODO: eventually try to fix this by patching the classpath buildfiles. + for f in gappletviewer gjar gjarsigner gjavah gkeytool gnative2ascii \ + gorbd grmic grmid grmiregistry gserialver gtnameserv; do + sed -i -e "s,^\(exec\) .* \(-classpath .*\)$,\1 /opt/$name/bin/jamvm \2," \ + $PKG/opt/$name/bin/$f + done - cd $SRC/jamvm-$jamvm2_vers - ./configure \ - --prefix=/opt/$name \ - --enable-ffi \ - --with-classpath-install-dir=/opt/$name - make - make DESTDIR=$PKG install - # jamvm install replaces the rt.jar link with one that's invalid. - rm $PKG/opt/$name/lib/rt.jar - ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar - mv $PKG/opt/$name/bin/jamvm{,.bin} - # jamvm seems to have issues with running mutli-threaded, this set of options - # seems to do a good job of preventing that. - cat > $PKG/opt/$name/bin/jamvm << EOF + ln -s . $PKG/opt/$name/jre + ln -s ecj $PKG/opt/$name/bin/javac + ln -s gjar $PKG/opt/$name/bin/jar + ln -s gjarsigner $PKG/opt/$name/bin/jarsigner + ln -s gjavah $PKG/opt/$name/bin/javah + ln -s gkeytool $PKG/opt/$name/bin/keytool + ln -s gnative2ascii $PKG/opt/$name/bin/native2ascii + ln -s gorbd $PKG/opt/$name/bin/orbd + ln -s grmic $PKG/opt/$name/bin/rmic + ln -s grmid $PKG/opt/$name/bin/rmid + ln -s grmiregistry $PKG/opt/$name/bin/rmiregistry + ln -s gserialver $PKG/opt/$name/bin/serialver + ln -s gtnameserv $PKG/opt/$name/bin/tnameserv + + cd $SRC/jamvm-$jamvm2_vers + ./configure \ + --prefix=/opt/$name \ + --enable-ffi \ + --with-classpath-install-dir=/opt/$name + make + make DESTDIR=$PKG install + + # jamvm install replaces the rt.jar link with one that's invalid. + rm $PKG/opt/$name/lib/rt.jar + ln -s ../share/classpath/glibj.zip $PKG/opt/$name/lib/rt.jar + mv $PKG/opt/$name/bin/jamvm{,.bin} + + # jamvm seems to have issues with running mutli-threaded, this set of options + # seems to do a good job of preventing that. + cat > $PKG/opt/$name/bin/jamvm << EOF #!/bin/sh exec /opt/$name/bin/jamvm.bin -Xmx1024m -Xnocompact -Xnoinlining -Djdt.compiler.useSingleThread=true "\$@" EOF - chmod 0755 $PKG/opt/$name/bin/jamvm - ln -s jamvm $PKG/opt/$name/bin/java - mv $PKG/opt/$name/lib/libjvm.so{,.0.0.0} - ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so - ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so.0 - find $PKG ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \ - -exec chmod go-w,u+rw {} \; + + chmod 0755 $PKG/opt/$name/bin/jamvm + ln -s jamvm $PKG/opt/$name/bin/java + mv $PKG/opt/$name/lib/libjvm.so{,.0.0.0} + ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so + ln -s libjvm.so.0.0.0 $PKG/opt/$name/lib/libjvm.so.0 + find $PKG ! -type l -a \( -perm /go+w -o ! -perm /u+rw \) \ + -exec chmod go-w,u+rw {} \; }