I was able to verify this build. Log file attached. Ran verify-build after installing Oracle jdk1.7.0_79 instead of openjdk-7u101. Thank you Bert for explaining how you tested the differences, and Florent for reporting which version of java you used.
PR for scripts/README.md is still open - https://github.com/freenet/scripts/pull/12/files --Byron On 06/29/2016 06:09 AM, Florent Daigniere wrote: > Hmm, yeah it's my fault... 1475 was compiled with Oracle's jdk1.7.0_79 > I'll ensure that I use the debian/openjdk version the script expects in > the future... > > Florent > > On Wed, 2016-06-29 at 11:55 +0200, Bert Massop wrote: >> Let's analyze the smallest class file for which you observe a >> difference. >> That happens to be freenet/clients/fcp/ClientRequest$4.class. >> Fortunately, >> the code for ClientRequest has not changed between 1473 and 1475, so >> the >> resulting file for both versions should be the same. Turns out they >> are not: >> >> $ sha1sum ClientRequest\$4.class.1473 ClientRequest\$4.class.1475 >> f535c7e5ff73ca200007f756076eabd0bfe08217 ClientRequest$4.class.1473 >> fc4680b0be297136fe939617635aa2c5389e5525 ClientRequest$4.class.1475 >> >> So where are they different? Let's first convert them to one-byte- >> per-line >> hex (plus decimal, character) dumps and create a diff (result >> attached): >> $ hexdump -v -e '/1 "%02X (hex)"' -e '/1 " %03u (dec)"' -e '/1 " >> %_p\n"' >> ClientRequest\$4.class.1473 > CR4.hex.1473 >> $ hexdump -v -e '/1 "%02X (hex)"' -e '/1 " %03u (dec)"' -e '/1 " >> %_p\n"' >> ClientRequest\$4.class.1475 > CR4.hex.1475 >> $ diff -u CR4.hex.1473 CR4.hex.1475 > CR4.diff >> >> The first difference is at byte 10, as indicated by your analysis. >> According to the class file format specification [0], this is the >> element >> count of the constant pool (the collection of constant strings, >> classes, >> interface names referenced in the class file). The count went up from >> 42 to >> 44 constants. Further analysis reveals that the Utf8 constants "ex" >> and >> "Ljava.lang.NoSuchFieldError" where added; and as such, the constant >> table >> has different indexes, leading to slightly different bytecode. Most >> other >> differences can be seen to be off-by-two errors indeed. >> >> Where do these differences originate from? Further analysis of the >> differences between the byte code in these files reveals that this >> class is >> a SwitchMap (a jump table for the switch() statement), and that the >> sole >> difference is that the Java compiler has added additional runtime >> exception >> handling. This being an automatically generated class by the Java >> compiler, >> it gives clear evidence that differences in the build environment >> cause the >> validation error for this particular file. >> >> I did not analyze the differences for all files, but it is quite >> likely >> that they are all related to differences in the build environment. >> From the >> META-INF difference, it is already clear that the two compiler >> versions >> used were not exactly equal. >> >> Kind regards, >> Bert >> >> [0] https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html >> >> On Wed, Jun 29, 2016 at 7:58 AM, CryptNode <[email protected]> >> wrote: >> >>> Temporary file link - https://cryptnode.org/temp/verify-1475-failed >>> .log >>> >>> >>> On 06/27/2016 05:28 AM, Bert Massop wrote: >>>> On Mon, Jun 27, 2016 at 5:27 AM, CryptNode <[email protected] >>> wrote: >>>>> This build is failing for me. Log file attached. >>>>> >>>> You log file unfortunately did not arrive here. Can try to send >>>> it again, >>>> or upload it somewhere? (e.g. pastebin) >>>> >>>> Thank you for validating the builds! >>>> >>>> Imported Florent's key. >>>>> gpg --keyserver keys.gnupg.net --recv-key 0x7AA9C2A3 >>>>> >>>>> Using Debian 8.5 x64, ant 1.9.4-3, openjdk-7-jdk 7u101-2.6.6- >>>>> 1~deb8u1, >>>>> unzip 6.0-16+deb8u2 >>>>> I was able to verify build 1474 using this VM. >>>>> >>>>> --Byron >>>>> >>>>> On 06/25/2016 04:32 AM, Florent Daigniere wrote: >>>>>> 2016-06-25 >>>>>> >>>>>> Freenet 0.7.5 build 1475 is now available. It materializes >>>>>> several >>>>>> months of work (the previous release was rushed to fix >>>>>> frostbite) and >>>>>> features some major changes. Your nodes should start auto- >>>>>> updating >>>>>> soon. This build will become mandatory on July 15th. >>>> _______________________________________________ >>>> Devl mailing list >>>> [email protected] >>>> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >>> _______________________________________________ >>> Devl mailing list >>> [email protected] >>> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >>> >> _______________________________________________ >> Devl mailing list >> [email protected] >> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl >> >> >> _______________________________________________ >> Devl mailing list >> [email protected] >> https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl _______________________________________________ Devl mailing list [email protected] https://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
