Switch back to the native Pack200 implementation for the moment

This isn't ideal as it's deprecated. However, while Apache Harmony's
unpack200 implementation seems fine, its pack200 implementation doesn't
work with the client and produces invalid output.

I've fixed some of the easy to fix bugs, but tracking down any remaining
bugs will be difficult - it'll involve tracing through the native
unpack200 code.

When Pack200 is removed from the JDK, hopefully someone will take up the
mantle of maintaining it outside of the JDK. If that doesn't happen,
we'll have to consider writing our own Pack200 implementation,
extracting OpenJDK's implementation out of the tree or fixing the bugs
in Apache Harmony.
bzip2
Graham 5 years ago
parent 97a8ada0d4
commit dc75b05429
  1. 4
      asm/pom.xml
  2. 2
      asm/src/main/java/dev/openrs2/asm/classpath/Library.kt
  3. 5
      pom.xml

@ -23,10 +23,6 @@
<artifactId>openrs2-common</artifactId> <artifactId>openrs2-common</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>dev.openrs2</groupId>
<artifactId>pack200</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.ow2.asm</groupId> <groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId> <artifactId>asm</artifactId>

@ -5,7 +5,6 @@ import dev.openrs2.asm.hasCode
import dev.openrs2.asm.remap.ClassForNameRemapper import dev.openrs2.asm.remap.ClassForNameRemapper
import dev.openrs2.common.io.DeterministicJarOutputStream import dev.openrs2.common.io.DeterministicJarOutputStream
import dev.openrs2.common.io.SkipOutputStream import dev.openrs2.common.io.SkipOutputStream
import org.apache.harmony.pack200.Pack200
import org.objectweb.asm.ClassReader import org.objectweb.asm.ClassReader
import org.objectweb.asm.ClassWriter import org.objectweb.asm.ClassWriter
import org.objectweb.asm.commons.ClassRemapper import org.objectweb.asm.commons.ClassRemapper
@ -23,6 +22,7 @@ import java.util.jar.JarEntry
import java.util.jar.JarInputStream import java.util.jar.JarInputStream
import java.util.jar.JarOutputStream import java.util.jar.JarOutputStream
import java.util.jar.Manifest import java.util.jar.Manifest
import java.util.jar.Pack200
import java.util.zip.GZIPInputStream import java.util.zip.GZIPInputStream
import java.util.zip.GZIPOutputStream import java.util.zip.GZIPOutputStream

@ -84,11 +84,6 @@
<artifactId>openrs2-natives-all</artifactId> <artifactId>openrs2-natives-all</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>dev.openrs2</groupId>
<artifactId>pack200</artifactId>
<version>1.0.2</version>
</dependency>
<dependency> <dependency>
<groupId>io.netty</groupId> <groupId>io.netty</groupId>
<artifactId>netty-buffer</artifactId> <artifactId>netty-buffer</artifactId>

Loading…
Cancel
Save