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

Reply via email to