Hi Piotr,

I can't find any official documentation from Microsoft, whether they support 
.net reproducibility between different platforms.
We just set <Deterministic>true</Deterministic> and specify a PathMap in our 
project file.
This is (on modern SDKs) all you have to do and all you can do ;-)

Regards.

Jan

Thursday, September 12, 2024, 10:31:48 PM, you wrote:

> Hi Jan,

> On Thu, 12 Sept 2024 at 20:54, Jan Friedrich <freeand...@apache.org> wrote:

> I verified:

> * the hashes of the distribution archives,
> * the signatures on the distribution archives,
> * I built Log4Net using the Docker script,
> * I ran the unit tests successfully.

> +1, release the artifacts

> Note regarding reproducibility: I rebuilt the Docker image twice, by
> taking care to purge the caches after each time (docker builder
> purge).
> The images were obviously different, but the generated binary files
> were identical.

> Comparing the local binaries with those in the binary distribution I
> have the Diffoscope output below.
> I am wondering why the image built on Linux and the image built on
> Windows do have a different time stamp in the header.
> The timestamp on Linux is reproducible between builds.

> --- apache-log4net-binaries-3.0.0/netstandard2.0/log4net.dll
> +++ Release/netstandard2.0/log4net.dll
> ├── pedump {}
> │ @@ -1,25 +1,25 @@
> │
> │  COFF Header:
> │                      Machine: 0x014c
> │                     Sections: 0x0003
> │ -                 Time stamp: 0xfcdb425c
> │ +                 Time stamp: 0xb4cea035
> │      Pointer to Symbol Table: 0x00000000
> │                Symbol Count: 0x00000000
> │         Optional Header Size: 0x00e0
> │             Characteristics: 0x2022
> │
> │  PE Header:
> │               Magic (0x010b): 0x010b
> │                   LMajor (6): 0x30
> │                   LMinor (0): 0x00
> │                    Code Size: 0x00043000
> │        Initialized Data Size: 0x00002000
> │      Uninitialized Data Size: 0x00000000
> │ -            Entry Point RVA: 0x00044842
> │ +            Entry Point RVA: 0x00044836
> │             Code Base RVA: 0x00002000
> │            Data Base RVA: 0x00046000
> │
> │
> │  NT Header:
> │         Image Base (0x400000): 0x11000000
> │      Section Alignment (8192): 0x00002000
> │ @@ -29,27 +29,27 @@
> │              User Major (0): 0x0000
> │              User Minor (0): 0x0000
> │            Subsys major (4): 0x0004
> │            Subsys minor (0): 0x0000
> │                  Reserverd: 0x00000000
> │                 Image Size: 0x0004a000
> │                Header Size: 0x00001000
> │ -                Checksum (0): 0x0004ec1d
> │ +                Checksum (0): 0x0004833b
> │                     Subsystem: 0x0003
> │                 DLL Flags (0): 0x8560
> │       Stack Reserve Size (1M): 0x00100000
> │      Stack commit Size (4096): 0x00001000
> │        Heap Reserve Size (1M): 0x00100000
> │       Heap Commit Size (4096): 0x00001000
> │            Loader flags (0x1): 0x00000000
> │         Data Directories (16): 0x00000010
> │
> │  Data directories:
> │           Export Table: 0x00000000 [0x00000000]
> │ -         Import Table: 0x000447f0 [0x0000004f]
> │ +         Import Table: 0x000447e3 [0x0000004f]
> │         Resource Table: 0x00046000 [0x000004c0]
> │        Exception Table: 0x00000000 [0x00000000]
> │      Certificate Table: 0x00000000 [0x00000000]
> │            Reloc Table: 0x00048000 [0x0000000c]
> │                  Debug: 0x0004470c [0x00000054]
> │              Copyright: 0x00000000 [0x00000000]
> │             Global Ptr: 0x00000000 [0x00000000]
> │ @@ -57,15 +57,15 @@
> │      Load Config Table: 0x00000000 [0x00000000]
> │           Bound Import: 0x00000000 [0x00000000]
> │                    IAT: 0x00002000 [0x00000008]
> │      Delay Import Desc: 0x00000000 [0x00000000]
> │             CLI Header: 0x00002008 [0x00000048]
> │
> │      Name: .text
> │ -       Virtual Size: 0x00042848
> │ +       Virtual Size: 0x0004283c
> │      Virtual Address: 0x00002000
> │        Raw Data Size: 0x00043000
> │         Raw Data Ptr: 0x00001000
> │            Reloc Ptr: 0x00000000
> │           LineNo Ptr: 0x00000000
> │          Reloc Count: 0x0000
> │           Line Count: 0x0000
> │ @@ -101,22 +101,22 @@
> │           Resources at: 0x00000000 [0x00000000]
> │         Strong Name at: 0x0004468c [0x00000080]
> │        Code Manager at: 0x00000000 [0x00000000]
> │        VTableFixups at: 0x00000000 [0x00000000]
> │           EAT jumps at: 0x00000000 [0x00000000]
> │
> │  Strong name:
> │ -     A0 3E 62 DE 46 49 E0 6D 82 34 82 29 12 86 FA 07
> │ -     80 48 B8 39 3A E1 D7 8D CB 46 D8 57 66 9F 72 50
> │ -     2B 5C 19 73 DA 90 76 0F 57 C1 D0 EA E6 A9 D9 E4
> │ -     12 7E 78 4C F0 93 83 F1 0E 21 1F 17 C1 B9 56 B2
> │ -     B5 64 C0 AA 50 3F 6E 62 03 07 0D D2 89 FE D4 44
> │ -     25 AB A6 B3 7D C2 AE 0F 6B E5 E0 4A 28 62 C8 CD
> │ -     78 BC 42 7C 6B 71 4A 8A E9 57 B4 96 41 50 46 2B
> │ -     2E 94 95 FF 92 17 E2 92 65 92 64 C8 3A E9 9B 32
> │ +     C4 F4 DE 7B DE D3 7D 37 80 17 ED 01 5B 3D A5 3A
> │ +     F8 B3 6B 87 09 64 6E EE D4 E1 ED 31 6F 9C 80 C8
> │ +     AA BC C1 37 92 46 1F C2 75 B7 31 4B 45 05 72 0C
> │ +     40 3E 39 00 18 17 A9 49 A9 2B 59 FE 11 68 83 6A
> │ +     E3 4F F1 A4 EA BB EE EE 4A E5 B6 FD 5D CB D5 70
> │ +     5C 61 55 11 C9 CC 88 02 D2 6C 5F 1D 4F 42 03 57
> │ +     80 CB 87 D5 1D 7F 8F 2F 9F A1 E8 7F 95 DE 49 CC
> │ +     EC 20 8D 46 9D EC 2D 5F DE ED 2C 84 C9 1D 41 B3
> │
> │  Public key:
> │       00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00
> │       00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00
> │       29 7D CA C9 08 E2 86 89 36 03 99 02 7B 0E A4 CD
> │       85 2F BB 74 E1 ED 95 E6 95 A5 BA 55 CB D1 D0 75
> │       EC 20 CD B5 FA 6F C5 93 D3 D5 71 52 7B 20 55 8D

Reply via email to