Bug#849386: diffoscope: Improve Java support (use decompilers by default and javap as fallback)

Emanuel Bronshtein e3amn2l at gmx.com
Mon Dec 26 14:57:34 UTC 2016


Source: diffoscope
Severity: wishlist

Dear Maintainer,

Currently javap is used for .class files, for example:
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/velocity.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/aspectj.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/jabref.html
https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/diffoscope-results/openjpa.html

it will be better (easier to read/understand) to use decompiler instead which return Java code from class files, and use javap as fallback if decompiler tool failed (aborted/exception/etc..) or fail to find difference.
in Debian there is package for 'procon-decompiler' Java decompiler:
https://packages.debian.org/unstable/procyon-decompiler

more FLOSS Java decompilers (might be available in other distros, such as: https://aur.archlinux.org/packages/?K=java+decompiler )

Krakatau - https://github.com/Storyyeller/Krakatau
Candle - https://github.com/bradsdavis/candle-decompiler
Fernflower - https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler/engine / https://github.com/fesh0r/fernflower
Jadx - https://github.com/skylot/jadx

that can be used as fallback to 'procyon-decompiler' (javap need to be used as last effort)



More information about the Reproducible-builds mailing list