#!/bin/sh # Slackware build script for adoptopenjdk # Copyright 2018 Sukma Wardana # Copyright 2020 Rub'en Llorente # # Permission is hereby granted, free of charge, to any person obtaining a copy of this software # and associated documentation files (the "Software"), to deal in the Software without restriction, # including without limitation the rights to use, copy, modify, merge, publish, distribute, # sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in all copies or # substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, # INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR # PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE # FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN # THE SOFTWARE. # Tools are fetched # TOOLS="binutils mksquashfs file" # for tool in "$TOOLS"; do # tce-load -w -i ${tool}.tcz # done PRGNAM=adoptopenjdk VERSION=${VERSION:-12.0.2+10} BUILD=${BUILD:-1} ARCH=${ARCH:-$(uname -m)} TAG=${TAG:-_RLL} MAJORVER=${VERSION%+*} MINORVER=${VERSION#*+} JDKVER=${VERSION%.*.*} TARNAM=OpenJDK12U-jdk_x64_linux_hotspot_${MAJORVER}_${MINORVER}.tar.gz CWD=$(pwd) TMP=${TMP:-/tmp/RLL} PKG=${TMP}/package-${PRGNAM} OUTPUT=${OUTPUT:-/tmp} if [ "${ARCH}" != "x86_64" ]; then echo "Architecture ${ARCH} is not supported." exit 1 fi LIBDIRSUFFIX="" set -e rm -rf ${PKG} mkdir -p ${TMP} ${PKG} ${OUTPUT} mkdir -p ${PKG}/usr/local/lib${LIBDIRSUFFIX}/${PRGNAM}-${JDKVER} # Extract start from sub-directory 1 level beneath cd ${PKG}/usr/local/lib${LIBDIRSUFFIX}/${PRGNAM}-${JDKVER} tar -xvzf ${CWD}/${TARNAM} --strip-components=1 # Add profile scripts. mkdir -p ${PKG}/usr/local/etc/profile.d for SCRIPT in $(ls "${CWD}/profile.d/${PRGNAM}"*) ; do sed -e "s;@JDKVER@;${JDKVER};" \ < ${SCRIPT} \ > ${PKG}/usr/local/etc/profile.d/$(basename ${SCRIPT}) chmod 755 ${PKG}/usr/local/etc/profile.d/* done # Place libjvm.so mkdir -m 755 -p ${PKG}/usr/local/lib64 ln -s ${PKG}/usr/local/lib/adoptopenjdk-12/lib/server/libjvm.so ${PKG}/usr/local/lib/libjvm.so ln -s ${PKG}/usr/local/lib/adoptopenjdk-12/lib/server/libjvm.so ${PKG}/usr/local/lib64/libjvm.so # Licensing information: mkdir -m 755 -p ${PKG}/usr/local/share/doc/${PRGNAM}-${JDKVER} mv ${PKG}/usr/local/lib/${LIBDIRSUFFIX}/${PRGNAM}-${JDKVER}/legal ${PKG}/usr/local/share/doc/${PRGNAM}-${JDKVER}/ mv ${PKG}/usr/local/lib/${LIBDIRSUFFIX}/${PRGNAM}-${JDKVER}/release ${PKG}/usr/local/share/doc/${PRGNAM}-${JDKVER}/ cd ${PKG} chown -R root:root . find -L . \ \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ -o -perm 511 \) -exec chmod 755 {} \; -o \ \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; # Add tce.installed scripts mkdir -m 775 -p ${PKG}/usr/local/tce.installed chown -R root:staff ${PKG}/usr/local/tce.installed cp ${CWD}/${PRGNAM}-${JDKVER} ${PKG}/usr/local/tce.installed/${PRGNAM}-${JDKVER} chown -R tc:staff ${PKG}/usr/local/tce.installed/${PRGNAM}-${JDKVER} chmod 755 ${PKG}/usr/local/tce.installed/${PRGNAM}-${JDKVER} # Strip some libraries and binaries find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded 2> /dev/null find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | \ xargs strip --strip-unneeded #2> /dev/null if test -f ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}; then rm ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz} fi if test -f ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list; then rm ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list fi # Build the package. cd ${TMP} mksquashfs ${PKG} ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz} cd ${PKG} for directory in *; do find "$directory" -not -type d >> ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list done sed -i -e 's;^;/;' ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list sort -o ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list ${OUTPUT}/${PRGNAM}-${JDKVER}.${PKGTYPE:-tcz}.list