Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • diffoscope diffoscope
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 145
    • Issues 145
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Reproducible BuildsReproducible Builds
  • diffoscopediffoscope
  • Issues
  • #60
Closed
Open
Issue created Jul 29, 2019 by Chris Lamb@lambyOwner

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
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking