summaryrefslogtreecommitdiffstats
path: root/openjdk/build/openjdk.SlackBuild
diff options
context:
space:
mode:
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
commit88263f5c9aa77f838361c92fa0ee418702f23a12 (patch)
tree078a12f679b9e8f5b81c05c17ef7cde1e09ecfca /openjdk/build/openjdk.SlackBuild
parent99e8d81ea6e4498d3c7ccedaa0600af9441703b5 (diff)
downloadasb-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-xopenjdk/build/openjdk.SlackBuild143
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: