Mercurial > hg > release > icedtea-web-1.0
changeset 32:2405cef22921
Check for required proprietary Sun classes during configure.
2010-10-28 Andrew John Hughes <ahughes@redhat.com>
* Makefile.am:
(NETX_BOOTSTRAP_CLASSES): Removed.
(PLUGIN_BOOTSTRAP_CLASSES): Likewise.
(NETX_SUN_CLASSES): Likewise.
(PLUGIN_SUN_CLASSES): Likewise.
* acinclude.m4:
(IT_CHECK_FOR_CLASS): Require detection
of javac and java. Put test class in
sun.applet to get access to some internal
classes. Change test to use forName for
the same reason. I expect to be able to
revert this when usage of sun.applet is fixed.
(IT_FIND_JAVA): Ported from IcedTea6. Change
to prioritise 'java' over 'gij'.
* configure.ac:
Add IT_CHECK_FOR_CLASS checks for classes which
are required but not found in JDKs other than
Oracle-based ones. Also check for java.* classes
missing from current versions of gcj but which
may appear there in future.
author | Andrew John Hughes <ahughes@redhat.com> |
---|---|
date | Wed, 03 Nov 2010 23:06:23 +0000 |
parents | 30efa2ff349b |
children | 8e66d9386273 |
files | ChangeLog Makefile.am acinclude.m4 configure.ac |
diffstat | 4 files changed, 92 insertions(+), 45 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Wed Nov 03 11:33:41 2010 -0400 +++ b/ChangeLog Wed Nov 03 23:06:23 2010 +0000 @@ -1,3 +1,26 @@ +2010-10-28 Andrew John Hughes <ahughes@redhat.com> + + * Makefile.am: + (NETX_BOOTSTRAP_CLASSES): Removed. + (PLUGIN_BOOTSTRAP_CLASSES): Likewise. + (NETX_SUN_CLASSES): Likewise. + (PLUGIN_SUN_CLASSES): Likewise. + * acinclude.m4: + (IT_CHECK_FOR_CLASS): Require detection + of javac and java. Put test class in + sun.applet to get access to some internal + classes. Change test to use forName for + the same reason. I expect to be able to + revert this when usage of sun.applet is fixed. + (IT_FIND_JAVA): Ported from IcedTea6. Change + to prioritise 'java' over 'gij'. + * configure.ac: + Add IT_CHECK_FOR_CLASS checks for classes which + are required but not found in JDKs other than + Oracle-based ones. Also check for java.* classes + missing from current versions of gcj but which + may appear there in future. + 2010-11-03 Omair Majid <omajid@redhat.com> * netx/net/sourceforge/jnlp/Launcher.java
--- a/Makefile.am Wed Nov 03 11:33:41 2010 -0400 +++ b/Makefile.am Wed Nov 03 23:06:23 2010 +0000 @@ -8,46 +8,6 @@ # Build directories BOOT_DIR = $(abs_top_builddir)/bootstrap/jdk1.6.0 - -# PR43578 - java.security.CodeSource.getCodeSigners() missing -# PR43582 - Missing javax.swing.JTable.setFillsViewportHeight -# PR43585 - java.security.KeyStore.TrustedCertificateEntry class missing -NETX_BOOTSTRAP_CLASSES = \ - $(SHARE)/java/security/CodeSource.java \ - $(SHARE)/javax/swing/JTable.java \ - $(SHARE)/java/security/KeyStore.java - -# PR46074 - Missing java.net cookie code required by IcedTea plugin -PLUGIN_BOOTSTRAP_CLASSES = \ - $(SHARE)/java/net/CookieManager.java \ - $(SHARE)/java/net/HttpCookie.java \ - $(SHARE)/java/net/CookieHandler.java - -# IT563 - NetX uses sun.security code -# IT564 - NetX depends on sun.misc.BASE64Encoder -# IT570 - NetX depends on sun.applet.AppletViewPanel -# IT571 - NetX depends on com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.java -NETX_SUN_CLASSES = \ - $(SHARE)/sun/security/provider/X509Factory.java \ - $(SHARE)/sun/security/util/SecurityConstants.java \ - $(SHARE)/sun/security/util/HostnameChecker.java \ - $(SHARE)/sun/security/util/DerValue.java \ - $(SHARE)/sun/security/x509/X500Name.java \ - $(SHARE)/sun/misc/BASE64Encoder.java \ - $(SHARE)/sun/applet/AppletViewerPanel.java \ - $(SHARE)/sun/security/validator/ValidatorException.java \ - $(SHARE)/com/sun/net/ssl/internal/ssl/X509ExtendedTrustManager.java - -# IT573 - Plugin depends on sun.awt,X11.XEmbeddedFrame.java -# IT574 - Plugin depends on sun.misc.Ref -# IT575 - Plugin depends on com.sun/jndi.toolkit.url.UrlUtil -# IT576 - Plugin depends on sun.applet.AppletImageRef -PLUGIN_SUN_CLASSES = \ - $(SOLARIS)/sun/awt/X11/XEmbeddedFrame.java \ - $(SHARE)/sun/misc/Ref.java \ - $(SHARE)/com/sun/jndi/toolkit/url/UrlUtil.java \ - $(SHARE)/sun/applet/AppletImageRef.java - RUNTIME = $(BOOT_DIR)/jre/lib/rt.jar:$(BOOT_DIR)/jre/lib/jsse.jar # Flags
--- a/acinclude.m4 Wed Nov 03 11:33:41 2010 -0400 +++ b/acinclude.m4 Wed Nov 03 23:06:23 2010 +0000 @@ -302,19 +302,27 @@ dnl is usually the name of the class with '.' dnl replaced by '_' and all letters capitalised. dnl e.g. IT_CHECK_FOR_CLASS([JAVA_UTIL_SCANNER],[java.util.Scanner]) +dnl Test class has to be in sun.applet for some internal classes AC_DEFUN([IT_CHECK_FOR_CLASS],[ -AC_CACHE_CHECK([if $2 is missing], it_cv_$1, [ -CLASS=Test.java +AC_REQUIRE([IT_FIND_JAVAC]) +AC_REQUIRE([IT_FIND_JAVA]) +AC_CACHE_CHECK([if $2 is available], it_cv_$1, [ +CLASS=sun/applet/Test.java BYTECODE=$(echo $CLASS|sed 's#\.java##') -mkdir tmp.$$ +mkdir -p tmp.$$/$(dirname $CLASS) cd tmp.$$ cat << \EOF > $CLASS [/* [#]line __oline__ "configure" */ +package sun.applet; + +import $2; + public class Test { public static void main(String[] args) + throws Exception { - $2.class.toString(); + System.out.println(Class.forName("$2")); } } ] @@ -331,7 +339,8 @@ ]) rm -f $CLASS *.class cd .. -rmdir tmp.$$ +# should be rmdir but has to be rm -rf due to sun.applet usage +rm -rf tmp.$$ if test x"${it_cv_$1}" = "xno"; then AC_MSG_ERROR([$2 not found.]) fi @@ -507,3 +516,30 @@ AC_SUBST(ARCH_PREFIX) AC_SUBST(ARCHFLAG) ]) + +AC_DEFUN_ONCE([IT_FIND_JAVA], +[ + AC_MSG_CHECKING([for a Java virtual machine]) + AC_ARG_WITH([java], + [AS_HELP_STRING(--with-java,specify location of the 1.5 java vm)], + [ + JAVA="${withval}" + ], + [ + JAVA=${SYSTEM_JDK_DIR}/bin/java + ]) + if ! test -f "${JAVA}"; then + AC_PATH_PROG(JAVA, "${JAVA}") + fi + if test -z "${JAVA}"; then + AC_PATH_PROG(JAVA, "java") + fi + if test -z "${JAVA}"; then + AC_PATH_PROG(JAVA, "gij") + fi + if test -z "${JAVA}"; then + AC_MSG_ERROR("A 1.5-compatible Java VM is required.") + fi + AC_MSG_RESULT(${JAVA}) + AC_SUBST(JAVA) +])
--- a/configure.ac Wed Nov 03 11:33:41 2010 -0400 +++ b/configure.ac Wed Nov 03 23:06:23 2010 +0000 @@ -49,4 +49,32 @@ AC_SUBST(X11_CFLAGS) AC_SUBST(X11_LIBS) +dnl PR46074 (gcc) - Missing java.net cookie code required by IcedTea plugin +dnl IT563 - NetX uses sun.security code +dnl IT564 - NetX depends on sun.misc.BASE64Encoder +dnl IT570 - NetX depends on sun.applet.AppletViewPanel +dnl IT571 - NetX depends on com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager.java +dnl IT573 - Plugin depends on sun.awt,X11.XEmbeddedFrame.java +dnl IT574 - Plugin depends on sun.misc.Ref +dnl IT575 - Plugin depends on com.sun/jndi.toolkit.url.UrlUtil +dnl IT576 - Plugin depends on sun.applet.AppletImageRef + +IT_CHECK_FOR_CLASS(JAVA_UTIL_JAR_PACK200, [java.util.jar.Pack200]) +IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEMANAGER, [java.net.CookieManager]) +IT_CHECK_FOR_CLASS(JAVA_NET_HTTPCOOKIE, [java.net.HttpCookie]) +IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEHANDLER, [java.net.CookieHandler]) +IT_CHECK_FOR_CLASS(SUN_SECURITY_PROVIDER_X509FACTORY, [sun.security.provider.X509Factory]) +IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_SECURITYCONSTANTS, [sun.security.util.SecurityConstants]) +IT_CHECK_FOR_CLASS(SUN_SECURITY_UTIL_HOSTNAMECHECKER, [sun.security.util.HostnameChecker]) +IT_CHECK_FOR_CLASS(SUN_SECURITY_X509_X500NAME, [sun.security.x509.X500Name]) +IT_CHECK_FOR_CLASS(SUN_MISC_BASE64ENCODER, [sun.misc.BASE64Encoder]) +IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETVIEWERPANEL, [sun.applet.AppletViewerPanel]) +IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException]) +IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER, + [com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager]) +IT_CHECK_FOR_CLASS(SUN_AWT_X11_XEMBEDDEDFRAME, [sun.awt.X11.XEmbeddedFrame]) +IT_CHECK_FOR_CLASS(SUN_MISC_REF, [sun.misc.Ref]) +IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil]) +IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef]) + AC_OUTPUT