# Description: OpenJDK 6, bootstrap build for building OpenJDK 7 # 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 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 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 ) unpack_source() { 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 } build() { # 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 }