IcedTea-Web icon indicating copy to clipboard operation
IcedTea-Web copied to clipboard

Support for an External Pack200 Component

Open martinhickson opened this issue 2 years ago • 4 comments

Since the JDK's native pack200 implementation has been removed from newer JDKs, it would be great if this implementation could be supported. See also: https://github.com/martinhickson/IcedTea-Web-1/wiki for code examples.

martinhickson avatar Feb 28 '24 21:02 martinhickson

Hey, just coming to support this request as the service processors on older servers may use Pack200 for their JAR files and they won't work on newer JDKs. Here's a write up of someone's findings and that they've had to fall back to an ancient JDK version: https://forums.debian.net/viewtopic.php?t=158747

puck avatar Jan 07 '25 23:01 puck

It does look like the original poster managed to get past this. @hendrikebbers may be able to help in the future though.

karianna avatar Jan 11 '25 06:01 karianna

Yup, by updating a fork of the Pack200 code from JDK11 to compile with JDK17 and updating IcedTea to use it. This'd be great have back in the official release.

I started to add in support for the Pack200 class that is in Apache Commons Compress (which appears to have been Martin's initial approach as well) and it is a game of whack-a-mole to fix/add things which I haven't finished.

puck avatar Jan 11 '25 22:01 puck

See also: https://github.com/martinhickson/pack200/wiki, which relates to a fork of the pack200 project, where changes to attribute handling in the ClassWriter class (see the commit history), achieved full pack200 binary compatibility with the JDK 11 packer. The reason I stopped using the Apache Commons Compress Pack200 class was that it appeared to be targeting an earlier version of the JDK.

martinhickson avatar Apr 28 '25 23:04 martinhickson