File standalone-pack200.patch of Package icedtea-web
--- 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;