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;

Reply via email to