2021-02-07 14:45:22 +01:00
|
|
|
# Description: OpenJDK 6, bootstrap build for building OpenJDK 7
|
2023-09-09 12:42:27 +02:00
|
|
|
# URL: http://openjdk.java.net/projects/jdk6
|
|
|
|
# Maintainer:
|
|
|
|
# Depends on: alsa-lib cups freetype giflib java-init krb5 libjpeg-turbo libpng libxslt nss xorg-libxcomposite xorg-libxinerama xorg-libxrender xorg-libxt xorg-libxtst wget
|
|
|
|
|
|
|
|
# TODO:
|
|
|
|
# - https://git.launchpad.net/ubuntu/+source/openjdk-6/tree/debian/patches?h=applied/debian/experimental
|
|
|
|
# - https://git.launchpad.net/ubuntu/+source/openjdk-6/tree/patches?h=applied/debian/experimental
|
|
|
|
# take what is useful, maybe a few of the gcc related patches etc
|
2021-02-07 14:45:22 +01:00
|
|
|
|
|
|
|
name=openjdk6-boot
|
|
|
|
version=20190705
|
|
|
|
openjdk_version=b41
|
|
|
|
openjdk_date=04_jan_2017
|
|
|
|
icedtea_version=1.13.13
|
|
|
|
release=1
|
|
|
|
source=(http://icedtea.wildebeest.org/download/source/icedtea6-$icedtea_version.tar.gz
|
2023-09-09 12:42:27 +02:00
|
|
|
https://ponce.cc/slackware/sources/repo/openjdk-6-src-b41-04_jan_2017.tar.xz
|
|
|
|
fix-sysctl-include.patch
|
|
|
|
icedtea6-all-source-level-1_6.patch
|
|
|
|
fix-freetype-version-detect.patch
|
|
|
|
ld-symbolic-functions.diff
|
|
|
|
pr2849.patch
|
|
|
|
pr2808.patch
|
|
|
|
)
|
2021-02-07 14:45:22 +01:00
|
|
|
|
|
|
|
unpack_source() {
|
2023-09-09 12:42:27 +02:00
|
|
|
for file in ${source[@]}; do
|
|
|
|
case ${file##*/} in
|
|
|
|
icedtea6-$icedtea_version.tar.gz)
|
|
|
|
bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
|
|
|
|
*)
|
|
|
|
cp $(get_filename $file) $SRC ;;
|
|
|
|
esac
|
|
|
|
done
|
2021-02-07 14:45:22 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
build() {
|
2023-09-09 12:42:27 +02:00
|
|
|
# Most of these flags were snarfed directly from Alpine Linux APKBUILD for openjdk7, added -fabi-version.
|
|
|
|
# Fixes build failures due to suspected gcc8 changes for default std and abi.
|
|
|
|
export CXXFLAGS+=' -fabi-version=10 -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow -fcommon -fpermissive -Wmaybe-uninitialized'
|
|
|
|
export CFLAGS+=' -fabi-version=10 -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow -fcommon -fpermissive -Wmaybe-uninitialized'
|
|
|
|
export CPPFLAGS="$CFLAGS"
|
|
|
|
#export LDFLAGS+=" -Xlinker -z -Xlinker defs -Wl,-Bsymbolic-functions"
|
|
|
|
|
|
|
|
OLD_PATH=$PATH
|
|
|
|
export JAVA_HOME=/opt/java-init
|
|
|
|
export PATH=$JAVA_HOME/bin:$OLD_PATH
|
|
|
|
|
|
|
|
# Fix ups for java-init tools, which don't handle ambiguity well.
|
|
|
|
for i in icedtea6-all-source-level-1_6.patch fix-freetype-version-detect.patch fix-sysctl-include.patch; do
|
|
|
|
cp -v $SRC/${i} $SRC/icedtea6-$icedtea_version/patches/.
|
|
|
|
done
|
|
|
|
#patches/linker-libs-order.patch patches/linker-libs-order-zlib.patch patches/gcc-no-hardening.diff patches/gcc-opt-O2.diff
|
|
|
|
export DISTRIBUTION_PATCHES="patches/icedtea6-all-source-level-1_6.patch patches/fix-freetype-version-detect.patch patches/fix-sysctl-include.patch"
|
|
|
|
|
|
|
|
#patch -Np1 -d icedtea6-$icedtea_version -i $SRC/pr2849.patch
|
|
|
|
#patch -Np1 -d icedtea6-$icedtea_version -i $SRC/pr2808.patch
|
|
|
|
|
|
|
|
#cd icedtea6-$icedtea_version
|
|
|
|
#autoreconf -fvi
|
|
|
|
#cd $SRC
|
|
|
|
|
|
|
|
mkdir $SRC/build-boot
|
|
|
|
cd $SRC/build-boot
|
|
|
|
|
|
|
|
LC_ALL=C \
|
|
|
|
ALT_UNIXCOMMAND_PATH="" \
|
|
|
|
JAVAC=$JAVA_HOME/bin/ecj \
|
|
|
|
CONFIG_SHELL=/bin/bash \
|
|
|
|
../icedtea6-$icedtea_version/configure \
|
|
|
|
--prefix=$SRC/build-boot/openjdk.build/j2sdk-image \
|
|
|
|
--enable-system-kerberos \
|
|
|
|
--enable-system-gif \
|
|
|
|
--enable-system-jpeg \
|
|
|
|
--enable-system-png \
|
|
|
|
--enable-system-zlib \
|
|
|
|
--disable-nss \
|
|
|
|
--with-openjdk-src-zip=$SRC/openjdk-6-src-b41-04_jan_2017.tar.xz \
|
|
|
|
--with-pkgversion=CRUX \
|
|
|
|
--with-jdk-home=$JAVA_HOME \
|
|
|
|
--with-ant-home=$JAVA_HOME/lib/ant \
|
|
|
|
--with-abs-install-dir=/$name \
|
|
|
|
--with-ecj-jar=$JAVA_HOME/share/java/ecj.jar \
|
|
|
|
--with-jar=/usr/bin/fastjar \
|
|
|
|
--with-java=$JAVA_HOME/bin/jamvm \
|
|
|
|
--with-javah=$JAVA_HOME/bin/javah \
|
|
|
|
--with-rmic=$JAVA_HOME/bin/rmic \
|
|
|
|
--disable-docs \
|
|
|
|
--disable-downloading \
|
|
|
|
--disable-xrender \
|
|
|
|
--disable-lcms2 \
|
|
|
|
--disable-systemtap \
|
|
|
|
--disable-tests \
|
|
|
|
--disable-hotspot-tests \
|
|
|
|
--disable-langtools-tests \
|
|
|
|
--disable-jdk-tests \
|
|
|
|
--without-rhino \
|
|
|
|
--with-ecj \
|
|
|
|
--without-gcj
|
|
|
|
|
|
|
|
LC_ALL=C \
|
|
|
|
ALT_UNIXCOMMAND_PATH="" \
|
|
|
|
DISABLE_HOTSPOT_OS_VERSION_CHECK="ok" \
|
|
|
|
make || echo "First make failed"
|
|
|
|
|
|
|
|
# rebuild using our fresh openjdk6
|
|
|
|
unset JAVA_HOME
|
|
|
|
export JAVA_HOME=$SRC/build-boot/openjdk.build/j2sdk-image
|
|
|
|
export PATH=$JAVA_HOME/bin:/opt/java-init/lib/ant/bin:$OLD_PATH
|
|
|
|
|
|
|
|
mkdir $SRC/build
|
|
|
|
cd $SRC/build
|
|
|
|
|
|
|
|
LC_ALL=C \
|
|
|
|
ALT_UNIXCOMMAND_PATH="" \
|
|
|
|
CONFIG_SHELL=/bin/bash \
|
|
|
|
../icedtea6-$icedtea_version/configure \
|
|
|
|
--prefix=/$name \
|
|
|
|
--disable-docs \
|
|
|
|
--disable-downloading \
|
|
|
|
--disable-systemtap \
|
|
|
|
--disable-tests \
|
|
|
|
--disable-hotspot-tests \
|
|
|
|
--disable-langtools-tests \
|
|
|
|
--disable-jdk-tests \
|
|
|
|
--disable-xrender \
|
|
|
|
--enable-system-gif \
|
|
|
|
--enable-system-jpeg \
|
|
|
|
--enable-system-kerberos \
|
|
|
|
--disable-lcms2 \
|
|
|
|
--enable-system-png \
|
|
|
|
--enable-system-zlib \
|
|
|
|
--enable-nss \
|
|
|
|
--enable-non-nss-curves \
|
|
|
|
--with-openjdk-src-zip=$SRC/openjdk-6-src-$openjdk_version-$openjdk_date.tar.xz \
|
|
|
|
--with-pkgversion=CRUX \
|
|
|
|
--without-rhino \
|
|
|
|
--with-javac \
|
|
|
|
--with-jdk-home=$JAVA_HOME \
|
|
|
|
--with-ant-home=/opt/java-init/lib/ant \
|
|
|
|
--with-abs-install-dir=/$name
|
|
|
|
|
|
|
|
LC_ALL=C \
|
|
|
|
ALT_UNIXCOMMAND_PATH="" \
|
|
|
|
DISABLE_HOTSPOT_OS_VERSION_CHECK="ok" \
|
|
|
|
make || echo "Second make failed"
|
|
|
|
|
|
|
|
# Copy the sdk image first before pruning it, saving original for later inspection/comparison.
|
|
|
|
mkdir -p $PKG/$name
|
|
|
|
cp -a openjdk.build/j2sdk-image/* $PKG/$name
|
|
|
|
|
|
|
|
# Remove unneeded files
|
|
|
|
rm -f $PKG/$name/src.zip
|
|
|
|
rm -rf $PKG/$name/{demo,man,sample,jre/lib/{images,zi}}
|
|
|
|
find $PKG/$name \( \
|
|
|
|
-name '*.ja' -o \
|
|
|
|
-name '*.txt' -o \
|
|
|
|
-name '*.old' -o \
|
|
|
|
-name '*.properties' -o \
|
|
|
|
-name '*.template' -o \
|
|
|
|
-name 'fontconfig.*' -o \
|
|
|
|
-name 'ASSEMBLY_EXCEPTION' -o \
|
|
|
|
-name 'LICENSE' \) \
|
|
|
|
-delete
|
|
|
|
|
|
|
|
# Deduplicate
|
|
|
|
rm $PKG/$name/jre/lib/amd64/jli/libjli.so
|
|
|
|
ln -sr $PKG/$name/lib/amd64/jli/libjli.so \
|
|
|
|
$PKG/$name/jre/lib/amd64/jli/libjli.so
|
|
|
|
for f in $PKG/$name/jre/bin/* ; do
|
|
|
|
if [ -f $PKG/$name/bin/${f##*/} ]; then
|
|
|
|
rm $f
|
|
|
|
ln -sr $PKG/$name/bin/${f##*/} $f
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
# Link to CRUX ca-certificates
|
|
|
|
rm -f $PKG/$name/jre/lib/security/cacerts
|
|
|
|
ln -s /etc/ssl/cert.pem $PKG/$name/jre/lib/security/cacerts
|
|
|
|
|
|
|
|
rm $PKG/$name/{,jre/}THIRD_PARTY_README
|
2021-02-07 14:45:22 +01:00
|
|
|
}
|