# Contributor: Timo Teras # Contributor: Jakub Jirutka # Maintainer: Timo Teras pkgname=openjdk7 _icedteaver=2.6.17 _icedteaversrc=$_icedteaver-r1 # pkgver is . # check icedtea JDK when updating pkgver=7.211.$_icedteaver pkgrel=0 pkgdesc="OpenJDK 7 via IcedTea" url="https://icedtea.classpath.org/" arch="all" license="GPL-2.0 with Classpath" depends="$pkgname-jre java-cacerts" options="sover-namecheck" makedepends="bash findutils tar zip file paxmark gawk util-linux libxslt autoconf automake linux-headers coreutils ca-certificates nss-dev cups-dev jpeg-dev giflib-dev libpng-dev libxt-dev lcms2-dev libxp-dev libxtst-dev libxinerama-dev zlib-dev libxrender-dev alsa-lib-dev freetype-dev fontconfig-dev gtk+2.0-dev krb5-dev attr-dev pcsc-lite-dev lksctp-tools-dev libxcomposite-dev nss-static xz" install="" # upstream binary versions RHINO_VER=1.7.7.2 ANT_VER=1.9.11 case $CARCH in x86) _jarch=i386;; x86_64) _jarch=amd64;; aarch64) _jarch=aarch64;; arm*) _jarch=arm # openjdk has quite a bit of arm assembly producing textrels # and it's non trivial to fix. allow it for now. options="$options textrels";; s390x) _jarch=s390x;; ppc64le) _jarch=ppc64le;; esac INSTALL_BASE=/usr/lib/jvm/java-1.7-openjdk _jrelib="$INSTALL_BASE/jre/lib/$_jarch" # exclude xawt from ldpath to avoid duplicate provides for libmawt.so # (also in headless). in future this should be a virtual provides. ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli" sonameprefix="$pkgname:" subpackages="$pkgname-jre-lib:jrelib:noarch $pkgname-jre $pkgname-jre-base:jrebase $pkgname-doc:doc" if [ "$BOOTSTRAP" != "no" ]; then makedepends="$makedepends java-gcj-compat" BOOTSTRAP_JAVA_HOME=/usr/lib/jvm/java-1.5-gcj/ else makedepends="$makedepends $pkgname" BOOTSTRAP_JAVA_HOME="$INSTALL_BASE" fi _dropsver=$_icedteaver _dropsurl=https://icedtea.classpath.org/download/drops/icedtea7/$_dropsver source="https://icedtea.classpath.org/download/source/icedtea-$_icedteaversrc.tar.xz openjdk-$_dropsver.tar.bz2::$_dropsurl/openjdk.tar.bz2 corba-$_dropsver.tar.bz2::$_dropsurl/corba.tar.bz2 jaxp-$_dropsver.tar.bz2::$_dropsurl/jaxp.tar.bz2 jaxws-$_dropsver.tar.bz2::$_dropsurl/jaxws.tar.bz2 jdk-$_dropsver.tar.bz2::$_dropsurl/jdk.tar.bz2 langtools-$_dropsver.tar.bz2::$_dropsurl/langtools.tar.bz2 hotspot-$_dropsver.tar.bz2::$_dropsurl/hotspot.tar.bz2 https://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VER-bin.tar.gz https://github.com/mozilla/rhino/releases/download/Rhino${RHINO_VER//./_}_Release/rhino-$RHINO_VER.zip icedtea-hotspot-musl.patch icedtea-hotspot-musl-ppc.patch icedtea-hotspot-noagent-musl.patch icedtea-hotspot-uclibc-fixes.patch icedtea-jdk-fix-build.patch icedtea-jdk-execinfo.patch icedtea-jdk-fix-freetype-detection.patch icedtea-jdk-fix-ipv6-init.patch icedtea-jdk-musl.patch icedtea-jdk-no-soname.patch icedtea-cpio.patch " # secfixes: # 7.211.2.6.17-r0: # - CVE-2018-11212 # - CVE-2019-2422 # - CVE_2019-2426 # 7.201.2.6.16-r0: # - CVE-2018-3136 # - CVE-2018-3139 # - CVE-2018-3149 # - CVE-2018-3169 # - CVE-2018-3180 # - CVE-2018-3214 # - CVE-2018-13785 builddir="$srcdir/icedtea-$_icedteaver" unpack() { if [ -z "$force" ]; then verify initdcheck fi mkdir -p "$srcdir" msg "Unpacking sources..." tar -C "$srcdir" -xf icedtea-$_icedteaversrc.tar.xz tar -C "$srcdir" -xf apache-ant-$ANT_VER-bin.tar.gz unzip -o -q "rhino-$RHINO_VER.zip" -d "$srcdir" } prepare() { cd "$builddir" # Busybox sha256 does not support longopts sed -e "s/--check/-c/g" -i Makefile.am for patch in $source; do case $patch in icedtea-*.patch) cp ../$patch patches ;; *.patch) msg "Applying patch $patch" patch -p1 -i "$srcdir"/$patch ;; esac done ./autogen.sh } build() { [ -z "$JOBS" ] && export JOBS=$(echo $MAKEFLAGS | sed -n -e 's/.*-j\([0-9]\+\).*/\1/p') export ALT_PARALLEL_COMPILE_JOBS="${JOBS:-2}" export HOTSPOT_BUILD_JOBS="${JOBS:-2}" export JAVA_HOME=$BOOTSTRAP_JAVA_HOME export PATH=$JAVA_HOME/bin:$srcdir/apache-ant-$ANT_VER/bin:$PATH export DISTRIBUTION_PATCHES="" # Explicitly set the C++ standard as the default has changed on GCC 6+ # and disable optimizations that lead to a broken JVM. These options # has been adopted from the Fedora package. export EXTRA_CPP_FLAGS="$CXXFLAGS -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse" # CXXFLAGS doesn't make it to all calls, so we set the C++ standard # version for C too. export EXTRA_CFLAGS="$CFLAGS -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse" local patch for patch in $source; do case $patch in icedtea-*.patch) export DISTRIBUTION_PATCHES="$DISTRIBUTION_PATCHES patches/$patch" ;; esac done echo "icedtea patches: $DISTRIBUTION_PATCHES" # --disable-arm32-jit: https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2942 cd "$builddir" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=$INSTALL_BASE \ --sysconfdir=/etc \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --localstatedir=/var \ --with-parallel-jobs=${JOBS:-2} \ --disable-dependency-tracking \ --disable-downloading \ --disable-arm32-jit \ --with-rhino=$srcdir/rhino$RHINO_VER/lib/rhino-$RHINO_VER.jar \ --with-openjdk-src-zip=$srcdir/openjdk-$_dropsver.tar.bz2 \ --with-hotspot-src-zip=$srcdir/hotspot-$_dropsver.tar.bz2 \ --with-corba-src-zip=$srcdir/corba-$_dropsver.tar.bz2 \ --with-jaxp-src-zip=$srcdir/jaxp-$_dropsver.tar.bz2 \ --with-jaxws-src-zip=$srcdir/jaxws-$_dropsver.tar.bz2 \ --with-jdk-src-zip=$srcdir/jdk-$_dropsver.tar.bz2 \ --with-langtools-src-zip=$srcdir/langtools-$_dropsver.tar.bz2 \ --with-pax=paxmark \ --with-jdk-home=$BOOTSTRAP_JAVA_HOME \ --with-pkgversion="Alpine ${pkgver}-r${pkgrel}" msg "Icedtea boot" make -j1 icedtea-boot SHELL=/bin/bash msg "Icedtea boot done" make } package() { mkdir -p "$pkgdir"/$INSTALL_BASE cp -a "$builddir"/openjdk.build/j2sdk-image/* "$pkgdir"/$INSTALL_BASE rm "$pkgdir"/$INSTALL_BASE/src.zip # pax mark again (due to fakeroot xattr handling bug) "$builddir"/pax-mark-vm "$pkgdir"/$INSTALL_BASE # symlink to shared java cacerts store rm -f "$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts ln -sf /etc/ssl/certs/java/cacerts \ "$pkgdir"/$INSTALL_BASE/jre/lib/security/cacerts } jrelib() { pkgdesc="OpenJDK 7 Java Runtime (class libraries)" depends="" local A; for A in jre/lib/zi jre/lib/images jre/lib/*.jar \ jre/lib/security jre/lib/ext/*.jar jre/lib/cmm \ jre/ASSEMBLY_EXCEPTION jre/THIRD_PARTY_README jre/LICENSE; do local dirname=${A%/*} mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname done } jrebase() { pkgdesc="OpenJDK 7 Java Runtime (no GUI support)" depends="$pkgname-jre-lib java-common java-cacerts" mkdir -p "$subpkgdir"/$INSTALL_BASE/bin local A; for A in java orbd rmid servertool unpack200 keytool \ pack200 rmiregistry tnameserv; do mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin done # rest of the jre subdir (which were not taken by -jre subpkg) mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE # pax mark again (due to fakeroot xattr handling bug) "$builddir"/pax-mark-vm "$subpkgdir"/$INSTALL_BASE } jre() { pkgdesc="OpenJDK 7 Java Runtime" # manually depend to avoid clash with libgcj's libjvm.so depends="so:openjdk7:libjvm.so=0" mkdir -p "$subpkgdir" local A; for A in jre/bin/policytool \ bin/appletviewer \ bin/policytool \ jre/lib/$_jarch/xawt \ jre/lib/$_jarch/libsplashscreen.so; do local dirname=${A%/*} mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname done # pax mark again (due to fakeroot xattr handling bug) "$builddir"/pax-mark-vm "$subpkgdir"/$INSTALL_BASE } doc() { default_doc mkdir -p "$subpkgdir"/$INSTALL_BASE/ mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/ } sha512sums="cc4f3f06da3332224e3826e7b3f8292e708a791d6b478db612b7bd01bdcf5ab717507d144ec03349361d665df899459930e0f21f6a5ee78195575488e58bec57 icedtea-2.6.17-r1.tar.xz fe1ce302fe887dcb71f589387b44d3ae71ea389825df4f09d578a67c23aee79a1c2a463da84b22cf74e9b2ce92801da72c40d66093d0eb1c790f09955bb277cc openjdk-2.6.17.tar.bz2 20336ab198e42d42c2f68d15b82fd25db523d68b65313df4c1233a13ccb286fc94e9941c84a2b2b18a196aa121109aedb0c2c6ca772b71c8e1721ebf04b702f6 corba-2.6.17.tar.bz2 d7589d0586eb155225b263387099022af69b9e79c07348db4d48200f7b0a2f53b59c42df284a41604647b06ee4aff43b07dbc4d737b2a0cb29f857cb7fbc7f54 jaxp-2.6.17.tar.bz2 cbc40096706743302b03204099ddc2d632cd14c24dd3d7a5dcb8ad6258146535d660a5f384e2df64c2b97e376122852f050f69f7e67983d86bfbf12a92c7cd2c jaxws-2.6.17.tar.bz2 f0ba8dd6011b205fbc3b67924c7535cd7618df3b1ed084aa65e70532a352d604a908894bbc010d7a50fc2e2d28be7c3d0730d73fc30f1c361e444e63d4b34ac5 jdk-2.6.17.tar.bz2 fd6cb9004c886b78b45ddad7ba98b202998d497ff26e3f0dd861cd418a52e7c0dd7e25e1e035a4278db449abd606a8248cccc28a10cdc543e9870848e05d30f5 langtools-2.6.17.tar.bz2 2777299457b9f82736351a4c948431c1671a40bdc1315da66ba13f0f9930a40812da5385f7d8b10f4a847592cc4f253a36eb14b15bd6699fa5dcd7841718f821 hotspot-2.6.17.tar.bz2 0da12cb0f761b8cb76e042449e7d93f43236e7bc948e337215470a70031f0a2dda6d1b508f9397b283808d84c4ebddb31558fe1cd8e6e6469c1dd390d69ec6e7 apache-ant-1.9.11-bin.tar.gz 1b9e8721749e81c5420a00af1e00ee0e4f48624ccb4e9aa969032114116ad50f59b254d4d16d74feff74de64157cc8b0a2ead9b555907c84b7055b796fba9a75 rhino-1.7.7.2.zip f62b942f0bacda8e37d0f1876d8ba14ddb4fc55a7d5fd1019463744927f40f422a85e9ee051948d566242f5a785aa28f275eb58768611283cba89af91235f43c icedtea-hotspot-musl.patch e5cf4d70f96fc1e72ae8b97a887adb96092ff36584711cbb8de9d9fa9e859cb8731d638838de0d9591239fc44ffe5c74422d1842bd9f10a0c00dff1627bdeeef icedtea-hotspot-musl-ppc.patch e7a2c1771bb582d427041f8d22e48c0daf8f20d7c0926cbce3549d49c4e949359ee25a35682b486e82f3e390535c950c5beee3bd8d06fb5a717b50f2d9b2a6bc icedtea-hotspot-noagent-musl.patch 822eee0dc4d3ba677a289dfeb3668b536d2d626708390a9d9702fb4144a481fd443a215a0d2041c6026113837aafa4ba0b5e9ead8589d2da6717a238bbc95a5a icedtea-hotspot-uclibc-fixes.patch 213a537de5f011cb39d608515c3413513ac75fb93593f9a9ef4205f71d72bdd8b097c80db185f7b26021d5bb85045b866f34f3478482dc4189972d8614a13458 icedtea-jdk-fix-build.patch 0391970e6a32946aa3cccf38fdef9c0fe2af26cd0df824b98aa2fcfa1bf661d4a68e339bffcfd16f386c565fc68bb28a29208a67d4bad8a0e847ad02bd8becbb icedtea-jdk-execinfo.patch 7b1525b5fb4bc7f0c6a8b957584a35297003b3063b6319f5557257ee1e6c277f0d4d1cf26cc389c72dd5157871010944f3fcb3fe70b64c429c76323521b6eb3d icedtea-jdk-fix-freetype-detection.patch 48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch 44a35941c80f408d0607e32763b3b6ccee21e1d39886309327d3d74d2900117e4346ef59e77c663fd022fec10ee8f365eeb46c1260014d5765d226ce175ce3c5 icedtea-jdk-musl.patch bf4b184e170f7b0ff64ab30d2162784fe2bd5460d1fa31973259f7065fd4c511c46f97724fe2bd72bb94e9006cb568d0e0c87d1a9c90819e65880f8f44830bb1 icedtea-jdk-no-soname.patch a54c79c82afa1bc95265397b274260584c8b8c6be1651ddfb907d9523a809ea4581409e0d3fb0bbb63ef5a204e8ce29b7940e78cd640af1f490ae938c59129b6 icedtea-cpio.patch"