main/openjdk6: remove as superceded by openjdk7

This commit is contained in:
Timo Teräs 2014-04-15 10:40:02 +00:00
parent 3ef61caf02
commit bb62ff0be2
12 changed files with 0 additions and 1253 deletions

View File

@ -1,261 +0,0 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=openjdk6
_icedteaver=1.12.8
_openjdkbuild=27
pkgver=6.$_openjdkbuild.$_icedteaver
pkgrel=1
pkgdesc="Sun OpenJDK 6 via IcedTea"
url="http://icedtea.classpath.org/"
arch="x86 x86_64"
license="GPL-2 with Classpath"
depends="$pkgname-jre"
options="sover-namecheck"
makedepends="findutils tar zip paxctl gawk pkgconfig util-linux
autoconf automake nss-dev cups-dev jpeg-dev giflib-dev libpng-dev libxt-dev
libxp-dev libxtst-dev libxinerama-dev libiconv-dev
libxrender-dev alsa-lib-dev freetype-dev xulrunner-dev
gtk+2.0-dev ca-certificates libxslt zip"
install=""
INSTALL_BASE=/usr/lib/jvm/java-1.6-openjdk
if [ "$BOOTSTRAP" != "no" ]; then
makedepends="$makedepends java-gcj-compat"
BOOTSTRAP_JAVA_HOME="/usr/lib/jvm/java-1.5-gcj/"
else
makedepends="$makedepends $pkgname"
BOOTSTRAP_JAVA_HOME="$INSTALL_BASE"
fi
OPENJDK_VERSION=b$_openjdkbuild
OPENJDK_DATE=26_oct_2012
RHINO_VER=1_7R3
ANT_VER=1.9.2
case $CARCH in
x86) _jarch=i386;;
x86_64) _jarch=amd64;;
arm) _jarch=arm;;
esac
# exclude xawt from ldpath to avoid duplicate provides for libmawt.so (also in
# headless).
# infuture this should be a virtual provides
_jrelib="$INSTALL_BASE/jre/lib/$_jarch"
ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli"
somask="libjvm.so"
subpackages="$pkgname-jre-lib:jrelib $pkgname-jre $pkgname-jre-base:jrebase
$pkgname-doc:doc"
source="http://download.java.net/openjdk/jdk6/promoted/$OPENJDK_VERSION/openjdk-6-src-$OPENJDK_VERSION-$OPENJDK_DATE.tar.gz
http://icedtea.classpath.org/download/source/icedtea6-$_icedteaver.tar.gz
http://archive.apache.org/dist/ant/binaries/apache-ant-$ANT_VER-bin.tar.gz
ftp://ftp.mozilla.org/pub/mozilla.org/js/rhino$RHINO_VER.zip
icedtea-hotspot-uclibc-fixes.patch
icedtea-hotspot-musl.patch
icedtea-hotspot-noagent-musl.patch
icedtea-jdk-fix-ipv6-init.patch
icedtea-jdk-iconv-uclibc.patch
icedtea-jdk-execinfo.patch
icedtea-jdk-musl.patch
icedtea-jdk-no-lib-nsl-uclibc.patch
icedtea6-1.9.7-generate_cacerts-1.patch
icedtea-jdk-no-soname.patch
fix-with-pax.patch
"
_builddir="$srcdir/icedtea6-$_icedteaver"
unpack() {
if [ -z "$force" ]; then
verify || return 1
initdcheck || return 1
fi
mkdir -p "$srcdir"
msg "Unpacking sources..."
tar -C "$srcdir" -zxf icedtea6-$_icedteaver.tar.gz || return 1
tar -C "$srcdir" -zxf apache-ant-$ANT_VER-bin.tar.gz || return 1
unzip -o -q "rhino$RHINO_VER.zip" -d "$srcdir" || return 1
}
prepare() {
cd "$_builddir"
# Busybox sha256 does not support longopts
sed -e "s/--check/-c/g" -i Makefile.am
for patch in $source; do
case $patch in
icedtea-*.patch)
cp ../$patch patches
;;
*.patch)
msg "Applying patch $patch"
patch -p1 -i "$srcdir"/$patch || return 1
;;
esac
done
}
build() {
[ -z "$JOBS" ] && export JOBS=`echo $MAKEFLAGS | sed -n -e 's/.*-j\([0-9]\+\).*/\1/p'`
export JAVA_HOME=$BOOTSTRAP_JAVA_HOME
export PATH=$JAVA_HOME/bin:$srcdir/apache-ant-$ANT_VER/bin:$PATH
export DISTRIBUTION_PATCHES=""
local patch
for patch in $source; do
case $patch in
icedtea-*.patch)
export DISTRIBUTION_PATCHES="$DISTRIBUTION_PATCHES patches/$patch"
;;
esac
done
echo "icedtea patches: $DISTRIBUTION_PATCHES"
local _bootstrap=""
[ "$BOOTSTRAP" = "no" ] && _bootstrap="--disable-bootstrap"
cd "$_builddir"
sh autogen.sh
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-dependency-tracking \
--disable-downloading \
--with-parallel-jobs=${JOBS:-2} \
--enable-cacerts \
--with-ca-dir=/etc/ssl/certs \
--with-jdk-home=$BOOTSTRAP_JAVA_HOME \
--with-pax=paxctl \
$_bootstrap \
--with-openjdk-src-zip=$srcdir/openjdk-6-src-$OPENJDK_VERSION-$OPENJDK_DATE.tar.gz \
--with-ant-home=$srcdir/apache-ant-$ANT_VER \
--with-rhino=$srcdir/rhino$RHINO_VER/js.jar \
--with-pkgversion="Alpine ${pkgver}-r${pkgrel}" \
--with-abs-install-dir="$INSTALL_BASE" \
|| return 1
make || return 1
}
package() {
mkdir -p "$pkgdir"/$INSTALL_BASE
cp -a "$_builddir"/openjdk.build/j2sdk-image/* "$pkgdir"/$INSTALL_BASE
rm "$pkgdir"/$INSTALL_BASE/src.zip
scanelf --nobanner "$pkgdir"/$INSTALL_BASE/bin/* | awk '{print $2}' \
| xargs paxctl -c -mr
}
jrelib() {
pkgdesc="OpenJDK 6 Java Runtime (class libraries)"
arch="noarch"
depends=""
for A in jre/lib/zi jre/lib/images jre/lib/*.jar jre/lib/security \
jre/lib/ext/*.jar jre/lib/cmm jre/ASSEMBLY_EXCEPTION \
jre/THIRD_PARTY_README jre/LICENSE ; do
dirname=${A%/*}
mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
done
}
jrebase() {
pkgdesc="OpenJDK 6 Java Runtime (no GUI support)"
depends="$pkgname-jre-lib java-common"
# manually provide this to avoid clash with libgcj's libjvm.so
provides="so:openjdk6:libjvm.so=0"
mkdir -p "$subpkgdir"/$INSTALL_BASE/bin
for A in java orbd rmid servertool unpack200 keytool \
pack200 rmiregistry tnameserv ; do
mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin
done
# rest of the jre subdir (which were not taken by -jre subpkg)
mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE
# all java stuff seems to need mprotect and randomization off
# or otherwise the vm fails to allocate enough memory
paxctl -c -mr \
"$subpkgdir"/$INSTALL_BASE/bin/* \
"$subpkgdir"/$INSTALL_BASE/jre/bin/*
}
jre() {
pkgdesc="OpenJDK 6 Java Runtime"
# manually depend to avoid clash with libgcj's libjvm.so
depends="so:openjdk6:libjvm.so=0"
mkdir -p "$subpkgdir"
for A in jre/bin/policytool \
bin/appletviewer \
bin/policytool \
jre/lib/$_jarch/xawt \
jre/lib/$_jarch/libsplashscreen.so ; do
dirname=${A%/*}
mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
done
}
doc() {
default_doc
mkdir -p "$subpkgdir"/$INSTALL_BASE/
mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/
}
md5sums="3a0963158e07c8829c8bd31a698bd23d openjdk-6-src-b27-26_oct_2012.tar.gz
7712c4b3b9f8092aa8c7b5cad0b46d06 icedtea6-1.12.8.tar.gz
9a2826a1819aa128629778217af36c55 apache-ant-1.9.2-bin.tar.gz
99d94103662a8d0b571e247a77432ac5 rhino1_7R3.zip
58c107b4c03cd365b4ddf0bfd8179cc4 icedtea-hotspot-uclibc-fixes.patch
e9beae91433317ccf785bccafaf53b1b icedtea-hotspot-musl.patch
50ccd48072537d6e9bc562cb65431871 icedtea-hotspot-noagent-musl.patch
250b0807b59762670954b132e8f8dfba icedtea-jdk-fix-ipv6-init.patch
7c0814181e5adc0763c5c0a24b01d4cb icedtea-jdk-iconv-uclibc.patch
bd623081d5d2e63694c3649975b12412 icedtea-jdk-execinfo.patch
9c7810cb0ff1e89935690e4810199c1f icedtea-jdk-musl.patch
c4bb40d5b1ff690b27900c5cd06bc1e5 icedtea-jdk-no-lib-nsl-uclibc.patch
0bc0131c87fcc0d1046e3ba20d205c73 icedtea6-1.9.7-generate_cacerts-1.patch
d014431e70cdabb82a75e4b9ae4c28a9 icedtea-jdk-no-soname.patch
d2999b5b67afe485554d14ecd1aa6046 fix-with-pax.patch"
sha256sums="044c3877b15940ff04f8aa817337f2878a00cc89674854557f1a02f15b1802a0 openjdk-6-src-b27-26_oct_2012.tar.gz
c2ad74af29af774f778675d3fde952f4defebb2be44f565253d788e2e7af39d4 icedtea6-1.12.8.tar.gz
cab1b8754e5f1f2aa869e2ba603903ae5e81a585de4eafd00f173531a11b5a45 apache-ant-1.9.2-bin.tar.gz
885b46e24fe5af23ad3712c5e08e8d97d6d92a4b89e1be860e8fe88e4a3dacd1 rhino1_7R3.zip
6f3642c6c29b8be6c5fe0f204183bc05e57459546ea64de0491713963b8a8ebd icedtea-hotspot-uclibc-fixes.patch
d3ad6890f6732f0a87a44de0914fe4146078c204808573118ff7716142f67823 icedtea-hotspot-musl.patch
3332640b95773532c197d7d8818bfb2ee3217093e4a6bc57914bda355423c842 icedtea-hotspot-noagent-musl.patch
632683ec88a6fb250ef043aae9cace605d0c669b7058f8c47b62b09b03ecc6c5 icedtea-jdk-fix-ipv6-init.patch
a36ff13d81a1f1415bedd595b77f2c43574c546938cce7882cb33bbe63464865 icedtea-jdk-iconv-uclibc.patch
6cebef19d8eec5a4623a96c37ae71b79d124a10478c1db33ad5fc71bc04b30e9 icedtea-jdk-execinfo.patch
7c5dc3744be7394c106ced3418ce8eb5a0860660d11dce8eb95c6b4faf630958 icedtea-jdk-musl.patch
6bba2870af0c5eac7b6edb7351e8e1833db401b1bf6b4861a14dcb1fd45cbea6 icedtea-jdk-no-lib-nsl-uclibc.patch
f83dea0ee1d11deceb45d643cf0cce84099775de88b972e3ea979a8529bf4c85 icedtea6-1.9.7-generate_cacerts-1.patch
6c0bbe710395c4ced1359ab279be6a7c36da5bfb9fd60dc47d920f06a0456d82 icedtea-jdk-no-soname.patch
b6aab36220a1318f344573041c28885cfa5ab6e21f393995f47c19db9f09917c fix-with-pax.patch"
sha512sums="4198f11b2f49c9bc5ffbeadf2d0d87dfa413a918d49faff3a043266bf4a2fa99579fba3c6d75164d87e88b8fc5c97c3c1527560eb25c55cdd42ad813c8e175e8 openjdk-6-src-b27-26_oct_2012.tar.gz
8e1cdf4124ee7b7c67f1832043546aea530de98ace3bb2177a5015c24aa81f8fd5f5b2a84f3dee7fb83cfb1680eef1fa17af0464c73a6b8947926a2d2c91d202 icedtea6-1.12.8.tar.gz
618c0c3d80f7c44c2bb8cdfdc2b5278ccd926ab1aa0c8f7099bd0ad5cb4c090f023c0b86c8267052a0a6b1ac57076296fcc16042b9e7a72a1482af63c99e0e49 apache-ant-1.9.2-bin.tar.gz
77964485481e22d20459ea094c773e1930c5ef22d69bc449375a1ead31f340b3a652e2dd85c645e210be1abc8e623aeb560a5dc81629f388322af270ce868d36 rhino1_7R3.zip
1fcc9d22bdc0a991e1739f2d15db73c7ada7640223eb79a9db3bfe106c39b0228e9196af10eba754a2f3f6f26b9b2c4b814be23b3149f72103a369bbc5c0fae8 icedtea-hotspot-uclibc-fixes.patch
8039e155511e066e4c7031b0ad4fe721a86f3be859e949f2e30fda5cefb04d4e1cf64059f6603325f5f13434855346931659c07b1e8527959767f3ff7f83df7b icedtea-hotspot-musl.patch
f079b4f353a54b8927609c3ce2836ccce0495830557de0c66402e3a0e3f30f08dec4832e4b2fab6fc57d1dbedd1ef93fb15d994ebcec823663cd5a6e90c14c8a icedtea-hotspot-noagent-musl.patch
48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch
a6ee1c63a171859ab1350481bc3e5d464354f1105d80fc72c1d58620672ca5c1a550b954b35917f89537f0aeb28c49470b27522ce53588e42dedff41e074774c icedtea-jdk-iconv-uclibc.patch
0391970e6a32946aa3cccf38fdef9c0fe2af26cd0df824b98aa2fcfa1bf661d4a68e339bffcfd16f386c565fc68bb28a29208a67d4bad8a0e847ad02bd8becbb icedtea-jdk-execinfo.patch
fb9b324763e75a24b7174a5b25a064947d31f25b51e45b3b5225adf02a6eae98467aa1d0edfe606e93621b560900ab4c5acab09be411edff86cd82f6ba830cd3 icedtea-jdk-musl.patch
833ec90fa9d3d26191303201012e4b8ca220d634497277f7e8c703ca03753720343e22c97dd2f10cd3e3be79c84f95b8c7d0db21545b8a35761c0de7cb834e7a icedtea-jdk-no-lib-nsl-uclibc.patch
5fbf3571abd6e0eece8fecd45365996ff83368d674782da3435681afdd6cbb51c6da7e8e4d9ca3ba767a1d373a01d0a4109d1c9bf9b93109a34accaee134a8ab icedtea6-1.9.7-generate_cacerts-1.patch
bf4b184e170f7b0ff64ab30d2162784fe2bd5460d1fa31973259f7065fd4c511c46f97724fe2bd72bb94e9006cb568d0e0c87d1a9c90819e65880f8f44830bb1 icedtea-jdk-no-soname.patch
7f8ce4b35856ec8c023bdca682773bebeebe9c11652259b968efad370be24885c22bf7bdd687c6665385ca89f75a7df38429e5a7ea4828cdd8be49fce3f8878c fix-with-pax.patch"

View File

@ -1,26 +0,0 @@
--- icedtea6-1.12.6/acinclude.m4.orig
+++ icedtea6-1.12.6/acinclude.m4
@@ -1948,10 +1948,10 @@
xpaxctl)
case "${host_cpu}" in
i?86)
- PAX_COMMAND_ARGS="-msp"
+ PAX_COMMAND_ARGS="-c -msp"
;;
*)
- PAX_COMMAND_ARGS="-m"
+ PAX_COMMAND_ARGS="-c -m"
;;
esac
;;
--- icedtea6-1.12.6/Makefile.am.orig
+++ icedtea6-1.12.6/Makefile.am
@@ -2192,7 +2192,7 @@
fi
rm -f stamps/add-tzdata-support-ecj.stamp
-stamps/add-archive-ecj.stamp: stamps/icedtea-ecj.stamp
+stamps/add-archive-ecj.stamp: stamps/icedtea-ecj.stamp stamps/pax-mark-vm-ecj.stamp
if !ENABLE_JAMVM
if !ENABLE_CACAO
if !ZERO_BUILD

View File

@ -1,55 +0,0 @@
--- openjdk.orig/hotspot/src/os/linux/vm/jvm_linux.cpp
+++ openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp
@@ -159,7 +159,9 @@
#ifdef SIGSTKFLT
"STKFLT", SIGSTKFLT, /* Stack fault. */
#endif
+#ifdef SIGCLD
"CLD", SIGCLD, /* Same as SIGCHLD (System V). */
+#endif
"CHLD", SIGCHLD, /* Child status has changed (POSIX). */
"CONT", SIGCONT, /* Continue (POSIX). */
"STOP", SIGSTOP, /* Stop, unblockable (POSIX). */
--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.inline.hpp
+++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
@@ -44,7 +44,7 @@
#include <unistd.h>
#include <sys/socket.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <netdb.h>
inline void* os::thread_local_storage_at(int index) {
--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
@@ -31,7 +31,9 @@
// map stack pointer to thread pointer - see notes in threadLS_linux_x86.cpp
#define SP_BITLENGTH 32
#define PAGE_SHIFT 12
+ #ifndef PAGE_SIZE
#define PAGE_SIZE (1UL << PAGE_SHIFT)
+ #endif
static Thread* _sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)];
#endif // !AMD64
--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp
@@ -79,7 +79,6 @@
# include <pwd.h>
# include <poll.h>
# include <ucontext.h>
-# include <fpu_control.h>
#ifdef AMD64
#define REG_SP REG_RSP
@@ -529,6 +528,9 @@
ShouldNotReachHere();
}
+
+#define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw))
+#define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw))
void os::Linux::init_thread_fpu_state(void) {
#ifndef AMD64

View File

@ -1,56 +0,0 @@
--- openjdk.orig/hotspot/make/linux/makefiles/sa.make
+++ openjdk/hotspot/make/linux/makefiles/sa.make
@@ -59,9 +59,12 @@
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium, PowerPC, ARM or zero.
+# check for thread_db.h too (musl does not have it).
all:
- if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
+ if [ -d $(AGENT_DIR) \
+ -a -f /usr/include/thread_db.h \
+ -a "$(SRCARCH)" != "ia64" \
-a "$(SRCARCH)" != "arm" \
-a "$(SRCARCH)" != "ppc" \
-a "$(SRCARCH)" != "zero" ] ; then \
--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
+++ openjdk/hotspot/make/linux/makefiles/saproc.make
@@ -54,10 +54,13 @@
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium, PPC, ARM or zero.
+# check for thread_db.h too (musl does not have it).
+ifneq ($(wildcard /usr/include/thread_db.h),)
ifneq ($(wildcard $(AGENT_DIR)),)
ifneq ($(filter-out ia64 arm ppc zero,$(SRCARCH)),)
BUILDLIBSAPROC = $(LIBSAPROC)
+endif
endif
endif
--- openjdk.orig/hotspot/make/linux/makefiles/defs.make
+++ openjdk/hotspot/make/linux/makefiles/defs.make
@@ -144,10 +144,17 @@
# Serviceability Binaries
# No SA Support for PPC, IA64, ARM or zero
-ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
- $(EXPORT_LIB_DIR)/sa-jdi.jar
-ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
- $(EXPORT_LIB_DIR)/sa-jdi.jar
+# or if thread_db.h missing (musl)
+
+ifneq ($(wildcard /usr/include/thread_db.h),)
+SA_BINARY_LIST = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.so \
+ $(EXPORT_LIB_DIR)/sa-jdi.jar
+else
+SA_BINARY_LIST =
+endif
+
+ADD_SA_BINARIES/x86 = $(SA_BINARY_LIST)
+ADD_SA_BINARIES/sparc = $(SA_BINARY_LIST)
ADD_SA_BINARIES/ppc =
ADD_SA_BINARIES/ia64 =
ADD_SA_BINARIES/arm =

View File

@ -1,101 +0,0 @@
--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
@@ -109,7 +109,6 @@
# include <string.h>
# include <syscall.h>
# include <sys/sysinfo.h>
-# include <gnu/libc-version.h>
# include <sys/ipc.h>
# include <sys/shm.h>
# include <link.h>
@@ -601,6 +600,13 @@
// detecting pthread library
void os::Linux::libpthread_init() {
+#if 1
+ // Hard code Alpine Linux supported uclibc/musl compatible settings
+ os::Linux::set_glibc_version("glibc 2.9");
+ os::Linux::set_libpthread_version("NPTL");
+ os::Linux::set_is_NPTL();
+ os::Linux::set_is_floating_stack();
+#else
// Save glibc and pthread version strings. Note that _CS_GNU_LIBC_VERSION
// and _CS_GNU_LIBPTHREAD_VERSION are supported in glibc >= 2.3.2. Use a
// generic name for earlier versions.
@@ -659,6 +665,7 @@
if (os::Linux::is_NPTL() || os::Linux::supports_variable_stack_size()) {
os::Linux::set_is_floating_stack();
}
+#endif
}
/////////////////////////////////////////////////////////////////////////////
@@ -2604,11 +2611,7 @@
// If we are running with earlier version, which did not have symbol versions,
// we should use the base version.
void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
- void *f = dlvsym(handle, name, "libnuma_1.1");
- if (f == NULL) {
- f = dlsym(handle, name);
- }
- return f;
+ return dlsym(handle, name);
}
bool os::Linux::libnuma_init() {
@@ -4783,7 +4786,25 @@
// Linux doesn't yet have a (official) notion of processor sets,
// so just return the system wide load average.
int os::loadavg(double loadavg[], int nelem) {
+#ifdef __UCLIBC__
+ FILE *LOADAVG;
+ double avg[3] = { 0.0, 0.0, 0.0 };
+ int i, res = -1;;
+
+ if ((LOADAVG = fopen("/proc/loadavg", "r"))) {
+ fscanf(LOADAVG, "%lf %lf %lf", &avg[0], &avg[1], &avg[2]);
+ res = 0;
+ fclose(LOADAVG);
+ }
+
+ for (i = 0; (i < nelem) && (i < 3); i++) {
+ loadavg[i] = avg[i];
+ }
+
+ return res;
+#else
return ::getloadavg(loadavg, nelem);
+#endif
}
void os::pause() {
--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
@@ -238,14 +238,14 @@
// checking for nanness
#ifdef SOLARIS
#ifdef SPARC
-inline int g_isnan(float f) { return isnanf(f); }
+inline int g_isnan(float f) { return isnan(f); }
#else
// isnanf() broken on Intel Solaris use isnand()
inline int g_isnan(float f) { return isnand(f); }
#endif
inline int g_isnan(double f) { return isnand(f); }
#elif LINUX
-inline int g_isnan(float f) { return isnanf(f); }
+inline int g_isnan(float f) { return isnan(f); }
inline int g_isnan(double f) { return isnan(f); }
#else
#error "missing platform-specific definition here"
@@ -259,8 +259,8 @@
// Checking for finiteness
-inline int g_isfinite(jfloat f) { return finite(f); }
-inline int g_isfinite(jdouble f) { return finite(f); }
+inline int g_isfinite(jfloat f) { return isfinite(f); }
+inline int g_isfinite(jdouble f) { return isfinite(f); }
// Wide characters

View File

@ -1,40 +0,0 @@
--- openjdk.orig/jdk/src/solaris/native/sun/awt/awt_xembed_server.c
+++ openjdk/jdk/src/solaris/native/sun/awt/awt_xembed_server.c
@@ -35,7 +35,7 @@
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <Xm/MwmUtil.h>
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
#include <execinfo.h>
#endif
#include <stdio.h>
@@ -835,7 +835,7 @@
AWT_UNLOCK();
}
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
void
print_stack (void)
{
--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c
+++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c
@@ -27,7 +27,7 @@
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
#include <execinfo.h>
#endif
@@ -689,7 +689,7 @@
return ret;
}
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
void print_stack(void)
{
void *array[10];

View File

@ -1,42 +0,0 @@
--- openjdk/jdk/src/solaris/native/java/net/net_util_md.c.orig
+++ openjdk/jdk/src/solaris/native/java/net/net_util_md.c
@@ -561,7 +561,7 @@
static struct localinterface *localifs = 0;
static int localifsSize = 0; /* size of array */
-static int nifs = 0; /* number of entries used in array */
+static int nifs = -1; /* number of entries used in array */
/* not thread safe: make sure called once from one thread */
@@ -573,6 +573,10 @@
int index, x1, x2, x3;
unsigned int u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,ua,ub,uc,ud,ue,uf;
+ if (nifs >= 0)
+ return ;
+ nifs = 0;
+
if ((f = fopen("/proc/net/if_inet6", "r")) == NULL) {
return ;
}
@@ -601,7 +605,7 @@
localifs = (struct localinterface *) realloc (
localifs, sizeof (struct localinterface)* (localifsSize+5));
if (localifs == 0) {
- nifs = 0;
+ nifs = -1;
fclose (f);
return;
}
@@ -624,9 +628,7 @@
static int getLocalScopeID (char *addr) {
struct localinterface *lif;
int i;
- if (localifs == 0) {
- initLocalIfs();
- }
+ initLocalIfs();
for (i=0, lif=localifs; i<nifs; i++, lif++) {
if (memcmp (addr, lif->localaddr, 16) == 0) {
return lif->index;

View File

@ -1,39 +0,0 @@
Index: openjdk/jdk/make/java/npt/Makefile
===================================================================
--- openjdk/jdk/make/java/npt/Makefile 2010-06-13 15:11:02.598512448 +0200
+++ openjdk/jdk/make/java/npt/Makefile 2010-06-13 15:11:28.504759286 +0200
@@ -65,6 +65,8 @@
# We don't want to link against -ljava
JAVALIB=
+LDLIBS += -liconv
+
# Add -export options to explicitly spell exported symbols
ifeq ($(PLATFORM), windows)
OTHER_LCF += -export:nptInitialize -export:nptTerminate
Index: icedtea6-1.8/openjdk-ecj/jdk/make/java/instrument/Makefile
===================================================================
--- openjdk/jdk/make/java/instrument/Makefile 2010-06-13 15:12:14.688505195 +0200
+++ openjdk/jdk/make/java/instrument/Makefile 2010-06-13 15:12:32.641425670 +0200
@@ -123,6 +123,8 @@
# We don't want to link against -ljava
JAVALIB=
+LDLIBS += -liconv
+
#
# Add to ambient vpath so we pick up the library files
#
Index: openjdk/jdk/make/sun/splashscreen/Makefile
===================================================================
--- openjdk/jdk/make/sun/splashscreen/Makefile 2010-06-13 15:12:48.951840824 +0200
+++ openjdk/jdk/make/sun/splashscreen/Makefile 2010-06-13 15:13:01.191422891 +0200
@@ -55,6 +55,8 @@
JAVALIB=
+LDLIBS += -liconv
+
#
# C Flags
#

View File

@ -1,196 +0,0 @@
--- openjdk.orig/jdk/src/share/native/sun/awt/medialib/mlib_types.h
+++ openjdk/jdk/src/share/native/sun/awt/medialib/mlib_types.h
@@ -27,6 +27,7 @@
#ifndef MLIB_TYPES_H
#define MLIB_TYPES_H
+#include <stddef.h> /* for NULL */
#include <limits.h>
#if defined(_MSC_VER)
#include <float.h> /* for FLT_MAX and DBL_MAX */
--- openjdk.orig/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c
+++ openjdk/jdk/src/solaris/hpi/native_threads/src/sys_api_td.c
@@ -64,11 +64,11 @@
#endif /* NO_INTERRUPTIBLE_IO */
/*
- * Linux <sys/resource.h> does not define rlim_t (solaris
+ * GLIBC <sys/resource.h> does not define rlim_t (solaris
* does). THIS IS PROBABLY NOT THE RIGHT THING TO DO, so
* somebody please fix this.
*/
-#ifdef __linux__
+#ifdef __GLIBC__
typedef int rlim_t ;
#else
#include <sys/resource.h>
--- openjdk.orig/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
+++ openjdk/jdk/src/solaris/native/java/io/UnixFileSystem_md.c
@@ -66,7 +66,7 @@
* linux_largefile.h with a good stat64 structure to compile on
* glibc2.0 based systems.
*/
-#if defined(__solaris__) && !defined(_LFS_LARGEFILE) || !_LFS_LARGEFILE
+#if defined(__solaris__) && (!defined(_LFS_LARGEFILE) || !_LFS_LARGEFILE)
/* The stat64 structure must be provided for systems without large-file support
(e.g., Solaris 2.5.1). These definitions are copied from the Solaris 2.6
--- openjdk.orig/jdk/src/solaris/native/java/lang/java_props_md.c
+++ openjdk/jdk/src/solaris/native/java/lang/java_props_md.c
@@ -45,11 +45,13 @@
#include "locale_str.h"
#include "java_props.h"
+#if !defined(CODESET)
#ifdef __linux__
#define CODESET _NL_CTYPE_CODESET_NAME
#else
#ifdef ALT_CODESET_KEY
#define CODESET ALT_CODESET_KEY
+#endif
#endif
#endif
--- openjdk.orig/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
+++ openjdk/jdk/src/solaris/native/java/net/Inet4AddressImpl.c
@@ -45,6 +45,11 @@
#define HENT_BUF_SIZE 1024
#define BIG_HENT_BUF_SIZE 10240 /* a jumbo-sized one */
+/* glibc vs. linux confusion, define glibc locally to fix musl build */
+#if defined(__linux__) && !defined(__GLIBC__)
+#define __GLIBC__
+#endif
+
#ifndef __GLIBC__
/* gethostname() is in libc.so but I can't find a header file for it */
extern int gethostname(char *buf, int buf_len);
--- openjdk.orig/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
+++ openjdk/jdk/src/solaris/native/java/net/Inet6AddressImpl.c
@@ -48,6 +48,11 @@
#define NI_MAXHOST 1025
#endif
+/* glibc vs. linux confusion, define glibc locally to fix musl build */
+#if defined(__linux__) && !defined(__GLIBC__)
+#define __GLIBC__
+#endif
+
#ifndef __GLIBC__
/* gethostname() is in libc.so but I can't find a header file for it */
extern int gethostname(char *buf, int buf_len);
--- openjdk.orig/jdk/src/solaris/native/java/net/NetworkInterface.c
+++ openjdk/jdk/src/solaris/native/java/net/NetworkInterface.c
@@ -40,7 +40,6 @@
#endif
#ifdef __linux__
#include <sys/ioctl.h>
-#include <bits/ioctls.h>
#include <linux/sockios.h>
#include <sys/utsname.h>
#include <stdio.h>
--- openjdk.orig/jdk/src/solaris/native/java/net/linux_close.c
+++ openjdk/jdk/src/solaris/native/java/net/linux_close.c
@@ -59,7 +59,7 @@
/*
* Signal to unblock thread
*/
-static int sigWakeup = (__SIGRTMAX - 2);
+static int sigWakeup;
/*
* The fd table and the number of file descriptors
@@ -98,6 +98,7 @@
/*
* Setup the signal handler
*/
+ sigWakeup = SIGRTMAX - 2;
sa.sa_handler = sig_wakeup;
sa.sa_flags = 0;
sigemptyset(&sa.sa_mask);
--- openjdk.orig/jdk/src/solaris/native/java/util/FileSystemPreferences.c
+++ openjdk/jdk/src/solaris/native/java/util/FileSystemPreferences.c
@@ -47,7 +47,6 @@
return (jint) result;
}
-
typedef struct flock64 FLOCK;
/**
--- openjdk.orig/jdk/src/solaris/native/sun/awt/splashscreen/splashscreen_config.h
+++ openjdk/jdk/src/solaris/native/sun/awt/splashscreen/splashscreen_config.h
@@ -32,7 +32,7 @@
#include <X11/Xutil.h>
#include <X11/extensions/shape.h>
#include <sys/types.h>
-#include <sys/unistd.h>
+#include <unistd.h>
#include <pthread.h>
#include <signal.h>
#include <inttypes.h>
--- openjdk.orig/jdk/src/solaris/native/sun/nio/ch/EPollArrayWrapper.c
+++ openjdk/jdk/src/solaris/native/sun/nio/ch/EPollArrayWrapper.c
@@ -34,7 +34,9 @@
#include <unistd.h>
#include <sys/resource.h>
#include <sys/time.h>
+#include <sys/epoll.h>
+#if 0
#ifdef __cplusplus
extern "C" {
#endif
@@ -63,6 +65,7 @@
#ifdef __cplusplus
}
+#endif
#endif
#define RESTARTABLE(_cmd, _result) do { \
--- openjdk.orig/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
+++ openjdk/jdk/src/solaris/native/sun/nio/ch/NativeThread.c
@@ -38,7 +38,7 @@
#include <sys/signal.h>
/* Also defined in src/solaris/native/java/net/linux_close.c */
-#define INTERRUPT_SIGNAL (__SIGRTMAX - 2)
+#define INTERRUPT_SIGNAL (SIGRTMAX - 2)
static void
nullHandler(int sig)
--- openjdk.orig/jdk/src/solaris/native/sun/java2d/opengl/OGLFuncs_md.h
+++ openjdk/jdk/src/solaris/native/sun/java2d/opengl/OGLFuncs_md.h
@@ -27,6 +27,7 @@
#define OGLFuncs_md_h_Included
#include <stdlib.h>
+#include <dlfcn.h>
#include <link.h>
#include "J2D_GL/glx.h"
#include "OGLFuncMacros.h"
--- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.h
@@ -23,9 +23,7 @@
* questions.
*/
-#define ushort unsigned short
-#define uint unsigned int
-#define uchar unsigned char
+#include <sys/types.h>
struct unpacker;
--- openjdk.orig/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
+++ openjdk/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
@@ -46,6 +46,8 @@
#include "zip.h"
+#define uchar unsigned char
+
#ifdef NO_ZLIB
inline bool jar::deflate_bytes(bytes& head, bytes& tail) {

View File

@ -1,84 +0,0 @@
--- openjdk.orig/hotspot/agent/src/os/solaris/dbx/Makefile
+++ openjdk/hotspot/agent/src/os/solaris/dbx/Makefile
@@ -50,7 +50,7 @@
CFLAGS_32bit := -xarch=v8
CFLAGS_64bit := -xarch=v9
CFLAGS := -PIC -xO3 $(INCLUDES)
-LIBS := -lsocket -lnsl -lrtld_db
+LIBS := -lsocket -lrtld_db
LDFLAGS := -G
ifneq "$(ARCH)" "i486"
--- openjdk.orig/jdk/make/java/hpi/hpi_common.gmk
+++ openjdk/jdk/make/java/hpi/hpi_common.gmk
@@ -86,5 +86,5 @@
# Things that must be linked in.
#
ifneq ($(PLATFORM), windows)
-OTHER_LDLIBS += $(LIBSOCKET) -lnsl $(LIBM) -ldl
+OTHER_LDLIBS += $(LIBSOCKET) $(LIBM) -ldl
endif
--- openjdk.orig/jdk/make/java/java/Makefile
+++ openjdk/jdk/make/java/java/Makefile
@@ -205,7 +205,7 @@
OTHER_LDLIBS += $(JVMLIB) -libpath:$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) fdlibm.lib \
-libpath:$(OBJDIR)/../../../verify/$(OBJDIRNAME) verify.lib
else
-OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -lnsl -ldl \
+OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -ldl \
-L$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) -lfdlibm.$(ARCH)
endif
--- openjdk.orig/jdk/make/java/java_hprof_demo/Makefile
+++ openjdk/jdk/make/java/java_hprof_demo/Makefile
@@ -83,7 +83,7 @@
ifeq ($(PLATFORM), windows)
OTHER_LDLIBS += wsock32.lib winmm.lib
else
- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl
+ OTHER_LDLIBS += $(LIBSOCKET) -ldl
endif
#
--- openjdk.orig/jdk/make/java/net/Makefile
+++ openjdk/jdk/make/java/net/Makefile
@@ -97,7 +97,7 @@
# Will not compile at warning level 3 if warnings are fatal
COMPILER_WARNINGS_FATAL=false
else
- OTHER_LDLIBS = $(LIBSOCKET) -lnsl -ldl $(JVMLIB)
+ OTHER_LDLIBS = $(LIBSOCKET) -ldl $(JVMLIB)
endif
ifeq ($(PLATFORM), linux)
OTHER_LDLIBS += -lpthread
--- openjdk.orig/jdk/make/jpda/transport/socket/Makefile
+++ openjdk/jdk/make/jpda/transport/socket/Makefile
@@ -42,11 +42,11 @@
endif
ifeq ($(PLATFORM), linux)
- OTHER_LDLIBS += -lnsl $(LIBSOCKET) -lpthread
+ OTHER_LDLIBS += $(LIBSOCKET) -lpthread
endif
ifeq ($(PLATFORM), solaris)
- OTHER_LDLIBS += -lnsl $(LIBSOCKET)
+ OTHER_LDLIBS += $(LIBSOCKET)
endif
ifeq ($(PLATFORM), windows)
--- openjdk.orig/jdk/make/mkdemo/jvmti/hprof/Makefile
+++ openjdk/jdk/make/mkdemo/jvmti/hprof/Makefile
@@ -39,10 +39,10 @@
EXTRA_LIBS += wsock32.lib winmm.lib
endif
ifeq ($(PLATFORM), solaris)
- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl
+ OTHER_LDLIBS += $(LIBSOCKET) -ldl
endif
ifeq ($(PLATFORM), linux)
- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl -lpthread
+ OTHER_LDLIBS += $(LIBSOCKET) -ldl -lpthread
endif
#

View File

@ -1,12 +0,0 @@
--- ./openjdk/jdk/make/common/Defs-linux.gmk.orig
+++ ./openjdk/jdk/make/common/Defs-linux.gmk
@@ -248,7 +248,9 @@
#
LDFLAGS_OPT = -Xlinker -O1
LDFLAGS_COMMON += -L$(LIBDIR)/$(LIBARCH)
+ifdef LIBRARY
LDFLAGS_COMMON += -Wl,-soname=$(LIB_PREFIX)$(LIBRARY).$(LIBRARY_SUFFIX)
+endif
#
# -static-libgcc is a gcc-3 flag to statically link libgcc, gcc-2.9x always

View File

@ -1,341 +0,0 @@
--- icedtea6-1.10.4/Makefile.am
+++ icedtea6-1.10.4.mod/Makefile.am
@@ -1376,6 +1376,19 @@
if ENABLE_JAMVM
printf -- '-jamvm ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg
endif
+if GENERATE_CACERTS
+ if test -n "${CADIR}"; then \
+ sh scripts/mkcacerts.sh -d "${CADIR}" \
+ -k $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool \
+ -o $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts; \
+ else \
+ sh scripts/mkcacerts.sh -f "${CAFILE}" \
+ -k $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool \
+ -o $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts; \
+ fi; \
+ cp -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts \
+ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts;
+endif
@echo "IcedTea is served:" $(BUILD_OUTPUT_DIR)
mkdir -p stamps
touch stamps/icedtea.stamp
@@ -1407,6 +1420,19 @@
if ENABLE_JAMVM
printf -- '-jamvm ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg
endif
+if GENERATE_CACERTS
+ if test -n "${CADIR}"; then \
+ sh scripts/mkcacerts.sh -d "${CADIR}" \
+ -k $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool \
+ -o $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts; \
+ else \
+ sh scripts/mkcacerts.sh -f "${CAFILE}" \
+ -k $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool \
+ -o $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts; \
+ fi; \
+ cp -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts \
+ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts;
+endif
@echo "IcedTea (debug build) is served:" \
$(DEBUG_BUILD_OUTPUT_DIR)
mkdir -p stamps
@@ -1457,7 +1483,7 @@
$(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \
fi
cp $(abs_top_builddir)/tapset/jstack.stp \
- $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp
+ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp;
endif
touch stamps/add-systemtap.stamp
@@ -1483,7 +1509,7 @@
$(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \
fi
cp $(abs_top_builddir)/tapset/jstack.stp \
- $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp
+ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp;
endif
touch stamps/add-systemtap-debug.stamp
--- icedtea6-1.10.4/Makefile.in
+++ icedtea6-1.10.4.mod/Makefile.in
@@ -175,6 +175,8 @@
BUILD_ARCH_DIR = @BUILD_ARCH_DIR@
BUILD_OS_DIR = @BUILD_OS_DIR@
CACAO_IMPORT_PATH = @CACAO_IMPORT_PATH@
+CADIR = @CADIR@
+CAFILE = @CAFILE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
--- icedtea6-1.10.4/acinclude.m4
+++ icedtea6-1.10.4.mod/acinclude.m4
@@ -1677,3 +1677,94 @@
AM_CONDITIONAL([CP40188_JAVAH], test x"${it_cv_cp40188_javah}" = "xyes")
AC_PROVIDE([$0])dnl
])
+
+--- acinclude.m4 2011-01-22 21:34:29.000000000 -0600
++++ acinclude.m4 2011-01-22 21:34:58.000000000 -0600
+@@ -316,6 +316,91 @@
+ AM_CONDITIONAL([SRC_DIR_HARDLINKABLE], test x"${it_cv_hardlink_src}" = "xyes")
+ ])
+
+AC_DEFUN([IT_GENERATE_CACERTS],
+[
+ AC_MSG_CHECKING([whether to generate a cacerts file for distribution])
+ AC_ARG_ENABLE([cacerts],
+ [AS_HELP_STRING(--enable-cacerts, generate a cacerts file for distribution [[default=no]])],
+ [
+ case "${enableval}" in
+ no)
+ generate_cacerts=no
+ ;;
+ *)
+ generate_cacerts=yes
+ ;;
+ esac
+ ],
+ [
+ generate_cacerts=no
+ ])
+ AC_MSG_RESULT([$generate_cacerts])
+ AM_CONDITIONAL([GENERATE_CACERTS], test x"${generate_cacerts}" = "xyes")
+])
+
+AC_DEFUN([IT_GET_LOCAL_CACERTS],
+[
+ AC_MSG_CHECKING([for a local x509 certificate directory])
+ AC_ARG_WITH([ca-dir],
+ [AS_HELP_STRING(--with-ca-dir=DIR, specify a top-level local x509 certificate directory)],
+ [
+ if test -d "${withval}"; then
+ CADIR="${withval}"
+ fi
+ ],
+ [
+ CADIR=
+ ])
+ if test -z "${CADIR}"; then
+ for dir in /etc/pki/tls/certs \
+ /usr/share/ca-certificates \
+ /etc/ssl/certs \
+ /etc/certs ; do
+ if test -d "${dir}"; then
+ CADIR="${dir}"
+ break
+ fi
+ done
+ if test -z "${CADIR}"; then
+ CADIR=no
+ fi
+ fi
+ AC_MSG_RESULT(${CADIR})
+ AC_SUBST(CADIR)
+
+ AC_MSG_CHECKING([for a local x509 certificate file])
+ AC_ARG_WITH([ca-file],
+ [AS_HELP_STRING(--with-ca-file=FILE, specify a local x509 certificate file)],
+ [
+ if test -f "${withval}"; then
+ CAFILE="${withval}"
+ fi
+ ],
+ [
+ CAFILE=
+ ])
+ if test -z "${CAFILE}"; then
+ for file in /etc/pki/tls/certs/ca-bundle.crt \
+ /etc/ssl/certs/ca-bundle.crt \
+ /etc/ssl/ca-bundle.crt \
+ /etc/ca-bundle.crt ; do
+ if test -e "${file}"; then
+ CAFILE=$file
+ break
+ fi
+ done
+ if test -z "${CAFILE}"; then
+ CAFILE=no
+ fi
+ fi
+ AC_MSG_RESULT(${CAFILE})
+ AC_SUBST(CAFILE)
+ if test "${CADIR}x" = "nox" -a "${CAFILE}x" = "nox"; then
+ AC_MSG_WARN([Could not find a suitable x509 certificate store.])
+ AC_MSG_ERROR([Supply a valid location using --with-ca-dir or --with-ca-file, or remove the --enable-cacerts switch.])
+ fi
+])
--- icedtea6-1.10.4/configure.ac
+++ icedtea6-1.10.4.mod/configure.ac
@@ -138,6 +138,13 @@
AC_MSG_RESULT([disabled by default (edit java.security to enable)])
fi
+IT_GENERATE_CACERTS
+
+if test "x${generate_cacerts}" = "xyes"
+then
+ IT_GET_LOCAL_CACERTS
+fi
+
IT_GET_PKGVERSION
IT_GET_LSB_DATA
--- /dev/null
+++ icedtea6-1.10.4.mod/scripts/mkcacerts.sh
@@ -0,0 +1,154 @@
+#!/bin/sh
+# Simple script to extract x509 certificates and create a JRE cacerts file.
+
+get_args()
+ {
+ if test -z "${1}" ; then
+ showhelp
+ exit 1
+ fi
+
+ while test -n "${1}" ; do
+ case "${1}" in
+ -f | --cafile)
+ check_arg $1 $2
+ CAFILE="${2}"
+ shift 2
+ ;;
+ -d | --cadir)
+ check_arg $1 $2
+ CADIR="${2}"
+ shift 2
+ ;;
+ -o | --outfile)
+ check_arg $1 $2
+ OUTFILE="${2}"
+ shift 2
+ ;;
+ -k | --keytool)
+ check_arg $1 $2
+ KEYTOOL="${2}"
+ shift 2
+ ;;
+ -h | --help)
+ showhelp
+ exit 0
+ ;;
+ *)
+ showhelp
+ exit 1
+ ;;
+ esac
+ done
+ }
+
+check_arg()
+ {
+ echo "${2}" | grep -v "^-" > /dev/null
+ if [ -z "$?" -o ! -n "$2" ]; then
+ echo "Error: $1 requires a valid argument."
+ exit 1
+ fi
+ }
+
+
+showhelp()
+ {
+ echo "`basename ${0}` creates a valid cacerts file for use with IcedTea."
+ echo ""
+ echo " -f --cafile The path to a file containing PEM formated CA"
+ echo " certificates. May not be used with -d/--cadir."
+ echo " -d --cadir The path to a diectory of PEM formatted CA"
+ echo " certificates. May not be used with -f/--cafile."
+ echo " -o --outfile The path to the output file."
+ echo ""
+ echo " -k --keytool The path to the java keytool utility."
+ echo ""
+ echo " -h --help Show this help message and exit."
+ echo ""
+ echo ""
+ }
+
+# Initialize empty variables so that the shell does not polute the script
+CAFILE=""
+CADIR=""
+OUTFILE=""
+KEYTOOL=""
+
+# Process command line arguments
+get_args ${@}
+
+# Handle common errors
+if test "${CAFILE}x" == "x" -a "${CADIR}x" == "x" ; then
+ echo "ERROR! You must provide an x509 certificate store!"
+ echo "\'$(basename ${0}) --help\' for more info."
+ echo ""
+ exit 1
+fi
+
+if test "${CAFILE}x" != "x" -a "${CADIR}x" != "x" ; then
+ echo "ERROR! You cannot provide two x509 certificate stores!"
+ echo "\'$(basename ${0}) --help\' for more info."
+ echo ""
+ exit 1
+fi
+
+if test "${KEYTOOL}x" == "x" ; then
+ echo "ERROR! You must provide a valid keytool program!"
+ echo "\'$(basename ${0}) --help\' for more info."
+ echo ""
+ exit 1
+fi
+
+if test "${OUTFILE}x" == "x" ; then
+ echo "ERROR! You must provide a valid output file!"
+ echo "\'$(basename ${0}) --help\' for more info."
+ echo ""
+ exit 1
+fi
+
+# Get on with the work
+
+# If using a CAFILE, split it into individual files in a temp directory
+if test "${CAFILE}x" != "x" ; then
+ TEMPDIR=`mktemp -d`
+ CADIR="${TEMPDIR}"
+
+ # Get a list of staring lines for each cert
+ CERTLIST=`grep -n "^-----BEGIN" "${CAFILE}" | cut -d ":" -f 1`
+
+ # Get a list of ending lines for each cert
+ ENDCERTLIST=`grep -n "^-----END" "${CAFILE}" | cut -d ":" -f 1`
+
+ # Start a loop
+ for certbegin in `echo "${CERTLIST}"` ; do
+ for certend in `echo "${ENDCERTLIST}"` ; do
+ if test "${certend}" -gt "${certbegin}"; then
+ break
+ fi
+ done
+ sed -n "${certbegin},${certend}p" "${CAFILE}" > "${CADIR}/${certbegin}"
+ keyhash=`openssl x509 -noout -in "${CADIR}/${certbegin}" -hash`
+ echo "Generated PEM file with hash: ${keyhash}."
+ mv "${CADIR}/${certbegin}" "${CADIR}/${keyhash}.pem"
+ done
+fi
+
+# Write the output file
+for cert in `find "${CADIR}" -type f -name "*.pem" -o -name "*.crt"`
+do
+ ls "${cert}"
+ tempfile=`mktemp`
+ certbegin=`grep -n "^-----BEGIN" "${cert}" | cut -d ":" -f 1`
+ certend=`grep -n "^-----END" "${cert}" | cut -d ":" -f 1`
+ sed -n "${certbegin},${certend}p" "${cert}" > "${tempfile}"
+ echo yes | "${KEYTOOL}" -import -alias `basename "${cert}"` -keystore \
+ "${OUTFILE}" -storepass 'changeit' -file "${tempfile}"
+ rm "${tempfile}"
+done
+
+if test "${TEMPDIR}x" != "x" ; then
+ rm -rf "${TEMPDIR}"
+fi
+exit 0
+