--- 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 'IcedTea-Web
NetX
' \ - $(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 'IcedTea-Web
Plugin
' \ - $(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;