Le 15/01/2017 à 16:26, Miguel Landaeta a écrit : > It's probably too late to object this change since it's about to enter > testing but I suspect this change could trigger FTBFS in libasm-java > reverse dependencies.
We still have two weeks before the final freeze to examine this actually. I got another look and I think the root issue is the change I made in asm/5.1-1 when I replaced asm-all.jar by a symlink to asm-debug-all.jar. I assumed that asm-all was simply a version of the jar stripped from its debug symbols, and since our policy recommends to keep these symbols I decided to remove the jar and save a few kilobytes in the package. But this is slightly more subtle, the classes in asm-all.jar (and the other non debug jars) are bytecode processed, the generic signatures are stripped and the class format is changed from 49 (Java 5) to 46 (Java 1.2). So the jars aren't strictly source compatible. For example jitescript depends on asm-all, and in FieldDefinition it uses the org.objectweb.asm.tree.FieldNode class which contains a visibleAnnotations public field [1] of type List<AnnotationNode> (stripped to List in asm-all.jar). FieldDefinition puts a type incompatible with AnnotationNode in this list, so the compilation fails with asm-debug-all, but not asm-all (I reported this upstream [2]). The case of android-toolchain-jack is another example of a source incompatibility. Here the org.objectweb.asm.tree.analysis.Analyzer class is used with a generic parameter [3], so the code can only build with asm-debug-all and not asm-all. So the right solution would be to install both asm-all.jar (shrunk) and asm-debug-all.jar (normal) to satisfy all needs and match the upstream distribution. We may refine this and modify the shrinking process to preserve the debug symbols, what matters is to package two jars with and without generics. Emmanuel Bourg [1] https://anonscm.debian.org/cgit/pkg-java/asm.git/tree/src/org/objectweb/asm/tree/FieldNode.java?h=upstream/5.2#n77 [2] https://github.com/qmx/jitescript/issues/15 [3] https://gitlab.com/seamlik/debianpkg_android-toolchain-jack/blob/master/jill/src/com/android/jill/frontend/java/MethodBodyWriter.java#L196