summaryrefslogtreecommitdiff
path: root/openjdk8/Pkgfile
blob: 09030c24ea8df656665ddf6fecec0579555e3f45 (plain)
    1 # Description: OpenJDK 8 built using IcedTea build harness
    2 # URL: https://icedtea.classpath.org
    3 # Maintainer: Tim Biermann, tbier at posteo dot de
    4 # Co-Maintainer: Danny Rawlins, crux at romster dot me
    5 # Depends on: alsa-lib cups giflib gtk3 krb5 lcms2 libxslt nss p11-kit unzip xorg-libxcomposite xorg-libxinerama xorg-libxt zip
    6 
    7 name=openjdk8
    8 version=8u292-b10
    9 _icedtea_version=3.19.0
   10 _boot_version=20210620
   11 release=1
   12 source=(http://icedtea.wildebeest.org/download/source/icedtea-$_icedtea_version.tar.xz
   13   https://crux.ster.zone/downloads/java/corba-$version.tar.xz
   14   https://crux.ster.zone/downloads/java/hotspot-$version.tar.xz
   15   https://crux.ster.zone/downloads/java/jaxp-$version.tar.xz
   16   https://crux.ster.zone/downloads/java/jaxws-$version.tar.xz
   17   https://crux.ster.zone/downloads/java/jdk-$version.tar.xz
   18   https://crux.ster.zone/downloads/java/langtools-$version.tar.xz
   19   https://crux.ster.zone/downloads/java/nashorn-$version.tar.xz
   20   https://crux.ster.zone/downloads/java/openjdk-$version.tar.xz
   21   https://crux.ster.zone/downloads/java/openjdk8_boot-$_boot_version.tar.xz)
   22  # See README for links to originally named files and rationale of renaming/versioning/mirroring.
   23 
   24 unpack_source() {
   25   for file in ${source[@]}; do
   26    case ${file##*/} in
   27     icedtea-$_icedtea_version.tar.xz|\
   28     openjdk8_boot-$_boot_version.tar.xz)
   29      bsdtar -p -o -C $SRC -xf $(get_filename $file) ;;
   30     *)
   31      cp $(get_filename $file) $SRC ;;
   32    esac
   33   done
   34 }
   35 
   36 build() {
   37   # Most of these flags were snarfed directly from Alpine Linux APKBUILD for openjdk7, added -fabi-version.
   38   # Fixes build failures due to suspected gcc8 changes for default std and abi.
   39   export EXTRA_CPP_FLAGS="$CXXFLAGS -fabi-version=10 -std=gnu++98 -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
   40   export EXTRA_CFLAGS="$CFLAGS -fabi-version=10 -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-strict-overflow"
   41 
   42   # Make sure we do not have ccache masquerade directory in PATH.
   43   # Use --enable-ccache instead of providing a wrapped compiler.
   44   # NOTE: the check for usr/bin/ccache may be too specific, since it rules out
   45   #       local or opt installs.
   46   if [ -e '/usr/bin/ccache' ]; then
   47    EXTRA_OPTIONS='--enable-ccache'
   48    PATH=$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')
   49   fi
   50 
   51   unset JAVA_HOME
   52   OLD_PATH=$PATH
   53   export JAVA_HOME=$SRC/$name-boot
   54   export PATH=$JAVA_HOME/bin:$OLD_PATH
   55 
   56   if [ -f /etc/pki/tls/java/cacerts ]; then
   57    JAVA_CACERTS=/etc/pki/tls/java/cacerts
   58   else
   59    /usr/sbin/make-ca -g -D $SRC/certs || exit 1
   60    JAVA_CACERTS=$SRC/certs/etc/pki/tls/java/cacerts
   61   fi
   62   mkdir $SRC/build
   63   cd $SRC/build
   64 
   65   # Will fail if make-ca has not been run after p11-kit install
   66   LC_ALL=C \
   67   CONFIG_SHELL=/bin/bash \
   68   ../icedtea-$_icedtea_version/configure ${EXTRA_OPTIONS} \
   69    --prefix=/usr/lib/java/$name \
   70    --disable-docs \
   71    --disable-downloading \
   72    --disable-hotspot-tests \
   73    --disable-jdk-tests \
   74    --disable-langtools-tests \
   75    --disable-precompiled-headers \
   76    --disable-system-pcsc \
   77    --disable-system-sctp \
   78    --disable-systemtap-tests \
   79    --disable-tests \
   80    --enable-improved-font-rendering \
   81    --enable-non-nss-curves \
   82    --enable-nss \
   83    --enable-system-cups \
   84    --enable-system-fontconfig \
   85    --enable-system-gio \
   86    --enable-system-gtk \
   87    --enable-system-jpeg \
   88    --enable-system-kerberos \
   89    --enable-system-lcms \
   90    --enable-system-png \
   91    --enable-system-zlib \
   92    --with-corba-src-zip=$SRC/corba-$version.tar.xz \
   93    --with-hotspot-src-zip=$SRC/hotspot-$version.tar.xz \
   94    --with-jaxp-src-zip=$SRC/jaxp-$version.tar.xz \
   95    --with-jaxws-src-zip=$SRC/jaxws-$version.tar.xz \
   96    --with-jdk-src-zip=$SRC/jdk-$version.tar.xz \
   97    --with-langtools-src-zip=$SRC/langtools-$version.tar.xz \
   98    --with-nashorn-src-zip=$SRC/nashorn-$version.tar.xz \
   99    --with-openjdk-src-zip=$SRC/openjdk-$version.tar.xz \
  100    --with-pkgversion=CRUX \
  101    --with-jdk-home=$JAVA_HOME \
  102    --with-cacerts-file=$JAVA_CACERTS \
  103    --with-tzdata-dir=/usr/share/zoneinfo
  104 
  105   LC_ALL=C \
  106   make
  107 
  108   # Copy the sdk image first before pruning it, saving original for later inspection/comparison.
  109   install -d -m 0755 $PKG/usr/lib/java/$name
  110   cp -a openjdk.build/images/j2sdk-image/* $PKG/usr/lib/java/$name
  111 
  112   install -d -m 0755 $PKG/etc/revdep.d
  113   echo "/usr/lib/java/$name/jre/lib/amd64" > $PKG/etc/revdep.d/$name
  114   echo "/usr/lib/java/$name/jre/lib/amd64/jli" >> $PKG/etc/revdep.d/$name
  115   echo "/usr/lib/java/$name/jre/lib/amd64/server" >> $PKG/etc/revdep.d/$name
  116 
  117   # Remove unneeded files
  118   rm -f $PKG/usr/lib/java/$name/src.zip
  119   rm -rf $PKG/usr/lib/java/$name/{demo,man/ja*,sample}
  120   rm -f $PKG/usr/lib/java/$name/{,jre/}THIRD_PARTY_README
  121   find $PKG/usr/lib/java/$name \( \
  122    -name '*.ja' -o \
  123    -name 'ASSEMBLY_EXCEPTION' -o \
  124    -name 'LICENSE' -o \
  125    -name 'THIRD_PARTY_README' \) \
  126    -delete
  127 
  128   # Deduplicate
  129   rm $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  130   ln -sr $PKG/usr/lib/java/$name/lib/amd64/libjawt.so \
  131    $PKG/usr/lib/java/$name/jre/lib/amd64/libjawt.so
  132   rm $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  133   ln -sr $PKG/usr/lib/java/$name/lib/amd64/jli/libjli.so \
  134    $PKG/usr/lib/java/$name/jre/lib/amd64/jli/libjli.so
  135   for f in $PKG/usr/lib/java/$name/jre/bin/* ; do
  136    if [ -f $PKG/usr/lib/java/$name/bin/${f##*/} ]; then
  137     rm $f
  138     ln -sr $PKG/usr/lib/java/$name/bin/${f##*/} $f
  139    fi
  140   done
  141 
  142   chmod u+w $PKG/usr/lib/java/$name/jre/lib/security/cacerts
  143 }

Generated by cgit