Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package icedtea-web for openSUSE:Factory checked in at 2025-06-20 17:25:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/icedtea-web (Old) and /work/SRC/openSUSE:Factory/.icedtea-web.new.31170 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "icedtea-web" Fri Jun 20 17:25:41 2025 rev:39 rq:1286890 version:1.8.8 Changes: -------- --- /work/SRC/openSUSE:Factory/icedtea-web/icedtea-web.changes 2024-12-02 16:59:14.753481951 +0100 +++ /work/SRC/openSUSE:Factory/.icedtea-web.new.31170/icedtea-web.changes 2025-06-20 17:26:43.305095539 +0200 @@ -1,0 +2,22 @@ +Thu Jun 19 09:52:41 UTC 2025 - Fridrich Strba <fst...@suse.com> + +- Allow building with java <= 21 +- Modified patches: + * icedtea-web-suse-desktop-files.patch + * reproducible-timestamps.patch + + rediff to apply cleanly + * more-java-versions.patch + + rediff + + build only en_US.UTF-8 docs + + specify source for javadoc + + add missing exports for java invocation +- Added patches: + * standalone-pack200.patch + + build against standalone pack200 implementation + * java17.patch + + do not look for class not in Java 17+ + * java21.patch + + detect Java 21+ + + dummy noop implementation of missing JarIndex class + +------------------------------------------------------------------- New: ---- java17.patch java21.patch standalone-pack200.patch ----------(New B)---------- New: + build against standalone pack200 implementation * java17.patch + do not look for class not in Java 17+ New: + do not look for class not in Java 17+ * java21.patch + detect Java 21+ New:- Added patches: * standalone-pack200.patch + build against standalone pack200 implementation ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ icedtea-web.spec ++++++ --- /var/tmp/diff_new_pack.EHWZCF/_old 2025-06-20 17:26:45.921203720 +0200 +++ /var/tmp/diff_new_pack.EHWZCF/_new 2025-06-20 17:26:45.929204051 +0200 @@ -1,7 +1,7 @@ # # spec file for package icedtea-web # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2025 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -34,6 +34,9 @@ Patch0: icedtea-web-suse-desktop-files.patch Patch1: more-java-versions.patch Patch2: reproducible-timestamps.patch +Patch3: standalone-pack200.patch +Patch4: java17.patch +Patch5: java21.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: bc @@ -44,16 +47,15 @@ BuildRequires: javapackages-tools BuildRequires: junit BuildRequires: libtool +BuildRequires: pack200 BuildRequires: pkgconfig >= 0.9.0 BuildRequires: procps -BuildRequires: strip-nondeterminism BuildRequires: rhino +BuildRequires: strip-nondeterminism BuildRequires: tagsoup BuildRequires: zip -BuildConflicts: java >= 14 -BuildConflicts: java-devel >= 14 -BuildConflicts: java-headless >= 14 Requires: java >= 1.8 +Requires: pack200 Requires: rhino Requires: tagsoup Requires(post): update-alternatives @@ -88,10 +90,7 @@ and plugin implementation. %prep -%setup -q -%patch -P 0 -p1 -%patch -P 1 -p1 -%patch -P 2 -p1 +%autosetup -p1 rm -rf netx/net/sourceforge/jnlp/NetxPanel.java netx/sun @@ -101,16 +100,17 @@ autoreconf -fiv export bashcompdir=%{_datadir}/bash-completion/completions %configure \ - --with-jdk-home=%{javadir} \ - --with-jre-home=%{jredir} \ - --docdir=%{_javadocdir}/%{name} \ --disable-native-plugin \ --disable-pluginjar \ + --docdir=%{_javadocdir}/%{name} \ + --enable-docs \ --enable-shell-launchers \ + --program-suffix=%{binsuffix} \ --with-itw-libs=BUNDLED \ - --enable-docs \ + --with-jdk-home=%{javadir} \ + --with-jre-home=%{jredir} \ --with-modularjdk-file=%{_datadir}/%{name} \ - --program-suffix=%{binsuffix} \ + --with-pack200=%{_bindir}/pack200 \ --with-pkgversion=suse-%{release}-%{_arch} %make_build ++++++ icedtea-web-suse-desktop-files.patch ++++++ --- /var/tmp/diff_new_pack.EHWZCF/_old 2025-06-20 17:26:46.433224893 +0200 +++ /var/tmp/diff_new_pack.EHWZCF/_new 2025-06-20 17:26:46.469226381 +0200 @@ -1,19 +1,15 @@ -Index: icedtea-web-1.5.1/itweb-settings.desktop.in -=================================================================== ---- icedtea-web-1.5.1.orig/itweb-settings.desktop.in -+++ icedtea-web-1.5.1/itweb-settings.desktop.in -@@ -11,5 +11,5 @@ Exec=PATH_TO_ITWEB_SETTINGS +--- icedtea-web-1.8.8/itweb-settings.desktop.in 2025-06-19 09:02:33.535860174 +0200 ++++ icedtea-web-1.8.8/itweb-settings.desktop.in 2025-06-19 09:03:04.077944330 +0200 +@@ -12,5 +12,5 @@ Icon=javaws Terminal=false Type=Application -Categories=Settings; +Categories=Settings;DesktopSettings;X-GNOME-DesktopSettings;X-GNOME-Sundry; Keywords=IcedTea;IcedTea-Web;java;javaws;web;start;webstart;jnlp; -Index: icedtea-web-1.5.1/policyeditor.desktop.in -=================================================================== ---- icedtea-web-1.5.1.orig/policyeditor.desktop.in -+++ icedtea-web-1.5.1/policyeditor.desktop.in -@@ -5,5 +5,5 @@ Exec=PATH_TO_POLICYEDITOR +--- icedtea-web-1.8.8/policyeditor.desktop.in 2025-06-19 09:02:33.558286892 +0200 ++++ icedtea-web-1.8.8/policyeditor.desktop.in 2025-06-19 09:03:04.078136016 +0200 +@@ -6,5 +6,5 @@ Icon=javaws Terminal=false Type=Application ++++++ java17.patch ++++++ --- icedtea-web-1.8.8/configure.ac 2025-06-19 11:10:53.172802742 +0200 +++ icedtea-web-1.8.8/configure.ac 2025-06-19 11:11:08.652976418 +0200 @@ -171,7 +171,6 @@ IT_CHECK_FOR_CLASS(SUN_MISC_LAUNCHER, [sun.misc.Launcher], [some.pkg], [$JAVA_BASE]) fi IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException], [some.pkg], [$JAVA_BASE]) -IT_CHECK_FOR_CLASS(COM_SUN_NET_SSL_INTERNAL_SSL_X509EXTENDEDTRUSTMANAGER, [com.sun.net.ssl.internal.ssl.X509ExtendedTrustManager], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack], [some.pkg], [$JAVA_BASE]) if test "x$build_linux" = xyes ; then ++++++ java21.patch ++++++ --- icedtea-web-1.8.8/acinclude.m4 2025-06-19 11:10:53.172245097 +0200 +++ icedtea-web-1.8.8/acinclude.m4 2025-06-19 11:11:45.908003966 +0200 @@ -879,10 +879,12 @@ AC_MSG_RESULT($JAVA_VERSION) if test "${JAVA_VERSION}" -eq "8"; then HAVE_JAVA8="yes" + elif test "$JAVA_VERSION" -ge "21"; then + HAVE_JAVA21="yes" elif test "$JAVA_VERSION" -ge "9"; then HAVE_JAVA9="yes" fi - if test -z "$HAVE_JAVA8" -a -z "$HAVE_JAVA9"; then + if test -z "$HAVE_JAVA8" -a -z "$HAVE_JAVA9" -a -z "$HAVE_JAVA21"; then AC_MSG_ERROR([JDK8 or newer is required, detected was: $JAVA_VERSION]) fi if ! test -z "$HAVE_JAVA8"; then @@ -894,6 +896,7 @@ AC_SUBST(VERSION_DEFS) AM_CONDITIONAL([HAVE_JAVA8], test x"${HAVE_JAVA8}" = "xyes") AM_CONDITIONAL([HAVE_JAVA9], test x"${HAVE_JAVA9}" = "xyes") + AM_CONDITIONAL([HAVE_JAVA21], test x"${HAVE_JAVA21}" = "xyes") ]) AC_DEFUN_ONCE([IT_FIND_KEYTOOL], --- icedtea-web-1.8.8/configure.ac 2025-06-19 11:11:31.940543002 +0200 +++ icedtea-web-1.8.8/configure.ac 2025-06-19 11:11:45.908231999 +0200 @@ -148,11 +148,14 @@ dnl IT575 - Plugin depends on com.sun/jndi.toolkit.url.UrlUtil dnl IT576 - Plugin depends on sun.applet.AppletImageRef dnl IT578 - Remove need for patching AppletPanel for Plugin/Webstart -if test x"$HAVE_JAVA9" = xyes ; then +if test x"$HAVE_JAVA9" = xyes -o x"$HAVE_JAVA21" = xyes ; then JAVA_BASE=java.base JAVA_DESKTOP=java.desktop JAVA_NAMING=java.naming fi +if test x"$HAVE_JAVA21" = xyes ; then + JDK_JARTOOL=jdk.jartool +fi IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEMANAGER, [java.net.CookieManager], [some.pkg], []) IT_CHECK_FOR_CLASS(JAVA_NET_HTTPCOOKIE, [java.net.HttpCookie], [some.pkg], []) IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEHANDLER, [java.net.CookieHandler], [some.pkg], []) @@ -162,6 +165,9 @@ IT_CHECK_FOR_CLASS(SUN_SECURITY_X509_X500NAME, [sun.security.x509.X500Name], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_SECURITY_ACTION_GETPROPERTYACTION, [sun.security.action.GetPropertyAction], [some.pkg], [$JAVA_BASE]) # the classname cant be substitued by variable, as it is substituted to inner class +if test x"$HAVE_JAVA21" = xyes ; then + IT_CHECK_FOR_CLASS(HEXDUMPENCODER, [sun.security.util.HexDumpEncoder], [some.pkg], [$JAVA_BASE]) +else if test x"$HAVE_JAVA9" = xyes ; then IT_CHECK_FOR_CLASS(HEXDUMPENCODER, [sun.security.util.HexDumpEncoder], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_MISC_JARINDEX, [jdk.internal.util.jar.JarIndex], [some.pkg], [$JAVA_BASE]) @@ -170,6 +176,7 @@ IT_CHECK_FOR_CLASS(SUN_MISC_JARINDEX, [sun.misc.JarIndex], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_MISC_LAUNCHER, [sun.misc.Launcher], [some.pkg], [$JAVA_BASE]) fi +fi IT_CHECK_FOR_CLASS(SUN_SECURITY_VALIDATOR_VALIDATOREXCEPTION, [sun.security.validator.ValidatorException], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILE, [sun.net.www.protocol.jar.URLJarFile], [some.pkg], [$JAVA_BASE]) IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_JAR_URLJARFILECALLBACK, [sun.net.www.protocol.jar.URLJarFileCallBack], [some.pkg], [$JAVA_BASE]) --- icedtea-web-1.8.8/netx/net/sourceforge/jnlp/jdk89acesses/JarIndexAccess.java 2025-06-19 11:10:05.848017283 +0200 +++ icedtea-web-1.8.8/netx/net/sourceforge/jnlp/jdk89acesses/JarIndexAccess.java 2025-06-19 11:11:45.908412020 +0200 @@ -28,7 +28,7 @@ jarIndexClass = Class.forName("jdk.internal.util.jar.JarIndex"); } catch (ClassNotFoundException exx) { OutputController.getLogger().log(exx); - throw new RuntimeException("JarIndex not found!"); + jarIndexClass = JarIndexDummy.class; } } } @@ -71,4 +71,17 @@ return (LinkedList<String>) o; } + /** + * Because starting of JAVA 21 the JarIndex is no longer supported we provide a dummy implementation which always returns {@code null}. + */ + @SuppressWarnings("unused") + private static class JarIndexDummy { + public static Object getJarIndex(JarFile jar) { + return null; + } + + public Object get(String fileName) { + return null; + } + } } ++++++ more-java-versions.patch ++++++ --- /var/tmp/diff_new_pack.EHWZCF/_old 2025-06-20 17:26:46.865242757 +0200 +++ /var/tmp/diff_new_pack.EHWZCF/_new 2025-06-20 17:26:46.869242923 +0200 @@ -1,8 +1,21 @@ -diff --git a/Makefile.am b/Makefile.am -index e44070c..fd0a2eb 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -238,10 +238,10 @@ export NETX_PKGS = javax.jnlp net.sourceforge.nanoxml net.sourceforge.jnlp \ +--- icedtea-web-1.8.8/configure.ac 2025-06-19 10:12:43.195497408 +0200 ++++ icedtea-web-1.8.8/configure.ac 2025-06-19 10:13:01.432511512 +0200 +@@ -186,9 +186,11 @@ + fi + IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil], [some.pkg], [$JAVA_NAMING]) + IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_HTTP_HANDLER, [sun.net.www.protocol.http.Handler], [some.pkg], [$JAVA_BASE]) ++if test "$enable_pluginjar" = yes ; then + IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef], [sun.applet], [$JAVA_DESKTOP]) +- + IT_CHECK_FOR_SUN_APPLET_ACCESSIBILITY ++fi ++ + IT_CHECK_GLIB_VERSION + IT_CHECK_XULRUNNER_MIMEDESCRIPTION_CONSTCHAR + IT_CHECK_XULRUNNER_REQUIRES_C11 +--- icedtea-web-1.8.8/Makefile.am 2025-06-19 10:12:43.194999759 +0200 ++++ icedtea-web-1.8.8/Makefile.am 2025-06-19 10:29:58.285161391 +0200 +@@ -238,10 +238,10 @@ net.sourceforge.jnlp.controlpanel net.sourceforge.jnlp.event \ net.sourceforge.jnlp.runtime net.sourceforge.jnlp.security \ net.sourceforge.jnlp.security.viewer net.sourceforge.jnlp.services \ @@ -15,7 +28,37 @@ export ICEDTEAPLUGIN_TARGET = stamps/liveconnect-dist.stamp export PLUGIN_DIR=$(TOP_BUILD_DIR)/plugin/icedteanp export PLUGIN_SRCDIR=$(TOP_SRC_DIR)/plugin/icedteanp -@@ -956,11 +956,18 @@ stamps/netx-dist.stamp: stamps/netx.stamp $(TOP_BUILD_DIR)/netx.manifest stamps/ +@@ -284,6 +284,14 @@ + -bottom '<font size="-1"> <a href="http://icedtea.classpath.org/bugzilla">Submit a bug or feature</a></font>' + if HAVE_JAVA9 + JAVADOC_OPTS+=-source $(IT_LANGUAGE_SOURCE_VERSION) ++JAVA_EXPORTS=--add-exports=java.base/sun.security.action=ALL-UNNAMED ++else ++if HAVE_JAVA21 ++JAVADOC_OPTS+=-source $(IT_LANGUAGE_SOURCE_VERSION) ++JAVA_EXPORTS=--add-exports=java.base/sun.security.action=ALL-UNNAMED ++else ++JAVA_EXPORTS= ++endif + endif + if JAVADOC_SUPPORTS_J_OPTIONS + JAVADOC_MEM_OPTS=-J-Xmx1024m -J-Xms128m +@@ -894,12 +902,12 @@ + mkdir "$$PLAIN_DOCS_TARGET_DIR" ; \ + mkdir "$$MAN_DOCS_TARGET_DIR" ; \ + HTML_DOCS_INDEX="$$HTML_DOCS_TARGET_DIR/index.html" ; \ +- TP_COMMAND="$(SYSTEM_JRE_DIR)/bin/java -cp $(NETX_DIR) net.sourceforge.jnlp.util.docprovider.TextsProvider" ; \ ++ TP_COMMAND="$(SYSTEM_JRE_DIR)/bin/java $(JAVA_EXPORTS) -cp $(NETX_DIR) net.sourceforge.jnlp.util.docprovider.TextsProvider" ; \ + TP_TAIL="false $(FULL_VERSION)" ; \ + LANG_BACKUP=$$LANG ; \ + echo "<html><head><title>$(PLUGIN_VERSION)</title></head>" > "$$HTML_DOCS_INDEX" ; \ + echo "<body><h3>$(PLUGIN_VERSION) docs:</h3>" >> "$$HTML_DOCS_INDEX" ; \ +- for LANG_ID in en_US.UTF-8 cs_CZ.UTF-8 pl_PL.UTF-8 de_DE.UTF-8 ; do \ ++ for LANG_ID in en_US.UTF-8 ; do \ + ID=`echo "$$LANG_ID" | head -c 2` ; \ + ENCOD=`echo "$$LANG_ID" | tail -c 6 -` ; \ + export LANG=$$LANG_ID; \ +@@ -956,11 +964,18 @@ (cd $(NETX_DIR) ; \ mkdir -p lib ; \ $(SYSTEM_JDK_DIR)/bin/jar cfm lib/classes.jar \ @@ -36,29 +79,9 @@ mkdir -p stamps touch $@ -diff --git a/configure.ac b/configure.ac -index b6710ed..c6daab2 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -186,9 +186,11 @@ if test "x$build_windows" = xyes ; then - fi - IT_CHECK_FOR_CLASS(COM_SUN_JNDI_TOOLKIT_URL_URLUTIL, [com.sun.jndi.toolkit.url.UrlUtil], [some.pkg], [$JAVA_NAMING]) - IT_CHECK_FOR_CLASS(SUN_NET_WWW_PROTOCOL_HTTP_HANDLER, [sun.net.www.protocol.http.Handler], [some.pkg], [$JAVA_BASE]) --IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef], [sun.applet], [$JAVA_DESKTOP]) -+if test "$enable_pluginjar" = yes ; then -+ IT_CHECK_FOR_CLASS(SUN_APPLET_APPLETIMAGEREF, [sun.applet.AppletImageRef], [sun.applet], [$JAVA_DESKTOP]) -+ IT_CHECK_FOR_SUN_APPLET_ACCESSIBILITY -+fi - --IT_CHECK_FOR_SUN_APPLET_ACCESSIBILITY - IT_CHECK_GLIB_VERSION - IT_CHECK_XULRUNNER_MIMEDESCRIPTION_CONSTCHAR - IT_CHECK_XULRUNNER_REQUIRES_C11 -diff --git a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java -index 6196a9e..fab17a8 100644 ---- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java -+++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java -@@ -18,6 +18,7 @@ package net.sourceforge.jnlp.runtime; +--- icedtea-web-1.8.8/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 2025-06-19 10:12:43.203915678 +0200 ++++ icedtea-web-1.8.8/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java 2025-06-19 10:13:01.433203336 +0200 +@@ -18,6 +18,7 @@ import static net.sourceforge.jnlp.runtime.Translator.R; @@ -66,7 +89,7 @@ import java.awt.Window; import java.net.SocketPermission; import java.security.AccessControlException; -@@ -343,7 +344,6 @@ class JNLPSecurityManager extends SecurityManager { +@@ -343,7 +344,6 @@ * warning banner, and adds the window to the list of windows to * be disposed when the calling application exits. */ @@ -74,7 +97,7 @@ public boolean checkTopLevelWindow(Object window) { ApplicationInstance app = getApplication(); -@@ -362,7 +362,12 @@ class JNLPSecurityManager extends SecurityManager { +@@ -362,7 +362,12 @@ // todo: set awt.appletWarning to custom message // todo: logo on with glass pane on JFrame/JWindow? @@ -88,7 +111,7 @@ } /** -@@ -432,7 +437,6 @@ class JNLPSecurityManager extends SecurityManager { +@@ -432,7 +437,6 @@ * @exception SecurityException if the caller does not have * permission to accesss the AWT event queue. */ @@ -96,7 +119,7 @@ public void checkAwtEventQueueAccess() { /* * this is the templace of the code that should allow applets access to -@@ -446,7 +450,7 @@ class JNLPSecurityManager extends SecurityManager { +@@ -446,7 +450,7 @@ // If we're about to allow access to the main EventQueue, // and anything untrusted is on the class context stack, // disallow access. ++++++ reproducible-timestamps.patch ++++++ --- /var/tmp/diff_new_pack.EHWZCF/_old 2025-06-20 17:26:46.881243419 +0200 +++ /var/tmp/diff_new_pack.EHWZCF/_new 2025-06-20 17:26:46.905244411 +0200 @@ -1,8 +1,6 @@ -diff --git a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java -index 643fcfd..c0a082c 100644 ---- a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java -+++ b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java -@@ -95,6 +95,10 @@ public class HtmlFormatter extends ReplacingTextFormatter { +--- icedtea-web-1.8.8/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java 2025-06-19 10:58:20.778943754 +0200 ++++ icedtea-web-1.8.8/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/HtmlFormatter.java 2025-06-19 10:58:35.151598324 +0200 +@@ -95,6 +95,10 @@ if (includeXmlHeader) { xml = "<?xml version=\"1.0\" encoding=\"" + encoding + "\"?>\n"; } @@ -13,7 +11,7 @@ return xml + "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n" + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\">\n" + " <head>\n" -@@ -102,7 +106,7 @@ public class HtmlFormatter extends ReplacingTextFormatter { +@@ -102,7 +106,7 @@ + " <meta http-equiv=\"content-type\" content=\"application/xhtml+xml; charset=" + encoding + "\" />\n" + " </head>\n" + " <body>\n" @@ -22,11 +20,9 @@ } @Override -diff --git a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java -index 9e2d1ae..9c0e595 100644 ---- a/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java -+++ b/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java -@@ -118,6 +118,9 @@ public class ManFormatter extends ReplacingTextFormatter { +--- icedtea-web-1.8.8/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java 2025-06-19 10:58:20.778977773 +0200 ++++ icedtea-web-1.8.8/netx/net/sourceforge/jnlp/util/docprovider/formatters/formatters/ManFormatter.java 2025-06-19 10:58:35.152120367 +0200 +@@ -118,6 +118,9 @@ private String getManPageDate(boolean localize) { Date now = new Date(); ++++++ standalone-pack200.patch ++++++ --- icedtea-web-1.8.8/acinclude.m4 2025-06-19 11:10:05.838490790 +0200 +++ icedtea-web-1.8.8/acinclude.m4 2025-06-19 11:10:18.671214614 +0200 @@ -498,6 +498,39 @@ ]) +AC_DEFUN_ONCE([IT_CHECK_FOR_PACK200], +[ + AC_MSG_CHECKING([for pack200]) + AC_ARG_WITH([tagsoup], + [AS_HELP_STRING([--with-pack200], + [pack200.jar])], + [ + PACK200_JAR=${withval} + ], + [ + PACK200_JAR= + ]) + if test -z "${PACK200_JAR}"; then + for dir in /usr/share/java /usr/local/share/java ; do + if test -f $dir/pack200.jar; then + PACK200_JAR=$dir/pack200.jar + break + fi + done + fi + AM_COND_IF([WINDOWS], [ + PACK200_JAR=$(cygpath -m ${PACK200_JAR}) + ]) + AC_MSG_RESULT(${PACK200_JAR}) + if test -z "${PACK200_JAR}"; then + AC_MSG_ERROR(***********************************************) + AC_MSG_ERROR(* Needed pack200 library was not found *) + AC_MSG_ERROR(***********************************************) + fi + AC_SUBST(PACK200_JAR) +]) + + AC_DEFUN_ONCE([IT_CHECK_FOR_MSLINKS], [ AC_MSG_CHECKING([for mslinks]) --- icedtea-web-1.8.8/configure.ac 2025-06-19 11:10:05.867431696 +0200 +++ icedtea-web-1.8.8/configure.ac 2025-06-19 11:10:18.671796099 +0200 @@ -153,7 +153,6 @@ JAVA_DESKTOP=java.desktop JAVA_NAMING=java.naming fi -IT_CHECK_FOR_CLASS(JAVA_UTIL_JAR_PACK200, [java.util.jar.Pack200], [some.pkg], []) IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEMANAGER, [java.net.CookieManager], [some.pkg], []) IT_CHECK_FOR_CLASS(JAVA_NET_HTTPCOOKIE, [java.net.HttpCookie], [some.pkg], []) IT_CHECK_FOR_CLASS(JAVA_NET_COOKIEHANDLER, [java.net.CookieHandler], [some.pkg], []) @@ -223,6 +222,7 @@ [/usr/share/java/objectweb-asm4/asm-all.jar /usr/share/java/objectweb-asm4/asm-all-4.0.jar /usr/share/java/objectweb-asm/asm-all.jar]) IT_CHECK_FOR_TAGSOUP +IT_CHECK_FOR_PACK200 IT_CHECK_FOR_MSLINKS if test "x$build_windows" = xyes ; then --- icedtea-web-1.8.8/Makefile.am 2025-06-19 11:10:05.838887771 +0200 +++ icedtea-web-1.8.8/Makefile.am 2025-06-19 11:10:18.672619845 +0200 @@ -214,7 +214,7 @@ # IllegalAccessException # - we want full privileges # -export UNIFIED_CLASSPATH_SEGMENTS=$(NETX_JAR) $(PLUGIN_JAR) $(JSOBJECT_JAR) $(RHINO_JAR) $(TAGSOUP_JAR) $(MSLINKS_JAR) +export UNIFIED_CLASSPATH_SEGMENTS=$(NETX_JAR) $(PLUGIN_JAR) $(JSOBJECT_JAR) $(RHINO_JAR) $(TAGSOUP_JAR) $(PACK200_JAR) $(MS $(PACK200_JAR)LINKS_JAR) export UNIFIED_JACOCO_CLASSPATH_SEGMENTS=$(UNIFIED_CLASSPATH_SEGMENTS) $(JACOCO_CLASSPATH) export UNIFIED_CLASSPATH=$(call joinsegments, $(UNIFIED_CLASSPATH_SEGMENTS)) export UNIFIED_JACOCO_CLASSPATH=$(call joinsegments, $(UNIFIED_JACOCO_CLASSPATH_SEGMENTS)) @@ -370,6 +370,7 @@ -e "s|[@]JSOBJECT_JAR[@]|$(JSOBJECT_JAR)|g" \ -e "s|[@]MSLINKS_JAR[@]|$(MSLINKS_JAR)|g" \ -e "s|[@]TAGSOUP_JAR[@]|$(TAGSOUP_JAR)|g" \ + -e "s|[@]PACK200_JAR[@]|$(PACK200_JAR)|g" \ -e "s|[@]RHINO_JAR[@]|$(RHINO_JAR)|g" \ -e "s|[@]PROGRAM_NAME[@]|$${PROGRAM_NAME}|g" \ -e "s|[@]MODULARJDK_ARGS_LOCATION[@]|$(MODULARJDK_ARGS_LOCATION)|g" @@ -787,7 +788,7 @@ mkdir -p $(TOP_BUILD_DIR)/liveconnect && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(TOP_BUILD_DIR)/liveconnect \ - $(call composeclasspath,$(NETX_DIR) $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ + $(call composeclasspath,$(NETX_DIR) $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR) $(PACK200_JAR)) \ -sourcepath $(LIVECONNECT_SRCS) \ @liveconnect-source-files.txt ; \ fi @@ -946,7 +947,7 @@ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(NETX_DIR) \ -sourcepath $(NETX_SRCDIR) \ - $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ + $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(PACK200_JAR) $(RHINO_JAR)) \ @netx-source-files.txt (cd $(NETX_RESOURCE_DIR); \ for files in $$(find . -type f); \ @@ -1021,6 +1022,7 @@ export NETX_JAR=$(NETX_JAR) ; \ export JSOBJECT_JAR=$(JSOBJECT_JAR) ; \ export TAGSOUP_JAR=$(TAGSOUP_JAR) ; \ + export PACK200_JAR=$(PACK200_JAR) ; \ export RHINO_JAR=$(RHINO_JAR) ; \ export MSLINKS_JAR=$(MSLINKS_JAR) ; \ export MODULARJDK_ARGS_LOCATION=$(MODULARJDK_ARGS_LOCATION) ; \ @@ -1087,6 +1089,7 @@ export NETX_JAR=$(NETX_JAR) ; \ export JSOBJECT_JAR=$(JSOBJECT_JAR) ; \ export TAGSOUP_JAR=$(TAGSOUP_JAR) ; \ + export PACK200_JAR=$(PACK200_JAR) ; \ export RHINO_JAR=$(RHINO_JAR) ; \ export MODULARJDK_ARGS_LOCATION=$(MODULARJDK_ARGS_LOCATION) ; \ export MAIN_CLASS=net.sourceforge.jnlp.runtime.Boot ; \ @@ -1199,7 +1202,7 @@ -doctitle 'IcedTea-Web: NetX API Specification' \ -windowtitle 'IcedTea-Web: NetX ' \ -header '<strong>IcedTea-Web<br/>NetX</strong>' \ - $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ + $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(PACK200_JAR) $(RHINO_JAR)) \ $(NETX_PKGS) endif mkdir -p stamps @@ -1217,7 +1220,7 @@ -doctitle 'IcedTea-Web: Plugin API Specification' \ -windowtitle 'IcedTea-Web: Plugin ' \ -header '<strong>IcedTea-Web<br/>Plugin</strong>' \ - $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(RHINO_JAR)) \ + $(call composeclasspath, $(MSLINKS_JAR) $(TAGSOUP_JAR) $(PACK200_JAR) $(RHINO_JAR)) \ $(PLUGIN_PKGS) endif endif @@ -1709,7 +1712,7 @@ mkdir -p $(NETX_UNIT_TEST_DIR) && \ $(SYSTEM_JDK_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(NETX_UNIT_TEST_DIR) \ - $(call composeclasspath, $(JUNIT_RUNTIME) $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(NETX_DIR)/lib/classes.jar $(MSLINKS_JAR) $(TEST_EXTENSIONS_DIR) $(TAGSOUP_JAR)) \ + $(call composeclasspath, $(JUNIT_RUNTIME) $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(NETX_DIR)/lib/classes.jar $(MSLINKS_JAR) $(TEST_EXTENSIONS_DIR) $(TAGSOUP_JAR) $(PACK200_JAR)) \ @netx-unit-tests-source-files.txt && \ mkdir -p stamps && \ touch $@ @@ -1739,7 +1742,7 @@ done ; \ cd $(NETX_UNIT_TEST_DIR) ; \ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ - CLASSPATH="$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(MSLINKS_JAR) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) . $(TEST_EXTENSIONS_SRCDIR) $(TAGSOUP_JAR))" ; \ + CLASSPATH="$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(MSLINKS_JAR) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) . $(TEST_EXTENSIONS_SRCDIR) $(TAGSOUP_JAR) $(PACK200_JAR))" ; \ $(SYSTEM_JRE_DIR)/bin/java "-Xbootclasspath/a:$$CLASSPATH" CommandLine $$class_names if WITH_XSLTPROC -$(XSLTPROC) --stringparam logs logs_unit.html $(TESTS_SRCDIR)/$(REPORT_STYLES_DIRNAME)/jreport.xsl $(NETX_UNIT_TEST_DIR)/tests-output.xml > $(TESTS_DIR)/index_unit.html @@ -1779,7 +1782,7 @@ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_BACKUP_SUFFIX)" ; \ done ;\ class_names=`cat $(UNIT_CLASS_NAMES)` ; \ - CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) $(JACOCO_CLASSPATH) . $(TEST_EXTENSIONS_SRCDIR) $(MSLINKS_JAR) $(TAGSOUP_JAR)) ; \ + CLASSPATH=$(call joinsegments, $(NETX_DIR)/lib/classes.jar $(TOP_BUILD_DIR)/liveconnect/lib/classes.jar $(JUNIT_RUNTIME) $(JUNIT_RUNNER_JAR) $(TEST_EXTENSIONS_DIR) $(JACOCO_CLASSPATH) . $(TEST_EXTENSIONS_SRCDIR) $(MSLINKS_JAR) $(TAGSOUP_JAR) $(PACK200_JAR))) ; \ $(SYSTEM_JRE_DIR)/bin/java $(JACOCO_AGENT_SWITCH) -Xbootclasspath/a:$$CLASSPATH CommandLine $$class_names ; \ for file in $(COVERAGE_MODIFIED_FILES) ; do \ mv $(NETX_UNIT_TEST_DIR)/$$file $(NETX_UNIT_TEST_DIR)/"$$file""$(EMMA_SUFFIX)" ; \ --- icedtea-web-1.8.8/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java 2025-06-19 11:10:05.844931927 +0200 +++ icedtea-web-1.8.8/netx/net/sourceforge/jnlp/cache/ResourceDownloader.java 2025-06-19 11:10:18.673118349 +0200 @@ -8,6 +8,8 @@ import static net.sourceforge.jnlp.cache.Resource.Status.PRECONNECT; import static net.sourceforge.jnlp.cache.Resource.Status.PREDOWNLOAD; +import io.pack200.Pack200; + import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; @@ -25,7 +27,6 @@ import java.util.List; import java.util.Map; import java.util.jar.JarOutputStream; -import java.util.jar.Pack200; import java.util.zip.GZIPInputStream; import net.sourceforge.jnlp.DownloadOptions; --- icedtea-web-1.8.8/rust-launcher/src/hardcoded_paths.rs 2025-06-19 11:10:05.867633149 +0200 +++ icedtea-web-1.8.8/rust-launcher/src/hardcoded_paths.rs 2025-06-19 11:10:18.673502756 +0200 @@ -16,6 +16,7 @@ const PLUGIN_JAR: Option<&'static str> = option_env!("PLUGIN_JAR"); const JSOBJECT_JAR: Option<&'static str> = option_env!("JSOBJECT_JAR"); const TAGSOUP_JAR: Option<&'static str> = option_env!("TAGSOUP_JAR"); +const PACK200_JAR: Option<&'static str> = option_env!("PACK200_JAR"); const RHINO_JAR: Option<&'static str> = option_env!("RHINO_JAR"); const ITW_LIBS: Option<&'static str> = option_env!("ITW_LIBS"); const MODULARJDK_ARGS_LOCATION: Option<&'static str> = option_env!("MODULARJDK_ARGS_LOCATION"); @@ -61,6 +62,8 @@ pub fn get_tagsoup() -> Option<&'static str> { sanitize(TAGSOUP_JAR) } +pub fn get_pack200() -> Option<&'static str> { sanitize(PACK200_JAR) } + pub fn get_rhino() -> Option<&'static str> { sanitize(RHINO_JAR) } pub fn get_mslinks() -> Option<&'static str> { sanitize(MSLINKS_JAR) } --- icedtea-web-1.8.8/shell-launcher/launchers.bat.in 2025-06-19 11:10:05.868042344 +0200 +++ icedtea-web-1.8.8/shell-launcher/launchers.bat.in 2025-06-19 11:10:18.673812373 +0200 @@ -31,6 +31,7 @@ set "PLUGIN_JAR=@PLUGIN_JAR@" set "JSOBJECT_JAR=@JSOBJECT_JAR@" set "TAGSOUP_JAR=@TAGSOUP_JAR@" +set "PACK200_JAR=@PACK200_JAR@" set "RHINO_JAR=@RHINO_JAR@" set "MSLINKS_JAR=@MSLINKS_JAR@" @@ -92,7 +93,7 @@ set "NETX_JAR=%ITW_HOME%/share/icedtea-web/javaws.jar" set "PLUGIN_JAR=%ITW_HOME%/share/icedtea-web/plugin.jar" set "JSOBJECT_JAR=%ITW_HOME%/share/icedtea-web/jsobject.jar" - set "LAUNCHER_BOOTCLASSPATH=-Xbootclasspath/a:!NETX_JAR!;!PLUGIN_JAR!;!JSOBJECT_JAR!;%ITW_HOME%/win-deps-runtime/tagsoup.jar;%ITW_HOME%/win-deps-runtime/js.jar;%ITW_HOME%/win-deps-runtime/mslinks.jar" + set "LAUNCHER_BOOTCLASSPATH=-Xbootclasspath/a:!NETX_JAR!;!PLUGIN_JAR!;!JSOBJECT_JAR!;%ITW_HOME%/win-deps-runtime/tagsoup.jar;%ITW_HOME%/win-deps-runtime/pack200.jar;%ITW_HOME%/win-deps-runtime/js.jar;%ITW_HOME%/win-deps-runtime/mslinks.jar" ) --- icedtea-web-1.8.8/shell-launcher/launchers.sh.in 2025-06-19 11:10:05.868091925 +0200 +++ icedtea-web-1.8.8/shell-launcher/launchers.sh.in 2025-06-19 11:10:18.674082426 +0200 @@ -18,6 +18,7 @@ PLUGIN_JAR=@PLUGIN_JAR@ JSOBJECT_JAR=@JSOBJECT_JAR@ TAGSOUP_JAR=@TAGSOUP_JAR@ +PACK200_JAR=@PACK200_JAR@ RHINO_JAR=@RHINO_JAR@ # windows only: #MSLINKS_JAR=@MSLINKS_JAR@ @@ -75,7 +76,7 @@ NETX_JAR="$ITW_HOME/share/icedtea-web/`basename \"$NETX_JAR\"`" PLUGIN_JAR="$ITW_HOME/share/icedtea-web/`basename \"$PLUGIN_JAR\"`" JSOBJECT_JAR="$ITW_HOME/share/icedtea-web/`basename \"$JSOBJECT_JAR\"`" - LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$NETX_JAR:$PLUGIN_JAR:$JSOBJECT_JAR:$ITW_HOME/linux-deps-runtime/`basename \"$TAGSOUP_JAR\"`:$ITW_HOME/linux-deps-runtime/`basename \"$RHINO_JAR\"`" + LAUNCHER_BOOTCLASSPATH="-Xbootclasspath/a:$NETX_JAR:$PLUGIN_JAR:$JSOBJECT_JAR:$ITW_HOME/linux-deps-runtime/`basename \"$TAGSOUP_JAR\"`:$ITW_HOME/linux-deps-runtime/`basename \"$PACK200_JAR\"`:$ITW_HOME/linux-deps-runtime/`basename \"$RHINO_JAR\"`" echo "warning, using portable itw from $ITW_HOME: $LAUNCHER_BOOTCLASSPATH $BINARY_LOCATION $SPLASH_LOCATION" fi --- icedtea-web-1.8.8/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java 2025-06-19 11:10:05.872760870 +0200 +++ icedtea-web-1.8.8/tests/netx/unit/net/sourceforge/jnlp/cache/ResourceDownloaderTest.java 2025-06-19 11:10:18.674392880 +0200 @@ -3,6 +3,8 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; +import io.pack200.Pack200; + import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; @@ -16,7 +18,6 @@ import java.util.jar.Attributes; import java.util.jar.JarOutputStream; import java.util.jar.Manifest; -import java.util.jar.Pack200; import java.util.zip.GZIPOutputStream; import org.junit.AfterClass;