Add support for the .zip-like OpenJDK "jmod" file format
This bug was originally reported by Emmanuel Bourg (ebourg@apache.org) in Debian bug #933308:
Starting with the version 9 and the new module system OpenJDK has .jmod files
containing compiled classes and resources. This file format isn't supported
by diffoscope yet. It's basically a ZIP file but with an extra 4 bytes header:
the "JM" string followed by 01 and 00 (the format version 1.0 I guess), so
the first bytes are "4A 4D 01 00", immediately followed by the usual ZIP
header "50 4B 03 04".
Could you please implement this new container format? That would greatly help
analyzing the reproducibility issues in OpenJDK 9 and later.
The jmod files can be found in the openjdk-11-jdk and openjdk-12-jdk packages.
You can test the implementation with:
diffoscope /usr/lib/jvm/java-11-openjdk-amd64/jmods/java.management.jmod /usr/lib/jvm/java-12-openjdk-amd64/jmods/java.management.jmod