mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-04 22:18:55 +02:00
The correct solution is probably to have this package explicitly download an earlier HPKG and use it, because circular dependencies are against general notions of sanity (and the Kitchen can't deal with them)
192 lines
6.2 KiB
Bash
192 lines
6.2 KiB
Bash
SUMMARY="Open-source implementation of the Java Platform, SE"
|
|
DESCRIPTION="OpenJDK (Open Java Development Kit) is a free and open source \
|
|
implementation of the Java Platform, Standard Edition (Java SE). It is the \
|
|
result of an effort Sun Microsystems began in 2006. The implementation is \
|
|
licensed under the GNU General Public License (GNU GPL) with a linking \
|
|
exception. Were it not for the GPL linking exception, components that linked \
|
|
to the Java class library would be subject to the terms of the GPL license.
|
|
OpenJDK is the official Java SE 7 reference implementation."
|
|
HOMEPAGE="http://openjdk.java.net/"
|
|
COPYRIGHT="2015 Oracle and/or its affiliates."
|
|
LICENSE="GNU GPL v2"
|
|
REVISION="2"
|
|
SOURCE_URI="hg+http://bitbucket.org/hamishm/haiku-jdk8u#6e3a7c2"
|
|
SOURCE_URI_2="hg+http://bitbucket.org/hamishm/haiku-jdk8u-hotspot#e5ab6f7"
|
|
SOURCE_URI_3="hg+http://bitbucket.org/hamishm/haiku-jdk8u-jdk#9b3967c"
|
|
SOURCE_URI_4="hg+http://hg.openjdk.java.net/jdk8u/jdk8u/langtools#jdk8u40-b27"
|
|
SOURCE_URI_5="hg+http://hg.openjdk.java.net/jdk8u/jdk8u/corba#jdk8u40-b27"
|
|
SOURCE_URI_6="hg+http://hg.openjdk.java.net/jdk8u/jdk8u/jaxp#jdk8u40-b27"
|
|
SOURCE_URI_7="hg+http://hg.openjdk.java.net/jdk8u/jdk8u/jaxws#jdk8u40-b27"
|
|
SOURCE_URI_8="hg+http://hg.openjdk.java.net/jdk8u/jdk8u/nashorn#jdk8u40-b27"
|
|
SOURCE_DIR="jdk"
|
|
|
|
ARCHITECTURES="!x86_gcc2 ?x86"
|
|
SECONDARY_ARCHITECTURES="?x86" # circular dependency - needs fixing
|
|
|
|
DISABLE_SOURCE_PACKAGE=yes
|
|
# at least as long as Ant and a complete SDK image are part of the sources
|
|
|
|
PROVIDES="
|
|
openjdk$secondaryArchSuffix = $portVersion compat >= 1.8
|
|
cmd:jexec = $portVersion compat >= 1.8
|
|
cmd:appletviewer = $portVersion compat >= 1.8
|
|
cmd:apt = $portVersion compat >= 1.8
|
|
cmd:extcheck = $portVersion compat >= 1.8
|
|
cmd:idlj = $portVersion compat >= 1.8
|
|
cmd:jar = $portVersion compat >= 1.8
|
|
cmd:jarsigner = $portVersion compat >= 1.8
|
|
cmd:java = $portVersion compat >= 1.8
|
|
cmd:java_config = $portVersion compat >= 1.8
|
|
cmd:javac = $portVersion compat >= 1.8
|
|
cmd:javadoc = $portVersion compat >= 1.8
|
|
cmd:javah = $portVersion compat >= 1.8
|
|
cmd:javap = $portVersion compat >= 1.8
|
|
cmd:jcmd = $portVersion compat >= 1.8
|
|
cmd:jconsole = $portVersion compat >= 1.8
|
|
cmd:jdb = $portVersion compat >= 1.8
|
|
cmd:jdeps = $portVersion compat >= 1.8
|
|
cmd:jhat = $portVersion compat >= 1.8
|
|
cmd:jinfo = $portVersion compat >= 1.8
|
|
cmd:jjs = $portVersion compat >= 1.8
|
|
cmd:jmap = $portVersion compat >= 1.8
|
|
cmd:jps = $portVersion compat >= 1.8
|
|
cmd:jrunscript = $portVersion compat >= 1.8
|
|
cmd:jsadebugd = $portVersion compat >= 1.8
|
|
cmd:jstack = $portVersion compat >= 1.8
|
|
cmd:jstat = $portVersion compat >= 1.8
|
|
cmd:jstatd = $portVersion compat >= 1.8
|
|
cmd:keytool = $portVersion compat >= 1.8
|
|
cmd:native2ascii = $portVersion compat >= 1.8
|
|
cmd:orbd = $portVersion compat >= 1.8
|
|
cmd:pack200 = $portVersion compat >= 1.8
|
|
cmd:policytool = $portVersion compat >= 1.8
|
|
cmd:rmic = $portVersion compat >= 1.8
|
|
cmd:rmid = $portVersion compat >= 1.8
|
|
cmd:rmiregistry = $portVersion compat >= 1.8
|
|
cmd:schemagen = $portVersion compat >= 1.8
|
|
cmd:serialver = $portVersion compat >= 1.8
|
|
cmd:servertool = $portVersion compat >= 1.8
|
|
cmd:tnameserv = $portVersion compat >= 1.8
|
|
cmd:unpack200 = $portVersion compat >= 1.8
|
|
cmd:wsgen = $portVersion compat >= 1.8
|
|
cmd:wsimport = $portVersion compat >= 1.8
|
|
cmd:xjc = $portVersion compat >= 1.8
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libfreetype$secondaryArchSuffix
|
|
lib:libiconv$secondaryArchSuffix
|
|
lib:libjpeg$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
openjdk$secondaryArchSuffix >= 1.7
|
|
ca_root_certificates
|
|
devel:libfreetype$secondaryArchSuffix
|
|
devel:libiconv$secondaryArchSuffix
|
|
devel:libjpeg$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cpio
|
|
cmd:make
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:ld$secondaryArchSuffix
|
|
cmd:sed
|
|
cmd:tar
|
|
cmd:zip
|
|
cmd:awk
|
|
cmd:hostname
|
|
cmd:find
|
|
cmd:unzip
|
|
cmd:unzipsfx
|
|
cmd:head
|
|
cmd:file
|
|
cmd:which
|
|
cmd:autoconf
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
# prepare the directory structure
|
|
cd $(dirname $sourceDir)/jdk
|
|
ln -sfn $sourceDir2 hotspot
|
|
ln -sfn $sourceDir3 jdk
|
|
ln -sfn $sourceDir4 langtools
|
|
ln -sfn $sourceDir5 corba
|
|
ln -sfn $sourceDir6 jaxp
|
|
ln -sfn $sourceDir7 jaxws
|
|
ln -sfn $sourceDir8 nashorn
|
|
|
|
cp $portDir/sources/elf.h hotspot/src/share/vm/utilities
|
|
|
|
# If ASLR is enabled, the JVM can fail to find a large enough area for
|
|
# the heap.
|
|
export DISABLE_ASLR=1
|
|
|
|
# Verify that we can allocate a large enough heap before starting.
|
|
maxHeapSize=960M
|
|
java -XX:ThreadStackSize=1536 -XX:MaxPermSize=160m -Xmx${maxHeapSize} -version
|
|
|
|
freeTypeHeaders=$(finddir B_SYSTEM_HEADERS_DIRECTORY)$secondaryArchSubDir/freetype2
|
|
freeTypeLib=$(finddir B_SYSTEM_DEVELOP_DIRECTORY)/lib$secondaryArchSubDir
|
|
|
|
bash ./common/autoconf/autogen.sh
|
|
bash ./configure --with-boot-jdk-jvmargs="-Xmx${maxHeapSize}" \
|
|
--with-freetype-include="${freeTypeHeaders}" \
|
|
--with-freetype-lib="${freeTypeLib}"
|
|
|
|
make images
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
# install the generated SDK image dir
|
|
jdkDir=$libDir/openjdk
|
|
|
|
mkdir -p $(dirname $jdkDir)
|
|
cp -a build/haiku-*/images/j2sdk-image $jdkDir
|
|
|
|
addResourcesToBinaries $portDir/sources/jexec.rdef $jdkDir/lib/jexec
|
|
|
|
# set up the cacerts file
|
|
cacerts=$jdkDir/jre/lib/security/cacerts
|
|
certDir=certs
|
|
|
|
mkdir -p $certDir
|
|
csplit -f $certDir/ /system/data/ssl/CARootCertificates.pem "/-----BEGIN CERTIFICATE-----/" {*}
|
|
|
|
rm $certDir/00
|
|
|
|
for cert in $certDir/*; do
|
|
$jdkDir/bin/keytool -import -noprompt -keystore $cacerts \
|
|
-storepass "changeit" -file $cert -alias "$cert"
|
|
done
|
|
|
|
# symlink the executables to binDir
|
|
mkdir -p $prefix/bin
|
|
symlinkRelative -s $jdkDir/bin/* $prefix/bin
|
|
# TODO: We should probably link only a subset.
|
|
|
|
# create a profile.d file that sets up JAVA_HOME
|
|
jdkProfile=$dataDir/profile.d/openjdk.sh
|
|
mkdir -p $(dirname $jdkProfile)
|
|
echo "JAVA_HOME=$jdkDir" > $jdkProfile
|
|
echo "export JAVA_HOME" >> $jdkProfile
|
|
|
|
packageEntries sources \
|
|
$libDir/openjdk/src.zip \
|
|
$libDir/openjdk/sample \
|
|
$libDir/openjdk/demo
|
|
}
|
|
|
|
SUMMARY_sources="OpenJDK Development Kit (JDK) source files, demos and examples"
|
|
PROVIDES_sources="
|
|
openjdk${secondaryArchSuffix}_sources = $portVersion compat >= 1.8
|
|
"
|
|
REQUIRES_sources="
|
|
openjdk$secondaryArchSuffix
|
|
"
|