From 62198160c2d9b228a0b7a62a042e1988863165cc Mon Sep 17 00:00:00 2001 From: ahze Date: Fri, 21 Jul 2006 19:49:48 +0000 Subject: - Chase firefox/mozilla move to LOCALBASE Don't bump PORTREVISION git-svn-id: svn://creme-brulee.marcuscom.com/ports/trunk@6679 df743ca5-7f9a-e211-a948-0013205c9059 --- java/jdk15/Makefile | 336 ++++++ java/jdk15/distinfo | 9 + java/jdk15/files/cacerts | Bin 0 -> 29731 bytes .../files/patch-control::common::Defs-bsd.gmk | 13 + .../jdk15/files/patch-deploy::common::Defs-bsd.gmk | 13 + .../patch-deploy::controlpanel::sun_java.desktop | 13 + .../files/patch-hotspot::vm::globals_bsd_amd64.hpp | 13 + .../files/patch-hotspot::vm::thread_bsd.inline.hpp | 16 + java/jdk15/files/patch-j2se::awt::canvas.c | 32 + java/jdk15/files/patch-j2se::common::Defs-bsd.gmk | 13 + java/jdk15/files/patch-j2se::instrument::Makefile | 15 + .../patch-j2se::lang::ProcessEnvironment_md.c | 22 + .../files/patch-j2se::nio::genCharsetProvider.sh | 17 + java/jdk15/files/patch-j2se::xawt::XWindow.c | 28 + java/jdk15/files/patch-java_Makefile | 11 + java/jdk15/files/patch-vm::os_bsd.cpp | 13 + java/jdk15/files/pkg-deinstall.in | 31 + java/jdk15/files/pkg-install.in | 57 + java/jdk15/pkg-descr | 11 + java/jdk15/pkg-message | 1139 ++++++++++++++++++++ 20 files changed, 1802 insertions(+) create mode 100644 java/jdk15/Makefile create mode 100644 java/jdk15/distinfo create mode 100644 java/jdk15/files/cacerts create mode 100644 java/jdk15/files/patch-control::common::Defs-bsd.gmk create mode 100644 java/jdk15/files/patch-deploy::common::Defs-bsd.gmk create mode 100644 java/jdk15/files/patch-deploy::controlpanel::sun_java.desktop create mode 100644 java/jdk15/files/patch-hotspot::vm::globals_bsd_amd64.hpp create mode 100644 java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp create mode 100644 java/jdk15/files/patch-j2se::awt::canvas.c create mode 100644 java/jdk15/files/patch-j2se::common::Defs-bsd.gmk create mode 100644 java/jdk15/files/patch-j2se::instrument::Makefile create mode 100644 java/jdk15/files/patch-j2se::lang::ProcessEnvironment_md.c create mode 100644 java/jdk15/files/patch-j2se::nio::genCharsetProvider.sh create mode 100644 java/jdk15/files/patch-j2se::xawt::XWindow.c create mode 100644 java/jdk15/files/patch-java_Makefile create mode 100644 java/jdk15/files/patch-vm::os_bsd.cpp create mode 100644 java/jdk15/files/pkg-deinstall.in create mode 100644 java/jdk15/files/pkg-install.in create mode 100644 java/jdk15/pkg-descr create mode 100644 java/jdk15/pkg-message (limited to 'java') diff --git a/java/jdk15/Makefile b/java/jdk15/Makefile new file mode 100644 index 000000000..42f13aa1a --- /dev/null +++ b/java/jdk15/Makefile @@ -0,0 +1,336 @@ +# New ports collection makefile for: jdk15 +# Date created: 12 January 2005 +# Whom: Alexey Zelkin +# +# $FreeBSD$ +# + +PORTNAME= jdk +PORTVERSION= ${JDK_VERSION}p${JDK_PATCHSET_VERSION} +PORTREVISION= 1 +CATEGORIES= java devel +MASTER_SITES= # http://www.sun.com/software/communitysource/j2se/java2/download.xml +# http://www.eyesbeyond.com/freebsddom/java/jdk15.html +SCSL_SRCFILE= jdk-${JDK_VERSION:S/./_/g}-src-scsl.zip +SCSL_BINFILE= jdk-${JDK_VERSION:S/./_/g}-bin-scsl.zip +PATCHSETFILE= bsd-jdk15-patches-${JDK_PATCHSET_VERSION}.tar.bz2 +DISTFILES= ${SCSL_SRCFILE} ${SCSL_BINFILE} ${PATCHSETFILE} + +MAINTAINER= glewis@FreeBSD.org +COMMENT= Java Development Kit 1.5.0 + +EXTRACT_DEPENDS=zip:${PORTSDIR}/archivers/zip +BUILD_DEPENDS= gm4:${PORTSDIR}/devel/m4 \ + zip:${PORTSDIR}/archivers/zip \ + ${X11BASE}/lib/libXm.so:${PORTSDIR}/x11-toolkits/open-motif +RUN_DEPENDS= javavm:${PORTSDIR}/java/javavmwrapper + +.if ${MACHINE_ARCH} == "amd64" +WITHOUT_WEB= yes +.endif + +.if defined(WITHOUT_WEB) +MAKE_ENV+= DONT_BUILD_DEPLOY="YES" +.else +.if defined(WITH_MOZILLA) && ${WITH_MOZILLA} == "firefox" +BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/firefox-plugin.pc:${PORTSDIR}/www/firefox +RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/firefox-plugin.pc:${PORTSDIR}/www/firefox +LIB_DEPENDS+= nspr4.1:${PORTSDIR}/devel/nspr +MAKE_ENV+= BROWSER=firefox \ + ALT_NSPR_HEADERS_PATH="${LOCALBASE}/include/nspr" +.else +BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/mozilla-plugin.pc:${PORTSDIR}/www/mozilla +RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/mozilla-plugin.pc:${PORTSDIR}/www/mozilla +MAKE_ENV+= BROWSER=mozilla +.endif +USE_GNOME= desktopfileutils +MAKE_ENV+= ALT_MOZILLA_HEADERS_PATH="${LOCALBASE}/include" +.endif + +PKGINSTALL= ${WRKDIR}/pkg-install +PKGDEINSTALL= ${WRKDIR}/pkg-deinstall +SUB_FILES+= pkg-install \ + pkg-deinstall +SUB_LIST+= JRE_HOME=${PREFIX}/jdk${JDK_VERSION}/jre \ + ARCH=${MACHINE_ARCH} + +WRKSRC= ${WRKDIR}/control/make + +JDK_VERSION= 1.5.0 +JDK_PATCHSET_VERSION= 3 +LATEST_LINK= jdk15 + +SUN_LINUX_JDK_VERSION= 1.4.2 + +.if !defined(WITH_LINUX_BOOTSTRAP) +.if ${MACHINE_ARCH} == "i386" +NATIVE_BOOTSTRAP_JDKS+= ${LOCALBASE}/diablo-jdk1.5.0 +.endif +NATIVE_BOOTSTRAP_JDKS+= ${LOCALBASE}/jdk1.5.0 \ + ${LOCALBASE}/jdk1.4.2 +.endif + +LINUX_BOOTSTRAP_JDKS= ${LOCALBASE}/linux-sun-jdk1.4.2 + +.include + +# do we have valid native jdk installed? +.if !defined(WITH_LINUX_BOOTSTRAP) +.for CJDK in ${NATIVE_BOOTSTRAP_JDKS} +. if !defined(JDK14DIR) && exists(${CJDK}/bin/javac) +JDK14DIR= ${CJDK} +. endif +.endfor +.endif + +# do we have valid linux jdk installed? +.if !defined(JDK14DIR) +.for CJDK in ${LINUX_BOOTSTRAP_JDKS} +. if !defined(JDK14DIR) && exists(${CJDK}/bin/javac) +JDK14DIR= ${CJDK} +WITH_LINUX_BOOTSTRAP= YES +. endif +.endfor +.endif + +# if no valid jdk found, set dependency +.if !defined(JDK14DIR) +JDK14DIR?= ${LOCALBASE}/linux-sun-jdk${SUN_LINUX_JDK_VERSION} +.endif + +BUILD_DEPENDS+= ${JDK14DIR}/bin/javac:${PORTSDIR}/java/linux-sun-jdk14 + +# workaround to handle both 'zip' and 'tar.bz2' distfiles +USE_ZIP= YES +EXTRACT_ONLY= ${SCSL_SRCFILE} ${SCSL_BINFILE} + +ONLY_FOR_ARCHS= i386 amd64 +USE_GMAKE= YES +USE_ICONV= YES +RESTRICTED= "Redistribution of pre-compiled binaries is not permitted" +NO_CDROM= "Redistribution of pre-compiled binaries is not permitted" + +MAKE_ENV+= ALT_BOOTDIR="${JDK14DIR}" \ + ALT_MOTIF_DIR="${X11BASE}" \ + SYS_CFLAGS="${CFLAGS}" \ + LANG="C" \ + JAVA_HOME="" \ + CLASSPATH="" \ + LD_LIBRARY_PATH="" \ + MAKEFLAGS="" \ + SKIP_COMPARE_IMAGES="YES" +.if !defined(WITH_IPV6) +MAKE_ENV+= DONT_ENABLE_IPV6="YES" +.endif +.if defined(HOTSPOT_BUILD_JOBS) +MAKE_ENV+= HOTSPOT_BUILD_JOBS=${HOTSPOT_BUILD_JOBS} +.endif + +ALL_TARGET= all + +PLIST_FILES= jdk${JDK_VERSION}/jre/.systemPrefs/.system.lock \ + jdk${JDK_VERSION}/jre/.systemPrefs/.systemRootModFile +.if !defined(WITHOUT_WEB) +PLIST_FILES+= share/applications/sun_java15.desktop +.endif +PLIST_DIRS= jdk${JDK_VERSION}/jre/.systemPrefs + +.if (${ARCH} == amd64) +HOTSPOTARCH=amd64 +.else +HOTSPOTARCH=i586 +.endif + +JDKIMAGEDIR= ${WRKSRC}/../build/bsd-${HOTSPOTARCH}/j2sdk-image +JDKIMAGEDIR_G= ${WRKSRC}/../build/bsd-${HOTSPOTARCH}/j2sdk-debug-image + +PTHREAD_FILES= ../../hotspot/build/bsd/makefiles/vm.make \ + ../../j2se/make/com/sun/java/pack/Makefile \ + ../../j2se/make/common/Defs.gmk \ + ../../j2se/make/common/Defs-bsd.gmk \ + ../../j2se/make/common/Program.gmk \ + ../../j2se/make/java/hpi/native/Makefile \ + ../../j2se/make/java/net/Makefile \ + ../../j2se/make/java/nio/Makefile \ + ../../j2se/make/jpda/transport/socket/Makefile \ + ../../j2se/make/sun/cmm/Makefile \ + ../../j2se/make/sun/xawt/Makefile + +LD_LIBRARY_PATH_FILES= ../../hotspot/src/os/bsd/vm/os_bsd.cpp + +# Check for JDK sources and patch file +.if !defined(PACKAGE_BUILDING) && (!exists(${DISTDIR}/${SCSL_SRCFILE}) || !exists(${DISTDIR}/${SCSL_BINFILE}) || !exists(${DISTDIR}/${PATCHSETFILE}))#{ +ECHO_MSG=/usr/bin/printf +IGNORE= :\n\ +Due to licensing restrictions, certain files must be fetched manually.\n\n +.if !exists(${DISTDIR}/${SCSL_SRCFILE}) || !exists(${DISTDIR}/${SCSL_BINFILE})#{ +IGNORE += Please open http://www.sun.com/software/java2/download.html\n\ +in a web browser and follow the \"Download\" link for the\n\ +\"JDK ${JDK_VERSION:S/1.//}\". You will be required to log in and register,\n\ +but you can create an account on this page. After registration and\n\ +accepting the Sun Community Source License, download the\n +.if !exists(${DISTDIR}/${SCSL_SRCFILE})#{ +IGNORE += SCSL Source file, ${SCSL_SRCFILE} +.endif#} +.if !exists(${DISTDIR}/${SCSL_BINFILE})#{ +.if !exists(${DISTDIR}/${SCSL_SRCFILE})#{ +IGNORE += and the\n +.endif#} +IGNORE += SCSL Binaries file, ${SCSL_BINFILE} +.endif#} +IGNORE += .\n\n +.if !exists(${DISTDIR}/${PATCHSETFILE})#{ +IGNORE += In addition, please +.endif#} +.elif !exists(${DISTDIR}/${PATCHSETFILE}) +IGNORE += Please +.endif#} +.if !exists(${DISTDIR}/${PATCHSETFILE})#{ +IGNORE += download the patchset, ${PATCHSETFILE}, from\n\ +http://www.eyesbeyond.com/freebsddom/java/jdk15.html.\n\n +.endif#} +IGNORE += Please place the downloaded file(s) in ${DISTDIR} +IGNORE += \n and restart the build.\n\n +.endif#} + +pre-fetch: + @${ECHO_MSG} + @${ECHO_MSG} "IMPORTANT: To build JDK 1.5.0 port, you should have at least" + @${ECHO_MSG} "2.5Gb of free disk space in build area!" + @${ECHO_MSG} +.if defined(WITH_LINUX_BOOTSTRAP) + @${ECHO_MSG} "IMPORTANT: To build JDK 1.5.0 port, you should have linux emulation" + @${ECHO_MSG} "enabled in the kernel and linux procfs (linprocfs) filesystem" + @${ECHO_MSG} "mounted." + @${ECHO_MSG} +.endif + @${ECHO_MSG} "Following port compile time options are available:" + @${ECHO_MSG} + @${ECHO_MSG} " WITH_DEBUG - install JDK binaries and libraries" + @${ECHO_MSG} " with debuging support" + @${ECHO_MSG} + @${ECHO_MSG} " WITH_IPV6 - enable JDK IPv6 support" + @${ECHO_MSG} + @${ECHO_MSG} " WITHOUT_WEB - don't build the browser plugin" + @${ECHO_MSG} " or Java Web Start" + @${ECHO_MSG} + +pre-everything:: + @${ECHO_MSG} + @${ECHO_MSG} "WARNING: " + @${ECHO_MSG} "WARNING: This is BETA quality software!" + @${ECHO_MSG} "WARNING: Use in a production environment is at your own risk." + @${ECHO_MSG} "WARNING: " + @${ECHO_MSG} + +pre-patch: + @cd ${WRKDIR} && \ + ${BZIP2_CMD} -dc ${DISTDIR}/${PATCHSETFILE} | ${TAR} -xf - && \ + ${CHMOD} -R u+w * && \ + ${PATCH} -p0 < ${WRKDIR}/jdk15.patches + +post-patch: + @for file in ${LD_LIBRARY_PATH_FILES}; do \ + ${REINPLACE_CMD} -e "s:%%LOCALBASE%%:${LOCALBASE}:" \ + ${WRKSRC}/$${file}; \ + done + @for file in ${PTHREAD_FILES}; do \ + ${REINPLACE_CMD} -e "s:-pthread:${PTHREAD_LIBS}:g" \ + ${WRKSRC}/$${file}; \ + done + ${REINPLACE_CMD} -e "s:%%PREFIX%%:${PREFIX}:g" \ + -e "s:%%JDK_VERSION%%:${JDK_VERSION}:g"\ + ${WRKSRC}/../../deploy/src/plugin/solaris/controlpanel/sun_java.desktop + +.if defined(WITH_LINUX_BOOTSTRAP) +pre-build: + @if [ "$${WRKDIRPREFIX}" -a \ + -L "/compat/linux/$${WRKDIRPREFIX}" -a \ + x`${LS} -ld "/compat/linux/$${WRKDIRPREFIX}" 2>/dev/null | awk '/->/{print $$NF;exit 0}END{exit 1}'` = x"$${WRKDIRPREFIX}" ]; \ + then \ + ${ECHO_MSG} "Please set WRKDIRPREFIX to something which doesn't"; \ + ${ECHO_MSG} "have a matching symbolic link in /compat/linux."; \ + ${ECHO_MSG} "This is known to cause problems during bootstrapping."; \ + exit 1; \ + fi + @if [ `/sbin/sysctl -n compat.linux.osname` != "Linux" ]; \ + then \ + ${ECHO_MSG} "Please set the value of the sysctl compat.linux.osname"; \ + ${ECHO_MSG} "to 'Linux' with the command:"; \ + ${ECHO_MSG} " /sbin/sysctl compat.linux.osname=Linux"; \ + ${ECHO_MSG} "Having it set to other values, such as 'FreeBSD',"; \ + ${ECHO_MSG} "is known to cause problems during bootstrapping."; \ + exit 1; \ + fi + @if [ "`/sbin/mount | grep ^linprocfs`" = "" ]; \ + then \ + ${ECHO_MSG} "ERROR: You must have LINPROCFS mounted before" ; \ + ${ECHO_MSG} "starting to build the native JDK 1.5.0." ; \ + ${ECHO_MSG} "" ; \ + ${ECHO_MSG} "You may do it with the following commands:" ; \ + ${ECHO_MSG} "" ; \ + ${ECHO_MSG} "# kldload linprocfs" ; \ + ${ECHO_MSG} "" ; \ + ${ECHO_MSG} "and" ; \ + ${ECHO_MSG} "" ; \ + ${ECHO_MSG} "# mount -t linprocfs linprocfs /compat/linux/proc" ; \ + ${ECHO_MSG} "" ; \ + exit 1 ; \ + fi +.endif + +do-build: + # Start of jdk build + @(cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${GMAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${ALL_TARGET}) + +post-build: + @# XXX don't install japanese manpages + @${RM} -rf ${JDKIMAGEDIR}/man/ja + @${RM} -rf ${JDKIMAGEDIR}/man/ja_JP.eucJP + +pre-install: +.if !defined(WITH_DEBUG) + @${ECHO_MSG} + @${ECHO_MSG} "Please use \`make -DWITH_DEBUG' if you want to install libraries and binaries" + @${ECHO_MSG} "with debugging support." + @${ECHO_MSG} +.endif + +do-install: + ${MKDIR} ${PREFIX}/jdk${JDK_VERSION} + cd ${JDKIMAGEDIR} && ${FIND} . \ + | ${CPIO} -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION} +.if !defined(WITHOUT_WEB) + ${INSTALL_DATA} ${JDKIMAGEDIR}/jre/plugin/desktop/sun_java.desktop \ + ${PREFIX}/share/applications/sun_java15.desktop +.endif + @${ECHO_MSG} "@unexec ${LOCALBASE}/bin/unregistervm ${PREFIX}/jdk${JDK_VERSION}/bin/java" >> ${TMPPLIST} + @${FIND} -s ${JDKIMAGEDIR} -not -type d | \ + ${SED} -ne 's#^${JDKIMAGEDIR}#jdk${JDK_VERSION}#p' >> ${TMPPLIST} +.if !defined(WITHOUT_WEB) + @${ECHO_MSG} '@exec ${LOCALBASE}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST} +.endif +.if defined(WITH_DEBUG) + cd ${JDKIMAGEDIR_G} && ${FIND} . \ + | ${CPIO} -pdmu -R ${LIBOWN}:${LIBGRP} ${PREFIX}/jdk${JDK_VERSION} + @${FIND} -s ${JDKIMAGEDIR_G} -not -type d | \ + ${SED} -ne 's#^${JDKIMAGEDIR_G}#jdk${JDK_VERSION}#p' >> ${TMPPLIST} +.endif + ${INSTALL_DATA} ${FILESDIR}/cacerts \ + ${PREFIX}/jdk${JDK_VERSION}/jre/lib/security/cacerts + @${FIND} -s -d ${PREFIX}/jdk${JDK_VERSION} -type d | \ + ${SED} -ne 's#^${PREFIX}/#@dirrm #p' >> ${TMPPLIST} + @${ECHO_MSG} "@exec ${LOCALBASE}/bin/registervm ${PREFIX}/jdk${JDK_VERSION}/bin/java # FREEBSD-JDK${JDK_VERSION}" >> ${TMPPLIST} +.if !defined(WITHOUT_WEB) + @${ECHO_MSG} '@unexec ${LOCALBASE}/bin/update-desktop-database > /dev/null || /usr/bin/true' >> ${TMPPLIST} +.endif + +# XXX: put unregistervm into install script ? +post-install: + @${LOCALBASE}/bin/registervm "${PREFIX}/jdk${JDK_VERSION}/bin/java # FREEBSD-JDK${JDK_VERSION}" +.if !defined(WITHOUT_WEB) + @-update-desktop-database +.endif + @${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL + +.include diff --git a/java/jdk15/distinfo b/java/jdk15/distinfo new file mode 100644 index 000000000..a57561575 --- /dev/null +++ b/java/jdk15/distinfo @@ -0,0 +1,9 @@ +MD5 (jdk-1_5_0-src-scsl.zip) = 7802831198068c9a0df727c3ea6617a9 +SHA256 (jdk-1_5_0-src-scsl.zip) = d11e35f2f0b8f6e2e71bf19e423d553179f980105d877bfefac88e5e494173bd +SIZE (jdk-1_5_0-src-scsl.zip) = 58338869 +MD5 (jdk-1_5_0-bin-scsl.zip) = 3c3b2c079628141fa28f5f0f1cde5bf0 +SHA256 (jdk-1_5_0-bin-scsl.zip) = f7be15e4478165c361d011f39c02fea558dba442aeb3556357f4c7771db763f1 +SIZE (jdk-1_5_0-bin-scsl.zip) = 2219433 +MD5 (bsd-jdk15-patches-3.tar.bz2) = 66e19561ca6d0e775dcd590fd97a6921 +SHA256 (bsd-jdk15-patches-3.tar.bz2) = 84bff46fb1f091fb8a508287cadd740cdc07691c616a72a9d84d3ee53b8cab6c +SIZE (bsd-jdk15-patches-3.tar.bz2) = 650413 diff --git a/java/jdk15/files/cacerts b/java/jdk15/files/cacerts new file mode 100644 index 000000000..dbc3699a9 Binary files /dev/null and b/java/jdk15/files/cacerts differ diff --git a/java/jdk15/files/patch-control::common::Defs-bsd.gmk b/java/jdk15/files/patch-control::common::Defs-bsd.gmk new file mode 100644 index 000000000..2690cb8cd --- /dev/null +++ b/java/jdk15/files/patch-control::common::Defs-bsd.gmk @@ -0,0 +1,13 @@ +$FreeBSD: ports/java/jdk15/files/patch-control::common::Defs-bsd.gmk,v 1.2 2005/01/20 08:41:13 phantom Exp $ + +--- ../../control/make/common/Defs-bsd.gmk.orig Thu Jan 13 02:01:40 2005 ++++ ../../control/make/common/Defs-bsd.gmk Thu Jan 13 02:01:54 2005 +@@ -200,7 +200,7 @@ + ifeq ($(TRUE_PLATFORM), NetBSD) + DEVTOOLS_PATH = /usr/pkg/bin/ + else +-DEVTOOLS_PATH = /usr/local/bin/ ++DEVTOOLS_PATH = ${LOCALBASE}/bin/ + endif + # Allow the user to override the default value... + ifdef ALT_DEVTOOLS_PATH diff --git a/java/jdk15/files/patch-deploy::common::Defs-bsd.gmk b/java/jdk15/files/patch-deploy::common::Defs-bsd.gmk new file mode 100644 index 000000000..c15ed4cb1 --- /dev/null +++ b/java/jdk15/files/patch-deploy::common::Defs-bsd.gmk @@ -0,0 +1,13 @@ +$FreeBSD: ports/java/jdk15/files/patch-deploy::common::Defs-bsd.gmk,v 1.4 2006/04/07 03:27:34 glewis Exp $ + +--- ../../deploy/make/plugin/common/Defs-bsd.gmk.orig Tue Mar 28 22:20:28 2006 ++++ ../../deploy/make/plugin/common/Defs-bsd.gmk Tue Mar 28 22:20:45 2006 +@@ -29,7 +29,7 @@ + endif + + # Default NSPR_PATH and allow override. +-NSPR_PATH = /usr/local ++NSPR_PATH = ${LOCALBASE} + ifdef ALT_NSPR_PATH + NSPR_PATH = $(subst //,/,$(ALT_NSPR_PATH)) + endif diff --git a/java/jdk15/files/patch-deploy::controlpanel::sun_java.desktop b/java/jdk15/files/patch-deploy::controlpanel::sun_java.desktop new file mode 100644 index 000000000..898893707 --- /dev/null +++ b/java/jdk15/files/patch-deploy::controlpanel::sun_java.desktop @@ -0,0 +1,13 @@ +--- ../../deploy/src/plugin/solaris/controlpanel/sun_java.desktop.orig Sat Oct 1 20:14:45 2005 ++++ ../../deploy/src/plugin/solaris/controlpanel/sun_java.desktop Sat Oct 1 20:16:12 2005 +@@ -1,8 +1,8 @@ + [Desktop Entry] + Name=Java + Comment=Java Control Panel +-Exec=INSTALL_DIR/JRE_NAME_VERSION/bin/ControlPanel +-Icon=INSTALL_DIR/JRE_NAME_VERSION/plugin/desktop/sun_java.png ++Exec=%%PREFIX%%/jdk%%JDK_VERSION%%/bin/ControlPanel ++Icon=%%PREFIX%%/jdk%%JDK_VERSION%%/jre/plugin/desktop/sun_java.png + Terminal=0 + Type=Application + Categories=Application;Settings;X-Sun-Supported;X-Red-Hat-Base; diff --git a/java/jdk15/files/patch-hotspot::vm::globals_bsd_amd64.hpp b/java/jdk15/files/patch-hotspot::vm::globals_bsd_amd64.hpp new file mode 100644 index 000000000..7db9d325f --- /dev/null +++ b/java/jdk15/files/patch-hotspot::vm::globals_bsd_amd64.hpp @@ -0,0 +1,13 @@ +$FreeBSD: ports/java/jdk15/files/patch-hotspot::vm::globals_bsd_amd64.hpp,v 1.1 2006/06/16 21:26:38 glewis Exp $ + +--- ../../hotspot/src/os_cpu/bsd_amd64/vm/globals_bsd_amd64.hpp.orig Thu Jun 15 17:58:02 2006 ++++ ../../hotspot/src/os_cpu/bsd_amd64/vm/globals_bsd_amd64.hpp Thu Jun 15 17:59:02 2006 +@@ -12,7 +12,7 @@ + // + define_pd_global(bool, DontYieldALot, false); + //define_pd_global(intx, ThreadStackSize, 0); // 0 => use system default +-define_pd_global(intx, ThreadStackSize, 256); ++define_pd_global(intx, ThreadStackSize, 1024); + define_pd_global(intx, VMThreadStackSize, 1024); + define_pd_global(intx, CompilerThreadStackSize, 0); + define_pd_global(intx, SurvivorRatio, 8); diff --git a/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp b/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp new file mode 100644 index 000000000..143bbc3de --- /dev/null +++ b/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp @@ -0,0 +1,16 @@ +$FreeBSD: ports/java/jdk15/files/patch-hotspot::vm::thread_bsd.inline.hpp,v 1.1 2006/06/16 21:29:53 glewis Exp $ + +--- ../../hotspot/src/os/bsd/vm/thread_bsd.inline.hpp.orig Thu Jun 15 17:58:02 2006 ++++ ../../hotspot/src/os/bsd/vm/thread_bsd.inline.hpp Thu Jun 15 17:59:19 2006 +@@ -19,7 +19,10 @@ + + uintptr_t raw = pd_raw_thread_id(); + int ix = pd_cache_index(raw); +-#ifdef __OpenBSD__ ++// XXXBSD: disable fast case. there is a race condition where the ++// fast case returns a different thread from the slow case and has ++// been seen on both OpenBSD and FreeBSD. ++#if 1 + return ThreadLocalStorage::get_thread_via_cache_slowly(raw, ix); + #else + Thread *Candidate = ThreadLocalStorage::_get_thread_cache[ix]; diff --git a/java/jdk15/files/patch-j2se::awt::canvas.c b/java/jdk15/files/patch-j2se::awt::canvas.c new file mode 100644 index 000000000..3891153c3 --- /dev/null +++ b/java/jdk15/files/patch-j2se::awt::canvas.c @@ -0,0 +1,32 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::awt::canvas.c,v 1.1 2006/04/25 20:10:19 glewis Exp $ + +--- ../../j2se/src/solaris/native/sun/awt/canvas.c 10 Jan 2005 15:09:40 -0000 1.2 ++++ ../../j2se/src/solaris/native/sun/awt/canvas.c 19 Apr 2006 22:21:51 -0000 +@@ -258,10 +258,10 @@ + {java_awt_event_KeyEvent_VK_DOWN, XK_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_STANDARD}, + + /* Keypad equivalents of Triangular Navigation Block */ +- {java_awt_event_KeyEvent_VK_KP_LEFT, XK_KP_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_UP, XK_KP_Up, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_RIGHT, XK_KP_Right, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_DOWN, XK_KP_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_LEFT, XK_KP_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_UP, XK_KP_Up, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_RIGHT, XK_KP_Right, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_DOWN, XK_KP_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, + + /* Other vendor-specific Triangular Navigation Block */ + {java_awt_event_KeyEvent_VK_LEFT, osfXK_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_STANDARD}, +@@ -1349,7 +1349,7 @@ + { + KeySym originalKeysym = *keysym; + +-#if !defined(__linux__) // XXXBSD: applies to FreeBSD? ++#if !defined(__linux__) && !defined(_ALLBSD_SOURCE) + /* The following code on Linux will cause the keypad keys + * not to echo on JTextField when the NumLock is on. The + * keysyms will be 0, because the last parameter 2 is not defined. +Index: j2se/src/solaris/native/sun/xawt/XWindow.c +=================================================================== +RCS file: /home/Java/CVS/JDK2/javasrc_1_5_scsl/j2se/src/solaris/native/sun/xawt/XWindow.c,v +retrieving revision 1.1.1.1 diff --git a/java/jdk15/files/patch-j2se::common::Defs-bsd.gmk b/java/jdk15/files/patch-j2se::common::Defs-bsd.gmk new file mode 100644 index 000000000..c3db15f3c --- /dev/null +++ b/java/jdk15/files/patch-j2se::common::Defs-bsd.gmk @@ -0,0 +1,13 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::common::Defs-bsd.gmk,v 1.2 2005/09/20 20:00:08 glewis Exp $ + +--- ../../j2se/make/common/Defs-bsd.gmk.orig Thu Jan 13 02:03:20 2005 ++++ ../../j2se/make/common/Defs-bsd.gmk Thu Jan 13 02:03:38 2005 +@@ -180,7 +180,7 @@ + ifeq ($(TRUE_PLATFORM), NetBSD) + DEVTOOLS_PATH = /usr/pkg/bin/ + else +-DEVTOOLS_PATH = /usr/local/bin/ ++DEVTOOLS_PATH = ${LOCALBASE}/bin/ + endif + # Allow the user to override the default value... + ifdef ALT_DEVTOOLS_PATH diff --git a/java/jdk15/files/patch-j2se::instrument::Makefile b/java/jdk15/files/patch-j2se::instrument::Makefile new file mode 100644 index 000000000..ad378e8a2 --- /dev/null +++ b/java/jdk15/files/patch-j2se::instrument::Makefile @@ -0,0 +1,15 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::instrument::Makefile,v 1.3 2006/04/07 03:27:34 glewis Exp $ + +--- ../../j2se/make/java/instrument/Makefile.orig Thu Jan 13 02:04:44 2005 ++++ ../../j2se/make/java/instrument/Makefile Thu Jan 13 02:05:03 2005 +@@ -72,8 +72,8 @@ + else + ifeq ($(PLATFORM), bsd) + ifneq ($(TRUE_PLATFORM), NetBSD) +- OTHER_INCLUDES += -I/usr/local/include +- OTHER_LDLIBS += -L/usr/local/lib -liconv ++ OTHER_INCLUDES += -I${LOCALBASE}/include ++ OTHER_LDLIBS += -L${LOCALBASE}/lib -liconv + endif + else + OTHER_LDLIBS = -lnsl -ldl diff --git a/java/jdk15/files/patch-j2se::lang::ProcessEnvironment_md.c b/java/jdk15/files/patch-j2se::lang::ProcessEnvironment_md.c new file mode 100644 index 000000000..d92edf05e --- /dev/null +++ b/java/jdk15/files/patch-j2se::lang::ProcessEnvironment_md.c @@ -0,0 +1,22 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::lang::ProcessEnvironment_md.c,v 1.1 2006/06/16 21:28:08 glewis Exp $ + +--- ../../j2se/src/solaris/native/java/lang/ProcessEnvironment_md.c.orig Tue Oct 19 15:02:09 2004 ++++ ../../j2se/src/solaris/native/java/lang/ProcessEnvironment_md.c Thu Jun 15 17:58:34 2006 +@@ -32,7 +32,7 @@ + + for (i = 0; environ[i]; i++) { + /* Ignore corrupted environment variables */ +- if (strchr(environ[i], '=') != NULL) ++ if (strchr(environ[i], '=') != NULL && *environ[i] != '=') + count++; + } + +@@ -43,7 +43,7 @@ + jsize len = strlen(environ[i]); + const char * varEnd = strchr(environ[i], '='); + /* Ignore corrupted environment variables */ +- if (varEnd != NULL) { ++ if (varEnd != NULL && varEnd != environ[i]) { + jbyteArray var, val; + const char * valBeg = varEnd + 1; + jsize varLength = varEnd - environ[i]; diff --git a/java/jdk15/files/patch-j2se::nio::genCharsetProvider.sh b/java/jdk15/files/patch-j2se::nio::genCharsetProvider.sh new file mode 100644 index 000000000..2802a33b9 --- /dev/null +++ b/java/jdk15/files/patch-j2se::nio::genCharsetProvider.sh @@ -0,0 +1,17 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::nio::genCharsetProvider.sh,v 1.1 2005/04/08 18:29:29 glewis Exp $ + +--- ../../j2se/make/java/nio/genCharsetProvider.sh 8 Nov 2004 22:27:03 -0000 1.1.1.1 ++++ ../../j2se/make/java/nio/genCharsetProvider.sh 24 Mar 2005 16:14:52 -0000 +@@ -94,9 +94,9 @@ + } + ' + +-$JAVA -cp $TMPDIR Hasher -i Aliases <$TMPDIR/aliases >>$OUT +-$JAVA -cp $TMPDIR Hasher -i Classes <$TMPDIR/classes >>$OUT +-$JAVA -cp $TMPDIR Hasher -i -e Cache -t Charset <$TMPDIR/classes >>$OUT ++$JAVA -cp $TMPDIR Hasher -i Aliases <$TMPDIR/aliases | egrep -v '^Java Hotspot' >>$OUT ++$JAVA -cp $TMPDIR Hasher -i Classes <$TMPDIR/classes | egrep -v '^Java Hotspot' >>$OUT ++$JAVA -cp $TMPDIR Hasher -i -e Cache -t Charset <$TMPDIR/classes | egrep -v '^Java Hotspot' >>$OUT + + + # Constructor diff --git a/java/jdk15/files/patch-j2se::xawt::XWindow.c b/java/jdk15/files/patch-j2se::xawt::XWindow.c new file mode 100644 index 000000000..107de522b --- /dev/null +++ b/java/jdk15/files/patch-j2se::xawt::XWindow.c @@ -0,0 +1,28 @@ +$FreeBSD: ports/java/jdk15/files/patch-j2se::xawt::XWindow.c,v 1.1 2006/04/25 20:10:19 glewis Exp $ + +--- ../../j2se/src/solaris/native/sun/xawt/XWindow.c 8 Nov 2004 22:27:40 -0000 1.1.1.1 ++++ ../../j2se/src/solaris/native/sun/xawt/XWindow.c 19 Apr 2006 22:21:51 -0000 +@@ -204,10 +204,10 @@ + {java_awt_event_KeyEvent_VK_DOWN, XK_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_STANDARD}, + + /* Keypad equivalents of Triangular Navigation Block */ +- {java_awt_event_KeyEvent_VK_KP_LEFT, XK_KP_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_UP, XK_KP_Up, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_RIGHT, XK_KP_Right, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, +- {java_awt_event_KeyEvent_VK_KP_DOWN, XK_KP_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_LEFT, XK_KP_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_UP, XK_KP_Up, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_RIGHT, XK_KP_Right, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, ++ {java_awt_event_KeyEvent_VK_DOWN, XK_KP_Down, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_NUMPAD}, + + /* Other vendor-specific Triangular Navigation Block */ + {java_awt_event_KeyEvent_VK_LEFT, osfXK_Left, FALSE, java_awt_event_KeyEvent_KEY_LOCATION_STANDARD}, +@@ -742,7 +742,7 @@ + { + KeySym originalKeysym = *keysym; + +-#ifndef __linux__ ++#if !defined(__linux__) && !defined(_ALLBSD_SOURCE) + /* The following code on Linux will cause the keypad keys + * not to echo on JTextField when the NumLock is on. The + * keysyms will be 0, because the last parameter 2 is not defined. diff --git a/java/jdk15/files/patch-java_Makefile b/java/jdk15/files/patch-java_Makefile new file mode 100644 index 000000000..60585c522 --- /dev/null +++ b/java/jdk15/files/patch-java_Makefile @@ -0,0 +1,11 @@ +--- ../../j2se/make/java/java/Makefile.orig Mon Dec 13 12:38:14 2004 ++++ ../../j2se/make/java/java/Makefile Mon Dec 13 12:42:00 2004 +@@ -284,7 +284,7 @@ + $(RM) -r $(TMPDIR)/GenerateCurrencyData + $(MKDIR) -p $(TMPDIR)/GenerateCurrencyData + $(JAVAC_BOOT) -d $(TMPDIR)/GenerateCurrencyData $(BUILDDIR)/tools/GenerateCurrencyData/GenerateCurrencyData.java +- $(JAVA_BOOT) -classpath $(TMPDIR)/GenerateCurrencyData GenerateCurrencyData < $(SHARE_SRC)/classes/java/util/CurrencyData.properties > $@ ++ $(JAVA_BOOT) -classpath $(TMPDIR)/GenerateCurrencyData GenerateCurrencyData < $(SHARE_SRC)/classes/java/util/CurrencyData.properties | egrep -v '^Java HotSpot' > $@ + + clean:: + $(RM) $(GENSRCDIR)/java/util/CurrencyData.java diff --git a/java/jdk15/files/patch-vm::os_bsd.cpp b/java/jdk15/files/patch-vm::os_bsd.cpp new file mode 100644 index 000000000..6d1762d17 --- /dev/null +++ b/java/jdk15/files/patch-vm::os_bsd.cpp @@ -0,0 +1,13 @@ +$FreeBSD: ports/java/jdk15/files/patch-vm::os_bsd.cpp,v 1.3 2005/09/20 20:00:08 glewis Exp $ + +--- ../../hotspot/src/os/bsd/vm/os_bsd.cpp.orig Tue Jan 27 17:54:28 2004 ++++ ../../hotspot/src/os/bsd/vm/os_bsd.cpp Tue Jan 27 17:55:21 2004 +@@ -333,7 +333,7 @@ + #define malloc(n) (char*)NEW_C_HEAP_ARRAY(char, (n)) + #define getenv(n) ::getenv(n) + +-#define DEFAULT_LD_LIBRARY_PATH "/usr/lib" /* See ld.so.1(1) */ ++#define DEFAULT_LD_LIBRARY_PATH "/usr/lib:%%LOCALBASE%%/lib" /* See ld.so.1(1) */ + #define EXTENSIONS_DIR "/lib/ext" + #define ENDORSED_DIR "/lib/endorsed" + diff --git a/java/jdk15/files/pkg-deinstall.in b/java/jdk15/files/pkg-deinstall.in new file mode 100644 index 000000000..fcd4dfdab --- /dev/null +++ b/java/jdk15/files/pkg-deinstall.in @@ -0,0 +1,31 @@ +#!/bin/sh +# $FreeBSD: ports/java/jdk15/files/pkg-deinstall.in,v 1.1 2005/11/23 10:12:33 glewis Exp $ + +# Set up a standard path +PATH=/usr/bin:/bin + +# Don't do anything during post-deinstall +if [ "$2" = "POST-DEINSTALL" ]; then + exit 0 +fi + +# Remove the plugin + +# Plugin location variables +BROWSERPLUGINDIR="%%X11BASE%%/lib/browser_plugins" +JAVAPLUGINDIR="%%JRE_HOME%%/plugin/%%ARCH%%/ns7" +PLUGIN=libjavaplugin_oji.so + +# Check if the package includes the plugin +if [ ! -e "${JAVAPLUGINDIR}/${PLUGIN}" ]; then + exit 0 +fi + +# See if the browser plugin is a link to the package plugin and remove it if so. +if [ -e "${BROWSERPLUGINDIR}/${PLUGIN}" -a \ + -L "${BROWSERPLUGINDIR}/${PLUGIN}" -a \ + x`ls -l "${BROWSERPLUGINDIR}/${PLUGIN}" 2>/dev/null | awk '/->/{print $NF;exit 0}END{exit 1}'` = x"${JAVAPLUGINDIR}/${PLUGIN}" ]; then + rm -f "${BROWSERPLUGINDIR}/${PLUGIN}" +fi + +exit 0 diff --git a/java/jdk15/files/pkg-install.in b/java/jdk15/files/pkg-install.in new file mode 100644 index 000000000..a2ee8dc8e --- /dev/null +++ b/java/jdk15/files/pkg-install.in @@ -0,0 +1,57 @@ +#!/bin/sh +# $FreeBSD: ports/java/jdk15/files/pkg-install.in,v 1.6 2005/11/23 21:16:56 glewis Exp $ + +# System preference location +JRE_HOME=%%JRE_HOME%% + +# Post-install actions +if [ "$2" = "POST-INSTALL" ]; then + # Set up system preferences + if [ ! -d "${JRE_HOME}/.systemPrefs" ] ; then + mkdir -m 755 "${JRE_HOME}/.systemPrefs" + fi + if [ ! -f "${JRE_HOME}/.systemPrefs/.system.lock" ] ; then + touch "${JRE_HOME}/.systemPrefs/.system.lock" + chmod 644 "${JRE_HOME}/.systemPrefs/.system.lock" + fi + if [ ! -f "${JRE_HOME}/.systemPrefs/.systemRootModFile" ] ; then + touch "${JRE_HOME}/.systemPrefs/.systemRootModFile" + chmod 644 "${JRE_HOME}/.systemPrefs/.systemRootModFile" + fi + + # Install the plugin + BROWSERPLUGINDIR="%%X11BASE%%/lib/browser_plugins" + JAVAPLUGINDIR="${JRE_HOME}/plugin/%%ARCH%%/ns7" + PLUGIN=libjavaplugin_oji.so + + # Check if the browser plugin exists + if [ ! -e "${JAVAPLUGINDIR}/${PLUGIN}" ]; then + exit 0 + fi + + # Check if the plugin directory exists. + if [ ! -d "${BROWSERPLUGINDIR}" ]; then + exit 0 + fi + + # Check if the browser plugin currently exists + if [ ! -e "${BROWSERPLUGINDIR}/${PLUGIN}" ]; then + # Create symbolic link + ln -sf "${JAVAPLUGINDIR}/${PLUGIN}" \ + "${BROWSERPLUGINDIR}/${PLUGIN}" + exit 0 + fi + + # If the browser plugin exists and is a symlink, but the link + # doesn't exist, then overwrite with our plugin. + if [ -L "${BROWSERPLUGINDIR}/${PLUGIN}" ]; then + # Check if the linked to file exists. + if [ ! -e `ls -l "${BROWSERPLUGINDIR}/${PLUGIN}" 2>/dev/null | awk '/->/{print $NF;exit 0}END{exit 1}'` ]; then + ln -sf "${JAVAPLUGINDIR}/${PLUGIN}" \ + "${BROWSERPLUGINDIR}/${PLUGIN}" + exit 0 + fi + fi + + exit 0 +fi diff --git a/java/jdk15/pkg-descr b/java/jdk15/pkg-descr new file mode 100644 index 000000000..9f83e1336 --- /dev/null +++ b/java/jdk15/pkg-descr @@ -0,0 +1,11 @@ +This is the latest JDK 1.5.0 patchset from the Java 2 FreeBSD porting +project. This port allows you to easily build a native JDK1.5.0 for FreeBSD. + +Please note that due to the current Sun licensing policy the resulting binaries +can't be distributed and you are only permitted to use/hack it personally. +Due to the same reasons you have to manually fetch the source code and patchset +for FreeBSD. + +WWW: http://www.freebsd.org/java/ + http://www.eyesbeyond.com/freebsddom/java/index.html + http://www.sun.com/software/communitysource/java2/ diff --git a/java/jdk15/pkg-message b/java/jdk15/pkg-message new file mode 100644 index 000000000..4a7be65b4 --- /dev/null +++ b/java/jdk15/pkg-message @@ -0,0 +1,1139 @@ +SUN COMMUNITY SOURCE LICENSE Version 2.3 (Rev. Date Sept. +29, 2004) + +RECITALS + +Original Contributor has developed Specifications and Source +Code implementations of certain Technology; and + +Original Contributor desires to license the Technology to a +large community to facilitate research, innovation and +product development while maintaining compatibility of such +products with the Technology as delivered by Original +Contributor; and + +Original Contributor desires to license certain Sun +Trademarks for the purpose of branding products that are +compatible with the relevant Technology delivered by +Original Contributor; and + +You desire to license the Technology and possibly certain +Sun Trademarks from Original Contributor on the terms and +conditions specified in this License. + +In consideration for the mutual covenants contained herein, +You and Original Contributor agree as follows: + +AGREEMENT +1. Introduction. The Sun Community Source License and +effective attachments ("License") may include five distinct +licenses: Research Use, TCK, Internal Deployment Use, +Commercial Use and Trademark License. The Research Use +license is effective when You click and accept this License. +The TCK and Internal Deployment Use licenses are effective +when You click and accept this License, unless otherwise +specified in the TCK and Internal Deployment Use +attachments. The Commercial Use and Trademark licenses must +be signed by You and Original Contributor in order to become +effective. Once effective, these licenses and the +associated requirements and responsibilities are cumulative. +Capitalized terms used in this License are defined in the +Glossary. + +2. License Grants. + +2.1 Original Contributor Grant. Subject to Your compliance +with Sections 3, 8.10 and Attachment A of this License, +Original Contributor grants to You a worldwide, +royalty-free, non-exclusive license, to the extent of +Original Contributor's Intellectual Property Rights covering +the Original Code, Upgraded Code and Specifications, to do +the following: + +a) Research Use License: + +(i) use, reproduce and modify the Original Code, Upgraded +Code and Specifications to create Modifications and +Reformatted Specifications for Research Use by You, + +(ii) publish and display Original Code, Upgraded Code and +Specifications with, or as part of Modifications, as +permitted under Section 3.1 b) below, + +(iii) reproduce and distribute copies of Original Code and +Upgraded Code to Licensees and students for Research Use by +You, + +(iv) compile, reproduce and distribute Original Code and +Upgraded Code in Executable form, and Reformatted +Specifications to anyone for Research Use by You. + +b) Other than the licenses expressly granted in this +License, Original Contributor retains all right, title, and +interest in Original Code and Upgraded Code and +Specifications. + +2.2 Your Grants. + +a) To Other Licensees. You hereby grant to each Licensee a +license to Your Error Corrections and Shared Modifications, +of the same scope and extent as Original Contributor's +licenses under Section 2.1 a) above relative to Research +Use, Attachment C relative to Internal Deployment Use, and +Attachment D relative to Commercial Use. + +b) To Original Contributor. You hereby grant to Original +Contributor a worldwide, royalty-free, non-exclusive, +perpetual and irrevocable license, to the extent of Your +Intellectual Property Rights covering Your Error +Corrections, Shared Modifications and Reformatted +Specifications, to use, reproduce, modify, display and +distribute Your Error Corrections, Shared Modifications and +Reformatted Specifications, in any form, including the right +to sublicense such rights through multiple tiers of +distribution. + +c) Other than the licenses expressly granted in Sections 2.2 +a) and b) above, and the restriction set forth in Section +3.1 d)(iv) below, You retain all right, title, and interest +in Your Error Corrections, Shared Modifications and +Reformatted Specifications. + +2.3 Contributor Modifications. You may use, reproduce, +modify, display and distribute Contributor Error +Corrections, Shared Modifications and Reformatted +Specifications, obtained by You under this License, to the +same scope and extent as with Original Code, Upgraded Code +and Specifications. + +2.4 Subcontracting. You may deliver the Source Code of +Covered Code to other Licensees having at least a Research +Use license, for the sole purpose of furnishing development +services to You in connection with Your rights granted in +this License. All such Licensees must execute appropriate +documents with respect to such work consistent with the +terms of this License, and acknowledging their +work-made-for-hire status or assigning exclusive right to +the work product and associated Intellectual Property Rights +to You. + +3.Requirements and Responsibilities. + +3.1 Research Use License. As a condition of exercising the rights +granted under Section 2.1 a) above, You agree to comply with the following: + +a) Your Contribution to the Community. All Error +Corrections and Shared Modifications which You create or +contribute to are automatically subject to the licenses +granted under Section 2.2 above. You are encouraged to +license all of Your other Modifications under Section 2.2 as +Shared Modifications, but are not required to do so. You +agree to notify Original Contributor of any errors in the +Specification. + +b) Source Code Availability. You agree to provide all Your +Error Corrections to Original Contributor as soon as +reasonably practicable and, in any event, prior to Internal +Deployment Use or Commercial Use, if applicable. Original +Contributor may, at its discretion, post Source Code for +Your Error Corrections and Shared Modifications on the +Community Webserver. You may also post Error Corrections +and Shared Modifications on a web-server of Your choice; +provided, that You must take reasonable precautions to +ensure that only Licensees have access to such Error +Corrections and Shared Modifications. Such precautions +shall include, without limitation, a password protection +scheme limited to Licensees and a click-on, download +certification of Licensee status required of those +attempting to download from the server. An example of an +acceptable certification is attached as Attachment A-2. + +c) Notices. All Error Corrections and Shared Modifications +You create or contribute to must include a file documenting +the additions and changes You made and the date of such +additions and changes. You must also include the notice set +forth in Attachment A-1 in the file header. If it is not +possible to put the notice in a particular Source Code file +due to its structure, then You must include the notice in a +location (such as a relevant directory file), where a +recipient would be most likely to look for such a notice. + +d) Redistribution. + +(i) Source. Covered Code may be distributed in Source Code +form only to another Licensee (except for students as +provided below). You may not offer or impose any terms on +any Covered Code that alter the rights, requirements, or +responsibilities of such Licensee. You may distribute +Covered Code to students for use in connection with their +course work and research projects undertaken at accredited +educational institutions. Such students need not be +Licensees, but must be given a copy of the notice set forth +in Attachment A-3 and such notice must also be included in a +file header or prominent location in the Source Code made +available to such students. + +(ii) Executable. You may distribute Executable version(s) +of Covered Code to Licensees and other third parties only +for the purpose of evaluation and comment in connection with +Research Use by You and under a license of Your choice, but +which limits use of such Executable version(s) of Covered +Code only to that purpose. + +(iii) Modified Class,Interface and Package Naming. In +connection with Research Use by You only, You may use +Original Contributor's class, interface and package names +only to accurately reference or invoke the Source Code files +You modify. Original Contributor grants to You a limited +license to the extent necessary for such purposes. + +(iv) You expressly agree that any distribution, in whole or +in part, of Modifications developed by You shall only be +done pursuant to the term and conditions of this License. + +e) Extensions. + +(i) Covered Code. You may not include any Source Code of +Community Code in any Extensions; + +(ii) Publication. No later than the date on which You first +distribute such Extension for Commercial Use, You must +publish to the industry, on a non-confidential basis and +free of all copyright restrictions with respect to +reproduction and use, an accurate and current specification +for any Extension. In addition, You must make available an +appropriate test suite, pursuant to the same rights as the +specification, sufficiently detailed to allow any third +party reasonably skilled in the technology to produce +implementations of the Extension compatible with the +specification. Such test suites must be made available as +soon as reasonably practicable but, in no event, later than +ninety (90) days after Your first Commercial Use of the +Extension. You must use reasonable efforts to promptly +clarify and correct the specification and the test suite +upon written request by Original Contributor. + +(iii) Open. You agree to refrain from enforcing any +Intellectual Property Rights You may have covering any +interface(s) of Your Extension, which would prevent the +implementation of such interface(s) by Original Contributor +or any Licensee. This obligation does not prevent You from +enforcing any Intellectual Property Right You have that +would otherwise be infringed by an implementation of Your +Extension. + +(iv) Class, Interface and Package Naming. You may not add +any packages, or any public or protected classes or +interfaces with names that originate or might appear to +originate from Original Contributor including, without +limitation, package or class names which begin with "sun", +"java", "javax", "jini", "net.jini", "com.sun" or their +equivalents in any subsequent class, interface and/ or +package naming convention adopted by Original Contributor. +It is specifically suggested that You name any new packages +using the "Unique Package Naming Convention" as described in +"The Java Language Specification" by James Gosling, Bill +Joy, and Guy Steele, ISBN 0-201-63451-1, August 1996. +Section 7.7 "Unique Package Names", on page 125 of this +specification which states, in part: + +"You form a unique package name by first having (or +belonging to an organization that has) an Internet domain +name, such as "sun.com". You then reverse the name, +component by component, to obtain, in this example, +"Com.sun", and use this as a prefix for Your package names, +using a convention developed within Your organization to +further administer package names." + +3.2 Additional Requirements and Responsibilities. Any +additional requirements and responsibilities relating to the +Technology are listed in Attachment F (Additional +Requirements and Responsibilities), if applicable, and are +hereby incorporated into this Section 3. + +4. Versions of the License. + +4.1 License Versions. Original Contributor may publish +revised versions of the License from time to time. Each +version will be given a distinguishing version number. + +4.2 Effect. Once a particular version of Covered Code has +been provided under a version of the License, You may always +continue to use such Covered Code under the terms of that +version of the License. You may also choose to use such +Covered Code under the terms of any subsequent version of +the License. No one other than Original Contributor has the +right to promulgate License versions. + +5. Disclaimer of Warranty. + +5.1 COVERED CODE IS PROVIDED UNDER THIS LICENSE "AS IS," +WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, +INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED +CODE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR +PURPOSE OR NON-INFRINGING. YOU AGREE TO BEAR THE ENTIRE +RISK IN CONNECTION WITH YOUR USE AND DISTRIBUTION OF COVERED +CODE UNDER THIS LICENSE. THIS DISCLAIMER OF WARRANTY +CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF +ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT SUBJECT TO +THIS DISCLAIMER. + +5.2 You acknowledge that Original Code, Upgraded Code and +Specifications are not designed or intended for use in (i) +on-line control of aircraft, air traffic, aircraft +navigation or aircraft communications; or (ii) in the +design, construction, operation or maintenance of any +nuclear facility. Original Contributor disclaims any +express or implied warranty of fitness for such uses. + +6. Termination. + +6.1 By You. You may terminate this Research Use license at +anytime by providing written notice to Original Contributor. + +6.2 By Original Contributor. This License and the rights +granted hereunder will terminate: + +(i) automatically if You fail to comply with the terms of +this License and fail to cure such breach within 30 days of +receipt of written notice of the breach; + +(ii) immediately in the event of circumstances specified in +Sections 7.1 and 8.4; or + +(iii) at Original Contributor's discretion upon any action +initiated in the first instance by You alleging that use or +distribution by Original Contributor or any Licensee, of +Original Code, Upgraded Code, Error Corrections or Shared +Modifications contributed by You, or Specifications, +infringe a patent owned or controlled by You. + +6.3 Effect of Termination. Upon termination, You agree +to discontinue use and return or destroy all copies of +Covered Code in your possession. All sublicenses to the +Covered Code which you have properly granted shall survive +any termination of this License. Provisions which, by their +nature, should remain in effect beyond the termination of +this License shall survive including, without limitation, +Sections 2.2, 3, 5, 7 and 8. + +6.4 Each party waives and releases the other from any claim +to compensation or indemnity for permitted or lawful +termination of the business relationship established by this +License. + +7. Liability. + +7.1 Infringement. Should any of the Original Code, Upgraded +Code, TCK or Specifications ("Materials") become the subject +of a claim of infringement, Original Contributor may, at its +sole option, (i) attempt to procure the rights necessary for +You to continue using the Materials, (ii) modify the +Materials so that they are no longer infringing, or (iii) +terminate Your right to use the Materials, immediately upon +written notice, and refund to You the amount, if any, having +then actually been paid by You to Original Contributor for +the Original Code, Upgraded Code and TCK, depreciated on a +straight line, five year basis. + +7.2 LIMITATION OF LIABILITY. TO THE FULL EXTENT ALLOWED BY +APPLICABLE LAW, ORIGINAL CONTRIBUTOR's LIABILITY TO YOU FOR +CLAIMS RELATING TO THIS LICENSE, WHETHER FOR BREACH OR IN +TORT, SHALL BE LIMITED TO ONE HUNDRED PERCENT (100%) OF THE +AMOUNT HAVING THEN ACTUALLY BEEN PAID BY YOU TO ORIGINAL +CONTRIBUTOR FOR ALL COPIES LICENSED HEREUNDER OF THE +PARTICULAR ITEMS GIVING RISE TO SUCH CLAIM, IF ANY. IN NO +EVENT WILL YOU (RELATIVE TO YOUR SHARED MODIFICATIONS OR +ERROR CORRECTIONS) OR SUN BE LIABLE FOR ANY INDIRECT, +PUNITIVE, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES IN +CONNECTION WITH OR ARISING OUT OF THIS LICENSE (INCLUDING, +WITHOUT LIMITATION, LOSS OF PROFITS, USE, DATA, OR OTHER +ECONOMIC ADVANTAGE), HOWEVER IT ARISES AND ON ANY THEORY OF +LIABILITY, WHETHER IN AN ACTION FOR CONTRACT, STRICT +LIABILITY OR TORT (INCLUDING NEGLIGENCE) OR OTHERWISE, +WHETHER OR NOT YOU OR ORIGINAL CONTRIBUTOR HAS BEEN ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE AND NOTWITHSTANDING THE +FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. + +8. Miscellaneous. + +8.1 Trademark. You agree to comply with the then current +Sun Trademark & Logo Usage Requirements accessible through +the SCSL Webpage. Except as expressly provided in the +License, You are granted no right, title or license to, or +interest in, any Sun Trademarks. You agree not to (i) +challenge Original Contributor's ownership or use of Sun +Trademarks; (ii) attempt to register any Sun Trademarks, or +any mark or logo substantially similar thereto; or (iii) +incorporate any Sun Trademarks into your own trademarks, +product names, service marks, company names, or domain +names. + +8.2 Integration. This License represents the complete +agreement concerning the subject matter hereof. + +8.3 Assignment. Original Contributor may assign this +License, and its rights and obligations hereunder, in its +sole discretion. You may assign the Research Use portions +of this License to a third party upon prior written notice +to Original Contributor (which may be provided via the +Community Web-Server). You may not assign the Commercial +Use license or TCK license, including by way of merger +(regardless of whether You are the surviving entity) or +acquisition, without Original Contributor's prior written +consent. + +8.4 Severability. If any provision of this License is held +to be unenforceable, such provision shall be reformed only +to the extent necessary to make it enforceable. +Notwithstanding the foregoing, if You are prohibited by law +from fully and specifically complying with Sections 2.2 or +3, this License will immediately terminate and You must +immediately discontinue any use of Covered Code. + +8.5 Governing Law. This License shall be governed by the +laws of the United States and the State of California, as +applied to contracts entered into and to be performed in +California between California residents. The application of +the United Nations Convention on Contracts for the +International Sale of Goods is expressly excluded. + +8.6 Dispute Resolution. + +a) Any dispute arising out of or relating to this License +shall be finally settled by arbitration as set out herein, +except that either party may bring any action, in a court of +competent jurisdiction (which jurisdiction shall be +exclusive), with respect to any dispute relating to such +party's Intellectual Property Rights or with respect to Your +compliance with the TCK license. Arbitration shall be +administered: (i) by the American Arbitration Association +(AAA), (ii) in accordance with the rules of the United +Nations Commission on International Trade Law (UNCITRAL) +(the "Rules") in effect at the time of arbitration as +modified herein; and (iii) the arbitrator will apply the +substantive laws of California and United States. Judgment +upon the award rendered by the arbitrator may be entered in +any court having jurisdiction to enforce such award. + +b) All arbitration proceedings shall be conducted in English + by a single arbitrator selected in accordance with the + Rules, who must be fluent in English and be either a + retired judge or practicing attorney having at least ten + (10) years litigation experience and be reasonably familiar + with the technology matters relative to the dispute. + Unless otherwise agreed, arbitration venue shall be in + London, Tokyo, or San Francisco, whichever is closest to + defendant's principal business office. The arbitrator may + award monetary damages only and nothing shall preclude + either party from seeking provisional or emergency relief + from a court of competent jurisdiction. The arbitrator + shall have no authority to award damages in excess of those + permitted in this License and any such award in excess is + void. All awards will be payable in U.S. dollars and may + include, for the prevailing party (i) pre-judgment award + interest, (ii) reasonable attorneys' fees incurred in + connection with the arbitration, and (iii) reasonable costs + and expenses incurred in enforcing the award. The + arbitrator will order each party to produce identified + documents and respond to no more than twenty-five single + question interrogatories. + +8.7 Construction. Any law or regulation which provides that +the language of a contract shall be construed against the +drafter shall not apply to this License. + +8.8 U.S. Government End Users. The Covered Code is a +"commercial item," as that term is defined in 48 C.F.R. +2.101 (Oct. 1995), consisting of "commercial computer +software" and "commercial computer software documentation," +as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). +Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 +through 227.7202-4 (June 1995), all U.S. Government End +Users acquire Covered Code with only those rights set forth +herein. You agree to pass this notice to Your licensees. + +8.9 Press Announcements. All press announcements relative +to the execution of this License must be reviewed and +approved by Original Contributor and You prior to release. + +8.10 International Use. + +a) Export/Import laws. Covered Code is subject to U.S. +export control laws and may be subject to export or import +regulations in other countries. Each party agrees to comply +strictly with all such laws and regulations and acknowledges +their responsibility to obtain such licenses to export, +re-export, or import as may be required. You agree to pass +these obligations to Your licensees. + +b) Intellectual Property Protection. Due to limited +intellectual property protection and enforcement in certain +countries, You agree not to redistribute the Original Code, +Upgraded Code, TCK and Specifications to any country other +than the list of restricted countries on the SCSL Webpage. + +8.11 Language. This License is in the English language +only, which language shall be controlling in all respects, +and all versions of this License in any other language shall +be for accommodation only and shall not be binding on the +parties to this License. All communications and notices +made or given pursuant to this License, and all +documentation and support to be provided, unless otherwise +noted, shall be in the English language. + +PLEASE READ THE TERMS OF THIS LICENSE CAREFULLY. BY +CLICKING ON THE "ACCEPT" BUTTON BELOW YOU ARE ACCEPTING AND +AGREEING TO THE TERMS AND CONDITIONS OF THIS LICENSE WITH +SUN MICROSYSTEMS, INC. IF YOU ARE AGREEING TO THIS LICENSE +ON BEHALF OF A COMPANY, YOU REPRESENT THAT YOU ARE +AUTHORIZED TO BIND THE COMPANY TO SUCH A LICENSE. WHETHER +YOU ARE ACTING ON YOUR OWN BEHALF, OR REPRESENTING A +COMPANY, YOU MUST BE OF MAJORITY AGE AND BE OTHERWISE +COMPETENT TO ENTER INTO CONTRACTS. IF YOU DO NOT MEET THIS +CRITERIA OR YOU DO NOT AGREE TO ANY OF THE TERMS AND +CONDITIONS OF THIS LICENSE, CLICK ON THE REJECT BUTTON TO +EXIT. + +ACCEPT REJECT + +GLOSSARY + +1. "Commercial Use" means any use (excluding Internal +Deployment Use) or distribution, directly or indirectly of +Compliant Covered Code by You to any third party, alone or +bundled with any other software or hardware, for direct or +indirect commercial or strategic gain or advantage, subject +to execution of Attachment D by You and Original +Contributor. + +2. "Community Code" means the Original Code, Upgraded Code, +Error Corrections, Shared Modifications, or any combination +thereof. + +3. "Community Webserver(s)" means the webservers designated +by Original Contributor for posting Error Corrections and +Shared Modifications. + +4. "Compliant Covered Code" means Covered Code that +complies with the requirements of the TCK. + +5. "Contributor" means each Licensee that creates or +contributes to the creation of any Error Correction or +Shared Modification. + +6. "Covered Code" means the Original Code, Upgraded Code, +Modifications, or any combination thereof. + +7. "Error Correction" means any change made to Community +Code which conforms to the Specification and corrects the +adverse effect of a failure of Community Code to perform any +function set forth in or required by the Specifications. + +7. "Executable" means Covered Code that has been converted +to a form other than Source Code. + +9. "Extension(s)" means any additional classes or other +programming code and/or interfaces developed by or for You +which: (i) are designed for use with the Technology; (ii) +constitute an API for a library of computing functions or +services; and (iii) are disclosed to third party software +developers for the purpose of developing software which +invokes such additional classes or other programming code +and/or interfaces. The foregoing shall not apply to +software development by Your subcontractors to be +exclusively used by You. + +10. "Intellectual Property Rights" means worldwide +statutory and common law rights associated solely with (i) +patents and patent applications; (ii) works of authorship +including copyrights, copyright applications, copyright +registrations and "moral rights"; (iii) the protection of +trade and industrial secrets and confidential information; +and (iv) divisions, continuations, renewals, and +re-issuances of the foregoing now existing or acquired in +the future. + +11. "Internal Deployment Use" means use of Compliant +Covered Code (excluding Research Use) within Your business +or organization only by Your employees and/or agents, +subject to execution of Attachment C by You and Original +Contributor, if required. + +12. "Licensee" means any party that has entered into and +has in effect a version of this License with Original +Contributor. + +13. "Modification(s)" means (i) any change to Covered Code; +(ii) any new file or other representation of computer +program statements that contains any portion of Covered +Code; and/or (iii) any new Source Code implementing any +portion of the Specifications. + +14. "Original Code" means the initial Source Code for the +Technology as described on the Technology Download Site. + +15. "Original Contributor" means Sun Microsystems, Inc., +its affiliates and its successors and assigns. + +16. "Reformatted Specifications" means any revision to the +Specifications which translates or reformats the +Specifications (as for example in connection with Your +documentation) but which does not alter, subset or superset +the functional or operational aspects of the Specifications. + +17. "Research Use" means use and distribution of Covered +Code only for Your research, development, educational or +personal and individual use, and expressly excludes Internal +Deployment Use and Commercial Use. + +18. "SCSL Webpage" means the Sun Community Source license +webpage located at http://sun.com/software/communitysource, +or such other url that Sun may designate from time to time. + +19. "Shared Modifications" means Modifications provided by +You, at Your option, pursuant to Section 2.2, or received by +You from a Contributor pursuant to Section 2.3. + +20. "Source Code" means computer program statements written +in any high-level, readable form suitable for modification +and development. + +21. "Specifications" means the specifications for the +Technology and other documentation, as designated on the +Technology Download Site, as may be revised by Original +Contributor from time to time. + +22. "Sun Trademarks" means Original Contributor's SUN, +JAVA, and JINI trademarks and logos, whether now used or +adopted in the future. + +23. "Technology" means the +technology described in Attachment B, and Upgrades. + +24. "Technology Compatibility Kit" or "TCK" means the test +programs, procedures and/or other requirements, designated +by Original Contributor for use in verifying compliance of +Covered Code with the Specifications, in conjunction with +the Original Code and Upgraded Code. Original Contributor +may, in its sole discretion and from time to time, revise a +TCK to correct errors and/or omissions and in connection +with Upgrades. + +25. "Technology Download Site" means the site(s) designated +by Original Contributor for access to the Original Code, +Upgraded Code, TCK and Specifications. + +26. "Upgrade(s)" means new versions of Technology +designated exclusively by Original Contributor as an +"Upgrade" and released by Original Contributor from time to +time. + +27. "Upgraded Code" means the Source Code for Upgrades, +possibly including Modifications made by Contributors. + +28. "You(r)" means an individual, or a legal entity acting +by and through an individual or individuals, exercising +rights either under this License or under a future version +of this License issued pursuant to Section 4.1. For legal +entities, "You(r)" includes any entity that by majority +voting interest controls, is controlled by, or is under +common control with You. + +ATTACHMENT A + +REQUIRED NOTICES + +ATTACHMENT A-1 + +REQUIRED IN ALL CASES + +"The contents of this file, or the files included with this +file, are subject to the current version of Sun Community +Source License for [fill in name of applicable Technology] +(the "License"); You may not use this file except in +compliance with the License. You may obtain a copy of the +License at http://sun.com/software/communitysource. See the +License for the rights, obligations and limitations +governing use of the contents of the file. + +The Original and Upgraded Code is [fill in name and version +of applicable Technology]. The developer of the Original +and Upgraded Code is Sun Microsystems, Inc. Sun +Microsystems, Inc. owns the copyrights in the portions it +created. All Rights Reserved. + +Contributor(s): +_______________________________________________ + +Associated Test Suite(s) Location: +________________________________ + +ATTACHMENT A-2 + +SAMPLE LICENSEE CERTIFICATION + +"By clicking the `Agree' button below, You certify that You +are a Licensee in good standing under the Sun Community +Source License, [fill in applicable Technology and Version] +("License") and that Your access, use and distribution of +code and information You may obtain at this site is subject +to the License." + +ATTACHMENT A-3 + +REQUIRED STUDENT NOTIFICATION + +"This software and related documentation has been obtained +by your educational institution subject to the Sun Community +Source License, [fill in applicable Technology]. You have +been provided access to the software and related +documentation for use only in connection with your course +work and research activities as a matriculated student of +your educational institution. Any other use is expressly +prohibited. + +THIS SOFTWARE AND RELATED DOCUMENTATION CONTAINS PROPRIETARY +MATERIAL OF SUN MICROSYSTEMS, INC, WHICH ARE PROTECTED BY +VARIOUS INTELLECTUAL PROPERTY RIGHTS. + +You may not use this file except in compliance with the +License. You may obtain a copy of the License on the web at +http://sun.com/software/communitysource." + +ATTACHMENT B + +Java(tm) 2 SDK Technology + +Description of "Technology" + +Java(tm) 2 SDK Technology v. 5.0 as described on the +Technology Download Site. + +ATTACHMENT C + +INTERNAL DEPLOYMENT USE + +This Attachment C is only effective for the Technology +specified in Attachment B, upon execution of Attachment D +(Commercial Use License) including the requirement to pay +royalties. In the event of a conflict between the terms of +this Attachment C and Attachment D, the terms of Attachment +D shall govern. + +1. Internal Deployment License Grant. Subject to Your +compliance with Section 2 below, and Section 8.10 of the +Research Use license; in addition to the Research Use +license and the TCK license, Original Contributor grants to +You a worldwide, non-exclusive license, to the extent of +Original Contributor's Intellectual Property Rights covering +the Original Code, Upgraded Code and Specifications, to do +the following: + +a) reproduce and distribute internally, Original Code and +Upgraded Code as part of Compliant Covered Code, and +Specifications, for Internal Deployment Use, + +b) compile such Original Code and Upgraded Code, as part of +Compliant Covered Code, and reproduce and distribute +internally the same in Executable form for Internal +Deployment Use, and + +c) reproduce and distribute internally, Reformatted +Specifications for use in connection with Internal +Deployment Use. + +2. Additional Requirements and Responsibilities. In +addition to the requirements and responsibilities described +under Section 3.1 of the Research Use license, and as a +condition to exercising the rights granted under Section 3 +above, You agree to the following additional requirements +and responsibilities: + +2.1 Compatibility. All Covered Code must be Compliant +Covered Code prior to any Internal Deployment Use or +Commercial Use, whether originating with You or acquired +from a third party. Successful compatibility testing must +be completed in accordance with the TCK License. If You +make any further Modifications to any Covered Code +previously determined to be Compliant Covered Code, you must +ensure that it continues to be Compliant Covered Code. + +ATTACHMENT D COMMERCIAL USE LICENSE + +1. Effect. This Attachment D is effective only if signed +below by You and Original Contributor, and applies to Your +Commercial Use of Original Code and Upgraded Code. + +2. Term. Upon execution of this Attachment D by You and +Original Contributor, this Commercial Use license shall have +an initial term of 3 years and shall automatically renew for +additional one year terms unless either party provides +notice to the other no less than 60 days prior to an +anniversary date. + +3. Commercial Use License Grant. Subject to Your +compliance with Section 4 below, Section 8.10 of the +Research Use license, and the TCK license; in addition to +the Research Use license, the TCK license, and the Internal +Deployment Use license, Original Contributor grants to You a +worldwide, non-exclusive, non-transferable license, to the +extent of Original Contributor's Intellectual Property +Rights covering the Original Code, Upgraded Code and +Specifications, to do the following: + +a) reproduce and distribute Compliant Covered Code; + +b) compile Compliant Covered Code and reproduce and +distribute the same in Executable form through multiple +tiers of distribution; and + +c) reproduce and distribute Reformatted Specifications in +association with Compliant Covered Code. + +4. Additional Requirements and Responsibilities. In +addition to the requirements and responsibilities specified +in the Research Use license, the TCK license and the +Internal Deployment license, and as a condition to +exercising the rights granted in Section 3 above, You agree +to the following additional requirements and +responsibilities: + +a) Distribution of Source Code. Source Code of Compliant +Covered Code may be distributed only to another Licensee of +the same Technology. + +b) Distribution of Executable Code. You may distribute the +Executable version(s) of Compliant Covered Code under a +license of Your choice, which may contain terms different +from this License, provided (i) that You are in compliance +with the terms of this License, and (ii) You must make it +absolutely clear that any terms which differ from this +License are offered by You alone, not by Original +Contributor or any other Contributor. + +c) Branding. Products integrating Compliant Covered Code +used for Commercial Use must be branded with the Technology +compliance logo under a separate trademark license required +to be executed by You and Original Contributor concurrent +with execution of this Attachment D. + +5. Indemnity/Limitation of Liability. The provisions of +Section 7.1 of the Research Use license are superseded by +the following: + +a) Your Indemnity Obligation. You hereby agree to defend, +at Your expense, any legal proceeding brought against +Original Contributor or any Licensee to the extent it is +based on a claim: (i) that the use, reproduction or +distribution of any of Your Error Corrections or Shared +Modifications is an infringement of a third party trade +secret or a copyright in a country that is a signatory to +the Berne Convention; (ii) arising in connection with any +representation, warranty, support, indemnity, liability or +other license terms You may offer in connection with any +Covered Code; or (iii) arising from Your Commercial Use of +Covered Code, other than a claim covered by Section 5.b) +below, or a patent claim based solely on Covered Code not +provided by You. You will pay all damages costs and fees +awarded by a court of competent jurisdiction, or such +settlement amount negotiated by You, attributable to such +claim. + +b) Original Contributor's Indemnity Obligation. Original +Contributor will defend, at its expense, any legal +proceeding brought against You, to the extent it is based on +a claim that Your authorized Commercial Use of Original Code +and Upgraded Code is an infringement of a third party trade +secret or a copyright in a country that is a signatory to +the Berne Convention, and will pay all damages costs and +fees awarded by a court of competent jurisdiction, or such +settlement amount negotiated by Original Contributor, +attributable to such claim. The foregoing shall not apply +to any claims of intellectual property infringement based +upon the combination of code or documentation supplied by +Original Contributor with code, technology or documentation +from other sources. + +c) Right of Intervention. Original Contributor will have +the right, but not the obligation, to defend You, at +Original Contributor's expense, in connection with a claim +that Your Commercial Use of Original Code and Upgraded Code +is an infringement of a third party patent and will, if +Original Contributor chooses to defend You, pay all damages +costs and fees awarded by a court of competent jurisdiction, +or such settlement amount negotiated by Original +Contributor, attributable to such claim. + +d) Prerequisites. Under Sections 5.b) and c) above, You +must, and under Section 5.a) above, Original Contributor or +any Licensee must: (i) provide notice of the claim promptly +to the party providing an indemnity; (ii) give the +indemnifying party sole control of the defense and +settlement of the claim; (iii) provide the indemnifying +party, at indemnifying party's expense, all available +information, assistance and authority to defend; and (iv) +not have compromised or settled such claim or proceeding +without the indemnifying party's prior written consent. + +e) Additional Remedies. Should any Original Code, Upgraded +Code, TCK, Specifications, or Modifications become, or in +the indemnifying party's opinion be likely to become, the +subject of a claim of infringement for which indemnity is +provided above, the indemnifying party may, at its sole +option, attempt to procure on reasonable terms the rights +necessary for the indemnified party to exercise its license +rights under this License with respect to the infringing +items, or to modify the infringing items so that they are no +longer infringing without substantially impairing their +function or performance. If the indemnifying party is +unable to do the foregoing after reasonable efforts, then +the indemnifying party may send a notice of such inability +to the indemnified party together with a refund of any +license fees received by the indemnifying party from the +indemnified party for the infringing items applicable to the +indemnified party's future use or distribution of such +infringing items, in which case the indemnifying party will +not be liable for any damages resulting from infringing +activity with respect to the infringing items occurring +after such notice and refund. + +6. Support Programs. + +Support to You. Technical support is not provided to You by +Original Contributor under this License. You may contract +for one or more support programs from Original Contributor +relating to the Technology which are described on the SCSL +Webpage. + +Customer Support. You are responsible for providing +technical and maintenance support services to Your customers +for Your products and services incorporating the Compliant +Covered code. + +7. Royalties and Payments. + +Technology specified in Attachment B. + +Field of Use:____________________ + +Royalty per Unit $_____________ + +b) Royalty Payments. Payment of royalties shall be made +quarterly, shall be due thirty (30) days following the end +of the calendar quarter to which they relate and shall be +submitted with a written statement documenting the basis for +the royalty calculation. + +c) Taxes. All payments required by this License shall be +made in United States dollars, are exclusive of taxes, and +Licensee agrees to bear and be responsible for the payment +of all such taxes, including, but not limited to, all sales, +use, rental receipt, personal property or other taxes and +their equivalents which may be levied or assessed in +connection with this License (excluding only taxes based on +Original Contributor's net income). To the extent Licensee +is required to withhold taxes based upon Original +Contributor's income in any country, You agree to provide +Original Contributor with written evidence of such +withholding, suitable for Original Contributor to obtain a +tax credit in the United States. + +d) Records. You agree to maintain account books and records +consistent with Generally Accepted Accounting Principles +appropriate to Your domicile, as may be in effect from time +to time, sufficient to allow the correctness of the +royalties required to be paid pursuant to this License to be +determined. + +e) Audit Rights. Original Contributor shall have the right +to audit such accounts upon reasonable prior notice using an +independent auditor of Original Contributor's choice (the +"Auditor"). The Auditor shall be bound to keep confidential +the details of Your business affairs and to limit disclosure +of the results of any audit to the sufficiency of the +accounts and the amount, if any, of a payment adjustment +that should be made. Such audits shall not occur more than +once each year (unless discrepancies are discovered in +excess of the five percent (5%) threshold set forth in +Section 7.f) below, in which case two consecutive quarters +per year may be audited). Except as set forth in Section +7.f) below, Original Contributor shall bear all costs and +expenses associated with the exercise of its rights to +audit. + +f) Payment Errors. In the event that any errors in payments +shall be determined, such errors shall be corrected by +appropriate adjustment in payment for the quarterly period +during which the error is discovered. In the event of an +underpayment of more than five percent (5%) of the proper +amount owed, upon such underpayment being properly +determined by the Auditor, You agree to reimburse Original +Contributor the amount of the underpayment and all +reasonable costs and expenses associated with the exercise +of its rights to audit, and interest on the overdue amount +at the maximum allowable interest rate from the date of +accrual of such obligation. + +8. Notice of Breach or Infringement. Each party shall +notify the other immediately in writing when it becomes +aware of any breach or violation of the terms of this +License, or when You become aware of any potential or actual +infringement by a third party of the Technology or Sun's +Intellectual Property Rights therein. + +9. Proprietary Rights Notices. You may not remove any +copyright notices, trademark notices or other proprietary +legends of Original Contributor or its suppliers contained +on or in the Original Code, Upgraded Code and +Specifications. + +10. Notices. All written notices required by this License +must be delivered in person or by means evidenced by a +delivery receipt and will be effective upon receipt by the +persons at the addresses specified below. + +Original Contributor: You: + +Sun Microsystems, Inc. _____________________________ + +4150 Network Circle ______________________________ + +Santa Clara, California 95054 ______________________________ + +Attn.: VP, Sun Software and +Technology Sales ______________________________ +cc: Legal (Software Sales) + +11. Disclaimer of Agency. The relationship created hereby +is that of licensor and licensee and the parties hereby +acknowledge and agree that nothing herein shall be deemed to +constitute You as a franchisee of Original Contributor. You +hereby waive the benefit of any state or federal statutes +dealing with the establishment and regulation of franchises. + +Agreed: +You: Original Contributor: + +_____________________________ Sun Microsystems, Inc. +(Your Name) +By:_________________________ By:_____________________ + +Title:_______________________ Title:____________________ + +Date:______________________ Date:____________________ + +ATTACHMENT E TECHNOLOGY COMPATIBILITY KIT + +The following license is effective for the Java(tm)2 SDK +Technology Compatibility Kit only upon execution +of a separate support agreement between You and Original +Contributor (subject to an annual fee) as described on the +SCSL Webpage. The Technology Compatibility Kit for the +Technology specified in Attachment B may be accessed at the +Technology Download Site only upon execution of the support +agreement. + +1. TCK License. + +a) Subject to the restrictions set forth in Section 1.b +below and Section 8.10 of the Research Use license, in +addition to the Research Use license, Original Contributor +grants to You a worldwide, non-exclusive, non-transferable +license, to the extent of Original Contributor's +Intellectual Property Rights in the TCK (without the right +to sublicense), to use the TCK to develop and test Covered +Code. + +b) TCK Use Restrictions. You are not authorized to create +derivative works of the TCK or use the TCK to test any +implementation of the Specification that is not Covered +Code. You may not publish your test results or make claims +of comparative compatibility with respect to other +implementations of the Specification. In consideration for +the license grant in Section 1.a above you agree not to +develop your own tests which are intended to validate +conformation with the Specification. + +2. Requirements for Determining Compliance. + +2.1 Definitions. + +a) "Added Value" means code which: + +(i) has a principal purpose which is substantially different +from that of the stand-alone Technology; + +(ii) represents a significant functional and value +enhancement to the Technology; + +(iii) operates in conjunction with the Technology; and + +(iv) is not marketed as a technology which replaces or +substitutes for the Technology. + +b) "Java Classes" means the specific class libraries +associated with each Technology defined in Attachment B. + +c) "Java Runtime Interpreter" means the program(s) which +implement the Java virtual machine for the Technology as +defined in the Specification. + +d) "Platform Dependent Part" means those Original Code and +Upgraded Code files of the Technology which are not in a +"share" directory or subdirectory thereof. + +e) "Shared Part" means those Original Code and Upgraded Code +files of the Technology which are identified as "shared" (or +words of similar meaning) or which are in any "share" +directory or subdirectory thereof, except those files +specifically designated by Original Contributor as +modifiable. + +f) "User's Guide" means the users guide for the TCK which +Sun makes available to You to provide direction in how to +run the TCK and properly interpret the results, as may be +revised by Sun from time to time. + +2.2 Development Restrictions. Compliant Covered Code: + +a) must include Added Value; + +b) must fully comply with the Specifications for the +Technology specified in Attachment B; + +c) must include the Shared Part, complete and unmodified; + +d) may not modify the functional behavior of the Java +Runtime Interpreter or the Java Classes; + +e) may not modify, subset or superset the interfaces of the +Java Runtime Interpreter or the Java Classes; + +f) may not subset or superset the Java Classes; and + +g) may not modify or extend the required public class or +public interface declarations whose names begin with "java", +"javax", "jini", "net.jini", "sun.hotjava", "COM.sun" or +their equivalents in any subsequent naming convention. + +2.3 Compatibility Testing. Successful compatibility testing +must be completed by You, or at Original Contributor's +option, a third party designated by Original Contributor, to +conduct such tests, in accordance with the User's Guide, and +using the most current version of the applicable TCK +available from Original Contributor one hundred twenty (120) +days (two hundred forty [240] days in the case of silicon +implementations) prior to: (i) Your Internal Deployment +Use; and (ii) each release of Compliant Covered Code by You +for Commercial Use. In the event that You elect to use a +version of Upgraded Code that is newer than that which is +required under this Section 2.3, then You agree to pass the +version of the TCK that corresponds to such newer version of +Upgraded Code. + +2.4 Test Results. You agree to provide to Original +Contributor or the third party test facility if applicable, +Your test results that demonstrate that Covered Code is +Compliant Covered Code and that Original Contributor may +publish or otherwise distribute such test results. -- cgit v1.2.3