guix: Enable building for x86_64-w64-mingw32 target #17595

pull dongcarl wants to merge 16 commits into bitcoin:master from dongcarl:2019-09-guix-staging-win-mingw-6.0.0 changing 5 files +338 −109
  1. dongcarl commented at 4:20 pm on November 25, 2019: member

    Based on: #16519 Based on: #17933 (Time Machines are… shall we say… superior :grin:)

    This PR allows us to perform Guix builds for the x86_64-w64-mingw32 target. We do this without splitting up the build script like we do in Gitian by using this newfangled alien technology called case statements. (This is WIP and might be changed to if statements soon)

  2. fanquake added the label Build system on Nov 25, 2019
  3. dongcarl added this to the "PRs" column in a project

  4. laanwj commented at 10:47 am on November 26, 2019: member
    Thanks for working on this! Another step towards Guix builds.
  5. dongcarl force-pushed on Jan 23, 2020
  6. dongcarl force-pushed on Jan 23, 2020
  7. fanquake commented at 5:37 am on January 24, 2020: member

    Looks good.

    I’ve just completed a Guix time-machine build, I modified the changes here to only build the x86_64-w64-mingw32 target, and the binaries are working fine in a Windows VM 👍.

     0env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
     1  guix 44e70de
     2    repository URL: https://git.savannah.gnu.org/git/guix.git
     3    branch: master
     4    commit: 44e70dee184c4e4190349def71dc07f05822f591
     5
     6git rev-parse HEAD
     75e1614cce5216166bb9a43b9fbfa4ad0fa7e5e8c
     8
     9find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    10addd48c58db416b9e1ae46fa2adc2421578deef7ea013725b6b7ed4c1269b1c2  output/bitcoin-0.19.99-win-unsigned.tar.gz
    11ddb5691b16d0c865541f1a4a93f10b44b784d55e35e66bffad73174aa05345fe  output/bitcoin-0.19.99-win64-debug.zip
    12006a97dfe6f1412800a3ec3072049e9ac1aa648ec22f0b32a1559cefb5179632  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    13d285db2c41e54973f3c6953c6defa4edaf1fa2b1811408147240fa23baa6bdda  output/bitcoin-0.19.99-win64.zip
    14467dba326ec9cfb7839a603073aa2a82a49190eabe3d56cc2b8e3c0d284926ef  output/src/bitcoin-0.19.99.tar.gz
    
  8. DrahtBot commented at 2:48 am on January 28, 2020: member

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Conflicts

    No conflicts as of last run.

  9. fanquake commented at 9:23 am on January 28, 2020: member

    @dongcarl Could you rebase this on master and fixup any shellcheck complaints:

    0In contrib/guix/guix-build.sh line 25:
    1
    2for host in ${HOSTS=i686-linux-gnu x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu x86_64-w64-mingw32}; do
    3
    4            ^-- SC2153: Possible misspelling: HOSTS may not be assigned, but HOST is.
    5For more information:
    6  https://www.shellcheck.net/wiki/SC2153 -- Possible misspelling: HOSTS may n...
    
  10. fanquake commented at 0:38 am on January 30, 2020: member
    Can you also address the [follow up comment from #17933](https://github.com/bitcoin/bitcoin/pull/17933#discussion_r372120580).
  11. dongcarl force-pushed on Jan 31, 2020
  12. dongcarl commented at 2:55 pm on January 31, 2020: member

    Fixed up shellcheck complaints and addressed followup. Thanks for the reminders!

    You can limit to building just mingw binaries like this btw: env HOSTS=x86_64-w64-mingw32 ./contrib/guix/guix-build.sh

    Here are my results (probably not reproducible, but let’s triage here!):

    0$ git rev-parse HEAD
    120e9e0bf0af4d168e703d1a569d0d573b3ce22f4
    2
    3$ find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    4b2127237a4e353924a597160ecd042f150050495fac9bda41b06084d90edd375  output/bitcoin-0.19.99-win64-debug.zip
    58bc76d6bf6d3aaff08a2ae143662882ef48ac4929f7457299905b1931fdea673  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    63130ca0ec9090a834b7afa65ddb353208321a3b4e4a2c0c6635b84cd7263fbce  output/bitcoin-0.19.99-win64.zip
    7cd96da19d52bfc0a061b36146b437a5a3612574b6ce106f1a3810f666a43f122  output/bitcoin-0.19.99-win-unsigned.tar.gz
    834c5fd0a228f2d0c087ccb26fd6b927d7de345da4a0f7226b52281ff58e084a7  output/src/bitcoin-0.19.99.tar.gz
    
  13. dongcarl marked this as ready for review on Jan 31, 2020
  14. fanquake commented at 9:26 am on February 1, 2020: member

    Nice. I’ve just done another build. Hashes don’t match as you suggested:

     0env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
     1  guix dcbfb3b
     2    repository URL: https://git.savannah.gnu.org/git/guix.git
     3    branch: master
     4    commit: dcbfb3b8ea69c573f3b48bfc04a1127ec01cc538
     5
     6git rev-parse HEAD
     720e9e0bf0af4d168e703d1a569d0d573b3ce22f4
     8
     9find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    10e9980f2badc93e506e36cb8142d3f4b781ad182cefbf4bb14d87e4015f4dee1e  output/bitcoin-0.19.99-win-unsigned.tar.gz
    1152368a7824dcec941a33904eff49557e17ef095697ba1b7833dc26f4883caf8e  output/bitcoin-0.19.99-win64-debug.zip
    129e1d6d12d10482fb82e703b23ea7b04a21f8da9915bb706330247d845205cb53  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    13429fd98e7122dc541f01d2f1d387c95e62f57178d8d3f3a3dbfd66cd9646ba34  output/bitcoin-0.19.99-win64.zip
    14843f958009812087fcb68fab8117d7710db19bcc64d36966121975718609dced  output/src/bitcoin-0.19.99.tar.gz
    

    If I compare two builds, this is the difference I’m seeing (excluding directory metadata):

    bitcoin-qt.exe

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0e00 0000 0000 004c b901  PE..d........L..
     4 00000090: 0000 0000 f000 2e00 0b02 0220 00e6 1d01  ........... ....
     5 000000a0: 0046 b901 0090 0100 b014 0000 0010 0000  .F..............
     6 000000b0: 0000 4000 0000 0000 0010 0000 0002 0000  ..@.............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 0070 bb01 0004 0000 ffff b901 0200 6001  .p............`.
     9+000000d0: 0070 bb01 0004 0000 ab07 ba01 0200 6001  .p............`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 0090 b701 da05 0000  ................
    13 00000110: 00a0 b701 6066 0000 0030 b801 f8c9 0100  ....`f...0......
    14 00000120: 00b0 9d01 ccd0 0800 0000 0000 0000 0000  ................
    15 00000130: 0000 ba01 2457 0100 0000 0000 0000 0000  ....$W..........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -1792858,15 +1792858,15 @@
    18 01b5b590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 01b5b5a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 01b5b5b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 01b5b5c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 01b5b5d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 01b5b5e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 01b5b5f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-01b5b600: 0000 0000 9f37 355e 0000 0000 7c91 b701  .....75^....|...
    26+01b5b600: 0000 0000 4b3f 355e 0000 0000 7c91 b701  ....K?5^....|...
    27 01b5b610: 0100 0000 2200 0000 2200 0000 2890 b701  ...."..."...(...
    28 01b5b620: b090 b701 3891 b701 0036 de00 c02d de00  ....8....6...-..
    29 01b5b630: a037 de00 b0a2 1e01 305a de00 9038 de00  .7......0Z...8..
    30 01b5b640: 2038 de00 004f de00 9051 de00 d055 de00   8...O...Q...U..
    31 01b5b650: 505a de00 504d de00 3050 de00 9039 de00  PZ..PM..0P...9..
    32 01b5b660: f03c de00 b052 de00 1057 de00 f04c de00  .<...R...W...L..
    33 01b5b670: 8063 de00 e05f de00 705d de00 e05e de00  .c..._..p]...^..
    

    bitcoin-tx.exe

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0d00 0000 0000 009c 2200  PE..d.........".
     4 00000090: 0000 0000 f000 2e00 0b02 0220 0068 1b00  ........... .h..
     5 000000a0: 0096 2200 0024 0000 e014 0000 0010 0000  .."..$..........
     6 000000b0: 0000 4000 0000 0000 0010 0000 0002 0000  ..@.............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 0040 2300 0004 0000 82c9 2200 0300 6001  .@#......."...`.
     9+000000d0: 0040 2300 0004 0000 d1d1 2200 0300 6001  .@#......."...`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 0090 2200 da05 0000  ..........".....
    13 00000110: 00a0 2200 4821 0000 00f0 2200 c004 0000  ..".H!....".....
    14 00000120: 0070 1f00 2c0f 0100 0000 0000 0000 0000  .p..,...........
    15 00000130: 0000 2300 a825 0000 0000 0000 0000 0000  ..#..%..........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -140314,15 +140314,15 @@
    18 00224190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 002241a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 002241b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 002241c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 002241d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 002241e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 002241f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-00224200: 0000 0000 5b36 355e 0000 0000 7c91 2200  ....[65^....|.".
    26+00224200: 0000 0000 aa3e 355e 0000 0000 7c91 2200  .....>5^....|.".
    27 00224210: 0100 0000 2200 0000 2200 0000 2890 2200  ...."..."...(.".
    28 00224220: b090 2200 3891 2200 8041 0a00 4039 0a00  ..".8."..A..@9..
    29 00224230: 2043 0a00 30b8 1b00 b065 0a00 1044 0a00   C..0....e...D..
    30 00224240: a043 0a00 805a 0a00 105d 0a00 5061 0a00  .C...Z...]..Pa..
    31 00224250: d065 0a00 d058 0a00 b05b 0a00 1045 0a00  .e...X...[...E..
    32 00224260: 7048 0a00 305e 0a00 9062 0a00 7058 0a00  pH..0^...b..pX..
    33 00224270: 006f 0a00 606b 0a00 f068 0a00 606a 0a00  .o..`k...h..`j..
    

    bitcoin-wallet.exe

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0d00 0000 0000 00a4 5100  PE..d.........Q.
     4 00000090: 0000 0000 f000 2e00 0b02 0220 0012 4300  ........... ..C.
     5 000000a0: 009e 5100 0060 0000 e014 0000 0010 0000  ..Q..`..........
     6 000000b0: 0000 4000 0000 0000 0010 0000 0002 0000  ..@.............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 0080 5200 0004 0000 dbda 5100 0300 6001  ..R.......Q...`.
     9+000000d0: 0080 5200 0004 0000 22e3 5100 0300 6001  ..R.....".Q...`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 00c0 5100 de05 0000  ..........Q.....
    13 00000110: 00d0 5100 942d 0000 0020 5200 d804 0000  ..Q..-... R.....
    14 00000120: 0050 4b00 dcf4 0100 0000 0000 0000 0000  .PK.............
    15 00000130: 0030 5200 bc38 0000 0000 0000 0000 0000  .0R..8..........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -332442,15 +332442,15 @@
    18 00512990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 005129a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 005129b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 005129c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 005129d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 005129e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 005129f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-00512a00: 0000 0000 6736 355e 0000 0000 7cc1 5100  ....g65^....|.Q.
    26+00512a00: 0000 0000 ae3e 355e 0000 0000 7cc1 5100  .....>5^....|.Q.
    27 00512a10: 0100 0000 2200 0000 2200 0000 28c0 5100  ...."..."...(.Q.
    28 00512a20: b0c0 5100 38c1 5100 e0e0 1800 a0d8 1800  ..Q.8.Q.........
    29 00512a30: 80e2 1800 a06a 4300 1005 1900 70e3 1800  .....jC.....p...
    30 00512a40: 00e3 1800 e0f9 1800 70fc 1800 b000 1900  ........p.......
    31 00512a50: 3005 1900 30f8 1800 10fb 1800 70e4 1800  0...0.......p...
    32 00512a60: d0e7 1800 90fd 1800 f001 1900 d0f7 1800  ................
    33 00512a70: 600e 1900 c00a 1900 5008 1900 c009 1900  `.......P.......
    

    bitcoind.exe

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0d00 0000 0000 00b6 8c00  PE..d...........
     4 00000090: 0000 0000 f000 2e00 0b02 0220 00de 7200  ........... ..r.
     5 000000a0: 00b0 8c00 00b2 0000 e014 0000 0010 0000  ................
     6 000000b0: 0000 4000 0000 0000 0010 0000 0002 0000  ..@.............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 00f0 8d00 0004 0000 f10b 8d00 0300 6001  ..............`.
     9+000000d0: 00f0 8d00 0004 0000 9f13 8d00 0300 6001  ..............`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 00f0 8c00 d805 0000  ................
    13 00000110: 0000 8d00 9c33 0000 0060 8d00 a804 0000  .....3...`......
    14 00000120: 00d0 8000 007e 0300 0000 0000 0000 0000  .....~..........
    15 00000130: 0070 8d00 bc62 0000 0000 0000 0000 0000  .p...b..........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -573626,15 +573626,15 @@
    18 008c0b90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 008c0ba0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 008c0bb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 008c0bc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 008c0bd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 008c0be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 008c0bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-008c0c00: 0000 0000 8a37 355e 0000 0000 7cf1 8c00  .....75^....|...
    26+008c0c00: 0000 0000 383f 355e 0000 0000 7cf1 8c00  ....8?5^....|...
    27 008c0c10: 0100 0000 2200 0000 2200 0000 28f0 8c00  ...."..."...(...
    28 008c0c20: b0f0 8c00 38f1 8c00 50ce 3600 10c6 3600  ....8...P.6...6.
    29 008c0c30: f0cf 3600 b032 7300 80f2 3600 e0d0 3600  ..6..2s...6...6.
    30 008c0c40: 70d0 3600 50e7 3600 e0e9 3600 20ee 3600  p.6.P.6...6. .6.
    31 008c0c50: a0f2 3600 a0e5 3600 80e8 3600 e0d1 3600  ..6...6...6...6.
    32 008c0c60: 40d5 3600 00eb 3600 60ef 3600 40e5 3600  @.6...6.`.6.@.6.
    33 008c0c70: d0fb 3600 30f8 3600 c0f5 3600 30f7 3600  ..6.0.6...6.0.6.
    

    test_bitcoin.exe

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0c00 0000 0000 00da e800  PE..d...........
     4 00000090: 0000 0000 f000 2e00 0b02 0220 0038 ba00  ........... .8..
     5 000000a0: 00d4 e800 0016 0100 e014 0000 0010 0000  ................
     6 000000b0: 0000 4000 0000 0000 0010 0000 0002 0000  ..@.............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 0070 ea00 0004 0000 65aa e900 0300 6001  .p......e.....`.
     9+000000d0: 0070 ea00 0004 0000 12b2 e900 0300 6001  .p............`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 0070 e900 dc05 0000  .........p......
    13 00000110: 0080 e900 2035 0000 0000 0000 0000 0000  .... 5..........
    14 00000120: 0080 d800 6440 0400 0000 0000 0000 0000  ....d@..........
    15 00000130: 00e0 e900 1c7d 0000 0000 0000 0000 0000  .....}..........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -950682,15 +950682,15 @@
    18 00e81990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 00e819a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 00e819b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 00e819c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 00e819d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 00e819e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 00e819f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-00e81a00: 0000 0000 8f37 355e 0000 0000 7c71 e900  .....75^....|q..
    26+00e81a00: 0000 0000 3c3f 355e 0000 0000 7c71 e900  ....<?5^....|q..
    27 00e81a10: 0100 0000 2200 0000 2200 0000 2870 e900  ...."..."...(p..
    28 00e81a20: b070 e900 3871 e900 608c 7500 2084 7500  .p..8q..`.u. .u.
    29 00e81a30: 008e 7500 109e ba00 90b0 7500 f08e 7500  ..u.......u...u.
    30 00e81a40: 808e 7500 60a5 7500 f0a7 7500 30ac 7500  ..u.`.u...u.0.u.
    31 00e81a50: b0b0 7500 b0a3 7500 90a6 7500 f08f 7500  ..u...u...u...u.
    32 00e81a60: 5093 7500 10a9 7500 70ad 7500 50a3 7500  P.u...u.p.u.P.u.
    33 00e81a70: e0b9 7500 40b6 7500 d0b3 7500 40b5 7500  ..u.@.u...u.@.u.
    

    libbitcoinconsensus-0.dll

     0@@ -7,15 +7,15 @@
     1 00000060: 7420 6265 2072 756e 2069 6e20 444f 5320  t be run in DOS 
     2 00000070: 6d6f 6465 2e0d 0d0a 2400 0000 0000 0000  mode....$.......
     3 00000080: 5045 0000 6486 0c00 0000 0000 00ce 1400  PE..d...........
     4 00000090: 0000 0000 f000 2e20 0b02 0220 0018 1000  ....... ... ....
     5 000000a0: 00c8 1400 0018 0000 3013 0000 0010 0000  ........0.......
     6 000000b0: 0000 946d 0000 0000 0010 0000 0002 0000  ...m............
     7 000000c0: 0400 0000 0000 0000 0500 0200 0000 0000  ................
     8-000000d0: 0060 1500 0004 0000 c0fb 1400 0300 6001  .`............`.
     9+000000d0: 0060 1500 0004 0000 1504 1500 0300 6001  .`............`.
    10 000000e0: 0000 2000 0000 0000 0010 0000 0000 0000  .. .............
    11 000000f0: 0000 1000 0000 0000 0010 0000 0000 0000  ................
    12 00000100: 0000 0000 1000 0000 00e0 1400 6606 0000  ............f...
    13 00000110: 00f0 1400 8414 0000 0000 0000 0000 0000  ................
    14 00000120: 00c0 1200 a0cb 0000 0000 0000 0000 0000  ................
    15 00000130: 0030 1500 5c18 0000 0000 0000 0000 0000  .0..\...........
    16 00000140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    17@@ -84218,15 +84218,15 @@
    18 00148f90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    19 00148fa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    20 00148fb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    21 00148fc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    22 00148fd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    23 00148fe0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    24 00148ff0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
    25-00149000: 0000 0000 5136 355e 0000 0000 9ae1 1400  ....Q65^........
    26+00149000: 0000 0000 a63e 355e 0000 0000 9ae1 1400  .....>5^........
    27 00149010: 0100 0000 2500 0000 2500 0000 28e0 1400  ....%...%...(...
    28 00149020: bce0 1400 50e1 1400 8038 0200 5038 0200  ....P....8..P8..
    29 00149030: c0fd 0100 d0e2 0300 90da 0300 70e4 0300  ............p...
    30 00149040: e030 1000 0007 0400 60e5 0300 f0e4 0300  .0......`.......
    31 00149050: d0fb 0300 60fe 0300 a002 0400 2007 0400  ....`....... ...
    32 00149060: 20fa 0300 00fd 0300 60e6 0300 c0e9 0300   .......`.......
    33 00149070: 80ff 0300 e003 0400 c0f9 0300 5010 0400  ............P...
    
  15. laanwj commented at 2:41 pm on February 5, 2020: member

    Do we know what section / symbols these non-determinism differences are in? The first one (in the PE header) is probably the checksum. The second one is unclear to me, it doesn’t look like assembly code but a 32-bit number.

    Maybe a literal timestamp? Yes, this works out, these are little-endian UNIX timestamps:

     0bitcoin-qt.exe
     1
     2-9f37355e    Sat Feb  1 09:32:31 2020
     3+4b3f355e    Sat Feb  1 10:05:15 2020
     4
     5bitcoin-tx.exe
     6
     7-5b36355e    Sat Feb  1 09:27:07 2020
     8+aa3e355e    Sat Feb  1 10:02:34 2020
     9
    10bitcoin-wallet.exe
    11
    12-6736355e    Sat Feb  1 09:27:19 2020
    13+ae3e355e    Sat Feb  1 10:02:38 2020
    14
    15bitcoind.exe
    16
    17-8a37355e    Sat Feb  1 09:32:10 2020
    18+383f355e    Sat Feb  1 10:04:56 2020
    19
    20test_bitcoin.exe
    21
    22-8f37355e    Sat Feb  1 09:32:15 2020
    23+3c3f355e    Sat Feb  1 10:05:00 2020
    24
    25libbitcoinconsensus-0.dll
    26
    27-5136355e    Sat Feb  1 09:26:57 2020
    28+a63e355e    Sat Feb  1 10:02:30 2020
    
  16. dongcarl commented at 4:59 pm on February 5, 2020: member

    The first one (in the PE header) is probably the checksum.

    Yeah I believe it’s the checksum… Assuming that the checksum is of the whole file and not just of the header, perhaps fixing the timestamp will fix this checksum too?

    Maybe a literal timestamp? Yes, this works out, these are little-endian UNIX timestamps:

    Yay thanks! I was hoping we could avoid libfaketime like we did with the Linux binaries… But perhaps it’s inevitable :-( I’m going to give -Wl,--no-insert-timestamp a try first though (Source)

  17. fanquake commented at 1:44 am on February 6, 2020: member

    I’ve just completed two more builds, adding -Wl,--no-insert-timestamp to the LDFLAGS, and am no longer seeing any differences in the bitcoin-0.19.99-win64.zip files (excluding directory metadata). i.e diffoscope --exclude-directory-metadata build_1_output/bitcoin-0.19.99 build_2_output/bitcoin-0.19.99. All the binaries in bin/ match.

    I’m still seeing a diff for output/bitcoin-0.19.99-win64-setup-unsigned.exe (much larger diff later in the file):

     0--- build_1_output/bitcoin-0.19.99-win64-setup-unsigned.exe
     1+++ build_2_output/bitcoin-0.19.99-win64-setup-unsigned.exe
     2@@ -9179,15 +9179,15 @@
     3 00023da0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     4 00023db0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     5 00023dc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     6 00023dd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     7 00023de0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     8 00023df0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
     9 00023e00: 0000 0000 efbe adde 4e75 6c6c 736f 6674  ........Nullsoft
    10-00023e10: 496e 7374 a892 0000 a3ca e600 5d00 0080  Inst........]...
    11+00023e10: 496e 7374 a892 0000 81cd e600 5d00 0080  Inst........]...
    12 00023e20: 0000 5424 7c18 8100 44f9 e0b7 abb0 2913  ..T$|...D.....).
    13 00023e30: 8c06 5f94 e5ee 6d0f 1445 3e2c 3bca 8067  .._...m..E>,;..g
    14 00023e40: 30e3 1cf4 4b84 fb68 d331 eb8d 2db4 49dd  0...K..h.1..-.I.
    

    The two installers are also slightly different sizes:

    0$ ls -la build_1_output/bitcoin-0.19.99-win64-setup-unsigned.exe
    115272099  6 Feb 08:58 build_1_output/bitcoin-0.19.99-win64-setup-unsigned.exe
    2$ ls -la build_2_output/bitcoin-0.19.99-win64-setup-unsigned.exe
    315272833  6 Feb 09:19 build_2_output/bitcoin-0.19.99-win64-setup-unsigned.exe
    
  18. dongcarl commented at 4:41 pm on February 10, 2020: member
    @fanquake I can reproduce this non-reproducibility on my workstation… Will investigate.
  19. DrahtBot added the label Needs rebase on Feb 11, 2020
  20. dongcarl commented at 3:56 am on February 14, 2020: member

    :crossed_fingers:

    0$ git rev-parse HEAD
    1f38dfc7ae0a1489d33ae0b6ea7c49a3e34836adf
    2
    3$ find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    4acbe8d606d7d47da5ab874e72e6b195fd8d3137bdc2f97745995342222064f5c  output/bitcoin-0.19.99-win64-debug.zip
    59846a7e86db931a600d88ccd17c137cedac7ccb171469a8b50007e0f6139e94f  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    645201ef9571e98a5b6040c10645e5d5588dde550aaa74c0adf03230dd30726e3  output/bitcoin-0.19.99-win64.zip
    74b11b0db3fcc0a37154780f5089bebda4f940fc2a2c300be64fc2fa75797df2e  output/bitcoin-0.19.99-win-unsigned.tar.gz
    8c9e278d1341ca4435a17276f738b9d2f51de7a7cd33b71ff27c7200b317c7644  output/src/bitcoin-0.19.99.tar.gz
    
  21. dongcarl force-pushed on Feb 14, 2020
  22. dongcarl commented at 4:36 am on February 14, 2020: member

    Rebased over master :crossed_fingers:

    0$ git rev-parse HEAD
    1a7765f371e78d85f23bca43f475c5a1a4e32afb2
    2
    3$ find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    467cbc94d04718f7b81444d142a1c47040801aa7412feec956897adc2123113ea  output/bitcoin-0.19.99-win64-debug.zip
    56658d3823a299a8d63765162b3c0b18be8ae7bd950c6f564e26662f104428426  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    65059893e5c4cd427866448692536d51a422a45de5396f163b03922bfa631aba7  output/bitcoin-0.19.99-win64.zip
    7bffe6ec0cad08ba0dc112309865fd8d7e3740ad6e3e883f3a3e19aca515dc84f  output/bitcoin-0.19.99-win-unsigned.tar.gz
    8c33786b4e42f062f7aaa3c500513304fd8bca4cd8aa51048a5f375caa0809e98  output/src/bitcoin-0.19.99.tar.gz
    
  23. DrahtBot removed the label Needs rebase on Feb 14, 2020
  24. fanquake commented at 9:06 am on February 16, 2020: member

    Ran a couple builds, they are deterministic, but aren’t currently matching your hashes:

     0guix describe
     1  guix 4530fe8
     2    repository URL: https://git.savannah.gnu.org/git/guix.git
     3    branch: master
     4    commit: 4530fe8ecca456fcc7226914502ad452c33ce27b
     5
     6git rev-parse HEAD
     7a7765f371e78d85f23bca43f475c5a1a4e32afb2
     8
     9find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    10d865da5d1ff2f10d0545e3b23de7ad6bdad74d333be73e139392e243e514f681  output/bitcoin-0.19.99-win-unsigned.tar.gz
    111ad7966f49bd7fa11bb84a37514303d8b7acd46a3ccfd3f456c1e8c25122784e  output/bitcoin-0.19.99-win64-debug.zip
    1279274407a55a06299e90d5dae42a3a589697c5e4cbc51da2f98f5d4a097cf7af  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    1392571b2d6830fb03060ecf0cb357e1ff843ee2446f21bbcb870db2a17e0e2ede  output/bitcoin-0.19.99-win64.zip
    14c33786b4e42f062f7aaa3c500513304fd8bca4cd8aa51048a5f375caa0809e98  output/src/bitcoin-0.19.99.tar.gz
    
  25. dongcarl commented at 2:44 pm on February 17, 2020: member

    @fanquake Weird. Here are mine: https://send.firefox.com/download/e27a2a3a463ee70e/#q-3dDZ59pzrrvFhryIgmZw

    If you get a chance to upload yours, I’d be happy to take a look!

  26. fanquake commented at 5:39 am on February 18, 2020: member

    @dongcarl sure: https://send.firefox.com/download/8ee9cd6f49500764/#Y2OZ_HIDHRp3mu0Zm6B1Lg. sha256sum is b2b4cc78b1b3caad00b7ada013c23a986c957eb054fe7e9420e04b85e59ae051.

     0guix describe
     1  guix a02ca03
     2    repository URL: https://git.savannah.gnu.org/git/guix.git
     3    branch: master
     4    commit: a02ca03318faa77ab5ef06f4b7a3beed0c7db029
     5
     6git rev-parse HEAD
     7a7765f371e78d85f23bca43f475c5a1a4e32afb2
     8
     9find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    10d865da5d1ff2f10d0545e3b23de7ad6bdad74d333be73e139392e243e514f681  output/bitcoin-0.19.99-win-unsigned.tar.gz
    111ad7966f49bd7fa11bb84a37514303d8b7acd46a3ccfd3f456c1e8c25122784e  output/bitcoin-0.19.99-win64-debug.zip
    1279274407a55a06299e90d5dae42a3a589697c5e4cbc51da2f98f5d4a097cf7af  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    1392571b2d6830fb03060ecf0cb357e1ff843ee2446f21bbcb870db2a17e0e2ede  output/bitcoin-0.19.99-win64.zip
    14c33786b4e42f062f7aaa3c500513304fd8bca4cd8aa51048a5f375caa0809e98  output/src/bitcoin-0.19.99.tar.gz
    
  27. laanwj referenced this in commit 5ad80bec3f on Feb 28, 2020
  28. sidhujag referenced this in commit c13128fba0 on Feb 28, 2020
  29. dongcarl commented at 9:59 pm on March 9, 2020: member

    Okay some more insights… I’m trying to track down where the difference may be propagating from… And diffed the distsrc-x86_64-w64-mingw32/src/.libs/libbitcoinconsensus-0.dll of two different build runs… Here’s what I got: https://send.firefox.com/download/381b244913161e90/#c8Ds0IR1ZkehT9u28LJ2Hg

    I couldn’t make sense of the beginning of that diff, but I went to the very end and saw something like this:

     0@@ -576768,18 +576768,18 @@
     1 008ccff0: 635f 6f73 7472 696e 6773 7472 6561 6d49  c_ostringstreamI
     2 008cd000: 7753 7431 3163 6861 725f 7472 6169 7473  wSt11char_traits
     3 008cd010: 4977 4553 6149 7745 4545 005f 5f69 6d70  IwESaIwEEE.__imp
     4 008cd020: 5f41 6464 5665 6374 6f72 6564 4578 6365  _AddVectoredExce
     5 008cd030: 7074 696f 6e48 616e 646c 6572 005f 5a54  ptionHandler._ZT
     6 008cd040: 4953 7431 3462 6173 6963 5f69 6673 7472  ISt14basic_ifstr
     7 008cd050: 6561 6d49 6353 7431 3163 6861 725f 7472  eamIcSt11char_tr
     8-008cd060: 6169 7473 4963 4545 002e 7265 6670 7472  aitsIcEE..refptr
     9-008cd070: 2e5f 5a54 5653 7431 3362 6164 5f65 7863  ._ZTVSt13bad_exc
    10-008cd080: 6570 7469 6f6e 005f 5a54 5653 7431 315f  eption._ZTVSt11_
    11-008cd090: 5f74 696d 6570 756e 6374 4963 4500 2e72  _timepunctIcE..r
    12+008cd060: 6169 7473 4963 4545 005f 5a54 5653 7431  aitsIcEE._ZTVSt1
    13+008cd070: 315f 5f74 696d 6570 756e 6374 4963 4500  1__timepunctIcE.
    14+008cd080: 2e72 6566 7074 722e 5f5a 5456 5374 3133  .refptr._ZTVSt13
    15+008cd090: 6261 645f 6578 6365 7074 696f 6e00 2e72  bad_exception..r
    16 008cd0a0: 6566 7074 722e 5f5a 5456 4e53 7437 5f5f  efptr._ZTVNSt7__
    17 008cd0b0: 6378 7831 3139 6d6f 6e65 795f 6765 7449  cxx119money_getI
    18 008cd0c0: 7753 7431 3969 7374 7265 616d 6275 665f  wSt19istreambuf_
    19 008cd0d0: 6974 6572 6174 6f72 4977 5374 3131 6368  iteratorIwSt11ch
    20 008cd0e0: 6172 5f74 7261 6974 7349 7745 4545 4500  ar_traitsIwEEEE.
    21 008cd0f0: 2e72 6566 7074 722e 5f5a 4e53 7438 696f  .refptr._ZNSt8io
    22 008cd100: 735f 6261 7365 3449 6e69 7432 305f 535f  s_base4Init20_S_
    

    To me, this looks like two different orderings of the items:

    0.refptr
    1._ZTVSt13bad_exception
    2._ZTVSt11__timepunctIcE
    

    This occurs many times (but with differing items) if you look at the diff starting from the bottom. Anyone know what these are/how to interpret these?

  30. laanwj commented at 12:44 pm on March 12, 2020: member

    No, no idea what could cause linker symbols to be ordered differently in different builds. The only thing I can think of is the use of wildcards combined with non-deterministic directory ordering. Causing things to be processed in a different order. (are the intermediate .a archives deterministic?)

    We had some problems in the past with Qt tools using a (non-deterministic) hash table, but IIRC that was solved, and this is libconsensus so it should be affected by the minimum number of dependencies besides the build system.

  31. fanquake commented at 3:33 am on March 13, 2020: member

    @dongcarl @laanwj

    I think I might have the solution to the symbol ordering issue. Seems like we can use (some variant of) the -Wl,--sort-common=descending and -Wl,--sort-section=name" linker flags.

    I’ve run subsequent builds of this branch with the following patch applied:

     0diff --git a/contrib/guix/libexec/build.sh b/contrib/guix/libexec/build.sh
     1index ffbe332e7..831ef7d05 100644
     2--- a/contrib/guix/libexec/build.sh
     3+++ b/contrib/guix/libexec/build.sh
     4@@ -177,7 +177,7 @@ HOST_CXXFLAGS="$HOST_CFLAGS"
     5 # LDFLAGS
     6 case "$HOST" in
     7     *linux*)  HOST_LDFLAGS="-Wl,--as-needed -Wl,--dynamic-linker=$glibc_dynamic_linker -static-libstdc++" ;;
     8-    *mingw*)  HOST_LDFLAGS="-Wl,--no-insert-timestamp" ;;
     9+    *mingw*)  HOST_LDFLAGS="-Wl,--no-insert-timestamp -Wl,--sort-common=descending -Wl,--sort-section=name" ;;
    10 esac
    11 
    12 # Make $HOST-specific native binaries from depends available in $PATH
    

    and am seeing determinism, not just across libbitcoinconsensus-0.dll, but pretty much everywhere (when passing --exclude-directory-metadata).

    From what I understand looking at the ld docs, --sort-common=descending should be the default behaviour, so we might only need --sort-section=name, however I haven’t done enough builds yet.

  32. dongcarl commented at 4:11 am on March 13, 2020: member

    Here’s what I have for 069e108ec0c6a99a360c36d9be4a8ffd5de76d47:

    0$ find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    1cf63177dbd8af939df84fdcc318d3f5440df307fcb8a98a61fe43ff4512bacaf  output/bitcoin-0.19.99-win64-debug.zip
    238cfbfd5fdd8dbae89bba98b176737f1d732d1b320f7474e84bb8a6b6dfada3c  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    3dc547bca3ef9b5ca82b34d9437636a4b6b59a8f064fad6b43a376d04a11c20e2  output/bitcoin-0.19.99-win64.zip
    476f50f88697a217a2b7da35d14fec1b3726737383d31c67a8b67ccc4334fbe5c  output/bitcoin-0.19.99-win-unsigned.tar.gz
    5edd39acef01e8cb2a84184c31261dc430e293ba2e13307520a8995056493961c  output/src/bitcoin-0.19.99.tar.gz
    

    Here are the individual files in installed:

     0$ find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | sort -z | xargs -r0 sha256sum
     141cda8b4bdc0d1537c9cd1589177736bab87d0d4a8a93eddc92a14d011acbcd8  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
     29ef78dd0e386ea01aa980631e037ac87fd0a7aa39e6628710dbcd4c470cd224c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
     32c4319c1ac3ec6a3f36fd106dd879e8a0d831feb37328df285eaccdcac6dcc98  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
     4a2cc6b88d3f02b1fd0a0fa4bd0acb1c08947d725f072a3ebbc4b74b577ac61bd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
     558c7213a347eb470b4c9bee1025d8cdeb00eba2c577925bbaab014da109677e1  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
     66d3f6e8d6daf3ec7e13ec7c13ee8b3a363f5d757ee3d18a2ddaec8b243366bc3  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
     70c1f69aafdea0c1d75a9d9a99f12403b1167d4b9c6b5e01b92a4db6a8a96f99b  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
     81e7a18601ceb9d90a77995413346396031799d3ab4b6e61944b8db0bc2d727df  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
     9b899c1d358127707178973a766984cdf0f18e6cb9a563491a9aba17dd3a93333  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
    10aeea08a75296476818be1d34b07c590a5c8a98bbb0181041c28d0b2291e64ed8  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    11149812d3ed09b108fd4ae2ad8d2d8a14768aaa4c91fa59dc22371cecf85e03a6  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    121673cf929b1c8b2b0294b227946813aba1bd40cb8653b20fec9c9ae3d34d5477  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    13b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    14536c2b8418c5d69df385de30e76289a30d586892b0b780b638fb8db5095ef3db  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    1586e8bd39c5e82724f6d2478d3eb9fd34cfba51da8fa5b4f0117c7ab58d7d4db9  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    165e00e2971be1a48b3d384fa1ddfef1b3e6136f327456a2482ab95d098cd9d33d  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/README.md
    175a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    18fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    19a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    203a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    21d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    
  33. fanquake commented at 5:21 am on March 13, 2020: member

    Here’s what I have for 069e108:

    Looks like we’re still not getting matches (apart from docs etc). I’ve uploaded my installed dir here:

    0find output/ -type f -print0 | sort -z | xargs -r0 sha256sum
    1b58e6a6929cbe3c05383888267b999ba7f9cb3cd8a1d36bcefee0d074202d374  output/bitcoin-0.19.99-win-unsigned.tar.gz
    201d2d9fa78350c0b496cfe33e1ddeb5816cd3820ce73bd95e3cbc2222a5b66fe  output/bitcoin-0.19.99-win64-debug.zip
    36adcf588404ca33cbd46fa06bca946a31cc04b993cf8c2f1a700bc4c6f8bf45b  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    4648623ea3b9c49568e9551fb3cfd9c30b48909e4f1ffa99ae7a9420eba64f00c  output/bitcoin-0.19.99-win64.zip
    5edd39acef01e8cb2a84184c31261dc430e293ba2e13307520a8995056493961c  output/src/bitcoin-0.19.99.tar.gz
    
     0find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | sort -z | xargs -r0 sha256sum
     15e00e2971be1a48b3d384fa1ddfef1b3e6136f327456a2482ab95d098cd9d33d  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/README.md
     229eb8d966220b0eb4d75b6490528bf38096fc44a96532e745ac57f7d15aa4c65  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
     30dafdfa14486708be06304f299cfe74a54a9b2f0ba897f4a16e2b71535947143  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
     4157777d0420edd26c7b6b905f9d6fd309061273d59097f03d39873d03caac0bd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
     54d4ba0a8c0adf3e9f86929acc83804fe6438b9f43ebc997bab671328ed7631e8  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
     61d1ca7ed61f64e6bbefe8c12b7290a283bec14d92a0d5bdabfc35db527a5d8a9  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
     7192682babce47996180a4461b9c98e7121ccf020ef79422c308c7150c9a70ef4  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
     8e23039afb52eb8567eebe95a72dc9d7c14f5d51c97adf5291f60d85f9bdfe6b6  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
     9a2a4ab3dfcaf96e44cf03a09d0477698414f7487efdf13dc9d58a678b9d1eb4f  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    1093038dc6557c71a276b96b1da20afc520a0cb62fa2a5df7bb5a8fa516243cfaa  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
    1144dce899ffc12b68fc4df8508a312345188e8eecbe295013f14e98aa9577d7ce  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
    12bc921bc270634c0379638ffc9820c8945dcf01332fae4690eee4ddb5b0132aec  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    138ea7cc6b0507771e464a3b9d4675128c6d2543b615c5152945a58e7058388367  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    14b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    158fc91c50f2544178253afb596fdb17f50191c2cc6fd62869f9a62b6d59c67391  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    1685b679f8c40c2a4b7284feeacdb0016efa1ec9d2d6c20459a638c03ac34d3a33  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    175a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    18a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    193a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    20d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    21fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    
  34. laanwj added this to the milestone 0.21.0 on Mar 19, 2020
  35. dongcarl force-pushed on Mar 25, 2020
  36. dongcarl force-pushed on Mar 25, 2020
  37. dongcarl commented at 5:38 am on March 26, 2020: member

    I think I’ve got it.

    The main problem that we found in the end was that libtool prior to 74c8993c (first included in version 2.2.7b) did not sort find output. This meant that when we built our cross-compiling gcc, which has its release tarball bootstrapped with libtool 2.2.7a, we got a libstdc++.a that had non-deterministic object ordering. This libstdc++.a nondeterminism would then end up in our binaries, causing nondeterminism we were seeing above.

    In investigating this, I also saw a few useful patches from debian’s mingw-w64 packaging maintainers that are useful for reproducibility, and included them in my branch of Guix. I will upstream them as soon as I can.

     0$ find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | sort -z | xargs -r0 sha256sum
     12155b3c7e67070dabcac417b0c0a94f5e8c84a50502b629ea8c6532a756adeb1  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
     27fe714ee146d2cf541bc5e6ac0a34669b7e3a43da9be17951399346716296e81  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
     3612d963dabc63c020847b20dbb6c99b577fd68dcf8869344691c8b2df00f233c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
     4788e7456ff3eb4634901ede98cf9156b121ee011fc0cb8ff5fa1180d186988bd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
     54f298dffaecc2b9d47c2b20301c91bfbc8867e14b1381a33c2486acc35af61d5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
     69efdda238a6a5aa12940e29e369702f3e253a877670f3f56b81471ab69f04eac  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
     7ce55dcdabd387140cfdc1ec22746b7966182b4c3c2a5db224dde35c8462f1dab  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
     8d963532092e67dbc4702ae3619e1c24bc514d7895ac373b69315748b5f84d7e2  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
     93d2657ffae89d5f9a57c335f56198037509543136a3ef540d383ba97f52e1572  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
    1085934168b5d3546e10ceb23c65edcdeb1a6d0b130e543b53fc06d4c06ea2a96e  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    1111f7e363dc7ba8f67f7c2bdbf578688e305fb36654e76da38b4c7888d0856803  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    12b027ce099db1f8164e8ea22e0abf46e7d34962e37760889951e34ca4fa987c8a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    13b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    1449a4ed08024b202b74b7fb5b8e96f7b8abab68607503cf72b6939b845567fe51  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    15a82a25a5f273a2b7b7e51012d9ffdfc4f3cf97602997c916a3ddba5f61122f81  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    16c9ea36a83c960895637b447be87603981e0bd57c6584b17ac907618c9aacee96  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/readme.txt
    175a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    18fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    19a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    203a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    21d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    
  38. fanquake commented at 6:50 am on March 26, 2020: member

    😢

     0env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
     1  guix 730a4b1
     2    repository URL: https://git.savannah.gnu.org/git/guix.git
     3    branch: master
     4    commit: 730a4b10fa49d821e0a89af59485cecf8616cd50
     5
     6git rev-parse HEAD
     7203a4057eddf17a1fafc6f884248ac5a8f7941e8
     8
     9find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | sort -z | xargs -r0 sha256sum
    10b8ccb600f2fa5b481537cf03c8c3e0bdb688e5ddf738e9f8616e7aa2085f99e9  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
    115830267b2b6a9663360ab32454d935e1647f8fb9d617919e0466b169131a0c31  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
    123ede70808f520d3f07782d7c03e93d93dd4a7c9fd5193933a91e19dbcf9956a8  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
    1380a5f39c71cef9b275d1c625338757f482d3ee41701975f31fbfc06bd96e84d0  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
    14725f8bc5c690d2bdc8b398b408f5a598b6aad17d8cc33d9c48c4b6e4562af86c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
    152464cd6a6d784b4fcaf5f1549542f41d9c2f3fcec1487d74f21a56bf353dc975  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
    163c4ace1554b07870b3a0bc0b0c04186b0bd44870c6665a16ba52908e4a3349e0  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
    17f8adf944347fba03ac6709e538103cba95c91f167e274ff18fef585ae205aa8c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    18fbe8103bfe7bd6f4e367cd3d3369a8ca9bfdb56120b038e26e719d25e7a49891  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
    198ea81f64e309a023d862e9086a5c676e6018a8f589d3331cf7f86ad53445949c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
    204ab85d833bfbc11ddddaa1d008a090576dbaf2ff3c4fe92e966712435defc8c0  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    21b034918ca38eb285012e311c0cec72b7e533cdf7b306d7e2101801fda38afbce  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    22b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    23f26208efff146e03d2afe787b95e93cbaac15e9d531000a824743ee6e358b19b  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    241da5bcf0c2dc684014adefb4684741045366415bb46f42f70850b95730c650b4  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    25c9ea36a83c960895637b447be87603981e0bd57c6584b17ac907618c9aacee96  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/readme.txt
    265a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    27a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    283a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    29d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    30fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    
  39. fanquake commented at 0:38 am on March 27, 2020: member

    @dongcarl latest build is available here: https://send.firefox.com/download/8f8073d79fe4ef8d/#MfIdTWlcd_m27kOxgtLX5w.

    c4ff8ef8b6469e33a1e74b76bd8a997a76675877ed9fdf2a1ac0201414771205 installed.zip

  40. fanquake commented at 3:25 am on March 28, 2020: member

    @dongcarl distsrc-x86_64-w64-mingw32 and output dirs are up.

    0e127fd7bebebe671f5eea4b0e9bb5f3194a0bf4a3fdef4bc72cab0c33edc480a  distsrc-x86_64-w64-mingw32.zip
    1905200fb2c12013f60bae012e6c9c112c510aa5d2708a89a7b514cfe5228c83d  output.zip
    
  41. in contrib/guix/guix-build.sh:24 in 203a4057ed outdated
    20-                      --commit=b3a7c72c8b2425f8ddb0fc6e3b1caeed40f86dee \
    21+                      --commit=cf347affd642c709f7e423f7111794ffdb09f5a6 \
    22                       -- "$@"
    23 }
    24 
    25 # Deterministically build Bitcoin Core for HOSTs (overriable by environment)
    


    fanquake commented at 7:57 am on March 28, 2020:
    nit: s/overriable/overridable

    dongcarl commented at 0:09 am on March 31, 2020:
    Fixed in 83974615af3ce6b4b687974619a68bfd96aa7620
  42. in contrib/guix/guix-build.sh:29 in 203a4057ed outdated
    26-for host in ${HOSTS=x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu}; do
    27+# shellcheck disable=SC2153
    28+for host in ${HOSTS=x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu riscv64-linux-gnu x86_64-w64-mingw32}; do
    29 
    30     # Display proper warning when the user interrupts the build
    31     trap 'echo "** INT received while building ${host}, you may want to clean up the relevant output and distsrc-* directories before rebuilding"' INT
    


    fanquake commented at 8:00 am on March 28, 2020:
    Maybe add deploy dirs here as well, as we’ve now got windeploy and will have something for macOS.

    dongcarl commented at 0:09 am on March 31, 2020:
    Fixed in 7828f65b7c8fe269c407b90bb3ff9e90f8f1d3dc
  43. in contrib/guix/guix-build.sh:70 in 203a4057ed outdated
    83+        #                     maps our current working directory to /bitcoin
    84+        #                     inside the isolated container, which we later cd
    85+        #                     into.
    86+        #
    87+        #     While we don't want to map our current working directory to the
    88+        #     same exact path (as this introduces irrepreducibility), we do want
    


    fanquake commented at 8:02 am on March 28, 2020:
    nit: s/irrepreducibility/irreproducibility

    dongcarl commented at 0:09 am on March 31, 2020:
    Fixed in 83974615af3ce6b4b687974619a68bfd96aa7620
  44. in contrib/guix/libexec/build.sh:138 in 203a4057ed outdated
    133@@ -111,7 +134,8 @@ make -C depends --jobs="$MAX_JOBS" HOST="$HOST" \
    134                                    x86_64_linux_RANLIB=x86_64-linux-gnu-ranlib \
    135                                    x86_64_linux_NM=x86_64-linux-gnu-nm \
    136                                    x86_64_linux_STRIP=x86_64-linux-gnu-strip \
    137-                                   qt_config_opts_i686_linux='-platform linux-g++ -xplatform bitcoin-linux-g++'
    138+                                   qt_config_opts_i686_linux='-platform linux-g++ -xplatform bitcoin-linux-g++' \
    139+                                   mingw32_CFLAGS='-DMINGW_HAS_SECURE_API=1 -pipe'
    


    fanquake commented at 8:06 am on March 28, 2020:
    Should we also be setting MINGW_HAS_SECURE_API for regular builds? I remember you talking about this potentially fixing an issue you were seeing. Can you remember what that was?

    dongcarl commented at 6:08 pm on March 30, 2020:

    Pre-https://github.com/mirror/mingw-w64/commit/3bef7c2206bb6f9552ea7e61315c4bf7af3aa6c9 (first included in mingw-w64 v7.0.0), we had to either -DMINGW_HAS_SECURE_API=1 or specify --enable-secure-api at configure time. Debian does the latter.

    So I think I’ll bump to mingw-w64 v7.0.0 in this PR, I was initially hesitant as it seems v7.0.0 won’t be as battle-tested as v6.0.0, but it seems Ubuntu 20.04 LTS will be releasing with v7.0.0, so perhaps that’s a problem that will solve itself. Plus we’ll get the _FORTIFY_SOURCE support.


    dongcarl commented at 1:53 am on April 1, 2020:
    Context: waiting to rebase over #18358 once we figure out the best solution there. I’ve tested with cherry-picking existing solutions in that PR and the build seems to work.
  45. in contrib/guix/libexec/build.sh:217 in 203a4057ed outdated
    216+    case "$HOST" in
    217+        *linux*)
    218+            # Check that executables only contain allowed gcc, glibc and libstdc++
    219+            # version symbols for Linux distro back-compatibility.
    220+            make -C src --jobs=1 check-symbols  ${V:+V=1}
    221+            ;;
    


    fanquake commented at 8:08 am on March 28, 2020:
    I added dylib checking for PE binaries in #18395. Can we add the relevant case and make -C src check-symbols call here too?

    dongcarl commented at 0:10 am on March 31, 2020:
    Fixed in e63cb74749aa3b82c04fc9dacd963d3de00784b9
  46. in contrib/guix/libexec/build.sh:291 in 203a4057ed outdated
    298+                    || ( rm -f "${OUTDIR}/${DISTNAME}-${HOST//x86_64-w64-mingw32/win64}-debug.zip" && exit 1 )
    299+                ;;
    300+            *linux*)
    301+                find "${DISTNAME}" -not -name "*.dbg" -print0 \
    302+                    | sort --zero-terminated \
    303+                    | tar --create --no-recursion --mode='u+rw,go+r-w,a+X' --null --files-from=- \
    


    fanquake commented at 8:12 am on March 28, 2020:
    Do / should we be setting --owner and --group in any of these tar calls? I assume we aren’t setting --mtime explicitly because we’re in the container?

    dongcarl commented at 0:11 am on March 31, 2020:
    I’m setting TAR_OPTIONS at the beginning of the file, which gets passed to tar calls. I remember there being a back-and-forth w/re TAR_OPTIONS vs not. Will look at it again…
  47. in contrib/guix/libexec/build.sh:278 in 203a4057ed outdated
    285+        case "$HOST" in
    286+            *mingw*)
    287+                find "${DISTNAME}" -not -name "*.dbg" -print0 \
    288+                    | xargs -0r touch --no-dereference --date="@${SOURCE_DATE_EPOCH}"
    289+                find "${DISTNAME}" -not -name "*.dbg" \
    290+                    | sort \
    


    fanquake commented at 8:20 am on March 28, 2020:

    Can you explain the usage of --zero-terminated with sort? I see you’re only using it in the linux case here, but are using it in the mingw case below. Is this something we can just pass all the time? If not, could this cause reproducibility issues if we forget it in future?

    I couldn’t see it in the man page for tar, but I could find it for sed.


    dongcarl commented at 6:24 pm on March 30, 2020:

    Yes! The reason for this difference is that tar has a --null flag while zip does not.

    The reason for using -print0, --zero-terminated, and --null is out of an abundance of caution: a newline character is a valid character in filenames, but \0 is not. However, I guess this is defeated by the fact that zip doesn’t have any options that support this. Perhaps a better thing is to error if find finds any filenames with newlines in the filename? Would like feedback.

  48. in contrib/guix/manifest.scm:33 in 203a4057ed outdated
    25              (guix utils))
    26 
    27+(define (make-ssp-fixed-gcc xgcc)
    28+  "Given a XGCC package, return a modified package that uses the SSP function
    29+from glibc instead of from libssp.so. Taken from:
    30+http://www.linuxfromscratch.org/hlfs/view/development/chapter05/gcc-pass1.html"
    


    fanquake commented at 8:22 am on March 28, 2020:
    Could mention that you can ensure this is working by checking that we aren’t linked against libssp.so. Although symbol-check will be taking care of this as well.

    dongcarl commented at 0:10 am on March 31, 2020:
    Fixed in e63cb74749aa3b82c04fc9dacd963d3de00784b9
  49. in share/setup.nsi.in:5 in 203a4057ed outdated
    1@@ -2,6 +2,11 @@ Name "@PACKAGE_NAME@ (64-bit)"
    2 
    3 RequestExecutionLevel highest
    4 SetCompressor /SOLID lzma
    5+SetDateSave off
    


    fanquake commented at 8:24 am on March 28, 2020:
    👍 SetDateSave. I think adding the debugging info below is fine as well.
  50. fanquake commented at 8:27 am on March 28, 2020: member

    Followed up with @dongcarl and we can ignore my output above. It looks like that from 203a4057eddf17a1fafc6f884248ac5a8f7941e8 we are reproducible:

     0  guix 27c3afa
     1    repository URL: https://git.savannah.gnu.org/git/guix.git
     2    branch: master
     3    commit: 27c3afa940693376fd1a2a55602f4af9f53798b6
     4
     5git rev-parse HEAD
     6203a4057eddf17a1fafc6f884248ac5a8f7941e8
     7
     8find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | sort -z | xargs -r0 sha256sum
     92155b3c7e67070dabcac417b0c0a94f5e8c84a50502b629ea8c6532a756adeb1  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
    107fe714ee146d2cf541bc5e6ac0a34669b7e3a43da9be17951399346716296e81  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
    114f298dffaecc2b9d47c2b20301c91bfbc8867e14b1381a33c2486acc35af61d5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
    129efdda238a6a5aa12940e29e369702f3e253a877670f3f56b81471ab69f04eac  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
    13ce55dcdabd387140cfdc1ec22746b7966182b4c3c2a5db224dde35c8462f1dab  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
    14d963532092e67dbc4702ae3619e1c24bc514d7895ac373b69315748b5f84d7e2  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
    153d2657ffae89d5f9a57c335f56198037509543136a3ef540d383ba97f52e1572  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
    1685934168b5d3546e10ceb23c65edcdeb1a6d0b130e543b53fc06d4c06ea2a96e  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    17612d963dabc63c020847b20dbb6c99b577fd68dcf8869344691c8b2df00f233c  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
    18788e7456ff3eb4634901ede98cf9156b121ee011fc0cb8ff5fa1180d186988bd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
    1911f7e363dc7ba8f67f7c2bdbf578688e305fb36654e76da38b4c7888d0856803  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    20b027ce099db1f8164e8ea22e0abf46e7d34962e37760889951e34ca4fa987c8a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    21b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    2249a4ed08024b202b74b7fb5b8e96f7b8abab68607503cf72b6939b845567fe51  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    23a82a25a5f273a2b7b7e51012d9ffdfc4f3cf97602997c916a3ddba5f61122f81  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    24c9ea36a83c960895637b447be87603981e0bd57c6584b17ac907618c9aacee96  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/readme.txt
    255a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    26a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    273a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    28d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    29fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    
  51. in contrib/guix/libexec/build.sh:267 in 203a4057ed outdated
    264+        case "$HOST" in
    265+            *mingw*)
    266+                cp "${DISTSRC}/doc/README_windows.txt" "${DISTNAME}/readme.txt"
    267+                ;;
    268+            *linux*)
    269+                cp "${DISTSRC}/doc/README.md" "${DISTNAME}/"
    


    TheCharlatan commented at 0:57 am on March 29, 2020:
    My build currently fails on this step with cp: cannot stat '/bitcoin/distsrc-x86_64-linux-gnu/doc/README.md': No such file or directory. I don’t think the README is actually moved to the doc directory, or am I missing something? At least I cannot see a step for it to be copied in the top level Makefile.am, unlike for README_windows.txt which is listed.

    dongcarl commented at 0:12 am on March 31, 2020:
    True! You’re right. I think this is a result of #18331, which I’m seeing if I can fix with #18478

    MarcoFalke commented at 0:40 am on March 31, 2020:
    Why can’t this copy from the source dir and not from the dist dir. E.g. cp /bitcoin/doc/README.md ...?
  52. in contrib/guix/libexec/build.sh:2 in 203a4057ed outdated
    0@@ -1,4 +1,5 @@
    1 #!/usr/bin/env bash
    2+export TZ=UTC
    


    MarcoFalke commented at 11:40 pm on March 30, 2020:

    in commit 5f8a2f43ff3becd329da9c9b303fb4322ad71a08:

    Can this be set after LC_ALL=C to make travis pass?

  53. MarcoFalke commented at 11:58 pm on March 30, 2020: member
    skimmed ACK 203a4057eddf17a1fafc6f884248ac5a8f7941e8
  54. DrahtBot added the label Needs Guix build on Mar 31, 2020
  55. MarcoFalke commented at 2:57 am on March 31, 2020: member

    It appears that guix can not run in podman? Has anyone tried this?

     0# guix install hello --no-substitutes --max-jobs=1
     1accepted connection from pid 4194, user root
     2guix install: warning: Consider running 'guix pull' followed by
     3'guix package -u' to get up-to-date packages and security updates.
     4
     5guix install: error: cloning builder process: Operation not permitted
     6
     7
     8# guix pull 
     9accepted connection from pid 4216, user root
    10Migrating profile generations to '/var/guix/profiles/default'...
    11Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'...
    12Building from this channel:
    13  guix      https://git.savannah.gnu.org/git/guix.git	2330ef9
    14substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
    15substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
    16substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0%
    17guix pull: error: cloning builder process: Operation not permitted
    
  56. dongcarl commented at 5:26 am on March 31, 2020: member
    @MarcoFalke I think sysctl kernel.unprivileged_userns_clone=1 should fix it, if that’s not allowed, you might need to run guix-daemon as a privileged podman. Happy to take a look at scripts/files to make this work!
  57. guix: Build support for Windows 570d769c6c
  58. guix: Improve guix-build.sh documentation 91897c95e1
  59. guix: Appease shellcheck. df953a4c9a
  60. guix: Remove dead links from README. c4cce00eac
  61. guix: Make x86_64-w64-mingw32 builds reproducible
    - Add "--no-insert-timestamp" LDFLAG for x86_64-w64-mingw32 builds
    
    "The option --no-insert-timestamp can be used to insert a zero value for
    the timestamp, this ensuring that binaries produced from identical
    sources will compare identically." - ld(1)
    
    - Set "SetDateSave off" in NSIS script
    
    From https://nsis.sourceforge.io/Docs/Chapter4.html#flags
    
    "This command sets the file date/time saving flag which is used by the
    File command to determine whether or not to save the last write date and
    time of the file, so that it can be restored on installation. Valid
    flags are 'on' and 'off'. 'on' is the default."
    
    - Add commented out NSIS options for reproducibility debugging in NSIS
      script
    
    - Make ZIPs deterministic by reseting file modification times to
      SOURCE_DATE_EPOCH using touch(1) (Reference:
      https://reproducible-builds.org/docs/archives/)
    acf4b3b3b5
  62. guix: Set the well-known timezone env var ef4f7e4c45
  63. guix: Use gcc-8 for mingw-w64 instead of 7
    We're using mingw-w64 6.0.0, which is paired with gcc-8 in most distros.
    93e41b7e3b
  64. guix: Bump time-machine for mingw-w64 patches
    This bump will includes a couple of commits which improve the
    reproducibility of the mingw-w64 toolchain. Most of which came from
    debian. They will be upstreamed as upstream Guix release timeline
    allows.
    360a9e0ad5
  65. guix: Reinstate make-ssp-fixed-gcc
    Unfortunately, gcc is still not smart enough to detect whether or not
    mingw-w64 provides ssp, so let's put it back just for mingw-w64.
    ff821dd2a1
  66. guix: Spelling fixes 3f1f03c67a
  67. guix: Expand on INT trap message 449d8fe25b
  68. guix: Check mingw symbols, improve SSP fix docs 35a96792dd
  69. guix: Bump to upstream commit with mingw-w64 changes
    Most of the mingw-w64 toolchain changes have now been upstreamed, we can
    point to a commit that exists upstream.
    
    NOTE: I'm not changing the URL yet until we see that Guix upstream will
    accept all my patches for macOS.
    
    -----
    
    The Guix tree that's referred to by this commit contains the following
    changes relevant to our mingw-w64 build:
    
    b066c25026
    
      Adds a PACKAGES-WITH-*PATCHES procedure which we can use in the future
      to apply patches to packages if those patches are not considered
      appropriate to upstream Guix
    
    4719b71572
    
      Adds mingw-w64 (the libc itself) reproducibility patches, taken from
      debian.
    
    79825bee07 + 401d28e433 + c1c50cb5b0
    
      Add mingw-w64 specific binutils patches, taken from debian.
      Specifically, the "Make DLL import libraries reproducible" patch made
      libbitcoinconsensus.dll.a build reproducibly. The followup commits
      were hotfixes for my mistakes.
    
    0f864175dc
    
      Bumps mingw-w64 to v7.0.0. This is the first release that enables
      secure APIs by default (which we need), and gains _FORTIFY_SOURCE
      support. This will also be what Ubuntu Focal 20.04 LTS releases with.
    
    cdf00cf75d
    
      Bumps NSIS to v3.05. This is the first release that includes a fix for
      a reproducibility bug found by some of the electrum developers. See
      details here: https://sourceforge.net/p/nsis/bugs/1230/
    93439a71ed
  70. guix: Don't set MINGW_HAS_SECURE_API CFLAG in depends
    This is no longer needed after 3bef7c22 in the mingw-w64 git repository,
    which is first included in mingw-w64 v7.0.0.
    
    As of the previous bump to our Guix time machine, we now use mingw-w64
    v7.0.0.
    ba0b99bdd6
  71. guix: Use gcc-9 for mingw-w64 instead of 8
    The libtool unsorted 'find' determinism issue seemed to have been solved
    in gcc-9's git: d41cd173e23ebea7c758644d6ad6e0fde1c2e3a6 or SVN: r262451
    
    Furthermore, it seems that Ubuntu Focal 20.04 LTS is going to ship with
    gcc 9 and mingw-w64 7, which will match what we have now.
    
    -----
    
    A note on this:
    
    Careful observers will see that previously I stated that all released
    versions of gcc were bootstrapped with a libtool 2.2.7a, meaning that
    they all had the unsorted 'find' determinism issue first resolved in
    libtool 2.2.7b.
    
    However, I was mistaken, gcc's ltmain.sh CLAIMS it was generated by
    libtool 2.2.7a, but it was in fact edited manually. It seems that gcc
    maintains their own versions of ltmain.sh and libtool.m4, and only
    sometimes backports patches from upstream.
    
    Quite confusing.
    0b66d22da5
  72. dongcarl force-pushed on Apr 7, 2020
  73. guix: Appease travis. a35e323589
  74. dongcarl commented at 11:33 pm on April 7, 2020: member

    Rebased to include the #18358 merge. It’s a lot of commits, but it preserves the history, which I know some reviewers like. Let me know if people want things squashed instead, and I’d be happy to oblige.

    A few commit messages that would give more context on the last bit of investigation/upstreaming done for this PR:

     0commit 93439a71eda49fb69f1e82966a23a946733aa6fa
     1Author: Carl Dong <contact@carldong.me>
     2Date:   Tue Apr 7 18:28:28 2020 -0400
     3
     4    guix: Bump to upstream commit with mingw-w64 changes
     5
     6    Most of the mingw-w64 toolchain changes have now been upstreamed, we can
     7    point to a commit that exists upstream.
     8
     9    NOTE: I'm not changing the URL yet until we see that Guix upstream will
    10    accept all my patches for macOS.
    11
    12    -----
    13
    14    The Guix tree that's referred to by this commit contains the following
    15    changes relevant to our mingw-w64 build:
    16
    17    b066c25026
    18
    19      Adds a PACKAGES-WITH-*PATCHES procedure which we can use in the future
    20      to apply patches to packages if those patches are not considered
    21      appropriate to upstream Guix
    22
    23    4719b71572
    24
    25      Adds mingw-w64 (the libc itself) reproducibility patches, taken from
    26      debian.
    27
    28    79825bee07 + 401d28e433 + c1c50cb5b0
    29
    30      Add mingw-w64 specific binutils patches, taken from debian.
    31      Specifically, the "Make DLL import libraries reproducible" patch made
    32      libbitcoinconsensus.dll.a build reproducibly. The followup commits
    33      were hotfixes for my mistakes.
    34
    35    0f864175dc
    36
    37      Bumps mingw-w64 to v7.0.0. This is the first release that enables
    38      secure APIs by default (which we need), and gains _FORTIFY_SOURCE
    39      support. This will also be what Ubuntu Focal 20.04 LTS releases with.
    40
    41    cdf00cf75d
    42
    43      Bumps NSIS to v3.05. This is the first release that includes a fix for
    44      a reproducibility bug found by some of the electrum developers. See
    45      details here: https://sourceforge.net/p/nsis/bugs/1230/
    

    and

     0commit 0b66d22da5f53640e22f05adf880782c613e6d0f
     1Author: Carl Dong <contact@carldong.me>
     2Date:   Tue Apr 7 18:23:53 2020 -0400
     3
     4    guix: Use gcc-9 for mingw-w64 instead of 8
     5
     6    The libtool unsorted 'find' determinism issue seemed to have been solved
     7    in gcc-9's git: d41cd173e23ebea7c758644d6ad6e0fde1c2e3a6 or SVN: r262451
     8
     9    Furthermore, it seems that Ubuntu Focal 20.04 LTS is going to ship with
    10    gcc 9 and mingw-w64 7, which will match what we have now.
    11
    12    -----
    13
    14    A note on this:
    15
    16    Careful observers will see that previously I stated that all released
    17    versions of gcc were bootstrapped with a libtool 2.2.7a, meaning that
    18    they all had the unsorted 'find' determinism issue first resolved in
    19    libtool 2.2.7b.
    20
    21    However, I was mistaken, gcc's ltmain.sh CLAIMS it was generated by
    22    libtool 2.2.7a, but it was in fact edited manually. It seems that gcc
    23    maintains their own versions of ltmain.sh and libtool.m4, and only
    24    sometimes backports patches from upstream.
    25
    26    Quite confusing.
    
  75. dongcarl commented at 11:38 pm on April 7, 2020: member

    Also, here are my hashes for a35e3235891d35daa167116cc70340140e883f06:

     0$ find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
     17ab680cf4cf431319c90e9fb0e4abeba5fd4cb7a3a33302d7eeedc6c0bc220b6  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
     2c1026cb9fd0a0826eb9baadafaada7cc391bd217ff6a0f11987ac86da32b8c48  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
     3d409e656769867f56ff1ec13e55025e734313291d87a7fdd72dc25895bf262dd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
     43e3801b421c1a8a34cde1c6deb02776c9358aa5d1d015503348ea539ca6b6abe  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
     566e85e55bcd71d9644508e6a879fdb151ebf6d7472c94a20efd6f2224ae0c735  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
     61031d08a859ab115ac394a4acb652d3dd6e9a71f6bdb5915bec18ece7fc692f9  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
     7c902601b5b884f84c7cdec322fbccb41cefff89a3408ee1faa7491c418e16371  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
     82fd5252192e291531532743b30f7134ffecec00107948ba275d6031f99e62ac7  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
     9cc428ade350b76e38513c85b16d5a46baaf3f8adbb879a3f3f7445e29dcbec42  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
    10427fcb14a3a79b5e431ad9d19ea29e3c6bf29823ca0564b2a75821cb8a37f2dc  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
    11d59c63a74f1ec59ceadf96d696596ec517c206fe5c36fd62a4f011539380ca23  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    122335e8db7d39e7fd77c452aeae6eda4fd64a8d7cc4f6172131476900def6c0c0  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    13b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    1491b29a04affa6de8a39d380a96e4ece0b6148dd1a1174ca61965a92f8072b89e  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    1597e338dd0451ecfec7dca0ccdabd4bc367ca3724d565ce5a736e52444d064997  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    16c9ea36a83c960895637b447be87603981e0bd57c6584b17ac907618c9aacee96  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/readme.txt
    175a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    18a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    193a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    20d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    21fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    
    0$ find output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    1da2072e35e0fd621edfc5e87f12f5cac6021b4b10a9ef3f726a2a20bc086c6e3  output/bitcoin-0.19.99-win-unsigned.tar.gz
    283e34b7a7e3901c55595f97d96575958083f8574ef94d3e0c01812632bcf0f2f  output/bitcoin-0.19.99-win64-debug.zip
    364358f7913ea14d28bcfe73d1bfa4f87c3ba5a05aafec6e676e74aa4eba62313  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    473e6132ab35c58fca2abfa5f66ab5352365aac147a337f8cc91d5887d0e2521f  output/bitcoin-0.19.99-win64.zip
    5064592f1f0de13058de3cb6822df810fa8eea69e4afb86a430b3a33bfc99e1d2  output/src/bitcoin-0.19.99.tar.gz
    
  76. fanquake commented at 2:05 am on April 8, 2020: member

    Hashes still look good at a35e3235891d35daa167116cc70340140e883f06:

     0bash-5.0# git rev-parse HEAD
     1a35e3235891d35daa167116cc70340140e883f06
     2
     3bash-5.0# env PATH="/root/.config/guix/current/bin${PATH:+:}$PATH" guix describe
     4  guix 0eb799e
     5    repository URL: https://git.savannah.gnu.org/git/guix.git
     6    branch: master
     7    commit: 0eb799e6696202316b7e5062ba21bff9ece7a789
     8
     9bash-5.0# find output/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    10da2072e35e0fd621edfc5e87f12f5cac6021b4b10a9ef3f726a2a20bc086c6e3  output/bitcoin-0.19.99-win-unsigned.tar.gz
    1183e34b7a7e3901c55595f97d96575958083f8574ef94d3e0c01812632bcf0f2f  output/bitcoin-0.19.99-win64-debug.zip
    1264358f7913ea14d28bcfe73d1bfa4f87c3ba5a05aafec6e676e74aa4eba62313  output/bitcoin-0.19.99-win64-setup-unsigned.exe
    1373e6132ab35c58fca2abfa5f66ab5352365aac147a337f8cc91d5887d0e2521f  output/bitcoin-0.19.99-win64.zip
    14064592f1f0de13058de3cb6822df810fa8eea69e4afb86a430b3a33bfc99e1d2  output/src/bitcoin-0.19.99.tar.gz
    15
    16bash-5.0# find distsrc-x86_64-w64-mingw32/installed/ -type f -print0 | env LC_ALL=C sort -z | xargs -r0 sha256sum
    177ab680cf4cf431319c90e9fb0e4abeba5fd4cb7a3a33302d7eeedc6c0bc220b6  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe
    18c1026cb9fd0a0826eb9baadafaada7cc391bd217ff6a0f11987ac86da32b8c48  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-cli.exe.dbg
    19d409e656769867f56ff1ec13e55025e734313291d87a7fdd72dc25895bf262dd  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe
    203e3801b421c1a8a34cde1c6deb02776c9358aa5d1d015503348ea539ca6b6abe  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-qt.exe.dbg
    2166e85e55bcd71d9644508e6a879fdb151ebf6d7472c94a20efd6f2224ae0c735  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe
    221031d08a859ab115ac394a4acb652d3dd6e9a71f6bdb5915bec18ece7fc692f9  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-tx.exe.dbg
    23c902601b5b884f84c7cdec322fbccb41cefff89a3408ee1faa7491c418e16371  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe
    242fd5252192e291531532743b30f7134ffecec00107948ba275d6031f99e62ac7  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoin-wallet.exe.dbg
    25cc428ade350b76e38513c85b16d5a46baaf3f8adbb879a3f3f7445e29dcbec42  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe
    26427fcb14a3a79b5e431ad9d19ea29e3c6bf29823ca0564b2a75821cb8a37f2dc  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/bitcoind.exe.dbg
    27d59c63a74f1ec59ceadf96d696596ec517c206fe5c36fd62a4f011539380ca23  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe
    282335e8db7d39e7fd77c452aeae6eda4fd64a8d7cc4f6172131476900def6c0c0  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/bin/test_bitcoin.exe.dbg
    29b96be38342dd488fc32531bf0b9c54fbebf22795b00703472c29f605eedab6c5  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/include/bitcoinconsensus.h
    3091b29a04affa6de8a39d380a96e4ece0b6148dd1a1174ca61965a92f8072b89e  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll
    3197e338dd0451ecfec7dca0ccdabd4bc367ca3724d565ce5a736e52444d064997  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/lib/libbitcoinconsensus-0.dll.dbg
    32c9ea36a83c960895637b447be87603981e0bd57c6584b17ac907618c9aacee96  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/readme.txt
    335a5195f9e757665fd1c879e4383537ae0d584e3a101ec34ef821379bc6e92342  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-cli.1
    34a78e3d4a3d2127b77b5addc8b758b561e530fab12115fadd4c990bf1f6c19661  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-qt.1
    353a58bbb8a3cf469e191ca1b5cb5a497ed0c8e8ac6292fbde2271dcecb5af4634  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-tx.1
    36d9e6659155aa9672f268190c4c90bdb25647399fb43056d5be7071ea78bff89a  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoin-wallet.1
    37fc8b190f85394fa0cb259ef8ef3df7200e90ef831c08906880b278be2a9f1378  distsrc-x86_64-w64-mingw32/installed/bitcoin-0.19.99/share/man/man1/bitcoind.1
    
  77. fanquake approved
  78. fanquake commented at 10:33 am on April 12, 2020: member
    ACK a35e3235891d35daa167116cc70340140e883f06 2/3
  79. fanquake merged this on Apr 12, 2020
  80. fanquake closed this on Apr 12, 2020

  81. MarcoFalke removed the label Needs Guix build on Apr 12, 2020
  82. sidhujag referenced this in commit 9543357506 on Apr 13, 2020
  83. fanquake referenced this in commit d96fdc2a39 on May 6, 2020
  84. sidhujag referenced this in commit 54e7154ccb on May 12, 2020
  85. fanquake moved this from the "PRs" to the "Done" column in a project

  86. sidhujag referenced this in commit ca286d5015 on Nov 10, 2020
  87. UdjinM6 referenced this in commit 78b0932153 on Oct 23, 2021
  88. UdjinM6 referenced this in commit 6ae5c130dd on Oct 23, 2021
  89. UdjinM6 referenced this in commit c0572028e3 on Dec 4, 2021
  90. PhotoshiNakamoto referenced this in commit ad0ab16751 on Dec 13, 2021
  91. DrahtBot locked this on Feb 15, 2022

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2024-12-19 00:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me