java-init: some cleanups

This commit is contained in:
Tim Biermann 2023-09-09 12:45:43 +02:00
parent 99074f2b79
commit d1f959d325
Signed by: tb
GPG Key ID: 42F8B4E30B673606

View File

@ -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 {} \;
}