diff options
author | Eric Hameleers <alien@slackware.com> | 2011-11-29 14:22:16 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2011-11-29 14:22:16 +0000 |
commit | 88263f5c9aa77f838361c92fa0ee418702f23a12 (patch) | |
tree | 078a12f679b9e8f5b81c05c17ef7cde1e09ecfca /openjdk/build/openjdk.SlackBuild | |
parent | 99e8d81ea6e4498d3c7ccedaa0600af9441703b5 (diff) | |
download | asb-88263f5c9aa77f838361c92fa0ee418702f23a12.tar.gz asb-88263f5c9aa77f838361c92fa0ee418702f23a12.tar.xz |
SlackBuild completely re-written.
While the previous version built openjdk, it did not use icedtea to do so.
This new version of the script does use icedtea to build the openjdk
Diffstat (limited to 'openjdk/build/openjdk.SlackBuild')
-rwxr-xr-x | openjdk/build/openjdk.SlackBuild | 143 |
1 files changed, 108 insertions, 35 deletions
diff --git a/openjdk/build/openjdk.SlackBuild b/openjdk/build/openjdk.SlackBuild index 6d6462da..08197e9d 100755 --- a/openjdk/build/openjdk.SlackBuild +++ b/openjdk/build/openjdk.SlackBuild @@ -22,15 +22,28 @@ # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -PKGNAM1=openjdk -PKGNAM2=openjre -JBLD=b147 -JVER=7 +PKGNAM1=jdk +PKGNAM2=jre +JAVAVER=7 +JAVABLD=b147 +ICEDTEA=2.0 -VERSION="${JVER}_${JBLD}" +VERSION="${JAVAVER}_${JAVABLD}" BUILD=${BUILD:-1} NUMJOBS=${NUMJOBS:--j6} +# Sources the script requires. Note that the Makefile contains SHA256SUM values +# for all of these tarballs; if the tarball does not verify then it will be +# downloaded again: +SRC_CORBA=corba.tar.gz +SRC_HOTSPOT=hotspot.tar.gz +SRC_ICEWEB=icedtea-web-1.1.4.tar.gz +SRC_JAXP=jaxp.tar.gz +SRC_JAXWS=jaxws.tar.gz +SRC_JDK=jdk.tar.gz +SRC_LANGTOOLS=langtools.tar.gz +SRC_OPENJDK=openjdk.tar.gz + # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then case "$( uname -m )" in @@ -67,9 +80,9 @@ PKG2=$TMP/package-$PKGNAM2 rm -rf $PKG1 $PKG2 mkdir -p $TMP $PKG1 $PKG2 cd $TMP -rm -rf $PKGNAM1 $PKGNAM2 -unzip $CWD/$PKGNAM1-$JVER-*-src-$JBLD-*.zip || exit 1 -cd $PKGNAM1 || exit 1 +rm -rf icedtea-$ICEDTEA +tar xvf $CWD/sources/icedtea-$ICEDTEA.tar.?z* || exit 1 +cd icedtea-$ICEDTEA || exit 1 chown -R root:root . find . \ \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ @@ -78,36 +91,60 @@ find . \ -exec chmod 644 {} \; # We start with creating a proper build environment. -# Check its correctness with "make sanity": + +unset CLASSPATH unset JAVA_HOME unset MAKEFLAGS -export ALT_BOOTDIR=/usr/lib${LIBDIRSUFFIX}/java -export ALT_DROPS_DIR=$CWD -export ALT_PARALLEL_COMPILE_JOBS="${NUMJOBS/-j}" +export ANT_HOME=/usr/share/ant +export JVMDIR=/usr/lib${LIBDIRSUFFIX}/java -export BUILD_NUMBER=$JBLD +export BUILD_NUMBER=$JAVABLD +export ALT_PARALLEL_COMPILE_JOBS="${NUMJOBS/-j}" export HOTSPOT_BUILD_JOBS="${ALT_PARALLEL_COMPILE_JOBS}" export LANG=C export OS_VARIANT_NAME="Slackware" export OS_VARIANT_VERSION=$(cat /etc/slackware-version | cut -f2 -d' ') -# Compile the lot: -# If I do not define ALLOW_DOWNLOADS=true the build will fail, even if I have -# the jaxws/jaxp source drops in place and ALT_DROPS_DIR points to them: -make ALLOW_DOWNLOADS=true || exit 1 +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --with-abs-install-dir=/usr/lib${LIBDIRSUFFIX}/java \ + --with-pkgversion=Slackware \ + --with-parallel-jobs=${HOTSPOT_BUILD_JOBS} \ + --with-corba-src-zip=$CWD/sources/${SRC_CORBA} \ + --with-hotspot-src-zip=$CWD/sources/${SRC_HOTSPOT} \ + --with-jaxp-src-zip=$CWD/sources/${SRC_JAXP} \ + --with-jaxws-src-zip=$CWD/sources/${SRC_JAXWS} \ + --with-jdk-src-zip=$CWD/sources/${SRC_JDK} \ + --with-langtools-src-zip=$CWD/sources/${SRC_LANGTOOLS} \ + --with-openjdk-src-zip=$CWD/sources/${SRC_OPENJDK} \ + --with-jdk-home=${JVMDIR} \ + --enable-nss \ + --disable-docs \ + --disable-bootstrap \ + --disable-system-lcms \ + --build=$ARCH-slackware-linux + +make || exit 1 # Move the generated jre and sdk images to the respective packages: mkdir -p $PKG1/usr/lib${LIBDIRSUFFIX} $PKG2/usr/lib${LIBDIRSUFFIX} -cp -ia $TMP/$PKGNAM1/build/linux-$LIB_ARCH/j2sdk-image \ +cp -a openjdk.build/j2sdk-image \ $PKG1/usr/lib${LIBDIRSUFFIX}/java -cp -ia $TMP/$PKGNAM1/build/linux-$LIB_ARCH/j2re-image \ +cp -a openjdk.build/j2re-image \ $PKG2/usr/lib${LIBDIRSUFFIX}/java +# Pick a selection of fontconfig files: +cp -a $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/fontconfig.{Ubuntu,}.properties.src +cp -a $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/fontconfig.{Ubuntu,}.bfc +cp -a $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/fontconfig.{Ubuntu,}.properties.src +cp -a $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/fontconfig.{Ubuntu,}.bfc + +# Symlinks are present in Slackware historically: ( cd $PKG1/usr/lib${LIBDIRSUFFIX} ln -sf java jdk${VERSION} ) || exit 1 - ( cd $PKG2/usr/lib${LIBDIRSUFFIX} ln -sf java jre${VERSION} ) || exit 1 @@ -118,10 +155,45 @@ for file in $(ls $CWD/profile.d/*) ; do cat $file | sed -e "s#lib/java#lib${LIBDIRSUFFIX}/java#" \ > $PKG1/etc/profile.d/$(basename $file) cat $file | sed -e "s#lib/java#lib${LIBDIRSUFFIX}/java#" \ + -e "s#jre/bin#bin#" \ > $PKG2/etc/profile.d/$(basename $file) done chmod 755 $PKG1/etc/profile.d/* $PKG2/etc/profile.d/* +# Add menu entries and icons: +for i in 16 24 32 48 ; do + mkdir -p ${PKG1}/usr/share/icons/hicolor/${i}x${i}/apps + install -m644 openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${i}.png \ + ${PKG1}/usr/share/icons/hicolor/${i}x${i}/apps/java.png + mkdir -p ${PKG2}/usr/share/icons/hicolor/${i}x${i}/apps + install -m644 openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${i}.png \ + ${PKG2}/usr/share/icons/hicolor/${i}x${i}/apps/java.png +done +mkdir -p ${PKG1}/usr/share/applications +install -m644 *.desktop ${PKG1}/usr/share/applications/ +mkdir -p ${PKG2}/usr/share/applications +install -m644 *.desktop ${PKG2}/usr/share/applications/ + +# User-modifiable configuration files go to /etc : +mkdir -p $PKG1/etc/java $PKG2/etc/java +mv $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/${LIB_ARCH}/jvm.cfg $PKG1/etc/java/jvm.cfg.new +ln -sf /etc/java/jvm.cfg $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/${LIB_ARCH}/jvm.cfg +mv $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/java.policy $PKG1/etc/java/java.policy.new +ln -sf /etc/java/java.policy $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/java.policy +mv $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/java.security $PKG1/etc/java/java.security.new +ln -sf /etc/java/java.security $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/java.security +cat $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/nss.cfg | sed -e 's/seamonkey-.*$/seamonkey/' > $PKG1/etc/java/nss.cfg.new +ln -sf /etc/java/nss.cfg $PKG1/usr/lib${LIBDIRSUFFIX}/java/jre/lib/security/nss.cfg +# And the jre package: +mv $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/${LIB_ARCH}/jvm.cfg $PKG1/etc/java/jvm.cfg.new +ln -sf /etc/java/jvm.cfg $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/${LIB_ARCH}/jvm.cfg +mv $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/java.policy $PKG1/etc/java/java.policy.new +ln -sf /etc/java/java.policy $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/java.policy +mv $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/java.security $PKG2/etc/java/java.security.new +ln -sf /etc/java/java.security $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/java.security +cat $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/nss.cfg | sed -e 's/seamonkey-.*$/seamonkey/' > $PKG2/etc/java/nss.cfg.new +ln -sf /etc/java/nss.cfg $PKG2/usr/lib${LIBDIRSUFFIX}/java/lib/security/nss.cfg + # The openjdk does not build a mozilla plugin: #mkdir -p $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins #( cd $PKG/usr/lib${LIBDIRSUFFIX}/mozilla/plugins @@ -138,26 +210,27 @@ chmod 755 $PKG1/etc/profile.d/* $PKG2/etc/profile.d/* mkdir -p $PKG1/install $PKG2/install cat $CWD/slack-desc.jdk > $PKG1/install/slack-desc +zcat $CWD/doinst.sh.gz > $PKG1/install/doinst.sh cat $CWD/slack-desc.jre > $PKG2/install/slack-desc - -# For openjdk I have to create desktop files: -## Install the desktop/mime files: -#mkdir -p $PKG/usr/share/{applications,icons,mime} -#cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/applications/* \ -# $PKG/usr/share/applications/ -#cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/icons/hicolor \ -# $PKG/usr/share/icons/ -#cp -a $PKG/usr/lib${LIBDIRSUFFIX}/java/jre/lib/desktop/mime/packages \ -# $PKG/usr/share/mime/ +zcat $CWD/doinst.sh.gz > $PKG2/install/doinst.sh # Add documentation files: -mkdir -p $PKG1/usr/doc/$PKGNAM1-$VERSION $PKG2/usr/doc/$PKGNAM2-$VERSION +mkdir -p $PKG1/usr/doc/$PKGNAM1-$VERSION/icedtea +mkdir -p $PKG2/usr/doc/$PKGNAM2-$VERSION/icedtea +( cd openjdk + cp -a \ + ASSEMBLY_EXCEPTION LICENSE README* THIRD_PARTY_README \ + $PKG1/usr/doc/$PKGNAM1-$VERSION + cp -a \ + ASSEMBLY_EXCEPTION LICENSE README* THIRD_PARTY_README \ + $PKG2/usr/doc/$PKGNAM2-$VERSION +) cp -a \ - ASSEMBLY_EXCEPTION LICENSE README* THIRD_PARTY_README \ - $PKG1/usr/doc/$PKGNAM1-$VERSION + AUTHORS COPYING HACKING INSTALL NEWS README* THANKYOU \ + $PKG1/usr/doc/$PKGNAM1-$VERSION/icedtea cp -a \ - ASSEMBLY_EXCEPTION LICENSE README* THIRD_PARTY_README \ - $PKG2/usr/doc/$PKGNAM2-$VERSION + AUTHORS COPYING HACKING INSTALL NEWS README* THANKYOU \ + $PKG2/usr/doc/$PKGNAM2-$VERSION/icedtea # If there's a ChangeLog, installing at least part of the recent history # is useful, but don't let it get totally out of control: |