From debbugs-submit-bounces@debbugs.gnu.org Tue Jun 02 14:59:14 2020 Received: (at submit) by debbugs.gnu.org; 2 Jun 2020 18:59:15 +0000 Received: from localhost ([127.0.0.1]:40964 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgC82-0007K0-LM for submit@debbugs.gnu.org; Tue, 02 Jun 2020 14:59:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:46320) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgC80-0007Jt-SX for submit@debbugs.gnu.org; Tue, 02 Jun 2020 14:59:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:56954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jgC80-0000xm-Je for bug-guix@gnu.org; Tue, 02 Jun 2020 14:59:12 -0400 Received: from mail-pf1-x435.google.com ([2607:f8b0:4864:20::435]:33029) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jgC7y-00084O-J8 for bug-guix@gnu.org; Tue, 02 Jun 2020 14:59:11 -0400 Received: by mail-pf1-x435.google.com with SMTP id b201so1412670pfb.0 for ; Tue, 02 Jun 2020 11:59:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:user-agent:mime-version; bh=WMH/wfOFpPPa+HduRRWrEW6KSNMAFtiP2P8JuJc/C2g=; b=qfVlTnd8XZ97ZHMK3XVUWZgZXBuH+rVLJ6gtmfuQPWFTLddcjMT+BKkesrOstSJdMy Y/7RBRcqSzpbVHhy51SBIvdNx53ngkF7fihpopNSqibXmg/QmlM0cL3Clx00/oE1FrRN 5oIsBYuXfJmzBMM5U+ZuWxVGBHNuiCUIw8A0mVBwM8iJ3Bzto5QJV+Xd7A6xWc2ImgA5 rZLq9aMbm8eG0yd64Zqbl26ktC5z0U75Ueort4Ni1RMr/QI1ae7SMafzSlyhTCu9ePBm LFXlvBHz9P74OPCCI349926YWtcufzlwlOMZGD0TVEMIoIdhqJH9e3P7p0dqqgZ42w5d 1C6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:user-agent :mime-version; bh=WMH/wfOFpPPa+HduRRWrEW6KSNMAFtiP2P8JuJc/C2g=; b=hWp6OtFqm4aC8p8MIuIBut4rBBsKiG3n+Xt2GgbxkIaBuAdUO9XW1XLbIM/MQti1jd uUCF7S8o6ew2mmnOztglJaEWE3GC9tlYxYpTj41WXzHd8CmTLlb+s9pyIXI4qlRblhDy 3Jv3eIkRIRNrQn+2acMpdck4qVlERpE87MAMWG3KZucyDhrjHGisIPHac+q2PvSippzL pjiH/eNH35GmLPc8AKKxD9SDJNlkFzXAC5fbEJRdSSdfdGgOKGpu3YxEFZMN7Qo7lgDt 5yTap4bJlrFWbdJ+Zuu3iVnBqorKkTME/i5cYGQrNr7gx2ErhYoBWE17ghndbJEL9nfG +ecQ== X-Gm-Message-State: AOAM532cM3MaHySuB5t9d050wE+xA3516YhOohh1zDt6FhND+4tJvlSv Ga+tkv5ijaZV/zJNiPydNG9xRsBj3tQ= X-Google-Smtp-Source: ABdhPJxQulS0bN1pOzmDfyg3EDuuLZ8Ry9K+6IVxtnnGqBf3X8b48M+gz2uL/cdN36aYV8LWOOgU2A== X-Received: by 2002:a63:7d1d:: with SMTP id y29mr25187924pgc.189.1591124348452; Tue, 02 Jun 2020 11:59:08 -0700 (PDT) Received: from garuda-lan (c-73-97-103-127.hsd1.wa.comcast.net. [73.97.103.127]) by smtp.gmail.com with ESMTPSA id w206sm3078542pfc.28.2020.06.02.11.59.06 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2020 11:59:07 -0700 (PDT) From: Chris Marusich To: bug-guix@gnu.org Subject: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Date: Tue, 02 Jun 2020 11:59:03 -0700 Message-ID: <874krtnvk8.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" Received-SPF: pass client-ip=2607:f8b0:4864:20::435; envelope-from=cmmarusich@gmail.com; helo=mail-pf1-x435.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-Spam-Score: 0.7 (/) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi, As demonstrated in the following email thread, the powerpc64-linux bootstrap-tarballs are not reproducible when cross-compiled from an x86_64-linux system: https://lists.gnu.org/archive/html/guix-devel/2020-06/msg00003.html Four people attempted to invoke the following command using Guix commit 8159ce1970d91567468cf1bacac313099a009d2a: guix build --no-substitutes --target=3Dpowerpc64-linux-gnu bootstrap-tarb= alls All of the bootstrap tarballs except for gcc-stripped were reproducible. However, these attempts produced four different versions of gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz. At least two of the attempts were performed on two different x86_64-linux systems. The derivation that produced the differing output was: /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv You can build this derivation in a variety of ways, for example: guix build --target=3Dpowerpc64-linux-gnu -e '(@ (gnu packages make-boots= trap) %gcc-bootstrap-tarball)' or just guix build /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarba= ll-5.5.0.drv On my x86_64-linux system, twice I tried running "guix build --check" on this derivation, but each time it surprisingly reported no difference. Out of paranoia, I tried deleting its output with "guix gc --delete", and then building it again. The new output was, indeed, identical to the old output. This makes me think that the non-reproducibility is coming from something outside the immediate build logic of the gcc-stripped-tarball-5.5.0.drv derivation itself. I will next try to rebuild everything from scratch again. I will also try to get copies of the differing outputs from the people involved in that email thread, in order to run diffoscope on them. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl7WoXcACgkQ3UCaFdgi Rp0twQ//VDfFrWpdAkX4XpGke8c4sT6/W2LbR7N+xl126nbXhcAKjH13SCjgX3vp /Yrik1IlnEhXwPpujU6GXLv7UbjZLBDERMOee0bFpreaq9TQMq2NJQkcoKE4kOSr +ockDEE71tv4ZEjW3hY8funw9uRGoZBcyPYHyIjd0bNYvRAa1x8nuhrXYE5+rRZ2 h/2k5tynQrkMpxUEVQr0XL0OWXhY5VPD9Wwgd3anY/l643RIg2eLTDF1kvnRCdOq OFN+88hWEx3QzPMZ852SSc99XkHRBaboFkrNIquxIU2lsOHiUSwOkT4/NrdOoeW7 +pXgJ2dcUNvI1JHER50NUjHBndqCke1bYUbCll0f9VE7hi1z/V/hut4t7a5uTUXp QP+aLeS9WDDDyFHwYPf6hotjNwCyOE1aBo0LlNpR+nIX4WSDYCzSKIFQFAva84l2 TDRte0rIKcZ/B3xRraGjgFwJBezme8RkOiORNzFpcRzf0y5hCSPvL3cLc8XmsbAl HT8pCdm0b3kSlBNQmUSV+XxnXvpIUDnxernYb7PEYhgWsopyHBgQtfxMqCj/IZtE OXeh/oumsuKZWxDcgbUI81liQPNlrFlXgfsWiUmtBmv56g/jFko+e+IgIIZroGWj iWHVBGz1EMaENBMXpga4g7XMRTXoXO3QB9xGQ34mHsZC007QPwQ= =DG+o -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 03 05:48:34 2020 Received: (at 41669) by debbugs.gnu.org; 3 Jun 2020 09:48:34 +0000 Received: from localhost ([127.0.0.1]:42004 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgQ0g-00028b-HK for submit@debbugs.gnu.org; Wed, 03 Jun 2020 05:48:34 -0400 Received: from mail-pg1-f182.google.com ([209.85.215.182]:37580) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgQ0e-00028L-HG for 41669@debbugs.gnu.org; Wed, 03 Jun 2020 05:48:32 -0400 Received: by mail-pg1-f182.google.com with SMTP id d10so1412517pgn.4 for <41669@debbugs.gnu.org>; Wed, 03 Jun 2020 02:48:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=Q18QBCNrvylD3ooY6bLE5vwc+rjT7BPMYahw7tGb2u0=; b=iqlXdEM8yhWXwpcYsC0IwU5p5GzcUbwaV0S+7px+8FP5FMwwaXHF9cp/3ZZ5LnZ532 iL/1QXNuW/zcA3LUGoi+AdTJPCVyxwJ0EQcidzJqO2pZSCNsBe5hr3A37z3tY0q6JxF8 ORVffEsRUS47bHiyx0fgh1XcT6swO23zzoRI61G1iIZwo3nWLuhTqk9xlXYHd101jRH9 5GGGEsK4ZqQLHFS1UFwgJP/a78/R3UjXlPygTlc0+/s2IFJ7ZNiVUrZ7cXWQtujik8FK beiR9Qxh9rkNGT2nFYzJivc9S5tg4K62lgOEPnjGVH/Wi20Aow78Y0Zd17W2100ug/tS R1RA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=Q18QBCNrvylD3ooY6bLE5vwc+rjT7BPMYahw7tGb2u0=; b=HuWIKiUrOgJtFnoMUF8MBDlhnfya9hFviMqRdpbhtXQAgOJdH89hSgrCLYvsMEJZj5 kPfUiIweoYbZZVedR4IGdmSarzlJR1ext4pTpKPKzWlMrBLK04C0nPv5H2DzlcwVW1yT 2xCecYRk7oB4lSlcpelr/bXs6sOiurzUG7fK4AhmosTtvXvfsTrn1cYB6tDcFtQuKxRM MnayPYk2w5uf38EAABq9tARTZW6K/Ynoz5+wSjJaj6GDt22zR6KZSokH5GLLqgXpC7XY 9NBjcXQ3zTAZGB899dB+lLksEy5NAN3GUc1UW+N6hmFJu6T4atfrbJuW2jFx+fsGClEW aegw== X-Gm-Message-State: AOAM530nfhOj97I7tkVFJuMJeFoeS9UjHKaD1eRiB2X6FxqZGI7R4aHl KtbmUgTcP5fIG1m3vjN9+0Q= X-Google-Smtp-Source: ABdhPJylWJr0BXh5vycpb64yv141d9EBVZ93/em3KOeO+2vNgRl2PdvXqnrs7GuAq/S+a40hLF6Y8g== X-Received: by 2002:a17:90a:1642:: with SMTP id x2mr4433137pje.149.1591177706367; Wed, 03 Jun 2020 02:48:26 -0700 (PDT) Received: from garuda-lan (c-73-97-103-127.hsd1.wa.comcast.net. [73.97.103.127]) by smtp.gmail.com with ESMTPSA id n2sm1573113pfd.125.2020.06.03.02.48.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2020 02:48:25 -0700 (PDT) From: Chris Marusich To: 41669@debbugs.gnu.org Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> Date: Wed, 03 Jun 2020 02:48:21 -0700 In-Reply-To: <874krtnvk8.fsf@gmail.com> (Chris Marusich's message of "Tue, 02 Jun 2020 11:59:03 -0700") Message-ID: <87y2p4mqe2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: Vincent Legoll , Jack Hill , =?utf-8?Q?L=C3=A9o_Le_Bouter?= , Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi all, Chris Marusich writes: > The derivation that produced the differing output was: > > /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv > > On my x86_64-linux system, twice I tried running "guix build --check" on > this derivation, but each time it surprisingly reported no difference. This derivation corresponds to %gcc-bootstrap-tarball from (gnu packages make-bootstrap), which just creates a tarball of the output of %gcc-stripped. Therefore, it's not too surprising that it's reproducible. Similarly, %gcc-stripped just strips some store references from the output of %gcc-static. The %gcc-static package is more interesting: it's where we actually build the statically linked bootstrap GCC (which is then stripped and packed into a tarball as mentioned above), so I thought that it might be where the non-determinism is coming from. However, I haven't yet pinpointed the problem. If you examine the derivations and their inputs, you'll find that they depend upon each other in the following order: guix build --target=3Dpowerpc64-linux-gnu -d -e '(@ (gnu packages make-boot= strap) %gcc-bootstrap-tarball)' /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make-boo= tstrap) %gcc-stripped)' /gnu/store/kcv3ja1rfr93hw6ly51878zjhdwpgv7z-gcc-stripped-5.5.0.drv guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make-boo= tstrap) %gcc-static)' /gnu/store/m9hfwppla8lph0vxa15lfkp81s2bbjjs-gcc-static-5.5.0.drv In other words, gcc-static-5.5.0.drv is an input of gcc-stripped-5.5.0.drv, which is an input of gcc-stripped-tarball-5.5.0.drv. Above, I've included example guix commands you can use to obtain each derivation. Using "guix build =2D-check", I confirmed that all three of these derivations build reproducibly on my machine. I hoped to find more information by invoking "guix build --check" on every input of gcc-static-5.5.0.drv. When I tried that, what I found was that all of its inputs build reproducibly except the following two: /gnu/store/x32cnfkd50fnxs10xp1jdn24h7ai2gxr-guile-3.0.2.drv /gnu/store/g9fpkg2qa27mka1znqsvx8vxqyabsj2y-gcc-7.5.0.drv I haven't investigated guile-3.0.2.drv. However, gcc-7.5.0.drv felt more suspicious to me, and it is actually the derivation that builds gcc-final from (gnu packages commencement), which you can see via: guix build -d -e '(@@ (gnu packages commencement) gcc-final)' Using "guix gc", I deleted the outputs of gcc-stripped-tarball-5.5.0.drv, gcc-stripped-5.5.0.drv, gcc-static-5.5.0.drv, and gcc-7.5.0.drv. I then tried building these four derivations again (without substitutes, the same as before). Before doing this, I stored the SHA-512 hashes of their output files, and after the build succeeded, I compared the hashes of the new files with the previous values. I found that these derivations' newly rebuilt outputs were identical to their original values, except for gcc-7.5.0.drv, which produced some different files. Most significantly, this means that gcc-stripped-tarball-5.5.0.drv produced the exact same tarball for me as it did the first time I built it, even though some of its inputs are not themselves reproducible. At present, it seems possible that within the context of a single machine, gcc-stripped-tarball-5.5.0.drv builds reproducibly, but on a different machine, it may (reproducibly) build a different output. I'm a bit paranoid about making mistakes, so I'll perform another full GC and then try yet again to build gcc-stripped-tarball-5.5.0.drv in order to verify whether it truly produces the same output when all (or nearly all) of its inputs are rebuilt from scratch. Some people have also shared their differing copies of the binaries on the email list. It could be productive to compare the contents with diffoscope, although I suspect the diff might be too large to be useful. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl7XceUACgkQ3UCaFdgi Rp0EgRAA0OmlaDC8TFlxSXsGjlbPVhV5kO7mplWnYNAbROMWrFWoRU4okIISdCeV pklnsneNtg9UN+OagjGMNsgw6w/iaiftMduLS17AqWeUoaCi7HUTGVgwg6AZD2z3 nWFFgjPdYy8NO0uSA4wxoqGXHIXZsmy6m8HlNkQ5Wxv4ILrMLW1aAloAwLuicnD7 xszXKVfC38UyVwdjVyTbdVqUcl8QPY8jYdQtk+RtK6Yb1aWba6xyFW6FZhgNl4PW DcEIBD6lKewXYT8saDJkkD1dBhkGiHjMPWkDPKiDuPR7dfDhrm4QHxRZHifv5Fu3 wGoya2yxyCtaB2O/xH8YLiQiLbWjGE+pZdbGN3hIwf8ie2lilK97895hTIhMRasi 1q6XMpRW27X8cZG7nv/spMyo3Zu/PudOghzOk/h16W0Ey24hLv0IO4xAtUxCprnB 4gtU/hKxbKYS8mN4K9AmkgnCDlibfAuEqRAwAcDpA3oxobjZLTih/BBlulUn3pxN lf4/xIn9DCaZpi9pckjYnucByP0wv/JjA4aJGBpPM9rfau805E8XeHtBBX1djsL0 ekPaT9BkEYVxILT9eHkrIp3JO5P1H0dRqhtT6XUFShKwe9FC3BgxaJeW8v7DsLnv bsKJ/0nXMjrcjJBqR5FhuAy/ZZXi+ILivSHQ5QlG/D1uBg8kEPM= =kMiK -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 03 16:51:09 2020 Received: (at 41669) by debbugs.gnu.org; 3 Jun 2020 20:51:09 +0000 Received: from localhost ([127.0.0.1]:44643 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgaLq-00021d-9y for submit@debbugs.gnu.org; Wed, 03 Jun 2020 16:51:09 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:35118) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jgaLl-000215-B2 for 41669@debbugs.gnu.org; Wed, 03 Jun 2020 16:51:05 -0400 Received: by mail-wr1-f68.google.com with SMTP id x14so3829004wrp.2 for <41669@debbugs.gnu.org>; Wed, 03 Jun 2020 13:51:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=OuSTr0Sm/YNfsPkJs4svH57GdZyYGAQrpFBJM0AtayU=; b=hRmkBFcmfKgocGWEzyKI55qdPi+ZtflOJX3+jrAiMqSoadfcKbUUiYU4xPhcY2O+xA 73Er38dMj31g+8VcLMWaGr/C1lKO4CK4kVKf3qb3UtLryr6ORGHHlJXRONqhPIqltc7y PfIDpICiCrhRdIHUxes3u7WQ3nZC9G67z9fBTWAChy8fpjhP9ML4o6LYCZPZouVN71vm eb3mnuROKLSK6H0bNpUZLeAqYrYe3RfVwB3k7gom3iTozau12ZsBAmNrT8N90aZ1CRC2 gaWKT6sFD52LAb7el6x5EeUsvRoSu7soZu2cZo+SNACJPYBZQPlY8FPwpvFABCPgHu1o g1xw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=OuSTr0Sm/YNfsPkJs4svH57GdZyYGAQrpFBJM0AtayU=; b=PBJoWnkKUg3Po2CVL4044a6dcJ+Ko8Fw5741BbodV28X3Ozlt+87kB9zZQnn+jLt30 ceTkft/JzwSvuUg7NB5ow2XVPxDbu1ZCec8Ne6Ej2XQGH2gkKyOfEu72Pi+w1KWAbd4y zc0qIQnzo3zJ0HiAQ+WBqVkCK0GjNnbQHueco7DHT7EUg+FlP/VPVckIxlka9UmnLrmP sRkSL3oRjZavoqXzfrcjAq7gTQeIbiUydpJQt4E0pQYBgrmo95d55FRvp+VBTBW2W3R8 uYsWejQmPbN2U5RnfpqGx4M0++uR/FriMePt2qczeMQF2Ax99kSz0mlWzDxYn+Sxfcp8 nglg== X-Gm-Message-State: AOAM531yYExq3Y6UtzMQ5CdhiKJkufHsBmkI8hp3FqLx9a+ER3zUTkDT Ok0l64bFHNatkDdkxn37eDQ= X-Google-Smtp-Source: ABdhPJxyrIrQAk2vOTC6kq8sLcm3vkOYh4S3a2tM2fiTs8POG6NtaJeUK+u2h5/x3iCej65ZpnyXXw== X-Received: by 2002:adf:9304:: with SMTP id 4mr1215534wro.280.1591217455499; Wed, 03 Jun 2020 13:50:55 -0700 (PDT) Received: from [10.0.0.2] (se167-1-82-242-148-1.fbx.proxad.net. [82.242.148.1]) by smtp.gmail.com with ESMTPSA id u10sm4202252wmc.31.2020.06.03.13.50.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 03 Jun 2020 13:50:54 -0700 (PDT) Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible To: Chris Marusich , 41669@debbugs.gnu.org References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> From: Vincent Legoll Message-ID: <02a1602c-582a-7faf-9756-1ee74962d2dd@gmail.com> Date: Wed, 3 Jun 2020 22:50:53 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0 MIME-Version: 1.0 In-Reply-To: <87y2p4mqe2.fsf@gmail.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: Jack Hill , Christopher Baines , =?UTF-8?Q?L=c3=a9o_Le_Bouter?= , Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Is that showing the same (or a similar) problem : https://data.guix-patches.cbaines.net/gnu/store/0lcbxpw1vrca02dzpzw2rxhad7pn4zw7-gcc-objc-5.5.0 ? -- Vincent Legoll From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 10 02:15:17 2020 Received: (at 41669) by debbugs.gnu.org; 10 Jun 2020 06:15:17 +0000 Received: from localhost ([127.0.0.1]:33182 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiu15-0000wb-UQ for submit@debbugs.gnu.org; Wed, 10 Jun 2020 02:15:17 -0400 Received: from mail-pj1-f66.google.com ([209.85.216.66]:37850) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jiu13-0000wM-DY for 41669@debbugs.gnu.org; Wed, 10 Jun 2020 02:15:14 -0400 Received: by mail-pj1-f66.google.com with SMTP id m2so454151pjv.2 for <41669@debbugs.gnu.org>; Tue, 09 Jun 2020 23:15:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:user-agent:date:message-id :mime-version; bh=aETPuNJLkmW778+oww6ESA/VbfuajigFS1o9lvA0/pk=; b=vEjYDOV8NE/fxU+p7g8RYprFm9IvsXguRBg7faWphNc7udik67CwmYUXYCPDkXubtB mpbQGUYCpDmnlkvclXXbaiEutN85PzdPjWdJUqCsGEWNTyPCyVTdSqnc1lzcKwXexsIQ WqQSsgLsl61GpfMc+ctyyUNOBbGkl1YgR7vXdF77FWXVL+bhZ4xRQtPgud5ETj+Avb57 mpvRA6btzjGXeb+ixmfmNYjaMkXNak6YLJ+ZImpo32HmE2HbD+uNibJwbi68PWf7tBZN FU99ocMOPk5yjbLX0c4TII8L/FLoiyMhf63FXJRr2n8Nqf+YLx6vE8QCamPDKBU17mLZ 1+mQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:user-agent:date :message-id:mime-version; bh=aETPuNJLkmW778+oww6ESA/VbfuajigFS1o9lvA0/pk=; b=gWrpPRKwj3U1vdz9OQVQ2pKtfQbKIDaB8T3XhaPLzQkl7sqdAw0WIDMPnJ18eSDBNW wyv+hVJlfYGOIjMIMlKLvCEjlwVDe7j30UuluSXm5J0RbicKCzjfuYrPQW9HxRtFqN5n fzP7Jt/uKVBIDZdS7HybkS5o2GGjHEWWxv5xydtMz4KXxK2xMs0EWM1ElUt1Jm9MCIga ntsH5U8zhi/sMd/er10Sp4ZoHSBGLULiSvw4n8QoaMTk9Z/POTdFg76DpPdJUMgpl9U9 bxqkVJAq8neKoIQb8Z1XtHfAsnG+JAIqsGuHouGPw4hccZ457zNwuQQjkrhs4lARX5V6 z7cQ== X-Gm-Message-State: AOAM53367yTpiYeAQGMlzjo7hzp4rwO/xqVOS4P3k233hr5M6Qq6K+uh lyh8fFMt6EkYGMzu+kfwyN0= X-Google-Smtp-Source: ABdhPJxio/jGTwBQWDnqjiT79UYewiOW0Y5DhvmCeNwn9DY/XWexa65mQHlc//eNGoBNK6n6rcQsZw== X-Received: by 2002:a17:90a:2622:: with SMTP id l31mr1636349pje.18.1591769707020; Tue, 09 Jun 2020 23:15:07 -0700 (PDT) Received: from garuda-lan (c-73-97-103-127.hsd1.wa.comcast.net. [73.97.103.127]) by smtp.gmail.com with ESMTPSA id 124sm11447927pfb.15.2020.06.09.23.15.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Jun 2020 23:15:05 -0700 (PDT) From: Chris Marusich To: 41669@debbugs.gnu.org Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) Date: Tue, 09 Jun 2020 23:15:01 -0700 Message-ID: <87imfzcuqi.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: Vincent Legoll , Jack Hill , =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Vincent and everyone, Vincent Legoll writes: > Is that showing the same (or a similar) problem : > > https://data.guix-patches.cbaines.net/gnu/store/0lcbxpw1vrca02dzpzw2rxhad= 7pn4zw7-gcc-objc-5.5.0 > > ? Can you clarify what you mean? I'm not sure what you're referring to. Chris Marusich writes: > At present, it seems possible that within the context of a single > machine, gcc-stripped-tarball-5.5.0.drv builds reproducibly, but on a > different machine, it may (reproducibly) build a different output. > I'm a bit paranoid about making mistakes, so I'll perform another full > GC and then try yet again to build gcc-stripped-tarball-5.5.0.drv in > order to verify whether it truly produces the same output when all (or > nearly all) of its inputs are rebuilt from scratch. I repeated the experiment on the same machine (it took a day or two to build), and the result was the same: on my machine, gcc-stripped-tarball-5.5.0.drv builds identical output to what it built before. To be clear, using Guix 8159ce1970d91567468cf1bacac313099a009d2a on an x86_64-linux machine, I tried (yet again) the following steps: =2D I deleted as much as I could from the store using 'guix gc'. =2D I explicitly verified that all outputs for the following derivations no longer existed in the store: /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv /gnu/store/kcv3ja1rfr93hw6ly51878zjhdwpgv7z-gcc-stripped-5.5.0.drv /gnu/store/m9hfwppla8lph0vxa15lfkp81s2bbjjs-gcc-static-5.5.0.drv /gnu/store/g9fpkg2qa27mka1znqsvx8vxqyabsj2y-gcc-7.5.0.drv =2D I then built gcc-stripped-tarball-5.5.0.drv via the following command: guix build --no-substitutes --check --target=3Dpowerpc64-linux-gnu \ -e '(@@ (gnu packages make-bootstrap) %gcc-static)' This rebuilt basically everything, including gcc-7.5.0.drv and the other derivations mentioned above. When I checked the built output of the gcc-stripped-tarball-5.5.0.drv derivation, I found that its SHA-512 hash was identical to the one I calculated previously, which was: =2D-8<---------------cut here---------------start------------->8--- 8aca7f332a1ba8e3c2225c161a7545b0a04ddd690d164dc97afee9c9ea067b0c49bc155e9f0= 6d285c22e24cdd16d91e59730af5f1dd9efcda13a26bede5948a2 /gnu/store/rsmhiyplm= biqm1qwniiafi4ak76pd61v-gcc-stripped-tarball-5.5.0/gcc-stripped-5.5.0-power= pc64-linux-gnu.tar.xz =2D-8<---------------cut here---------------end--------------->8--- Anyway, this confirms what we already knew: GCC builds reproducibly on my machine, but it is different when other people build it on other machines. I'm now quite convinced of this fact. Jack and Vincent shared their build results on the email list. For reference, you can get them here: https://flashner.co.il/~efraim/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz https://jackhill.us/misc/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz https://media.marusich.info/gcc-stripped-5.5.0-powerpc64-linux-gnu.tar.xz I also received a copy of Vincent's build results via private email. In short, they all seem to differ in basically the same ways: =2D-8<---------------cut here---------------start------------->8--- [1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs $ diff -r chris jack Binary files chris/bin/c++ and jack/bin/c++ differ Binary files chris/bin/cpp and jack/bin/cpp differ Binary files chris/bin/g++ and jack/bin/g++ differ Binary files chris/bin/gcc and jack/bin/gcc differ Binary files chris/bin/gcov and jack/bin/gcov differ Binary files chris/bin/gcov-dump and jack/bin/gcov-dump differ Binary files chris/bin/gcov-tool and jack/bin/gcov-tool differ Binary files chris/bin/powerpc64-linux-gnu-c++ and jack/bin/powerpc64-linux= -gnu-c++ differ Binary files chris/bin/powerpc64-linux-gnu-g++ and jack/bin/powerpc64-linux= -gnu-g++ differ Binary files chris/bin/powerpc64-linux-gnu-gcc and jack/bin/powerpc64-linux= -gnu-gcc differ Binary files chris/bin/powerpc64-linux-gnu-gcc-5.5.0 and jack/bin/powerpc64= -linux-gnu-gcc-5.5.0 differ Binary files chris/lib/libstdc++.a and jack/lib/libstdc++.a differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 and jack/libex= ec/gcc/powerpc64-linux-gnu/5.5.0/cc1 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus and jack/l= ibexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 and jack/= libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper and ja= ck/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper differ [1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs $ diff -r chris vincent Binary files chris/bin/c++ and vincent/bin/c++ differ Binary files chris/bin/cpp and vincent/bin/cpp differ Binary files chris/bin/g++ and vincent/bin/g++ differ Binary files chris/bin/gcc and vincent/bin/gcc differ Binary files chris/bin/gcov and vincent/bin/gcov differ Binary files chris/bin/gcov-dump and vincent/bin/gcov-dump differ Binary files chris/bin/gcov-tool and vincent/bin/gcov-tool differ Binary files chris/bin/powerpc64-linux-gnu-c++ and vincent/bin/powerpc64-li= nux-gnu-c++ differ Binary files chris/bin/powerpc64-linux-gnu-g++ and vincent/bin/powerpc64-li= nux-gnu-g++ differ Binary files chris/bin/powerpc64-linux-gnu-gcc and vincent/bin/powerpc64-li= nux-gnu-gcc differ Binary files chris/bin/powerpc64-linux-gnu-gcc-5.5.0 and vincent/bin/powerp= c64-linux-gnu-gcc-5.5.0 differ Binary files chris/lib/libstdc++.a and vincent/lib/libstdc++.a differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 and vincent/li= bexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus and vincen= t/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 and vince= nt/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper and vi= ncent/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper differ [1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs $ diff -r chris efraim Binary files chris/bin/c++ and efraim/bin/c++ differ Binary files chris/bin/cpp and efraim/bin/cpp differ Binary files chris/bin/g++ and efraim/bin/g++ differ Binary files chris/bin/gcc and efraim/bin/gcc differ Binary files chris/bin/gcov and efraim/bin/gcov differ Binary files chris/bin/gcov-dump and efraim/bin/gcov-dump differ Binary files chris/bin/gcov-tool and efraim/bin/gcov-tool differ Binary files chris/bin/powerpc64-linux-gnu-c++ and efraim/bin/powerpc64-lin= ux-gnu-c++ differ Binary files chris/bin/powerpc64-linux-gnu-g++ and efraim/bin/powerpc64-lin= ux-gnu-g++ differ Binary files chris/bin/powerpc64-linux-gnu-gcc and efraim/bin/powerpc64-lin= ux-gnu-gcc differ Binary files chris/bin/powerpc64-linux-gnu-gcc-5.5.0 and efraim/bin/powerpc= 64-linux-gnu-gcc-5.5.0 differ diff -r chris/lib/gcc/powerpc64-linux-gnu/5.5.0/include-fixed/bits/statx.h = efraim/lib/gcc/powerpc64-linux-gnu/5.5.0/include-fixed/bits/statx.h 5c5 < "/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/include/bits/sta= tx.h" =2D-- > "/gnu/store/cb88z63hyg1icd2kkahiink2p291mhr2-glibc-2.31/include/bits/sta= tx.h" Binary files chris/lib/libstdc++.a and efraim/lib/libstdc++.a differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1 and efraim/lib= exec/gcc/powerpc64-linux-gnu/5.5.0/cc1 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus and efraim= /libexec/gcc/powerpc64-linux-gnu/5.5.0/cc1plus differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 and efrai= m/libexec/gcc/powerpc64-linux-gnu/5.5.0/collect2 differ Binary files chris/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper and ef= raim/libexec/gcc/powerpc64-linux-gnu/5.5.0/lto-wrapper differ [1] marusich@garuda-lan:~/Documents/notes/guix/ppc/gcc-stripped-tarballs $=20 =2D-8<---------------cut here---------------end--------------->8--- Efraim's diff looks a little different in statx.h, even though he used the same Guix commit as me. Maybe this is because he cross-compiled on an aarch64-linux machine, while I cross-compiled on an x86_64-linux machine. In the other cases, it looks like the binary files differ in basically the same ways. I will share some examples below. Here is some diffoscope output between my c++ and Efraim's (many other sections also differed in similarly cryptic ways): =2D-8<---------------cut here---------------start------------->8--- diffoscope chris/bin/c++ efraim/bin/c++ ... =E2=94=9C=E2=94=80=E2=94=80 /gnu/store/xakj5dgs1729297nv50s84sdmq2jiz64-bin= utils-2.34/bin/readelf --wide --symbols {} =E2=94=82 @@ -328,18 +328,18 @@ =E2=94=82 324: 00000000101aece0 152 FUNC LOCAL DEFAULT 19 check= _free.isra.0 =E2=94=82 325: 00000000101aed28 24 FUNC LOCAL DEFAULT 19 fini =E2=94=82 326: 00000000101b6008 8 OBJECT LOCAL DEFAULT 24 stati= c_buf =E2=94=82 327: 00000000101b6010 32 OBJECT LOCAL DEFAULT 24 last_= result =E2=94=82 328: 00000000101b6030 4 OBJECT LOCAL DEFAULT 24 key =E2=94=82 329: 00000000101b6034 4 OBJECT LOCAL DEFAULT 24 once =E2=94=82 330: 00000000101b23b8 104 OBJECT LOCAL DEFAULT 22 _dlfc= n_hooks =E2=94=82 - 331: 00000000101a98f8 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool4freeEPv.constprop.2 =E2=94=82 - 332: 00000000101a9910 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool8allocateEm.constprop.3 =E2=94=82 - 333: 00000000101a99a0 180 FUNC LOCAL DEFAULT 19 _GLOB= AL__sub_I_eh_alloc.cc =E2=94=82 - 334: 00000000101b4f68 64 OBJECT LOCAL DEFAULT 24 _ZN12= _GLOBAL__N_114emergency_poolE =E2=94=82 + 331: 00000000101a9880 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool4freeEPv.constprop.2 =E2=94=82 + 332: 00000000101a9898 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool8allocateEm.constprop.3 =E2=94=82 + 333: 00000000101a9928 180 FUNC LOCAL DEFAULT 19 _GLOB= AL__sub_I_eh_alloc.cc =E2=94=82 + 334: 00000000101b4f78 64 OBJECT LOCAL DEFAULT 24 _ZN12= _GLOBAL__N_114emergency_poolE =E2=94=82 335: 000000001011c5a8 19 OBJECT LOCAL DEFAULT 7 _ZZ18= ggc_internal_allocmPFvPvEmmE12__FUNCTION__ =E2=94=82 336: 000000001011c5c0 27 OBJECT LOCAL DEFAULT 7 _ZZ26= ggc_internal_cleared_allocmPFvPvEmmE12__FUNCTION__ =E2=94=82 337: 000000001011c600 21 OBJECT LOCAL DEFAULT 7 _ZZ20= lang_specific_driverPP17cl_decoded_optionPjPiE12__FUNCTION__ =E2=94=82 338: 00000000101a42d0 228 FUNC LOCAL DEFAULT 19 _ZL12= elf_platformv =E2=94=82 339: 00000000101a42e8 236 FUNC LOCAL DEFAULT 19 _ZL15= elf_dcachebsizev =E2=94=82 340: 00000000101a4300 164 FUNC LOCAL DEFAULT 19 _ZL14= describe_cachejjjj.isra.0.constprop.1 =E2=94=82 341: 000000001011c6b8 752 OBJECT LOCAL DEFAULT 7 _ZL9a= sm_names ... =E2=94=82 @@ -1379,25 +1379,25 @@ =E2=94=82 1375: 00000000101b2448 0 SECTION LOCAL DEFAULT 23=20 =E2=94=82 1376: 00000000101b2b80 0 SECTION LOCAL DEFAULT 24=20 =E2=94=82 1377: 00000000101b6860 0 SECTION LOCAL DEFAULT 25=20 =E2=94=82 1378: 0000000000000000 0 SECTION LOCAL DEFAULT 26=20 =E2=94=82 1379: 0000000000000000 0 SECTION LOCAL DEFAULT 27=20 =E2=94=82 1380: 00000000101a2a28 752 OBJECT GLOBAL DEFAULT 18 _nl_C= _LC_CTYPE =E2=94=82 1381: 00000000101ace20 56 IFUNC GLOBAL DEFAULT 19 __lib= c_strcspn =E2=94=82 - 1382: 00000000101a9958 100 FUNC GLOBAL DEFAULT 19 __cxa= _free_exception =E2=94=82 + 1382: 00000000101a98e0 100 FUNC GLOBAL DEFAULT 19 __cxa= _free_exception =E2=94=82 1383: 00000000101acfe8 104 FUNC WEAK DEFAULT 19 stpcpy =E2=94=82 1384: 00000000101ab7e8 516 FUNC GLOBAL DEFAULT 19 putch= ar =E2=94=82 - 1385: 00000000101a9598 20 FUNC GLOBAL DEFAULT 19 _ZNKS= t9type_info15__is_function_pEv =E2=94=82 + 1385: 00000000101a9778 20 FUNC GLOBAL DEFAULT 19 _ZNKS= t9type_info15__is_function_pEv =E2=94=82 1386: 000000001016a3cc 76 OBJECT GLOBAL DEFAULT 7 _nl_C= _LC_CTYPE_class_print =E2=94=82 1387: 00000000101adfc0 640 FUNC WEAK DEFAULT 19 tsear= ch =E2=94=82 1388: 00000000101af0a0 176 FUNC WEAK DEFAULT 19 clock= _gettime =E2=94=82 1389: 00000000101a4150 4856 FUNC GLOBAL DEFAULT 19 _ZNK6= driver12set_up_specsEv =E2=94=82 1390: 00000000101a9268 88 FUNC GLOBAL DEFAULT 19 xmall= oc =E2=94=82 1391: 00000000101b1d68 8 OBJECT GLOBAL DEFAULT 22 __mor= ecore =E2=94=82 - 1392: 00000000101a9568 40 FUNC GLOBAL DEFAULT 19 _ZSt1= 0unexpectedv =E2=94=82 + 1392: 00000000101a94f0 40 FUNC GLOBAL DEFAULT 19 _ZSt1= 0unexpectedv =E2=94=82 1393: 00000000101a8ef0 60 FUNC GLOBAL DEFAULT 19 lbase= name =E2=94=82 1394: 00000000101aded0 96 FUNC GLOBAL DEFAULT 19 __get= dtablesize =E2=94=82 1395: 00000000101a4348 752 FUNC GLOBAL DEFAULT 19 updat= e_path ... =E2=94=9C=E2=94=80=E2=94=80 /gnu/store/xakj5dgs1729297nv50s84sdmq2jiz64-bin= utils-2.34/bin/readelf --wide --decompress --hex-dump=3D.data.rel.ro {} =E2=94=82 @@ -112,27 +112,27 @@ =E2=94=82 0x101a1718 00000000 10164560 00000009 00000001 ......E`........ =E2=94=82 0x101a1728 00000000 10164570 00000000 10164578 ......Ep......Ex =E2=94=82 0x101a1738 0000000c 00000002 00000000 101499e8 ................ =E2=94=82 0x101a1748 00000000 10116018 00000001 00000001 ......`......... =E2=94=82 0x101a1758 00000000 10164588 00000000 10164590 ......E.......E. =E2=94=82 0x101a1768 00000007 00000001 00000000 10119850 ...............P =E2=94=82 0x101a1778 00000000 1015e290 00000002 00000002 ................ =E2=94=82 - 0x101a1788 00000000 101641c0 00000000 101653e8 ......A.......S. =E2=94=82 + 0x101a1788 00000000 101641c0 00000000 101653a8 ......A.......S. =E2=94=82 0x101a1798 00000001 00000002 00000000 10164598 ..............E. =E2=94=82 0x101a17a8 00000000 10117df0 00000001 00000002 ......}......... =E2=94=82 0x101a17b8 00000000 101645a0 00000000 1015e238 ......E........8 =E2=94=82 0x101a17c8 00000002 00000002 00000000 101645a8 ..............E. =E2=94=82 0x101a17d8 00000000 101631d8 00000001 00000002 ......1......... =E2=94=82 0x101a17e8 00000000 101645b0 00000000 1015e1e0 ......E......... =E2=94=82 - 0x101a17f8 00000002 00000002 00000000 101653c0 ..............S. =E2=94=82 + 0x101a17f8 00000002 00000002 00000000 10165380 ..............S. =E2=94=82 0x101a1808 00000000 1015e268 00000003 00000003 .......h........ =E2=94=82 - 0x101a1818 00000000 101653c8 00000000 1015e268 ......S........h =E2=94=82 - 0x101a1828 00000003 00000003 00000000 101653d0 ..............S. =E2=94=82 + 0x101a1818 00000000 10165388 00000000 1015e268 ......S........h =E2=94=82 + 0x101a1828 00000003 00000003 00000000 10165390 ..............S. =E2=94=82 0x101a1838 00000000 1015e268 00000003 00000002 .......h........ =E2=94=82 - 0x101a1848 00000000 101653d8 00000000 1015e268 ......S........h =E2=94=82 + 0x101a1848 00000000 10165398 00000000 1015e268 ......S........h =E2=94=82 0x101a1858 00000003 00000002 00000000 10144ea8 ..............N. =E2=94=82 0x101a1868 00000000 1015e1f0 00000002 00000002 ................ ... =2D-8<---------------cut here---------------end--------------->8--- Here is some diffoscope output betweeen my c++ and Jack's (many other sections also differed in similarly cryptic ways): =2D-8<---------------cut here---------------start------------->8--- diffoscope chris/bin/c++ jack/bin/c++ ... =E2=94=9C=E2=94=80=E2=94=80 /gnu/store/xakj5dgs1729297nv50s84sdmq2jiz64-bin= utils-2.34/bin/readelf --wide --symbols {} =E2=94=82 @@ -328,17 +328,17 @@ =E2=94=82 324: 00000000101aece0 152 FUNC LOCAL DEFAULT 19 check= _free.isra.0 =E2=94=82 325: 00000000101aed28 24 FUNC LOCAL DEFAULT 19 fini =E2=94=82 326: 00000000101b6008 8 OBJECT LOCAL DEFAULT 24 stati= c_buf =E2=94=82 327: 00000000101b6010 32 OBJECT LOCAL DEFAULT 24 last_= result =E2=94=82 328: 00000000101b6030 4 OBJECT LOCAL DEFAULT 24 key =E2=94=82 329: 00000000101b6034 4 OBJECT LOCAL DEFAULT 24 once =E2=94=82 330: 00000000101b23b8 104 OBJECT LOCAL DEFAULT 22 _dlfc= n_hooks =E2=94=82 - 331: 00000000101a98f8 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool4freeEPv.constprop.2 =E2=94=82 - 332: 00000000101a9910 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool8allocateEm.constprop.3 =E2=94=82 - 333: 00000000101a99a0 180 FUNC LOCAL DEFAULT 19 _GLOB= AL__sub_I_eh_alloc.cc =E2=94=82 + 331: 00000000101a94c0 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool4freeEPv.constprop.2 =E2=94=82 + 332: 00000000101a94d8 524 FUNC LOCAL DEFAULT 19 _ZN12= _GLOBAL__N_14pool8allocateEm.constprop.3 =E2=94=82 + 333: 00000000101a9568 180 FUNC LOCAL DEFAULT 19 _GLOB= AL__sub_I_eh_alloc.cc =E2=94=82 334: 00000000101b4f68 64 OBJECT LOCAL DEFAULT 24 _ZN12= _GLOBAL__N_114emergency_poolE =E2=94=82 335: 000000001011c5a8 19 OBJECT LOCAL DEFAULT 7 _ZZ18= ggc_internal_allocmPFvPvEmmE12__FUNCTION__ =E2=94=82 336: 000000001011c5c0 27 OBJECT LOCAL DEFAULT 7 _ZZ26= ggc_internal_cleared_allocmPFvPvEmmE12__FUNCTION__ =E2=94=82 337: 000000001011c600 21 OBJECT LOCAL DEFAULT 7 _ZZ20= lang_specific_driverPP17cl_decoded_optionPjPiE12__FUNCTION__ =E2=94=82 338: 00000000101a42d0 228 FUNC LOCAL DEFAULT 19 _ZL12= elf_platformv =E2=94=82 339: 00000000101a42e8 236 FUNC LOCAL DEFAULT 19 _ZL15= elf_dcachebsizev =E2=94=82 340: 00000000101a4300 164 FUNC LOCAL DEFAULT 19 _ZL14= describe_cachejjjj.isra.0.constprop.1 ... =E2=94=9C=E2=94=80=E2=94=80 /gnu/store/xakj5dgs1729297nv50s84sdmq2jiz64-bin= utils-2.34/bin/readelf --wide --decompress --hex-dump=3D.data.rel.ro {} =E2=94=82 @@ -206,60 +206,60 @@ =E2=94=82 0x101a1cf8 00000000 101a3b08 00000000 10118108 ......;......... =E2=94=82 0x101a1d08 00000000 101a4120 00000000 10118120 ......A .......= =20 =E2=94=82 0x101a1d18 00000000 101a4108 00000000 10115758 ......A.......WX =E2=94=82 0x101a1d28 00000000 101a3a60 00000000 10118138 ......:`.......8 =E2=94=82 0x101a1d38 00000000 101a3a48 00000000 10115ae8 ......:H......Z. =E2=94=82 0x101a1d48 00000000 101a3c10 00000000 10118150 ......<........P =E2=94=82 0x101a1d58 00000000 101a4318 00000000 00000000 ......C......... =E2=94=82 - 0x101a1d68 00000000 00000000 00000000 101a1dd8 ................ =E2=94=82 - 0x101a1d78 00000000 101650d0 00000000 101a1e70 ......P........p =E2=94=82 - 0x101a1d88 00000000 00000000 00000000 101a1d70 ...............p =E2=94=82 - 0x101a1d98 00000000 101a9388 00000000 101a93a0 ................ =E2=94=82 - 0x101a1da8 00000000 101a9370 00000000 101a1dd8 .......p........ =E2=94=82 - 0x101a1db8 00000000 101650f0 00000000 101a1fd8 ......P......... =E2=94=82 - 0x101a1dc8 00000000 00000000 00000000 101a1db0 ................ =E2=94=82 - 0x101a1dd8 00000000 101a93d0 00000000 101a93e8 ................ =E2=94=82 - 0x101a1de8 00000000 101a9598 00000000 101a9598 ................ =E2=94=82 - 0x101a1df8 00000000 101a9b20 00000000 101a9a90 ....... ........ =E2=94=82 - 0x101a1e08 00000000 101a9430 00000000 101a9418 .......0........ =E2=94=82 - 0x101a1e18 00000000 101a9400 00000000 101a2000 .............. . =E2=94=82 - 0x101a1e28 00000000 10165118 00000000 00000000 ......Q......... =E2=94=82 - 0x101a1e38 00000000 101a1e20 00000000 101a9580 ....... ........ =E2=94=82 - 0x101a1e48 00000000 101a95c8 00000000 101a9598 ................ =E2=94=82 - 0x101a1e58 00000000 101a9598 00000000 101a95e0 ................ =E2=94=82 - 0x101a1e68 00000000 101a95b0 00000000 101a2000 .............. . =E2=94=82 - 0x101a1e78 00000000 10165128 00000000 101a1dd8 ......Q(........ =E2=94=82 - 0x101a1e88 00000000 10165138 00000000 101a1e70 ......Q8.......p =E2=94=82 - 0x101a1e98 00000000 101a2000 00000000 10165150 ...... .......QP =E2=94=82 - 0x101a1ea8 00000000 101a2000 00000000 10165170 ...... .......Qp =E2=94=82 - 0x101a1eb8 00000000 00000000 00000000 101a1e70 ...............p =E2=94=82 - 0x101a1ec8 00000000 101a96e8 00000000 101a9748 ...............H =E2=94=82 - 0x101a1ed8 00000000 101a9718 00000000 00000000 ................ =E2=94=82 - 0x101a1ee8 00000000 101a1e80 00000000 101a9700 ................ =E2=94=82 - 0x101a1ef8 00000000 101a9760 00000000 101a9730 .......`.......0 =E2=94=82 - 0x101a1f08 00000000 00000000 00000000 101a1e98 ................ =E2=94=82 - 0x101a1f18 00000000 00000000 00000000 00000000 ................ =E2=94=82 - 0x101a1f28 00000000 101a99b8 00000000 00000000 ................ =E2=94=82 - 0x101a1f38 00000000 101a1ea8 00000000 00000000 ................ =E2=94=82 - 0x101a1f48 00000000 00000000 00000000 101a99b8 ................ =E2=94=82 - 0x101a1f58 00000000 101a1dd8 00000000 101651c0 ..............Q. =E2=94=82 - 0x101a1f68 00000000 101a1e70 00000000 101a1dd8 .......p........ =E2=94=82 - 0x101a1f78 00000000 101651e8 00000000 101a1e70 ......Q........p =E2=94=82 - 0x101a1f88 00000000 00000000 00000000 101a1f58 ...............X =E2=94=82 - 0x101a1f98 00000000 101a9880 00000000 101a98b0 ................ =E2=94=82 - 0x101a1fa8 00000000 101a9850 00000000 00000000 .......P........ =E2=94=82 - 0x101a1fb8 00000000 101a1f70 00000000 101a9898 .......p........ =E2=94=82 - 0x101a1fc8 00000000 101a98c8 00000000 101a9868 ...............h =E2=94=82 - 0x101a1fd8 00000000 101a1dd8 00000000 101652a8 ..............R. =E2=94=82 - 0x101a1fe8 00000000 101a1e20 00000000 00000000 ....... ........ =E2=94=82 - 0x101a1ff8 00000000 101a1fd8 00000000 101a9ac0 ................ =E2=94=82 - 0x101a2008 00000000 101a9ad8 00000000 101a9598 ................ =E2=94=82 - 0x101a2018 00000000 101a9598 00000000 101a9b20 ...............= =20 =E2=94=82 - 0x101a2028 00000000 101a9a90 00000000 101a9b08 ................ =E2=94=82 - 0x101a2038 00000000 101a9af0 00000000 101a9aa8 ................ =E2=94=82 + 0x101a1d68 00000000 00000000 00000000 101a1f40 ...............@ =E2=94=82 + 0x101a1d78 00000000 101650d0 00000000 101a1e30 ......P........0 =E2=94=82 + 0x101a1d88 00000000 101a1f40 00000000 101650f8 .......@......P. =E2=94=82 + 0x101a1d98 00000000 101a1e30 00000000 00000000 .......0........ =E2=94=82 + 0x101a1da8 00000000 101a1d70 00000000 101a9448 .......p.......H =E2=94=82 + 0x101a1db8 00000000 101a9478 00000000 101a9418 .......x........ =E2=94=82 + 0x101a1dc8 00000000 00000000 00000000 101a1d88 ................ =E2=94=82 + 0x101a1dd8 00000000 101a9460 00000000 101a9490 .......`........ =E2=94=82 + 0x101a1de8 00000000 101a9430 00000000 101a1f40 .......0.......@ =E2=94=82 + 0x101a1df8 00000000 10165178 00000000 101a1e30 ......Qx.......0 =E2=94=82 + 0x101a1e08 00000000 00000000 00000000 101a1df0 ................ =E2=94=82 + 0x101a1e18 00000000 101a9610 00000000 101a9628 ...............( =E2=94=82 + 0x101a1e28 00000000 101a95f8 00000000 101a1fb0 ................ =E2=94=82 + 0x101a1e38 00000000 10165198 00000000 101a1f40 ......Q........@ =E2=94=82 + 0x101a1e48 00000000 101651a8 00000000 101a1e30 ......Q........0 =E2=94=82 + 0x101a1e58 00000000 101a1fb0 00000000 101651c0 ..............Q. =E2=94=82 + 0x101a1e68 00000000 101a1fb0 00000000 101651e0 ..............Q. =E2=94=82 + 0x101a1e78 00000000 00000000 00000000 101a1e30 ...............0 =E2=94=82 + 0x101a1e88 00000000 101a9760 00000000 101a97c0 .......`........ =E2=94=82 + 0x101a1e98 00000000 101a9790 00000000 00000000 ................ =E2=94=82 + 0x101a1ea8 00000000 101a1e40 00000000 101a9778 .......@.......x =E2=94=82 + 0x101a1eb8 00000000 101a97d8 00000000 101a97a8 ................ =E2=94=82 + 0x101a1ec8 00000000 00000000 00000000 101a1e58 ...............X =E2=94=82 + 0x101a1ed8 00000000 00000000 00000000 00000000 ................ =E2=94=82 + 0x101a1ee8 00000000 101a98b0 00000000 00000000 ................ =E2=94=82 + 0x101a1ef8 00000000 101a1e68 00000000 00000000 .......h........ =E2=94=82 + 0x101a1f08 00000000 00000000 00000000 101a98b0 ................ =E2=94=82 + 0x101a1f18 00000000 101a1f40 00000000 10165270 .......@......Rp =E2=94=82 + 0x101a1f28 00000000 101a1f88 00000000 00000000 ................ =E2=94=82 + 0x101a1f38 00000000 101a1f18 00000000 101a98e0 ................ =E2=94=82 + 0x101a1f48 00000000 101a98f8 00000000 101a9af0 ................ =E2=94=82 + 0x101a1f58 00000000 101a9af0 00000000 101a9ac0 ................ =E2=94=82 + 0x101a1f68 00000000 101a9a30 00000000 101a9940 .......0.......@ =E2=94=82 + 0x101a1f78 00000000 101a9928 00000000 101a9910 .......(........ =E2=94=82 + 0x101a1f88 00000000 101a1f40 00000000 10165298 .......@......R. =E2=94=82 + 0x101a1f98 00000000 101a1ff8 00000000 00000000 ................ =E2=94=82 + 0x101a1fa8 00000000 101a1f88 00000000 101a9a60 ...............` =E2=94=82 + 0x101a1fb8 00000000 101a9a78 00000000 101a9af0 .......x........ =E2=94=82 + 0x101a1fc8 00000000 101a9af0 00000000 101a9ac0 ................ =E2=94=82 + 0x101a1fd8 00000000 101a9a30 00000000 101a9aa8 .......0........ =E2=94=82 + 0x101a1fe8 00000000 101a9a90 00000000 101a9a48 ...............H =E2=94=82 + 0x101a1ff8 00000000 101a1fb0 00000000 101652c0 ..............R. =E2=94=82 + 0x101a2008 00000000 00000000 00000000 101a1ff8 ................ =E2=94=82 + 0x101a2018 00000000 101a9ad8 00000000 101a9b20 ...............= =20 =E2=94=82 + 0x101a2028 00000000 101a9af0 00000000 101a9af0 ................ =E2=94=82 + 0x101a2038 00000000 101a9b38 00000000 101a9b08 .......8........ =E2=94=82 0x101a2048 00000000 10165a28 00000000 101aa888 ......Z(........ =E2=94=82 0x101a2058 00000000 00000000 04040404 00000000 ................ =E2=94=82 0x101a2068 00000000 10165a38 00000000 101aa8a0 ......Z8........ =E2=94=82 0x101a2078 00000000 00000000 04040404 00000000 ................ =E2=94=82 0x101a2088 00000000 10165a58 00000000 101aa8b8 ......ZX........ =E2=94=82 0x101a2098 00000000 00000000 04040404 00000000 ................ =E2=94=82 0x101a20a8 00000000 10165a70 00000000 101aa8d0 ......Zp........ =2D-8<---------------cut here---------------end--------------->8--- If I'm reading this correctly, one problem seems to be that our GCC toolchains are putting symbols at different locations. This issue (and maybe others) could be trickling down, causing other aspects of the binaries to differ (e.g., in length). Nothing really stands out, but when we discussed this on IRC, we thought perhaps factors like the following might contribute to the non-reproducibility: =2D Perhaps we are all running different Linux kernel versions? In some cases, the kernel version can unfortunately influence the build output, so this might be worth testing. =2D Perhaps the GCC Makefiles etc. are doing something non-deterministic? =2D Something else? Avenues of investigation: =2D If anything obvious stands out from the diffoscope output, please leave a comment. =2D Try building with different kernel versions on the same machine, to see if they differ. =2D If somebody else could please confirm that running the following command reports no difference on their own machine (i.e., exit code 0), that would be good to know, since it would help further solidify the theory that on a single machine, the build of gcc-static-5.5.0.drv is reproducible, even if it is not reproducible across machines: guix build --no-substitutes --check --target=3Dpowerpc64-linux-gnu \ -e '(@@ (gnu packages make-bootstrap) %gcc-static)' =2D Try building two different versions of gcc-7.5.0 (maybe by hand?), and then use them to build a simple reproduction case and compare results. If we're lucky, maybe this will help us understand the problem better. We'll get there! =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl7gemUACgkQ3UCaFdgi Rp3CJA/+I1u4W3TlKPLAWFq8mPWkE9iJGwWKcbSfVAMONQGqqNFv6nBfix2AhZDj trMnElbu7sDXDsihJnopBeoKmSpfYl59O4eFbRcpKzVxSg4aJ78GFoqwX9KKTNTG l0BJNnnrSwdxWQWZiZ3+ujexdSd3gpWk176WkcrDzUWLknBfGE+SRQf2j4JldnZ+ 8dDhMRhT+2jkRQBWUi6hZ6FP0xAmrOP6fpBv+aIrjQXgx6OsERpFy+paqn4lLjnn Lr0J943KlrpSDRDTX6VOZkpgNnZqq75QWoOWdVpcNrGtzEDusw6AoxUudQm1ZNZf TZqq1LQiH4S4V7M5T//PftkDRoCoHyynaePNrkQpzcNKjeG0jGK4xRZss+2eAEVV pZZAXMbe17JhkNjjxxlYI+CwhXAXV5Xy5llUM1DMd9oG9TCl+21xgboIaV9Nvyz8 8fYU4B0diXCXSGLc7odtDhZfukhag9geVuOh+7XfzTdItYEfC/vwrzC9JZZt0vbj jI6iKR5yvG6oEqdJkMTUBDONphCq2H7R3s+hyr8W5CO/VZ2UonE7Q/lE610hfpaS lagRuriOAkFtsyt15IsfJ/dHNJDnlzwrpe2YI/7Wr+cyUBGAnAzRHsGw0oYiQNUV jYoht9mw3kpqvh9/C8TLAF9KZBDUDWAcMaOFLSPgN72oGufMCq4= =7To8 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jun 10 18:20:23 2020 Received: (at 41669) by debbugs.gnu.org; 10 Jun 2020 22:20:24 +0000 Received: from localhost ([127.0.0.1]:35566 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jj955-0005nV-IK for submit@debbugs.gnu.org; Wed, 10 Jun 2020 18:20:23 -0400 Received: from imta-36.everyone.net ([216.200.145.36]:36906 helo=imta-38.everyone.net) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jj954-0005nM-17 for 41669@debbugs.gnu.org; Wed, 10 Jun 2020 18:20:23 -0400 Received: from pps.filterd (omta002.sj2.proofpoint.com [127.0.0.1]) by imta-38.everyone.net (8.16.0.27/8.16.0.27) with SMTP id 05AMH0QI004431; Wed, 10 Jun 2020 15:20:21 -0700 X-Eon-Originating-Account: H4SzW8FaSkwGSif7jeDnM_m1YTv3GA2Qd-qjf20FW3M X-Eon-Dm: m0116293.ppops.net Received: by m0116293.mta.everyone.net (EON-AUTHRELAY2 - 5a81c94d) id m0116293.5e67f91c.81a880; Wed, 10 Jun 2020 15:20:18 -0700 X-Eon-Sig: AQMHrIJe4VyiMk/tzgIAAAAF,f938924eb8f51a25ce799e06f480d947 X-Eip: WAdbK_sdcq8v4IO9A5Md1wWTkjF1uhrNQrNtDrvbinY Date: Thu, 11 Jun 2020 00:20:08 +0200 From: Bengt Richter To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: <20200610222008.GB3238@LionPure> References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87imfzcuqi.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <87imfzcuqi.fsf@gmail.com> User-Agent: Mutt/1.10.1 (2018-07-13) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.216, 18.0.687 definitions=2020-06-10_13:2020-06-10, 2020-06-10 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1034 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-2004280000 definitions=main-2006100159 X-Spam-Score: -0.4 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Bengt Richter Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.4 (-) Hi Chris, et al, On +2020-06-09 23:15:01 -0700, Chris Marusich wrote: > Hi Vincent and everyone, > > Vincent Legoll writes: > > > Is that showing the same (or a similar) problem : > > > > https://data.guix-patches.cbaines.net/gnu/store/0lcbxpw1vrca02dzpzw2rxhad7pn4zw7-gcc-objc-5.5.0 > > > > ? > > Can you clarify what you mean? I'm not sure what you're referring to. > > Chris Marusich writes: > > > At present, it seems possible that within the context of a single > > machine, gcc-stripped-tarball-5.5.0.drv builds reproducibly, but on a > > different machine, it may (reproducibly) build a different output. > > I'm a bit paranoid about making mistakes, so I'll perform another full > > GC and then try yet again to build gcc-stripped-tarball-5.5.0.drv in > > order to verify whether it truly produces the same output when all (or > > nearly all) of its inputs are rebuilt from scratch. > > I repeated the experiment on the same machine (it took a day or two to > build), and the result was the same: on my machine, > gcc-stripped-tarball-5.5.0.drv builds identical output to what it built > before. To be clear, using Guix 8159ce1970d91567468cf1bacac313099a009d2a > on an x86_64-linux machine, I tried (yet again) the following steps: > [...] > Efraim's diff looks a little different in statx.h, even though he used > the same Guix commit as me. Maybe this is because he cross-compiled on > an aarch64-linux machine, while I cross-compiled on an x86_64-linux > machine. In the other cases, it looks like the binary files differ in > basically the same ways. I will share some examples below. > > Here is some diffoscope output between my c++ and Efraim's (many other > sections also differed in similarly cryptic ways): > [...] > > If I'm reading this correctly, one problem seems to be that our GCC > toolchains are putting symbols at different locations. This issue (and > maybe others) could be trickling down, causing other aspects of the > binaries to differ (e.g., in length). Nothing really stands out, but > when we discussed this on IRC, we thought perhaps factors like the > following might contribute to the non-reproducibility: > > - Perhaps we are all running different Linux kernel versions? In some > cases, the kernel version can unfortunately influence the build > output, so this might be worth testing. > > - Perhaps the GCC Makefiles etc. are doing something non-deterministic? > Questions triggered in my mind: Where are respective machines getting their rules for packing and aligning structs and unions? Is any struct or rule/flags source dynamically generated, where different rules could come from different defaults, or .configs, or even invalid memoizations jumping domains? Could pointer arithmetic get done in one domain and the offset be misused in another? Wrong C preprocessor? Difference in sort key comparisons for canonicalization of ordering? Hope that's not all red herrings :) Sorry for the noise otherwise. > - Something else? Hm, some race condition between processes that should be order-independent but are not. Then if different hardware components on different systems -- disks, memory, processors -- cause different but repeatable patterns of waits (convoying?) you could get repeatable but different builds. I guess you'd have to figure out which order was really right, and force the order of processing explicitly to that order, so all systems would do it that way. > > Avenues of investigation: > > - If anything obvious stands out from the diffoscope output, please > leave a comment. > > - Try building with different kernel versions on the same machine, to > see if they differ. > > - If somebody else could please confirm that running the following > command reports no difference on their own machine (i.e., exit code > 0), that would be good to know, since it would help further solidify > the theory that on a single machine, the build of gcc-static-5.5.0.drv > is reproducible, even if it is not reproducible across machines: > > guix build --no-substitutes --check --target=powerpc64-linux-gnu \ > -e '(@@ (gnu packages make-bootstrap) %gcc-static)' > > - Try building two different versions of gcc-7.5.0 (maybe by hand?), and > then use them to build a simple reproduction case and compare results. > If we're lucky, maybe this will help us understand the problem better. > > We'll get there! > > -- > Chris -- Regards, Bengt Richter From debbugs-submit-bounces@debbugs.gnu.org Thu Jun 11 17:09:57 2020 Received: (at 41669) by debbugs.gnu.org; 11 Jun 2020 21:09:57 +0000 Received: from localhost ([127.0.0.1]:38247 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jjUSS-0008D3-VI for submit@debbugs.gnu.org; Thu, 11 Jun 2020 17:09:57 -0400 Received: from minsky.hcoop.net ([104.248.1.95]:33730) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jjUSR-0008Cr-7T for 41669@debbugs.gnu.org; Thu, 11 Jun 2020 17:09:55 -0400 Received: from marsh.hcoop.net ([45.55.52.66]) by minsky.hcoop.net with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1jjUSL-0001oI-NB; Thu, 11 Jun 2020 17:09:49 -0400 Date: Thu, 11 Jun 2020 17:09:49 -0400 (EDT) From: Jack Hill X-X-Sender: jackhill@marsh.hcoop.net To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible In-Reply-To: <87imfzcuqi.fsf@gmail.com> Message-ID: References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87imfzcuqi.fsf@gmail.com> User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?ISO-8859-15?Q?L=E9o_Le_Bouter?= , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Tue, 9 Jun 2020, Chris Marusich wrote: > - Try building with different kernel versions on the same machine, to > see if they differ. I've done the rebuild after updated from Linux 5.4.41 to 5.4.45, and go identical results to my previous build. I am using a different kernel configuration than Guix's default kernel, but it was the same between the builds. Best, Jack From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 12 22:53:18 2020 Received: (at 41669) by debbugs.gnu.org; 13 Sep 2020 02:53:18 +0000 Received: from localhost ([127.0.0.1]:49261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHI8j-00056L-Qr for submit@debbugs.gnu.org; Sat, 12 Sep 2020 22:53:18 -0400 Received: from mail-pj1-f67.google.com ([209.85.216.67]:51214) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHI8i-000568-L4 for 41669@debbugs.gnu.org; Sat, 12 Sep 2020 22:53:17 -0400 Received: by mail-pj1-f67.google.com with SMTP id a9so3645455pjg.1 for <41669@debbugs.gnu.org>; Sat, 12 Sep 2020 19:53:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=3v1jX2Ze1zrYhtlgur09vsciZmdynesJ+3F1pqvzW1Q=; b=pwyJ+w4cw4ts4LkxX5n71F40PRASmm3JyasSxO/6n0gxpxDjusO5RbiF0mflfPSHJj j6gRIhX8Bi1X38EHCymOFs2BPstGtc5Wnv/BUcrkf92C66Og9naxjyxPC2wOzLdAytKk qzV6DiB6Nj+DUnqp6layTDwwbB6X1YSswx9iHzRUrI3P08eBRvMk8yykJzpmHosnAX2t wsa91nn6JZYYTOiBjdIalKY0MmAcq/4oTeHeB7eGkoB5woKiTDqTdz9l0grhSNPGVuAU iYfYpg3pAeF64WDo4mwXRzy8MUGNaRIrnrHqSi4gwu9POEPkHvTGXi+Jzt91/XTPmXco ogVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=3v1jX2Ze1zrYhtlgur09vsciZmdynesJ+3F1pqvzW1Q=; b=gjXmMleyusPHTxEUjj+t9oC2K2sJ6cJN5CnUxq9l76afAqQdQF/UKSSf5iTLPdpInh 46I6q2DO/n4R9E1VHVXXwOq2RXyNXUkg4ZhNAIMM69bU3ZkDlB4q+c//0SBYr/QPB7fE om5elYU/lFmlrHr05k0HvSGPniMF97+tQ0xMC2X8tPBZqBmVKlbqZlxBP6eGvnsXC/0z HFl7M5YDCui9TjMGp6M/498m8A3/tc54eYBih12kNKXybqm2K/fobiwDh4HJS8HJ2OU5 XzQC44DjdeHFu7t395vjh7UBsCpCJbwPdvTBi2ni4Lf/4/xiJOcR7kpuG/yU1slDh2tr RUJg== X-Gm-Message-State: AOAM530pNQxDX7Meqc0k+42Qd7HgfbSZHWcOycThgPu9vM8TydJq1xpj zwde/brccjO0rhSKQ7t5t/c= X-Google-Smtp-Source: ABdhPJxgTT6HkeZqMs9PsAX31JsCetuP+piS64fbXyvOATcU2zNllOxsMboDIiVuknXdLMSiHJ73XQ== X-Received: by 2002:a17:90b:3004:: with SMTP id hg4mr8182561pjb.7.1599965590589; Sat, 12 Sep 2020 19:53:10 -0700 (PDT) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id q4sm6241268pfs.193.2020.09.12.19.53.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 12 Sep 2020 19:53:09 -0700 (PDT) From: Chris Marusich To: 41669@debbugs.gnu.org Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> Date: Sat, 12 Sep 2020 19:53:04 -0700 In-Reply-To: <87y2p4mqe2.fsf@gmail.com> (Chris Marusich's message of "Wed, 03 Jun 2020 02:48:21 -0700") Message-ID: <87a6xu2xrj.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: Vincent Legoll , Jack Hill , =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi everyone, Chris Marusich writes: > If you examine the derivations and their inputs, you'll find that they > depend upon each other in the following order: > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@ (gnu packages make-bo= otstrap) %gcc-bootstrap-tarball)' > /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.drv > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make-b= ootstrap) %gcc-stripped)' > /gnu/store/kcv3ja1rfr93hw6ly51878zjhdwpgv7z-gcc-stripped-5.5.0.drv > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make-b= ootstrap) %gcc-static)' > /gnu/store/m9hfwppla8lph0vxa15lfkp81s2bbjjs-gcc-static-5.5.0.drv > > In other words, gcc-static-5.5.0.drv is an input of > gcc-stripped-5.5.0.drv, which is an input of > gcc-stripped-tarball-5.5.0.drv. Above, I've included example guix > commands you can use to obtain each derivation. Using "guix build > --check", I confirmed that all three of these derivations build > reproducibly on my machine. After further experimentation, I've discovered that %gcc-static, when built as shown above (without the -d option, of course), produces different output on Debian than on Fedora. Specifically, the %gcc-static output contains a file named libstdc++.a. This file is an archive file. Although its members are content-identical in the case of Fedora and Debian, the order of the members in the archive differs. Because the exact same inputs were used, it seems very likely that a difference in the Guix build environment caused the %gcc-static build logic to order the members of libstdc++.a differently. I built %gcc-static using Guix commit a02b2f8b86c0227eb69aa24b4373aef456365334. Both Debian and Fedora were x86_64-linux systems. I took the following steps to make absolutely certain that the exact same inputs were used on Debian and Fedora: =2D I provisioned two fresh EC2 instances (Debian and Fedora). =2D I installed Guix on Debian. =2D I did "guix pull" on Debian to get to the aforementioned commit. =2D I built %gcc-static on Debian as indicated above. =2D I manually copied the Guix store and the Guix database from Debian to Fedora. =2D I manually fixed up Fedora so it could run Guix (I created the guix users, added a systemd unit file, disabled selinux, etc.). =2D I manually verified the Guix version and the store contents were identical on Fedora and Debian. =2D I GC'd %gcc-static (and nothing else) on Fedora. =2D I rebuilt %gcc-static on Fedora. =2D I compared the Fedora %gcc-static output to the Debian %gcc-static output. The %gcc-static package uses GCC 5.5.0 as its source. I got a copy of the GCC 5.5.0 source code, and I looked at it. However, it's complex. I can't pinpoint where they actually build the libstdc++.a file. Can anyone point me to the code that does this in the GCC 5.5.0 source? I expected to find the logic hiding in a makefile or a configure script or something, but I haven't found it yet. Since this is an old GCC, it is possible that this was a known reproducibility bug which has since been fixed. I haven't looked into that possibility yet. If that's the case, though, it would be nice because we could simply backport a fix. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl9diZAACgkQ3UCaFdgi Rp0WHxAAxQnPB0Dg4GfaXrtRxOwZsqVuNlg14Qpp46YzroCJ66MyK3x4ddekFIkj p1pyyzLVF9RSvsPspf9oc0Go12JndQMOqpsAUE0rJLbVPbTlrNrkh9Jhhfar95IX p+cSNQoeuab1+nOeUH17J2TMdoxsXiwzB/4IuQHQtNLe3DVNKmIYB0tgL/L/Xasc WN0qHyNwkW/Lobs4jWNzukD3DiCv+zN0r1eDwsk02EOegW+m5yeyGMKbQUa7QCba g5vGeSi92AiqEVkuj62/IObMFVQP1rlNUBN9a3Yn8UTxW//PF9fwkJRIpSqdmGx7 VYpRJ/e4L6NT2GE91X+RPz0Pz0J9viV/lsM8esALudxQRv2/1loh4T6mubM394Cw yrhv2TxFmtlrBAEGJmIulCSOKGTJYy2bXbq2vR0sfbXZs3iKvPdY0FVyy3NShTz0 d3+Yk1T1dXw0tKQBmr04mpq+2SFvKTrHJB3FmVQa8/v+q+Q7ca10/X7NhcIgMG5H Nq7ttes7zV/zlIvWRChCKUHyefQBzN00ZQeBWfsJykko4m6W5vquOVs0Log54TrJ rgQIZAickNIQSMcG0fOVmzaj7iGf1smiaeB3bIW91Ub6FJ9NuoJuyLMFd6xmezVJ gv3wpnd6Yh9kzORQV79C14iIDUvYIOPJn3qBm1DPe5RQdlu3wn4= =OFt6 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 13 02:29:53 2020 Received: (at 41669) by debbugs.gnu.org; 13 Sep 2020 06:29:54 +0000 Received: from localhost ([127.0.0.1]:49373 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHLWL-00026b-Ip for submit@debbugs.gnu.org; Sun, 13 Sep 2020 02:29:53 -0400 Received: from flashner.co.il ([178.62.234.194]:40960) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kHLWJ-00026M-Iz for 41669@debbugs.gnu.org; Sun, 13 Sep 2020 02:29:52 -0400 Received: from localhost (unknown [31.210.181.177]) by flashner.co.il (Postfix) with ESMTPSA id 4DBF24000B; Sun, 13 Sep 2020 06:29:44 +0000 (UTC) Date: Sun, 13 Sep 2020 09:28:58 +0300 From: Efraim Flashner To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: <20200913062858.GC1100@E5400> References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Clx92ZfkiYIKRjnr" Content-Disposition: inline In-Reply-To: <87a6xu2xrj.fsf@gmail.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Clx92ZfkiYIKRjnr Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Sep 12, 2020 at 07:53:04PM -0700, Chris Marusich wrote: > Hi everyone, >=20 > Chris Marusich writes: >=20 > > If you examine the derivations and their inputs, you'll find that they > > depend upon each other in the following order: > > > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@ (gnu packages make-= bootstrap) %gcc-bootstrap-tarball)' > > /gnu/store/pygln3lr6qbxcps3kmn3w4bc0d0nlpd3-gcc-stripped-tarball-5.5.0.= drv > > > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make= -bootstrap) %gcc-stripped)' > > /gnu/store/kcv3ja1rfr93hw6ly51878zjhdwpgv7z-gcc-stripped-5.5.0.drv > > > > guix build --target=3Dpowerpc64-linux-gnu -d -e '(@@ (gnu packages make= -bootstrap) %gcc-static)' > > /gnu/store/m9hfwppla8lph0vxa15lfkp81s2bbjjs-gcc-static-5.5.0.drv > > > > In other words, gcc-static-5.5.0.drv is an input of > > gcc-stripped-5.5.0.drv, which is an input of > > gcc-stripped-tarball-5.5.0.drv. Above, I've included example guix > > commands you can use to obtain each derivation. Using "guix build > > --check", I confirmed that all three of these derivations build > > reproducibly on my machine. >=20 > After further experimentation, I've discovered that %gcc-static, when > built as shown above (without the -d option, of course), produces > different output on Debian than on Fedora. >=20 > Specifically, the %gcc-static output contains a file named libstdc++.a. > This file is an archive file. Although its members are > content-identical in the case of Fedora and Debian, the order of the > members in the archive differs. Because the exact same inputs were > used, it seems very likely that a difference in the Guix build > environment caused the %gcc-static build logic to order the members of > libstdc++.a differently. >=20 > I built %gcc-static using Guix commit > a02b2f8b86c0227eb69aa24b4373aef456365334. Both Debian and Fedora were > x86_64-linux systems. I took the following steps to make absolutely > certain that the exact same inputs were used on Debian and Fedora: >=20 > - I provisioned two fresh EC2 instances (Debian and Fedora). >=20 > - I installed Guix on Debian. >=20 > - I did "guix pull" on Debian to get to the aforementioned commit. >=20 > - I built %gcc-static on Debian as indicated above. >=20 > - I manually copied the Guix store and the Guix database from Debian to > Fedora. >=20 > - I manually fixed up Fedora so it could run Guix (I created the guix > users, added a systemd unit file, disabled selinux, etc.). >=20 > - I manually verified the Guix version and the store contents were > identical on Fedora and Debian. >=20 > - I GC'd %gcc-static (and nothing else) on Fedora. >=20 > - I rebuilt %gcc-static on Fedora. >=20 > - I compared the Fedora %gcc-static output to the Debian %gcc-static > output. >=20 > The %gcc-static package uses GCC 5.5.0 as its source. I got a copy of > the GCC 5.5.0 source code, and I looked at it. However, it's complex. > I can't pinpoint where they actually build the libstdc++.a file. Can > anyone point me to the code that does this in the GCC 5.5.0 source? I > expected to find the logic hiding in a makefile or a configure script or > something, but I haven't found it yet. >=20 > Since this is an old GCC, it is possible that this was a known > reproducibility bug which has since been fixed. I haven't looked into > that possibility yet. If that's the case, though, it would be nice > because we could simply backport a fix. >=20 > --=20 > Chris Is this a file we actually need during the bootstrap process? Can we "work around it" by just deleting it? --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --Clx92ZfkiYIKRjnr Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl9dvCoACgkQQarn3Mo9 g1Ecbg//XfW6XzWsg5kVwdUW0cxO40TNaBumnuPBed5NGR92cCP1QibPEzbvpM2y Vol26ZUjFatN5REkuWnn4JCuTy6S4BUmzhV5UGwupioEuq2LdMeWGT2rpgB/f9pI E2RfT/PfAZSW2pEIASzVHzJyEL+fKX2LzByUWciIkmssYDRfbtYfpLNsgUGSxqLw mRMecqUW52UalRx7vKdqQOwbuF235hmHRx6JTlnoauq7KkYgx1qLqzwbty4VhkDR J3D8I40lVuEcaZ4rRdn4Ng33B3v6HR7VhMN+59f0amRc4D6c4HHfknxyvU8wXnI8 cT43E7k+ZlW9TsGyZXWiL1vxolcBnggPopJ6ZCIDhDllFpHVtCtrhTR0wDyqw3X8 TtpAXUFlqwI+ivPgzOrYs3cYqZp8VoHfp/COO5rEKOCdA4aWhh2XEpWPMBgUQ1oo 0EWJW7Fx+0RcOJd1Dd+QWDSWd9n4nUqp6NtTDtnU+LZGQvmS557v4q3ehBhvJJq+ ioGVpT1Z4HEHrwl0a6W9LQjKpj9k/KYD3nqhBoWaDAZKqYgikKlRR9vsgUwqszFr BsGrS/MRt9qsCZtxz0jgE4vSz5yB4Jet/LhOBaDr+DANuGv6fEJ3aciC3217PgYe yad0y9FRbHPuScohHrmk+b+SXKLxnZy68hDaUPXQDIb+H0kp6vU= =qHSj -----END PGP SIGNATURE----- --Clx92ZfkiYIKRjnr-- From debbugs-submit-bounces@debbugs.gnu.org Sat Sep 26 02:53:03 2020 Received: (at 41669) by debbugs.gnu.org; 26 Sep 2020 06:53:03 +0000 Received: from localhost ([127.0.0.1]:45685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kM44s-0006e2-JN for submit@debbugs.gnu.org; Sat, 26 Sep 2020 02:53:03 -0400 Received: from mail-pf1-f195.google.com ([209.85.210.195]:39061) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kM44n-0006dU-Ib for 41669@debbugs.gnu.org; Sat, 26 Sep 2020 02:53:01 -0400 Received: by mail-pf1-f195.google.com with SMTP id n14so5183893pff.6 for <41669@debbugs.gnu.org>; Fri, 25 Sep 2020 23:52:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=Czce+yfdkb7csCeUcygn9K//y8sGJkrMZg6xIKRRfkY=; b=n3KkbdSKRbZU5IRY0DRkyMxcDj2DCce4z3blb+XMhi/EXm7NsbyaW0BAc3gxOzy4WO Ar36ilpIhO/LbmthegcBMXljxCnV+v4d7roZUjezgqJjsUrCo18GOzGQUYkBZLhH1skK UAfXusXvPgV4skBzQK+lsn8w5Zqs02phaVa8RT3YzNq97Ako65BWg+Soza7p9zdZWBYW ijNGRqhBBCjY7vCGiB9fSPH91o/lw8mN2o1CcX3tEDllo9cqytNCEsphcuv+Z8fEKOg9 FujnU0V4UceWrmA+U2TZtZ9JF4N9cd2Gs6bPPx6l18jHlwBesDGyl8GCwThkaj/kU26C pYaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=Czce+yfdkb7csCeUcygn9K//y8sGJkrMZg6xIKRRfkY=; b=PAgWZ1OJM+BSC5ClKjn5141M5Mq4WmCebrPfg9Kq5kjGs9mN2R3rT/yhL5E2qJ+Yg8 poW2odrD+K4TS7NaG2OX070FOE7SshUwxr2GM67g6OABNA1z0VBXjB2Kex48lYT3Cpjf dwj9nOj43xdSzn7gJvZF0u3OZxegV4m7ujgxzgoAnKrqWDCDkcbFZHIlFBiWtZRM2hnl MOKJqU3yndBqQQX30BCtw7lCPpSj1nuLi7pt2wJMG/Ew8qsoDr63XOm/m32pkM+3AeCA jk4JE8Qd+M8z3u3GiWJqOLs5WBjwcYBf2aPaqUz9uCDNyokFh3mbqk+BG/RSLohp9UyU YX/A== X-Gm-Message-State: AOAM530Oe6WCcwgGaVkY0c/GEkmVzyLfUWtMG3p4dSNfxCpK0H5Kel7f fyeJqK55YZVEUHVfDn+3vCc= X-Google-Smtp-Source: ABdhPJyouk2r8EWzkSe8S0eYiDAL3IbGo6d1UFSHyoC4xO6bQI/3tj4cDiFv5CsHpVLg4zkKJSPd4g== X-Received: by 2002:aa7:8a54:0:b029:142:2501:34f6 with SMTP id n20-20020aa78a540000b0290142250134f6mr2558574pfa.79.1601103171458; Fri, 25 Sep 2020 23:52:51 -0700 (PDT) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id u138sm4508538pfc.218.2020.09.25.23.52.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Sep 2020 23:52:50 -0700 (PDT) From: Chris Marusich To: Efraim Flashner Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> Date: Fri, 25 Sep 2020 23:52:48 -0700 In-Reply-To: <20200913062858.GC1100@E5400> (Efraim Flashner's message of "Sun, 13 Sep 2020 09:28:58 +0300") Message-ID: <87wo0hqbb3.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi everyone, Efraim Flashner writes: > Is this a file we actually need during the bootstrap process? Can we > "work around it" by just deleting it? That's a good idea. I tried building %gcc-static with the =2D-disable-libstdcxx configure flag (see attached patch), and that caused the build of %gcc-static itself to become reproducible on Debian and Fedora when using exactly the same inputs. To clarify, I have recently run the following experiments: +------+-------------+---------------------+--------------+----------------= +---------------+ | Case | Build | libstdcxx | substitutes? | Inputs = | Result | +------+-------------+---------------------+--------------+----------------= +---------------+ | | | | | Built fresh on = | Output | | 1 | %gcc-static | enabled | yes | Debian, copied = | differs: | | | | | | to Fedora = | libstdc++.a | +------+-------------+---------------------+--------------+----------------= +---------------+ | | | | | Re-used inputs = | Toy binary | | 2 | toy program | n/a | yes | from above = | does not | | | | | | = | differ | +------+-------------+---------------------+--------------+----------------= +---------------+ | | | | | Built fresh on = | Output does | | 3 | %gcc-static | disabled | yes | Debian, copied = | not differ | | | | | | to Fedora = | | +------+-------------+---------------------+--------------+----------------= +---------------+ | | | | | Built fresh on = | Output | | 4 | %gcc-static | disabled | yes | Debian, fresh = | differs: | | | | | | on Fedora = | various files | +------+-------------+---------------------+--------------+----------------= +---------------+ | | | | | Inputs failed = | Build failed | | 5 | %gcc-static | disabled | no | to build on = | on both | | | | | | both systems = | systems | +------+-------------+---------------------+--------------+----------------= +---------------+ The "toy program" in case 2 was just this: #include int main() { printf("Hello"); return 0; } When I say I "copied" the inputs from Debian to Fedora, I mean just that. I copied stuff like /gnu and /var/guix from Debian to Fedora (while guix-daemon was stopped, of course), GC'd just %gcc-static on Fedora, and then rebuilt %gcc-static on Fedora so it would use exactly the same inputs as were used on Debian. The most notable new findings are cases 3 and 4. Case 5 made me pretty sad because I spent almost an entire weekend trying to build Guix from source using various binary Guix releases, and in none of the attempts was I successful in running "guix pull" or even just "guix environment =2D-pure guix" without substitutes, which really surprised me. Case 3 confirms Efraim's suggestion: we can fix the libstdc++.a reproducibility problem by simply not building libstdc++.a in the first place. It also confirms that, when built with --disable-libstdcxx, %gcc-static can be built reproducibly on different systems as long as exactly the same inputs are used. Whether or not %gcc-static can be used to successfully bootstrap packages on powerpc64-linux when built in this way remains to be seen. Case 4, unfortunately, demonstrates that there are still other reproducibility issues that we have not yet resolved. Since the only difference between cases 3 and 4 is how the inputs were realized, the differing %gcc-static output must be caused by the inputs somehow. In case 4, the %gcc-static output differed in the following files (the hashes on the left are MD5 hashes): =2D-8<---------------cut here---------------start------------->8--- =2D-- /dev/fd/63 2020-09-25 20:35:33.386554595 -0700 +++ /dev/fd/62 2020-09-25 20:35:33.387554604 -0700 @@ -1,28 +1,28 @@ =2Dc9b0dfcbad566c0b8b88df94bb993312 ./bin/c++ =2D092823145dc96b9eb81111362f7b4ced ./bin/cpp =2Dc9b0dfcbad566c0b8b88df94bb993312 ./bin/g++ =2De4cc43b7790dcd25f31419bad606b36e ./bin/gcc +8f02302b55643f1c711e472a42fea8bd ./bin/c++ +9f1fd993e4f2b796fcc56f0b2f8a47d2 ./bin/cpp +8f02302b55643f1c711e472a42fea8bd ./bin/g++ +583d1b011a7ba009d7385117dd7a33c8 ./bin/gcc f9d94f4bb61f70d14ea4b2ce73c9be9d ./bin/gcc-ar 01fc2184f99c558771aa8f2fe30b373d ./bin/gcc-nm da5356ee09ccda4ca06758d056370f7e ./bin/gcc-ranlib =2D98645f7b00ba185e713915099853fd37 ./bin/gcov =2D37dd62589454703ae7f2eaac1668b66e ./bin/gcov-dump =2Df3dbc7e0c84a40194af3aa2429444e87 ./bin/gcov-tool =2Dc9b0dfcbad566c0b8b88df94bb993312 ./bin/powerpc64-linux-gnu-c++ =2Dc9b0dfcbad566c0b8b88df94bb993312 ./bin/powerpc64-linux-gnu-g++ =2De4cc43b7790dcd25f31419bad606b36e ./bin/powerpc64-linux-gnu-gcc =2De4cc43b7790dcd25f31419bad606b36e ./bin/powerpc64-linux-gnu-gcc-5.5.0 +a208bedbfca9c7bd6c27d0d42f7096fe ./bin/gcov +43330e8ae00976b4b3427d2f83b0725e ./bin/gcov-dump +9f37da5e96f147d733eb7195350ae5d2 ./bin/gcov-tool +8f02302b55643f1c711e472a42fea8bd ./bin/powerpc64-linux-gnu-c++ +8f02302b55643f1c711e472a42fea8bd ./bin/powerpc64-linux-gnu-g++ +583d1b011a7ba009d7385117dd7a33c8 ./bin/powerpc64-linux-gnu-gcc +583d1b011a7ba009d7385117dd7a33c8 ./bin/powerpc64-linux-gnu-gcc-5.5.0 f9d94f4bb61f70d14ea4b2ce73c9be9d ./bin/powerpc64-linux-gnu-gcc-ar 01fc2184f99c558771aa8f2fe30b373d ./bin/powerpc64-linux-gnu-gcc-nm da5356ee09ccda4ca06758d056370f7e ./bin/powerpc64-linux-gnu-gcc-ranlib =2D6ed530d13e65c3500b7e7b7cc863afdc ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1 =2D24a83af179ca8849da8c64aa854ec8ed ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1plus =2D0c05b45bb926a06c2b09acdb1db9aad0 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/collect2 +22b72247a5706f090505341263ca1fc2 ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= cc1 +3be618d184038dd30011d6aa8198c0be ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= cc1plus +2f31e84c01cc087318d0c7f15b6e3f47 ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= collect2 417a5b42a26275b2c912db16b9abf73a ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= install-tools/fixincl fd6f80ec9089ddf51f9cac26299e45af ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= install-tools/fixinc.sh a585abbd6a9cdc474564b54fc72e4efa ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= install-tools/mkheaders 5071acceb24c0c0e8a423286205ed54c ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= install-tools/mkinstalldirs =2D4e77b773ac45ce8f82a4d21a34063920 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/lto-wrapper +5267311e0ed8bb5358e5556dfa205ca6 ./libexec/gcc/powerpc64-linux-gnu/5.5.0/= lto-wrapper a90ab86f837913280f72beb5310714bc ./lib/gcc/powerpc64-linux-gnu/5.5.0/crtb= egin.o 0b38aa831c40b6bc4fb22248746d60d8 ./lib/gcc/powerpc64-linux-gnu/5.5.0/crtb= eginS.o 8f62d8795bebd8e87caa3640522ff93b ./lib/gcc/powerpc64-linux-gnu/5.5.0/crtb= eginT.o =2D-8<---------------cut here---------------end--------------->8--- These appear to be the same diffs that I reported before - with the notable exception that libstdc++.a now is missing from the list of differing files (hooray!). Going forward, I'm not sure how best to investigate the inputs to find out what's causing the differences. I just know I really, really, really don't want to rebuild everything multiple times, since it takes hours/days. If you have any creative ideas for how to speed up the investigation, I'm all ears. =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-Disable-libstdc-in-bootstrap-GCC.patch Content-Transfer-Encoding: quoted-printable From=20e3d1778a86dfd171d59d91eb01417faaf63dfa17 Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sat, 19 Sep 2020 14:25:43 -0700 Subject: [PATCH] gnu: Disable libstdc++ in bootstrap GCC. Fixes part of: . * gnu/packages/make-bootstrap.scm (%gcc-static) [#:configure-flags]: Add =2D-disable-libstdcxx to disable building the libstdc++-v3 directory. =2D-- gnu/packages/make-bootstrap.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.= scm index b2d3e2a326..8632d63c21 100644 =2D-- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -487,6 +487,10 @@ for `sh' in $PATH, and without nscd, and with static N= SS modules." ;; Make sure gcc-nm doesn't require liblto_plugin.so. "--disable-lto" =20 + ;; In this GCC version, libstdc++.a is not reproducible: + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41669 + "--disable-libstdcxx" + "--disable-shared" "--disable-plugin" "--disable-libmudflap" =2D-=20 2.26.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl9u5UAACgkQ3UCaFdgi Rp2DMQ/9GkMFoMU1/yUgSUlHgkGyFqK+SNKuURi3+f+90P2suKbfQ8qYJeTIM8KD gDg4mmDztWvORu5otyIq8yrpSKlTTH3OgSyuxLf+EZOd9/rmA5vO9mEjAI6sQzvQ mJXCk3Z6GVAnEiCqO7FKDapBRQVd9MIn8ObjXQbJrqGqeJg5CHxsMCVCtQz99m95 L56G2B0Ph3KbDfDqhb6AhYTyLhZ3oy+mrTzwc7aE9Ott6rWA9TJ7xH0sul6RL6gA hwYJT6yIsvNuT+en94TYKtaPpMkEVJklNOUp34ERaggpU4eGBwszti351QjLCect sz9O2DqU2cUlG2zCGS9x4cwmjNDFDoWvKg+VDtqmKO5C+1344qVgubcvHYjMruYf Goaige9PmvGs9htG4cPVeKoR80Hy8l5cNyjteIGqQm9lavVP+WUYiL9TTC+jQEo4 jzkhlWxvfGLdnIT4SZbkOike/bQN4ckzwdg1d1MfLDmhOlFfnCM1rZ3qFdCwQBzn szIqVWdaO+BUMoYin1OVhaUnTpSKSB3pDbsY6SwY8aHqcH7Kw6XRCeYHnHaP1MQn hGowVLo0R58Fo5zghHlulqC/t/PmB4SJ3G/ZjbxTRexHNqvhq2MwQoGFH0gNP6Un mW97TFHwvkejUCKMkytJNB+i26td9gXhU+zmbvy7JYOjTa9mlg4= =5H4x -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 05 08:33:20 2020 Received: (at 41669) by debbugs.gnu.org; 5 Oct 2020 12:33:20 +0000 Received: from localhost ([127.0.0.1]:48255 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kPPg7-0002cV-Nh for submit@debbugs.gnu.org; Mon, 05 Oct 2020 08:33:20 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55912) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kPPg5-0002cH-03 for 41669@debbugs.gnu.org; Mon, 05 Oct 2020 08:33:18 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:57795) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kPPfy-0006Ta-Mv; Mon, 05 Oct 2020 08:33:10 -0400 Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=35072 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kPPft-0004OU-SJ; Mon, 05 Oct 2020 08:33:07 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 14 =?utf-8?Q?Vend=C3=A9miaire?= an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 05 Oct 2020 14:33:04 +0200 In-Reply-To: <87wo0hqbb3.fsf@gmail.com> (Chris Marusich's message of "Fri, 25 Sep 2020 23:52:48 -0700") Message-ID: <87pn5wzwcf.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Chris, Chris Marusich skribis: > From e3d1778a86dfd171d59d91eb01417faaf63dfa17 Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Sat, 19 Sep 2020 14:25:43 -0700 > Subject: [PATCH] gnu: Disable libstdc++ in bootstrap GCC. > > Fixes part of: . > > * gnu/packages/make-bootstrap.scm (%gcc-static) [#:configure-flags]: Add > --disable-libstdcxx to disable building the libstdc++-v3 directory. [...] > + ;; In this GCC version, libstdc++.a is not reproducib= le: > + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41= 669 > + "--disable-libstdcxx" Does it have any effect with GCC > 4.7? My understanding is that it builds its libstdc++ no matter what. Also, if it=E2=80=99s just libstdc++.a that=E2=80=99s problematic (ordering= issue in the .a archive?), perhaps we can use --disable-shared? My 2=C2=A2 (I didn=E2=80=99t follow the whole discussion), Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Oct 05 08:47:57 2020 Received: (at 41669) by debbugs.gnu.org; 5 Oct 2020 12:47:57 +0000 Received: from localhost ([127.0.0.1]:48289 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kPPuH-0002z7-4H for submit@debbugs.gnu.org; Mon, 05 Oct 2020 08:47:57 -0400 Received: from flashner.co.il ([178.62.234.194]:58896) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kPPuE-0002yt-Gh for 41669@debbugs.gnu.org; Mon, 05 Oct 2020 08:47:55 -0400 Received: from localhost (unknown [31.210.181.177]) by flashner.co.il (Postfix) with ESMTPSA id 55EB640216; Mon, 5 Oct 2020 12:47:45 +0000 (UTC) Date: Mon, 5 Oct 2020 15:47:10 +0300 From: Efraim Flashner To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: <20201005124710.GA21174@E5400> References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="KsGdsel6WgEHnImy" Content-Disposition: inline In-Reply-To: <87wo0hqbb3.fsf@gmail.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --KsGdsel6WgEHnImy Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Sep 25, 2020 at 11:52:48PM -0700, Chris Marusich wrote: > Hi everyone, >=20 > Efraim Flashner writes: >=20 > > Is this a file we actually need during the bootstrap process? Can we > > "work around it" by just deleting it? >=20 > That's a good idea. I tried building %gcc-static with the > --disable-libstdcxx configure flag (see attached patch), and that caused > the build of %gcc-static itself to become reproducible on Debian and > Fedora when using exactly the same inputs. To clarify, I have recently > run the following experiments: >=20 > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | Case | Build | libstdcxx | substitutes? | Inputs = | Result | > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | | | | | Built fresh o= n | Output | > | 1 | %gcc-static | enabled | yes | Debian, copie= d | differs: | > | | | | | to Fedora = | libstdc++.a | > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | | | | | Re-used input= s | Toy binary | > | 2 | toy program | n/a | yes | from above = | does not | > | | | | | = | differ | > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | | | | | Built fresh o= n | Output does | > | 3 | %gcc-static | disabled | yes | Debian, copie= d | not differ | > | | | | | to Fedora = | | > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | | | | | Built fresh o= n | Output | > | 4 | %gcc-static | disabled | yes | Debian, fresh= | differs: | > | | | | | on Fedora = | various files | > +------+-------------+---------------------+--------------+--------------= --+---------------+ > | | | | | Inputs failed= | Build failed | > | 5 | %gcc-static | disabled | no | to build on = | on both | > | | | | | both systems= | systems | > +------+-------------+---------------------+--------------+--------------= --+---------------+ >=20 > The "toy program" in case 2 was just this: >=20 > #include > int main() { > printf("Hello"); > return 0; > } >=20 > When I say I "copied" the inputs from Debian to Fedora, I mean just > that. I copied stuff like /gnu and /var/guix from Debian to Fedora > (while guix-daemon was stopped, of course), GC'd just %gcc-static on > Fedora, and then rebuilt %gcc-static on Fedora so it would use exactly > the same inputs as were used on Debian. >=20 > The most notable new findings are cases 3 and 4. Case 5 made me pretty > sad because I spent almost an entire weekend trying to build Guix from > source using various binary Guix releases, and in none of the attempts > was I successful in running "guix pull" or even just "guix environment > --pure guix" without substitutes, which really surprised me. >=20 > Case 3 confirms Efraim's suggestion: we can fix the libstdc++.a > reproducibility problem by simply not building libstdc++.a in the first > place. It also confirms that, when built with --disable-libstdcxx, > %gcc-static can be built reproducibly on different systems as long as > exactly the same inputs are used. Whether or not %gcc-static can be > used to successfully bootstrap packages on powerpc64-linux when built in > this way remains to be seen. >=20 > Case 4, unfortunately, demonstrates that there are still other > reproducibility issues that we have not yet resolved. Since the only > difference between cases 3 and 4 is how the inputs were realized, the > differing %gcc-static output must be caused by the inputs somehow. >=20 > In case 4, the %gcc-static output differed in the following files (the > hashes on the left are MD5 hashes): >=20 > --8<---------------cut here---------------start------------->8--- > --- /dev/fd/63 2020-09-25 20:35:33.386554595 -0700 > +++ /dev/fd/62 2020-09-25 20:35:33.387554604 -0700 > @@ -1,28 +1,28 @@ > -c9b0dfcbad566c0b8b88df94bb993312 ./bin/c++ > -092823145dc96b9eb81111362f7b4ced ./bin/cpp > -c9b0dfcbad566c0b8b88df94bb993312 ./bin/g++ > -e4cc43b7790dcd25f31419bad606b36e ./bin/gcc > +8f02302b55643f1c711e472a42fea8bd ./bin/c++ > +9f1fd993e4f2b796fcc56f0b2f8a47d2 ./bin/cpp > +8f02302b55643f1c711e472a42fea8bd ./bin/g++ > +583d1b011a7ba009d7385117dd7a33c8 ./bin/gcc > f9d94f4bb61f70d14ea4b2ce73c9be9d ./bin/gcc-ar > 01fc2184f99c558771aa8f2fe30b373d ./bin/gcc-nm > da5356ee09ccda4ca06758d056370f7e ./bin/gcc-ranlib > -98645f7b00ba185e713915099853fd37 ./bin/gcov > -37dd62589454703ae7f2eaac1668b66e ./bin/gcov-dump > -f3dbc7e0c84a40194af3aa2429444e87 ./bin/gcov-tool > -c9b0dfcbad566c0b8b88df94bb993312 ./bin/powerpc64-linux-gnu-c++ > -c9b0dfcbad566c0b8b88df94bb993312 ./bin/powerpc64-linux-gnu-g++ > -e4cc43b7790dcd25f31419bad606b36e ./bin/powerpc64-linux-gnu-gcc > -e4cc43b7790dcd25f31419bad606b36e ./bin/powerpc64-linux-gnu-gcc-5.5.0 > +a208bedbfca9c7bd6c27d0d42f7096fe ./bin/gcov > +43330e8ae00976b4b3427d2f83b0725e ./bin/gcov-dump > +9f37da5e96f147d733eb7195350ae5d2 ./bin/gcov-tool > +8f02302b55643f1c711e472a42fea8bd ./bin/powerpc64-linux-gnu-c++ > +8f02302b55643f1c711e472a42fea8bd ./bin/powerpc64-linux-gnu-g++ > +583d1b011a7ba009d7385117dd7a33c8 ./bin/powerpc64-linux-gnu-gcc > +583d1b011a7ba009d7385117dd7a33c8 ./bin/powerpc64-linux-gnu-gcc-5.5.0 > f9d94f4bb61f70d14ea4b2ce73c9be9d ./bin/powerpc64-linux-gnu-gcc-ar > 01fc2184f99c558771aa8f2fe30b373d ./bin/powerpc64-linux-gnu-gcc-nm > da5356ee09ccda4ca06758d056370f7e ./bin/powerpc64-linux-gnu-gcc-ranlib > -6ed530d13e65c3500b7e7b7cc863afdc ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1 > -24a83af179ca8849da8c64aa854ec8ed ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1plus > -0c05b45bb926a06c2b09acdb1db9aad0 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/collect2 > +22b72247a5706f090505341263ca1fc2 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1 > +3be618d184038dd30011d6aa8198c0be ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/cc1plus > +2f31e84c01cc087318d0c7f15b6e3f47 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/collect2 > 417a5b42a26275b2c912db16b9abf73a ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/install-tools/fixincl > fd6f80ec9089ddf51f9cac26299e45af ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/install-tools/fixinc.sh > a585abbd6a9cdc474564b54fc72e4efa ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/install-tools/mkheaders > 5071acceb24c0c0e8a423286205ed54c ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/install-tools/mkinstalldirs > -4e77b773ac45ce8f82a4d21a34063920 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/lto-wrapper > +5267311e0ed8bb5358e5556dfa205ca6 ./libexec/gcc/powerpc64-linux-gnu/5.5.= 0/lto-wrapper > a90ab86f837913280f72beb5310714bc ./lib/gcc/powerpc64-linux-gnu/5.5.0/cr= tbegin.o > 0b38aa831c40b6bc4fb22248746d60d8 ./lib/gcc/powerpc64-linux-gnu/5.5.0/cr= tbeginS.o > 8f62d8795bebd8e87caa3640522ff93b ./lib/gcc/powerpc64-linux-gnu/5.5.0/cr= tbeginT.o > --8<---------------cut here---------------end--------------->8--- >=20 > These appear to be the same diffs that I reported before - with the > notable exception that libstdc++.a now is missing from the list of > differing files (hooray!). >=20 > Going forward, I'm not sure how best to investigate the inputs to find > out what's causing the differences. I just know I really, really, > really don't want to rebuild everything multiple times, since it takes > hours/days. If you have any creative ideas for how to speed up the > investigation, I'm all ears. >=20 Does diffoscope provide any useful clues as to what's going on? I don't remember if gcc-5.5.0 was reproducible when I created the aarch64 bootstrap binaries. > --=20 > Chris > From e3d1778a86dfd171d59d91eb01417faaf63dfa17 Mon Sep 17 00:00:00 2001 > From: Chris Marusich > Date: Sat, 19 Sep 2020 14:25:43 -0700 > Subject: [PATCH] gnu: Disable libstdc++ in bootstrap GCC. >=20 > Fixes part of: . >=20 > * gnu/packages/make-bootstrap.scm (%gcc-static) [#:configure-flags]: Add > --disable-libstdcxx to disable building the libstdc++-v3 directory. > --- > gnu/packages/make-bootstrap.scm | 4 ++++ > 1 file changed, 4 insertions(+) >=20 > diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstra= p.scm > index b2d3e2a326..8632d63c21 100644 > --- a/gnu/packages/make-bootstrap.scm > +++ b/gnu/packages/make-bootstrap.scm > @@ -487,6 +487,10 @@ for `sh' in $PATH, and without nscd, and with static= NSS modules." > ;; Make sure gcc-nm doesn't require liblto_plugin.so. > "--disable-lto" > =20 > + ;; In this GCC version, libstdc++.a is not reproducib= le: > + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41= 669 > + "--disable-libstdcxx" > + > "--disable-shared" > "--disable-plugin" > "--disable-libmudflap" > --=20 > 2.26.2 >=20 --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --KsGdsel6WgEHnImy Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl97Fc4ACgkQQarn3Mo9 g1HKChAAnk7rWppLToPQdIgAyKKvKdoVN9iJBetlXuNqumDKsZJOv5ge2vNxCdz5 Yn3IiCB6VpwL/u2gjpimgwAdjI4LwO/pB2i86S8DVdQ+M+IgQ6mIEpuO6GCVy0K0 QB+GAzvU/0otmV/XMOB9yosLvPkdA1394pEzkLfuPjCzepe0NxznP8nIAoipeYK0 q0iDT2DWWrZX8jdV8JZEwVHKF1k5KjgNQNyuc3ubyK8CTIqxWJu+wLqZjgBxiF0z dPBDH5eJmgkyqhkiQotlWN/5cqeNuS64gybf7j15NAK+v8yDfYtDZObyIKUCI75o cSiiOIv/lIHo9Mk893aZ6OL6oCrC5u4loqbyjiiYJdT5n8QPSX5gkaq+os13XqW0 Dw4IHm7e4SrnakqTuHjaFu9IAyj/h5PJZMC5r7EvpD7Qqk/XeSFATskJDyto7EYI H16iHM+YgUycFc9aWnzeWGPYvNJLYhEH3qqGUiOOXZXyv0e2XwdiVpWpJ9RZO8r9 wUd+OS5hPFmmtcPvaJuFSNBhTtts3RWcSKVf5VdBM/+cfHIQMe6RWlNsl94BQxX+ cjW25lz8e6j5dwH4fv1mz7x38jzZaTkUsMglMtSf7dZBhyFMSBplAhFlv+zXElpv lr0dO2AiD4tddZSsemCemSaP3ZltzyNiGxOGVJI2YPEPLbEscu0= =zIrx -----END PGP SIGNATURE----- --KsGdsel6WgEHnImy-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 13 18:37:12 2020 Received: (at 41669) by debbugs.gnu.org; 13 Dec 2020 23:37:12 +0000 Received: from localhost ([127.0.0.1]:50722 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koavP-0006FD-Kk for submit@debbugs.gnu.org; Sun, 13 Dec 2020 18:37:12 -0500 Received: from mail-pj1-f47.google.com ([209.85.216.47]:35591) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koavN-0006Ez-Tv for 41669@debbugs.gnu.org; Sun, 13 Dec 2020 18:37:10 -0500 Received: by mail-pj1-f47.google.com with SMTP id b5so5527119pjl.0 for <41669@debbugs.gnu.org>; Sun, 13 Dec 2020 15:37:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=cZZl9As+oUobuS6gtFW0qWSzjVJT1cbtpzhX6/HUEc0=; b=d+M3ccVt3pdnvoPMCTvAk65N0iU33GPuLktNAx5qFJXYLIBBNe/IigNGeDt+BKXY0I EX3bDHtWxJKMocC2VBpGYP3RWEEnt/BxUs8+pFC22g2Y0qKLgokVV9yR7PNCB2HzBe9f tvXu4X9hjLATlgoaTLXOxEOsDm1oLI2+6meHspvlTsisGfxuUW+veNsbkLOfRmhK3dB+ s+CkaLLMxZRfvIBFBu622awfbNS4aX2epieXnx+RyIi9xOPXza5JEbR4RJ7R/HgM2KDu aGxpjVegGTGAZgzsDQX65Hbr761VMXTG6wX0F9cQZs1WmojEgABopYe9RsxuVw2Mnn4R pD8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=cZZl9As+oUobuS6gtFW0qWSzjVJT1cbtpzhX6/HUEc0=; b=ZZDLlyzAwZTLi/+GyYif8J6T8M4F2yWXCnH2YilgwBsNsdbUsJpN2f6z0zYH+G82+I CWW/Nv+de+IGBBloaS2R3fZaMBeP9c6PUjVD8EtvzWQobt0v1EI676ffXlyXtNzp+K1U QBYs/xpEuOfD7ZVlSxCcppT/XnvePIhiEiBB6cxq4rlTO0ix5up08CX3737Gjo0p+PbJ u70++0dk3juNEyT5AUgfJjMsvFjSnmD4h3cdsRtUkuw8lRQsGdGa8MeCwNQghVL88Zar 4Gz8AP+3BQHbB0ii0eNlCHHl/54MhClFPq7A0W8he2DV5GA6wh8423B7eaFEq6abK0D3 5f2g== X-Gm-Message-State: AOAM531+AN7hKgyfZt4v5fJFG3EHl6NpdmO5I0y6+faSiZsmSvT6raGO QSevDyd2diqwBoisGJtFlA0= X-Google-Smtp-Source: ABdhPJyea/hHAjBs13+5IJpbR3Bc2f7ONfzSGlBTdLaKMhOc2Y2WCcnPKFukyVeySRegp4qpTo+tpw== X-Received: by 2002:a17:902:9681:b029:db:fd65:d10e with SMTP id n1-20020a1709029681b02900dbfd65d10emr2462177plp.6.1607902623937; Sun, 13 Dec 2020 15:37:03 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id c10sm17235286pfo.159.2020.12.13.15.37.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 13 Dec 2020 15:37:02 -0800 (PST) From: Chris Marusich To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> Date: Sun, 13 Dec 2020 15:36:58 -0800 In-Reply-To: <87pn5wzwcf.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 05 Oct 2020 14:33:04 +0200, Mon, 5 Oct 2020 15:47:10 +0300") Message-ID: <87pn3dth0l.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, I tried to do some experiments to see if this problem happens with the current GCC (version 10). I built GCC 10 (not cross-compiling) on an x86_64 system using Guix with substitutes on Debian. (I tried without substitutes, too, but some of the dependencies failed to be built for unrelated reasons.) I then manually copied the /gnu/store and related files (except for the GCC 10 output paths) from Debian onto a Fedora machine, and I rebuilt GCC 10 there using Guix (again, not cross-compiling). The output on Fedora was identical to that of Debian. Of course, the configuration Guix uses to build GCC 10 is a bit different from the one used to (cross-)build the powerpc64-linux bootstrap GCC, but it's still an interesting data point. In particular, GCC 10's libstdc++.a was identical on Debian and Fedora, so I suppose maybe they've fixed that issue in the more recent versions. I also tried to use Guix (the current version, from master branch - I ran guix pull today) to cross-build gcc-10 for the powerpc64-linux-gnu target on both Debian and Fedora x86_64 systems, starting from scratch with substitutes enabled: guix build --target=3Dpowerpc64-linux-gnu -e '(@ (gnu packages gcc) gcc-10)' On both Debian and Fedora, the build of gcc-10.2.0.drv failed with the following error: checking for -fPIC -shared... yes configure: error:=20 Building GCC with plugin support requires a host that supports -fPIC, -shared, -ldl and -rdynamic. This basically just means that we can't cross-build gcc-10 for powerpc64-linux-gnu out of the box on x86_64 with current Guix. I was hoping that the builds would succeed, and I would be able to find out if cross-building gcc-10 in this way would create non-reproducible artifacts. I was hoping maybe I could ask for help from the GCC community if that were the case. But since it doesn't even build, the results of that experiment were not very useful. It's been almost half a year now, and we're not really any closer to figuring out why the cross-built GCC bootstrap binary is non-reproducible. It seems counter-productive to obsess about making this specific binary reproducible, although I wish it could be so. What do you think about using the bootstrap binaries we built half a year ago, and proceed with bootstrapping efforts? To be totally honest, I'm feeling pretty exhausted by this bug, since I have spent so many days trying to unravel it, and I haven't made any significant progress. With no clear end in sight, I would really prefer to move on instead of blocking the entire bootstrapping effort on this reproducibility bug. The reproducibility of the bootstrap binaries is important, but simply having any bootstrap binaries at all is also important. I think I have done my due diligence to try making them reproducible. Most of them are, but I just can't figure out why GCC isn't. I think it would be best to proceed with the binaries we have. Ludovic Court=C3=A8s writes: > Hi Chris, > > Chris Marusich skribis: > >> From e3d1778a86dfd171d59d91eb01417faaf63dfa17 Mon Sep 17 00:00:00 2001 >> From: Chris Marusich >> Date: Sat, 19 Sep 2020 14:25:43 -0700 >> Subject: [PATCH] gnu: Disable libstdc++ in bootstrap GCC. >> >> Fixes part of: . >> >> * gnu/packages/make-bootstrap.scm (%gcc-static) [#:configure-flags]: Add >> --disable-libstdcxx to disable building the libstdc++-v3 directory. > > [...] > >> + ;; In this GCC version, libstdc++.a is not reproduci= ble: >> + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D4= 1669 >> + "--disable-libstdcxx" > > Does it have any effect with GCC > 4.7? My understanding is that it > builds its libstdc++ no matter what. > > Also, if it=E2=80=99s just libstdc++.a that=E2=80=99s problematic (orderi= ng issue in the > .a archive?), perhaps we can use --disable-shared? > > My 2=C2=A2 (I didn=E2=80=99t follow the whole discussion), > Ludo=E2=80=99. Actually, --disable-shared is already present in the configure options. My understanding is that libstdc++.a is a statically linked library (perhaps I am mistaken...?), so I don't see why the presence or absence of --disable-shared would affect it. I thought that option was just supposed to control whether or not to build shared libraries. Efraim Flashner writes: > On Fri, Sep 25, 2020 at 11:52:48PM -0700, Chris Marusich wrote: >> Hi everyone, >>=20 >> Efraim Flashner writes: >>=20 >> > Is this a file we actually need during the bootstrap process? Can we >> > "work around it" by just deleting it? I've spent all of my spare Guix time trying to debug this reproducibility issue first, and half a year has passed without progress as a result. I think we should use the bootstrap binaries we built half a year ago, and move on with life. At this point, it might even make more sense to try bootstrapping for powerpc64le instead of powerpc64, since the rest of the world seems to be gravitating toward the little-endian variant on POWER9 hardware, and thus various programs out there are more likely to be better tested on powerpc64le than powerpc64. In any case, I don't think we should wait any longer. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/WpZsACgkQ3UCaFdgi Rp0gVhAAjuI5BRuZXxOJ27NV8ss5267kHg/PYGoiq+zU25h9baMLOce8nQhHptlc IzMSD295le/3RofgCfXBVDIcorwmeVzFEKfCriaTYyM+yC0sbeMWyjGf30HzMKgY Gpy39xY/4CB2GZznsF2bxBv6RRKmNdOeagg2ns7AgFpo8fzuA4gv/+YxNi2C/ZcK hfdfjWmNQztAl10e0At4Kg3bSwL7S/w0cPLR3B3FfKh9lc14UNri2XlnBIFn1TDX BWQKmPL8XqlZgYpG1nlNuL1XnUptTgieoC1Waxslu4bJgFMmBTCPSqvqlM6mD8tR EPMOTKJtAjOOe8iDjYpz6PlfQgewJ7Mwp3wK5nPNmr+ynEn457YO3ws/J9hCWeAX vGER2mJlf1cH06hs6mIwT7yP+NyZIGSMVwbFfU1/4lqk6oZ7ASXIPLRjhLb1hDto a6/rCvrjAi8Lu2Hk+0RvqRf5fsmMOp5sUWtbpDqIQbOKMROGtg5x4/Kc3esg/RO5 OddvzIeOSYw6SMWFfi8Ql98Cbdw1hkJ6ALP9GG90lEq38zgboItVncVLRFV8p689 JQqTIYBgdIOdLSXit3WodLtEyHZ86ZorxXDFKDZ9iUPujOLDBicss+x3CoD50HU0 X5CH6e5+5lh2cg2IZLFP9et6xzjLetkiEITbASYoJ+ngCMxOQ3Q= =2Fs0 -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 03:17:38 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 08:17:38 +0000 Received: from localhost ([127.0.0.1]:50963 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koj33-00021S-Gt for submit@debbugs.gnu.org; Mon, 14 Dec 2020 03:17:38 -0500 Received: from flashner.co.il ([178.62.234.194]:51978) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1koj31-00021D-Ju for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 03:17:36 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 5B60F400E4; Mon, 14 Dec 2020 08:17:29 +0000 (UTC) Date: Mon, 14 Dec 2020 10:17:21 +0200 From: Efraim Flashner To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="JRM4f1yYltQp8k+u" Content-Disposition: inline In-Reply-To: <87pn3dth0l.fsf_-_@gmail.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , =?utf-8?Q?L=C3=A9o?= Le Bouter , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --JRM4f1yYltQp8k+u Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Dec 13, 2020 at 03:36:58PM -0800, Chris Marusich wrote: > Hi, >=20 > I tried to do some experiments to see if this problem happens with the > current GCC (version 10). >=20 > I built GCC 10 (not cross-compiling) on an x86_64 system using Guix with > substitutes on Debian. (I tried without substitutes, too, but some of > the dependencies failed to be built for unrelated reasons.) I then > manually copied the /gnu/store and related files (except for the GCC 10 > output paths) from Debian onto a Fedora machine, and I rebuilt GCC 10 > there using Guix (again, not cross-compiling). The output on Fedora was > identical to that of Debian. Of course, the configuration Guix uses to > build GCC 10 is a bit different from the one used to (cross-)build the > powerpc64-linux bootstrap GCC, but it's still an interesting data point. > In particular, GCC 10's libstdc++.a was identical on Debian and Fedora, > so I suppose maybe they've fixed that issue in the more recent versions. >=20 > I also tried to use Guix (the current version, from master branch - I > ran guix pull today) to cross-build gcc-10 for the powerpc64-linux-gnu > target on both Debian and Fedora x86_64 systems, starting from scratch > with substitutes enabled: >=20 > guix build --target=3Dpowerpc64-linux-gnu -e '(@ (gnu packages gcc) gcc-1= 0)' >=20 > On both Debian and Fedora, the build of gcc-10.2.0.drv failed with the > following error: >=20 > checking for -fPIC -shared... yes > configure: error:=20 > Building GCC with plugin support requires a host that supports > -fPIC, -shared, -ldl and -rdynamic. >=20 > This basically just means that we can't cross-build gcc-10 for > powerpc64-linux-gnu out of the box on x86_64 with current Guix. I was > hoping that the builds would succeed, and I would be able to find out if > cross-building gcc-10 in this way would create non-reproducible > artifacts. I was hoping maybe I could ask for help from the GCC > community if that were the case. But since it doesn't even build, the > results of that experiment were not very useful. >=20 > It's been almost half a year now, and we're not really any closer to > figuring out why the cross-built GCC bootstrap binary is > non-reproducible. It seems counter-productive to obsess about making > this specific binary reproducible, although I wish it could be so. >=20 > What do you think about using the bootstrap binaries we built half a > year ago, and proceed with bootstrapping efforts? To be totally honest, > I'm feeling pretty exhausted by this bug, since I have spent so many > days trying to unravel it, and I haven't made any significant progress. > With no clear end in sight, I would really prefer to move on instead of > blocking the entire bootstrapping effort on this reproducibility bug. > The reproducibility of the bootstrap binaries is important, but simply > having any bootstrap binaries at all is also important. I think I have > done my due diligence to try making them reproducible. Most of them > are, but I just can't figure out why GCC isn't. I think it would be > best to proceed with the binaries we have. >=20 > Ludovic Court=C3=A8s writes: >=20 > > Hi Chris, > > > > Chris Marusich skribis: > > > >> From e3d1778a86dfd171d59d91eb01417faaf63dfa17 Mon Sep 17 00:00:00 2001 > >> From: Chris Marusich > >> Date: Sat, 19 Sep 2020 14:25:43 -0700 > >> Subject: [PATCH] gnu: Disable libstdc++ in bootstrap GCC. > >> > >> Fixes part of: . > >> > >> * gnu/packages/make-bootstrap.scm (%gcc-static) [#:configure-flags]: A= dd > >> --disable-libstdcxx to disable building the libstdc++-v3 directory. > > > > [...] > > > >> + ;; In this GCC version, libstdc++.a is not reprodu= cible: > >> + ;; https://debbugs.gnu.org/cgi/bugreport.cgi?bug= =3D41669 > >> + "--disable-libstdcxx" > > > > Does it have any effect with GCC > 4.7? My understanding is that it > > builds its libstdc++ no matter what. > > > > Also, if it=E2=80=99s just libstdc++.a that=E2=80=99s problematic (orde= ring issue in the > > .a archive?), perhaps we can use --disable-shared? > > > > My 2=C2=A2 (I didn=E2=80=99t follow the whole discussion), > > Ludo=E2=80=99. >=20 > Actually, --disable-shared is already present in the configure options. > My understanding is that libstdc++.a is a statically linked library > (perhaps I am mistaken...?), so I don't see why the presence or absence > of --disable-shared would affect it. I thought that option was just > supposed to control whether or not to build shared libraries. >=20 > Efraim Flashner writes: >=20 > > On Fri, Sep 25, 2020 at 11:52:48PM -0700, Chris Marusich wrote: > >> Hi everyone, > >>=20 > >> Efraim Flashner writes: > >>=20 > >> > Is this a file we actually need during the bootstrap process? Can we > >> > "work around it" by just deleting it? >=20 > I've spent all of my spare Guix time trying to debug this > reproducibility issue first, and half a year has passed without progress > as a result. I think we should use the bootstrap binaries we built half > a year ago, and move on with life. >=20 > At this point, it might even make more sense to try bootstrapping for > powerpc64le instead of powerpc64, since the rest of the world seems to > be gravitating toward the little-endian variant on POWER9 hardware, and > thus various programs out there are more likely to be better tested on > powerpc64le than powerpc64. >=20 > In any case, I don't think we should wait any longer. As far as powerpc64 vs powerpc64le, I'll let those with the hardware have more of a say, they'll be the ones using it. As far as the bootstrap binaries go, I don't remember having this much pushback with my binaries for aarch64 (just a request to rebuild with guile-2.0.14 since it was reproducible), and I'm not sure how much Janneke had with the Hurd binaries but I don't think it was this much. The ultimate goal anyway is to replace them with artisanally crafted mes binaries, and I understand we want to have them as reproducible as possible, but I don't think it's fair to keep this architecture out when we've let other ones in with similar reproducible problems. --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --JRM4f1yYltQp8k+u Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/XH40ACgkQQarn3Mo9 g1F2OQ/+IhXOhx+T/vTIGuINNrtMsoKqdHdGDlzxZOpaLVp7mp/vb/O8S5EPsHD+ yryb8CuSo5FktYZ/qbRHLIO9TgKKzZe08nklB1ZZQTP1ZUFwwrHvBIbntWk1JQUm s8/slZwZyZBOp/NjjM5+7ypBiW7ml2pA1vLVHvyrWoDCc2n5r1p1T0t2rwwUSbRO zAzTzArMVHyWWeugzbB8MsjMLzSJquyZsyznB4yY31s+e8Kv6+pL+W+3u80bcfp0 h9BWS2fqvtck1vjVQu6T1KNyqbgGJicjqwpt+y6vJpIhxR7Lltg346saJxqmzOHy zTKHFZJBkmKF9N3PSGlif2DHyuK/QtXT1GxMcCgvoThrzt+mx9JNm6MP8eVWGu5f Typ/3ncskStf+ybf2n+vmV4FDMDwT9KhB+N3W1zo54jSC9hZ3LWHXfK11jnzhhyb L50SbyokTVwqhGZOrtvgh3el9Zgzg0+scJikjvHYIoJppX8m3M+QX6vCwhXFqpFa +UuZobypZwr2G+AGZk4EiUWUEDSdfXaFtnmOfXHMXj9D0Uyl/i4+DXDKNOMnburk XD6HlRv5C+Ncb/c5AuOjZXtjt1vL2+929+Jt1T+4DIEqMQxBJe8RQdsRtGOTOWLT Twn0lmkK/miuls1sMKmYqzkHmshvn8gG1ynvQr6TuCYkFR/lk2w= =6SXH -----END PGP SIGNATURE----- --JRM4f1yYltQp8k+u-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 03:36:19 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 08:36:19 +0000 Received: from localhost ([127.0.0.1]:50989 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kojL9-0002UT-HC for submit@debbugs.gnu.org; Mon, 14 Dec 2020 03:36:19 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52182) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kojL8-0002UG-27 for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 03:36:18 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:48580) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kojL2-0003xS-3l; Mon, 14 Dec 2020 03:36:12 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=38080 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kojL1-0004GU-7H; Mon, 14 Dec 2020 03:36:11 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 24 Frimaire an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 14 Dec 2020 09:36:09 +0100 In-Reply-To: <87pn3dth0l.fsf_-_@gmail.com> (Chris Marusich's message of "Sun, 13 Dec 2020 15:36:58 -0800") Message-ID: <874kkoyebq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, =?utf-8?Q?L=C3=A9o?= Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Chris, Chris Marusich skribis: > It's been almost half a year now, and we're not really any closer to > figuring out why the cross-built GCC bootstrap binary is > non-reproducible. It seems counter-productive to obsess about making > this specific binary reproducible, although I wish it could be so. > > What do you think about using the bootstrap binaries we built half a > year ago, and proceed with bootstrapping efforts? To be totally honest, > I'm feeling pretty exhausted by this bug, since I have spent so many > days trying to unravel it, and I haven't made any significant progress. > With no clear end in sight, I would really prefer to move on instead of > blocking the entire bootstrapping effort on this reproducibility bug. > The reproducibility of the bootstrap binaries is important, but simply > having any bootstrap binaries at all is also important. I think I have > done my due diligence to try making them reproducible. Most of them > are, but I just can't figure out why GCC isn't. I think it would be > best to proceed with the binaries we have. I didn=E2=80=99t follow the whole discussion nor did I try to investigate myself, but thanks a lot for going to great lengths trying to identify the issue; this is an impressive amount of work, and I can only share your disappointment. Given this effort, I agree that it may be best at this point to move on and start with these non-reproducible binaries. At least, the problem is now documented. > At this point, it might even make more sense to try bootstrapping for > powerpc64le instead of powerpc64, since the rest of the world seems to > be gravitating toward the little-endian variant on POWER9 hardware, and > thus various programs out there are more likely to be better tested on > powerpc64le than powerpc64. Yes, my understanding is that other people, in particular Tobias Platen and dftxbs3e, were looking at powerpc64le, so perhaps it=E2=80=99s a good i= dea to concentrate on that one? Anyhow, please let me know if/when bootstrap binaries should be uploaded to ftp.gnu.org (with a signed message). When updating bootstrap.scm to refer to them, please include the commit ID used to build them in the commit message. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 04:23:29 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 09:23:30 +0000 Received: from localhost ([127.0.0.1]:51104 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kok4n-0005mg-MP for submit@debbugs.gnu.org; Mon, 14 Dec 2020 04:23:29 -0500 Received: from mail.zaclys.net ([178.33.93.72]:36055) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kok4l-0005mP-Jq for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 04:23:28 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BE9MhLR057713 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 14 Dec 2020 10:23:20 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BE9MhLR057713 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1607937800; bh=k7TSL3lWXk4YqfDmOOXDrMTjAoLcSSniUf1SjArlDUo=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=FkOMRUw/HQ8TMcdfyL31aKqHIYmpx/7BcZvHdgCiPh/y5uHHL6Ny256jwalM8m0ut 3ZAvxnHwOE9SMARImFOjL20iQ7fwTmjci5dkr56aBkhQvxLEpQIDymdg96NDRSnKsY x2BPlCGRiuYboRz+DMLz1JO/GQ36JZkfS/EqySdY= Message-ID: Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Ludovic =?ISO-8859-1?Q?Court=E8s?= , Chris Marusich Date: Mon, 14 Dec 2020 10:22:43 +0100 In-Reply-To: <874kkoyebq.fsf@gnu.org> References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Hello Chris, Ludo and Efraim, In my experience, the bootstrap binaries are reproducible on powerpc64le-linux-gnu for a specific GNU Guix System and GNU Guix version and configuration. It's not perfect that the kernel version has to be pinned for reproducibility but it's better than nothing. The issue with powerpc64le-linux-gnu on GNU Guix core-updates now is that it has been upgraded to Glibc 2.32 and there is other issues due to that. Glibc 2.31 is otherwise working well. I wish we could push changes to build bootstrap binaries to master where there is Glibc 2.31 (and ensure the changes don't affect other architectures) and get this over with. Leo From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 05:27:26 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 10:27:26 +0000 Received: from localhost ([127.0.0.1]:51282 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kol4g-0007OU-GV for submit@debbugs.gnu.org; Mon, 14 Dec 2020 05:27:26 -0500 Received: from flashner.co.il ([178.62.234.194]:52198) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kol4c-0007O4-RC for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 05:27:23 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 02B00400E4; Mon, 14 Dec 2020 10:27:16 +0000 (UTC) Date: Mon, 14 Dec 2020 12:27:14 +0200 From: Efraim Flashner To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="uyqQH6igkwY9scqR" Content-Disposition: inline In-Reply-To: X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --uyqQH6igkwY9scqR Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 14, 2020 at 10:22:43AM +0100, Leo Le Bouter wrote: > Hello Chris, Ludo and Efraim, >=20 > In my experience, the bootstrap binaries are reproducible on > powerpc64le-linux-gnu for a specific GNU Guix System and GNU Guix > version and configuration. It's not perfect that the kernel version has > to be pinned for reproducibility but it's better than nothing. >=20 > The issue with powerpc64le-linux-gnu on GNU Guix core-updates now is > that it has been upgraded to Glibc 2.32 and there is other issues due > to that. Glibc 2.31 is otherwise working well. I wish we could push > changes to build bootstrap binaries to master where there is Glibc 2.31 > (and ensure the changes don't affect other architectures) and get this > over with.=20 It is possible to create a "perfect setup" by editing the package definitions in gnu/packages/bootstrap to fix certain issues which are needed to make bootstrap binaries actually work. I suppose it would be possible to downgrade glibc in bootstrap.scm, but I wouldn't count on maintaining a separate glibc for powerpc64le vs the rest of the architectures. Do you have a preference big-endian vs little endian? --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --uyqQH6igkwY9scqR Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/XPf8ACgkQQarn3Mo9 g1EqZA//al6eVmCrax75nQPknTyF9/acmLq9HZ2j0WNBc20SbZbElQ40eCK1I2BV qRfnFlwm5hftKXbQho55qndPDfU9eSvba5+/Pw+SM3jjs5pxhx/mHEZ+OAHfwsFi GQfNfXZFsRzjGyKN9TgtwcI4jtZ6y9GK7vJ8hR0jn/LXaMT8WbzsX7HfOyn7OhA5 D4fxLF2I9jcsbHbuP7Ky5S2VsulOTHTLUIVHJGdtZ5/d8zRZesFWPVS2On0yACZB GFIuOovDW9ZWR6ziy+7EZl0CP4+2ALplk2UD9nUTxet1KdiIBnVTkOAly0U2mvTq bOiuKT/Ve/igMsW7KgXaEXYurR3qbU0TROdPcM87QL9Pfk5+9+wN9Huz+JvMFh0I 8yVU19RY4bCV0EcYInzlng5/pN8xKwGfD5ytHaJ9FrUf10Prs0WU1jFBkPmC2Mve ZenMKpSr4r6KrLt9B6y57qzEu43lAmKMi9/RRYFLdXpD7J9GRrjX1taLHF2Ll+fn jz5u0p6WltgnoxPa7s+OvhPI3dzyiOsGsCNk5M/yZXV2WQtoGxXSr4Fk/wcAJlD/ BpRfFvalubwNcTjaCM9BfUAtF0OFtQ25r3wIOO/CpRZ183JSTN+e1THo5wOan9DC PFspJ9YMDOoxFkEpwdJoqHiyc1fzHXmEbyjJXOaVBcbu0ThGNFM= =feIi -----END PGP SIGNATURE----- --uyqQH6igkwY9scqR-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 05:34:45 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 10:34:45 +0000 Received: from localhost ([127.0.0.1]:51310 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolBl-0007bB-9Y for submit@debbugs.gnu.org; Mon, 14 Dec 2020 05:34:45 -0500 Received: from mail.zaclys.net ([178.33.93.72]:53451) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolBi-0007ax-UG for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 05:34:43 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BEAYZ6P016725 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 14 Dec 2020 11:34:35 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BEAYZ6P016725 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1607942076; bh=1/9nC5JiObGDFVb/mcqztEWp6hw0YyroOgHO5JGVSpE=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=f202olMxzHdnvtnGueB+KNn5FWY7IRqPcLo4tF+nzRaP5tlmQTNY7eNz96PHq5fDR r9wG2wMBwzLLi3yiWxODpjmU9LoRQb9Ao59cPkdiDpZ6e4N1NU1SAGKbnxQirwHBYE 0bA9OKBeyoXtZ8/bcyXybHmAorGZnLdjwRdb8kQY= Message-ID: Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Efraim Flashner Date: Mon, 14 Dec 2020 11:34:35 +0100 In-Reply-To: References: <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Mon, 2020-12-14 at 12:27 +0200, Efraim Flashner wrote: > but I wouldn't count on > maintaining a separate glibc for powerpc64le vs the rest of the > architectures. It doesnt need to be maintained, it only needs to work in one commit on master and then one uses time-machine to rebuild the bootstrap binaries if they wish to. The make-bootstrap code is already unmaintained for every architecture anyway since we never rebuild bootstrap binaries using later GNU Guix revisions ever. > Do you have a preference big-endian vs little endian? I'd like both but little endian has the widest eco-system support especially w.r.t. to Linux drivers. Many Linux drivers have endianness bugs (lack of endian-safe serialization for DMA..), it's such a plague that sticking to little endian is just better right now. One common example being mpt3sas and amdgpu drivers required in some configurations of the Talos II system. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 05:38:47 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 10:38:47 +0000 Received: from localhost ([127.0.0.1]:51339 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolFe-0007iO-Of for submit@debbugs.gnu.org; Mon, 14 Dec 2020 05:38:46 -0500 Received: from flashner.co.il ([178.62.234.194]:52234) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolFd-0007iC-Al for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 05:38:45 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 6388C403BF; Mon, 14 Dec 2020 10:38:39 +0000 (UTC) Date: Mon, 14 Dec 2020 12:38:36 +0200 From: Efraim Flashner To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="ohp5GPH0RV1wQK3u" Content-Disposition: inline In-Reply-To: X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --ohp5GPH0RV1wQK3u Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 14, 2020 at 11:34:35AM +0100, Leo Le Bouter wrote: > On Mon, 2020-12-14 at 12:27 +0200, Efraim Flashner wrote: >=20 > > but I wouldn't count on > > maintaining a separate glibc for powerpc64le vs the rest of the > > architectures. >=20 > It doesnt need to be maintained, it only needs to work in one commit on > master and then one uses time-machine to rebuild the bootstrap binaries > if they wish to. The make-bootstrap code is already unmaintained for > every architecture anyway since we never rebuild bootstrap binaries > using later GNU Guix revisions ever. It looks like I mispoke, I meant gnu/packages/make-bootstrap.scm. If we change glibc-for-bootstrap to inherit glibc-2.31 then the rest of the bootstrap binaries should use that one and everything else will use the regular glibc. >=20 > > Do you have a preference big-endian vs little endian? >=20 > I'd like both but little endian has the widest eco-system support > especially w.r.t. to Linux drivers. Many Linux drivers have endianness > bugs (lack of endian-safe serialization for DMA..), it's such a plague > that sticking to little endian is just better right now. One common > example being mpt3sas and amdgpu drivers required in some > configurations of the Talos II system. >=20 I remember you mentioning that. --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --ohp5GPH0RV1wQK3u Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/XQKoACgkQQarn3Mo9 g1Gv/Q//fQK+B4hrAZgwOvlWIm6/EUVPZj7LJKTvZIaHXCYJDDZgdEA93Dh5kUvY esua7YJphlUp+PJ4/LbzdmviHcycgHZS25ZtVJfo0g6ghbdhKQPioEGshQQ9Q1jO UAmWvHGw/j+ck3M0W+uUCBlzxtV3QNW6EzXJ75e3gU5HSaZ7qCy5PK392N0ZQsh2 zDhmdJ/r7aWn6WXGVvMlKjub8JFypgHm6yqmT2evHceXXnSjNAI2HDiiVyK8U6Ia umwjGjNPSGX00+YxJl1S8Fm0YxUORGglhO1rFUH+mYze7LeJ3UBTbDMNeCs5IsQ/ /uGgy777kfJRHFUkx9JzDVyboSLd+2COoT894gAjYJBP1uOCQVwkL7Rfo+QapHlZ l16r/ze/CrgbZ2O9TqIDv5COgC5Wvc72OOC4s2sbmdGyUYpT7ltGouHmXpl6+0Ck DjotXNTACXPhgKzK2/A+Hlu4tben1XXXquctmm9/ek0ouTgKe/5A1/877nE/l1yL 94tVf5149Bf52Gyo2n0znBsjMA72HOZBCAEi8ubSj0B1MzmSrWz7FZEgVtAOKdYy b/lGQUNKYtMbcvyJJA46ShRWAPYistZ8Ud1+UejIFGLHkNz79SpsK60MbIh1D10i BrXo9SZa8xVdNy6tRjoJvp5OI1HbV1sIkCLSlLKjFOcp9IlnzDs= =RfOP -----END PGP SIGNATURE----- --ohp5GPH0RV1wQK3u-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 05:44:36 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 10:44:36 +0000 Received: from localhost ([127.0.0.1]:51355 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolLI-0007rV-Jh for submit@debbugs.gnu.org; Mon, 14 Dec 2020 05:44:36 -0500 Received: from mail.zaclys.net ([178.33.93.72]:41713) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kolLH-0007rG-5g for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 05:44:36 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BEAiSBi019196 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 14 Dec 2020 11:44:28 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BEAiSBi019196 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1607942668; bh=0Y/YYfVmWlus347PuNcHd3mU5eaTfORlf8T5R4Sf9mE=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=S3Tmwn7KZI3NbApqaUi1SfFdw5hUCFrTKlpDgnzvKoJzZfHks4G06NgPFHx/S7DUC nAOk4ZZMtOPM/pfu7Z/+TFutUEDg2S54IrnIYO6/s90NTfLcp0nPmNn2pUDkkoLrlT HlKCpHZqEEGdTLvfzZiQAENlv7jWSMy1zZKDVCUM= Message-ID: <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Efraim Flashner Date: Mon, 14 Dec 2020 11:44:28 +0100 In-Reply-To: References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Mon, 2020-12-14 at 12:38 +0200, Efraim Flashner wrote: > It looks like I mispoke, I meant gnu/packages/make-bootstrap.scm. If > we > change glibc-for-bootstrap to inherit glibc-2.31 then the rest of the > bootstrap binaries should use that one and everything else will use > the > regular glibc. It would be great to do that at least temporarily on master. It will not affect much since other architectures are bootstrapped already. We could also make it conditional. Reproducibility instructions will have to contain exact commit id and configuration for both GNU Guix System (x86_64-linux) and GNU Guix which can cross-compile. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 14 17:24:56 2020 Received: (at 41669) by debbugs.gnu.org; 14 Dec 2020 22:24:56 +0000 Received: from localhost ([127.0.0.1]:54821 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kowH2-0007eO-2U for submit@debbugs.gnu.org; Mon, 14 Dec 2020 17:24:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58158) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kowH0-0007eB-9d for 41669@debbugs.gnu.org; Mon, 14 Dec 2020 17:24:54 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:34478) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kowGu-00060P-2b; Mon, 14 Dec 2020 17:24:48 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=43094 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kowGt-0002TT-Ir; Mon, 14 Dec 2020 17:24:47 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 24 Frimaire an 229 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 14 Dec 2020 23:24:46 +0100 In-Reply-To: <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> (Leo Le Bouter's message of "Mon, 14 Dec 2020 11:44:28 +0100") Message-ID: <87a6ugqb4h.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Chris Marusich , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi Leo, Leo Le Bouter skribis: > It would be great to do that at least temporarily on master. It will > not affect much since other architectures are bootstrapped already. We > could also make it conditional. Reproducibility instructions will have > to contain exact commit id and configuration for both GNU Guix System > (x86_64-linux) and GNU Guix which can cross-compile. Yes, I think we could just cross-build those bootstrap binaries from current =E2=80=98master=E2=80=99 and be done with it, if it works for you. Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 15 02:35:04 2020 Received: (at 41669) by debbugs.gnu.org; 15 Dec 2020 07:35:04 +0000 Received: from localhost ([127.0.0.1]:55332 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp4rQ-0001E6-F0 for submit@debbugs.gnu.org; Tue, 15 Dec 2020 02:35:04 -0500 Received: from mail.zaclys.net ([178.33.93.72]:42495) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp4rO-0001DW-CF for 41669@debbugs.gnu.org; Tue, 15 Dec 2020 02:35:03 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BF7YsMA006793 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 15 Dec 2020 08:34:54 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BF7YsMA006793 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1608017695; bh=vBPu4VM8OT3Uzz3oqsySXEWauUCfnY4cMGXpTvLgkZU=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=RQJDF460TenJi576VzHtZQTSkCDQ/ZQ5Ujc5XtDieHalOnRZHJ8fkGf6eKO+vbRMI X3hIG7v3Sm6XxuU1AAbHVJrkHfFbA2g01fXRJBeM4jTgkNa1tRNkbgMmPizprx9Mgp vPORxbxnhVyusovmcXXhhgMwXk8oc2NIKnIt7KU0= Message-ID: <54153897349cc396d89a022dbce141bfea4804db.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Tue, 15 Dec 2020 08:34:55 +0100 In-Reply-To: <87a6ugqb4h.fsf@gnu.org> References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> <87a6ugqb4h.fsf@gnu.org> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Chris Marusich , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Mon, 2020-12-14 at 23:24 +0100, Ludovic Courtès wrote: > Yes, I think we could just cross-build those bootstrap binaries from > current ‘master’ and be done with it, if it works for you. Yes that would be awesome! The master branch just needs the patch from bug - I guess considering it affects lots of packages it needs to be rewritten the same way Efraim has rewritten their PowerPC 32-bits patch. I'll look into that. Correct? From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 15 02:46:24 2020 Received: (at 41669) by debbugs.gnu.org; 15 Dec 2020 07:46:24 +0000 Received: from localhost ([127.0.0.1]:55366 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp52O-0001Wy-Ll for submit@debbugs.gnu.org; Tue, 15 Dec 2020 02:46:24 -0500 Received: from mail.zaclys.net ([178.33.93.72]:60629) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp52M-0001Wl-QQ for 41669@debbugs.gnu.org; Tue, 15 Dec 2020 02:46:23 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BF7kFxS008770 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 15 Dec 2020 08:46:16 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BF7kFxS008770 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1608018376; bh=lhZZv6Ndz1wSMyviH2GfrJ4Ac8QZWG1grJhEmXQKQk4=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=pyKxsaN5gkY8q4k7tlVl7n4z69PRijeGC361BxsfZ/584/rxUPOXiSaCez5fopY64 RlOTNUAdVv3fUEVC5zljF+uDmZQx7l/UZ660MQr8IMFedXdJwla4QBF1SM9jp4T2mN KLUndOEAI+kwcGy6Otj0i7bKTkaYEJY/9UW3F/FU= Message-ID: <7237255c50a761ceda8d76c583309d3dd59039db.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Tue, 15 Dec 2020 08:46:16 +0100 In-Reply-To: <87a6ugqb4h.fsf@gnu.org> References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> <87a6ugqb4h.fsf@gnu.org> Content-Type: multipart/mixed; boundary="=-bahPN8RfXLsFoG1+NjIJ" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Chris Marusich , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --=-bahPN8RfXLsFoG1+NjIJ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit For the record, I attached the failed build log for current core- updates. $ ./pre-inst-env guix describe Git checkout: repository: /home/lle-bout/src/guix branch: core-updates commit: cc6cb6e80a42355147809b4830053a34d1563994 Build command: $ ./pre-inst-env guix build --target=powerpc64le-linux-gnu bootstrap- tarballs The most important bit in the build log is: configure: error: *** The compiler must support -mabi=ieeelongdouble and -mlongdouble simultaneously. This particular error does not happen with the GCC 7.x and Glibc 2.31 combo. --=-bahPN8RfXLsFoG1+NjIJ Content-Type: application/x-bzip; name*0=4aqg8p7dbpgp8mc50nyrr1r5n6q0sw-glibc-cross-powerpc64le-linux-gnu-; name*1=2.32.drv.bz2 Content-Disposition: attachment; filename*0=4aqg8p7dbpgp8mc50nyrr1r5n6q0sw-glibc-cross-powerpc64le-linux-; filename*1=gnu-2.32.drv.bz2 Content-Transfer-Encoding: base64 QlpoOTFBWSZTWSE1wyMFXH9/gEASAAhe///yf///+P////BhqVo98nyr7ZF7k7gsABh7M7s9sLMd FN9s6YlmiTUMVIJWDRm92iO1TFO1jQqmgHdiYUW+8ilKKujb267u7Hd1T13Mu73vSlFXLKtsBdZF 87d9U19HDmdNrVxn2b3mSS+733gPvRvVexsZoIIYmIBSAAAkAUAHtgiKAB6GiRISVI3PluD74ygE EoJKKAAUAfQaCgAKAAVRRSlA+gZAoXmG++dE9NABI9j6kOO+9cdUK+snJQHzM6oQG9a6+mUd4QDd 8HPIbrx0+63EbvdnvPdp9KZ1K+iPrTVLIM729dytq7PF4HuXG3AD3Zt5FlrcegAOe8ai96u2FeAP XQD3loYj3bXBGOwgtxnCL3e9OlecY7YANKNdq7wLlb0O8dPd6eda8kA9TtYG6pVHPrD6N8EHzls3 saCzteuQHAeK90SCbj01Lr6cXU+3H1Ad8kvuDB33BA+HsAz7XvG+2PHyyB7jUKoSEQVFfY1Se2AF 9u3Pe9fHk7e3uvu5Ozbbe2vPNuG631zqozSSReAeqYPCmtSlPnY6NZRSYIM7CY0pSxO7Hz3coVUe xkpA0WDqdsc+ezM3tybg0DGqxNtpZUxhtYIZzzd6FJCFnBmVKiRugB9eD3sz6ycypaSRFPsfWgdU 033xuB9vmRA6Bod7XtnSHOQNBQCqFFUpXM1d7dRdtes5hlXClFACa2+c9ac+oAfT68jKnnPtlT0r V9brcCzW2N6zwby5a0sw697u0EU9qCpKi2mramV8wwJ7u4R7MiqRl7h0XS1hpNDbLkwuTe5nNd7V 3jIApU8PFQCU+u+E++QYKkXLZMSk8uRt93pPWxt292Viyg8O44kBtozQ0m1pfA3OS1S6+dp23wAK 2Eo+3vePeSMitbccdzY7ZQEfWqvbV493nmSBJElrFe319eSioSCu8Hvt98FHMoxfNqDtiXeZyPTG NsbCyYWtDjQmlpvW+ZqBKqUn3XdtohZtjMr6MKXnmd9EPhEAd99fcUUpQAoh9BknzDbNE8jfTU2Y XbdYqord3UcNUKN7c6daqnJCxKrEkfcy5jVD10GGvTo8hoAFpZ93XfZs5m6joxmph9jdkRUHWVe8 B07UzWBZhyA1EEdmVKUSilCHXTnrRRKip96udbb7WC4OgBdUbB6D3m+gDQaaEAIAgEIBBCMjVPAm QYE000mo8g0whIggiBAgintTUabTJoCMAjJkMmEGm9UoiaaaTUNogSAeoAGgAA0AAACT1SkRAgp6 CanlGmieiNGgAA0AAAAEKRECAmgEE0JiSeSG1TanqaGjQaeo0AGgiRECAQCAQEyEyITao0ejSNND EQ9TD+SZk+Pn38b/e/3/J/omW8Mfkuy/23/XNTmJ+V/nv4uZHNH+s//2Ff94yd26RdSIHH//iwJH +3/EYw/9//Pyk8wbqCR/FlI+v4+X/+/XaBQlM/SZlASg/S2v9P8X+PJ/bz75/u/k/l/fKlKUpSlK ev/P1/42r8oX+kGh8dukGX+//If+m/POUPqor3k1U/MglAXKpn9uONvEHG+nA7EDiFqlDBCzBMnP 9OCJY4mP/h7qluIY1RAkQJxxjOSSc5XUrvzNb3rTnfiRRkJFSQQKax+fLUqaygoaSmuOONK61rSb nflxxtOJpUaQG43vYbkXe96RNyib3vQruQqiS0URh8OUt9ru2rfbuKrXv33jEbJeIq/qGA0Y1vJA 84QyRpaEKB1UBl2P93/80azrrXtqxr4XNkrcDXNRYtbJpAKe5z477TXAZSZvMzehNkNve9lQip5s 3LFoA3GF5QHuiKGGgLzPuCgHye71UfCovfbXUGiKgvO7a2t70bqKCgoKpyUzeG3iYkf/n/XDVe39 Na5EOtEDQ0o+bGT39NOlaJEAAAAAAAAAAAAAaoAg0bUEYgAADRYhaqqWgaTx8+9/7L+tX9bzv1vz f1v639Z63UzMzMvzB4Q+puYH/EwP+Z/1P/g/5nBTQ6HQ2JNTkcjw2bOGH5Nmzp6PR4a6OHDhw4a6 PR6PDw6dNmHDWnow4WSbLPDww8PDDDDCjZ6OmZcpl5UZzWBGZsba5NgzZZq+WUMqrg/6n9TYpkaH U4OZJU1MjUqaH7mJc/5nI5lNQD57gDwQQRv59qNRq39y25WqLVGNYhGgCgApEC/lxrUHCq0pGSUG GZgpn8uONjxMVRZOf2/jX+0bqwsiix69OnGuAoxUoGiqVChTMXEEoda68a2hvhocVQpWIViSk/nJ /aE1ImVJQ0L24wH+11uu+lGvw4X4dvM62ApenPHJrGO64kkkkAkEt+KsHBe9M/8rgCIEedR8b/b7 +3+XaDe/mv1h85XM5znOd4Q+kffJY75R+qxJdXb6D6r9Dav2aX41jNf/Mdrb+ORsQxh0ZXtnblmh JV6TpOcINAxdmEJxnCcYxnOc/951pSUmabvGkMNvlCFDSlLxd3fFb8stf/MbVjemM3vp+7pM9u36 RRcNxdcd//Njr3p0p28w/2PTXWB7bmFts/C7UXfPOjzFKzpyv/j5j5lACQE+xQJ9PeHj9uPXjw2/ 7nf/j+V/+Pb8efxf/gj5YemCy30hxR6ZUHy+t2Su6yZ8Q/mficN9v1rl6lx9q45PVVb2k20Pzj22 j0nrpjI2lnimmn2bi3bFc/Fyui1pHbL1zjW3HNVcLWFJttiTVeTZHEcy3MekTiGI8b1f0a2tfn1l HzfXT6SG1to+2XgbS1yI/9rznuaTxrhe/S4zrU59oeinU+LNXnxrrl5yynHrIz2HOI51OlRX9k52 pO1bVdjI9YtrLDHfx6e89JNHigpnAbTyoRfxzvmdHxp16x9fu/h/FRz/V/8Ijbx/Pu3heev5wfv4 56vCnNS6r7Q1RALH8yB6f562KUCxUg0A71/y4qqr7ca1rM1wlzc/6/6/5uYxhlv/TnFquf+z7n6b XnnKGtR3Dpo5j/ihTs4njj02IdJNwZCxOa3a/7RuL/ljzBqqE1ZGa/5dOnC8wxU1T+8qCSBIgyC6 Zyf1cwf+6Z++oKWjn70KBiKFP7LqCQZ20vNM1spPKsD9XUmLr/ZDq7/aSyVe9aTr37UdqPd5S6f/ OO2ddNMmXF8nz2iAoQlEQlEzMKev4cNQotKbxcVCEhZCWipkmRaEAM9PjLnZxuD4jLSxaCotYqxr RRqI13W3CSKBItaaaZyLIkiBKzS21zz/Pf021E6sj4/XFP6SZsxEChBLjMLiqqqgMkoEWlidx478 /bng16YAmufTptEIqibXubdAQ0Cd27lDWgjQrMVBJUFKgJX1pxdA4Lqiod7Si9bGy97DjG59ATiD vA76+Oc9NVnZ48gMUDtC5IVT4hMqEooKS1rSaiqDf9ed7FKWhDeJlKBzCZAOQjlRSVa7cbE3G+vH 7c75OcMxKUmAyEyGKrJQntBG9M0ZwhVNEhWuc5yDmqBkFCaAC9h/RQIKJCv9/5uru0EQSyki+dee 7wfpwPig8dTXiqiaCkYoQhSJsSghQBIAzMFze9Ot1iJmGZvB1BSqUhAQOu2+OOCuMw7QjQrkFMSu Qhnxih2jcpQ7kqhyAyQyoTjr16+tfC3vq6tAGyEbRUW2UJEoZhgvMrkCUhSeeYFClDvp06bR4jjH FqqUpClCJAaUehBrjjSLrgAxEM36aNlQVVNAkRtUEY1GxWNY2w0hRMEwbOOL34Nw8HFstHzg1XXe ucAyGmUgZunTTrlrK43vVspIhRIkMoaXArKFEgWqdpB5hGAMgFKoIJJztkZxyzbJYuBOObvEtyZb Gi1xhpQI4IrMyszLjdo0XMcA8babKAANG8suCEBCWwGYxVXcADNSCMNLCsWFEC8syrqgTYQsijEA kbsWD7jbu9ewAeV6vfvrzQdUbJRqAgGySSSSZFdgSjcVKLMZwlpREJGrYZMIpEEPMWAVKRAQdsmo gAgQ08b0Gp3s3lrmy4g3rBO90IA4qClClOsxBMHXnSOnmETpUFI8wOQuQEUQZxYmayW1U5mY2a53 vbVIXECwCSURAWKomrtiOxZEpAo0jLKoMHhUsY4wQDk/TEHYomqGEhIBIjQJMpFYZmEFNrdybi4w N5l5c4737u80UVGLQRqar1577yvWispisZKizNKaMapXCq26ZpkmiQAoqdxgxihijJJI3tp79eV6 ZetvjzeMUFBQkYM2YykYxjIZSSSSRDI3jkRESe/PB3x29e/bBBIALV5JArMdQsGqRJoKzTtIkEPN 1bYNqgpiDFE1J3mVlUCQASASTRpTGAEBtDVfb5/P2+3nt6+nePnbHct1VmVMrJalLNmruhVyqwmM qcG7bsNtzZUcLBviu/RewC1QBh11bbjmdr0ULxx12g81DSCHEq5KJSFJTnHGbNqlUsRQgFGb3xrj hBCZVoVzdrSDYWLEABSGQNq0aFwzFiVHNbzet4VKNKINOtY1SjLgMQCCRTkYoyIaCCZCAAgCpduw bAFAXcYJoUKq7ihJEJKJEhVcLl4Y6OEBq7YCIDZhLqgntoShZtUKoxXc5VFEV7x3nUIFKtxzZWhV EgAFPDwOejkluoT5ArHgnhsbBISMgoOcjAclN4OKgdIUyaUNQzjzGTQcbcg1gYZx15OHg44tBsIq gnDcES0q8aKNXl3LBs1SEjokE1EAEDQBpA0kEAjy0CDMyBpzE4wUqCcShlgG3ILbkEs2TcDhjDtU YwbLAhGmFi0SgLVUxRNMvLIlwgIS0C6RFK4xaKGF4sIRq88Yplqh00ASCRQZMiM440uyGlEoF3ve zUu6q4s1xiuiGm41i6FIpLrYzxvg0KbzWaJAMZQDo2WySOVRwklJD9NUENZjTpRxvDZlhveFvegw ZCjfEVVxhbFL0o1r3xevXb1eu6RpREwmAhJpCvfsjxyAnXcB13HvrvLd3VdyAh3t7XNSvXr36vF6 9+Xu+O4D49a1vPAAAAAAAAAAAASTeUjdoQIoqSB1Ul3UbSTYqSNIkAAAAPdbvfqvfq6ZNhEk0TCS SQWYkpJEpFTRJJIjevXnpvE8zcoUa1i6hd4YZDOGrpOuCMSgpztx02HENxVihElUKh2goQaDl8eU LEKESoE0JYthooS0OG76Oh6pd0FZpColRCQA1qpV0ExmW3AzhxjydqSyZ69da82zxra5gWSCSkia oklWrLaCNJlgaXLN5C4J76kMZXevb379e+oAzeHIiIRI5yIIiIMaiIiIiIiIiIiIiXLguCElAMS0 GCaqCyYbgsG4bEEw5FdgzGHdABGwgQHdsXFUYsNECAoAEiiau2BZtlVhZkuFgSEIZZdMR4ETplsU cDNb1rebN4aiiiAoiIiIjV6W9evW82CmgmJolKTcuRhO+OLTvdxOtauMHRQqIRERERERE2Rildku 94bidti1EFElTRE5iOSMThgOTjuLjjLblvN7s0cDwigjQaSjRJJyijGE0mhbgvC8McOSEV27wQEl kqtIITQoWg9VvUAmEON0GZfDd3VoEQgpGgAJpzI0BeNiiRFSRG16o9Nb3iGZZTxox1zoM53qTkQD N5wxkE8y8EZrhBqhcc1tjVSyMciF5wwSoxtCk6G8xhkEIoCZlCrzBhl5u7NKCtJRtWTOFAJFaB2g 3rcrK6c6jrz00daU3rXW5nidhTRUzEU0PKilaxr1xeQoCRDSqL1pbhiKtQ7yqu9LsQgAE0uvCouu UKkEywHiCwrwhL4dy+O3KIeZEkOEiEUNxmK2xTFtnkW5wyocsgUq4RlqIlFVw/JQFZHaSrnQ1vti cdLNrTkGzVAZUB1zCqk107TkNUutkJ5QqN4d1GgQDHs2hWun1qZGmlhRinOG5GMApOs4cNOrvEBW WHdkZlplS9LDsUKJAV2mQyEKt3bl7euICtqbt5QmBqxAGOrFBi8vhurStSUOO6bTrWWZmZzoNc4H F2ueIMheMQqqqNEkookkkpZ0YGeXmJSuUKuTbWqkDzMOGgYlN8dbNiFBrecWFBRUnYogWMJJJJw4 1dzl2S8yEdDELGiVQbvVBiAwEPrWd0PAwySScoVNPN3UI6etVWtwHOulEzM2m10hZrG7KiBIyC07 4YzVy2Wh1yB5qh6oVsatVjQ6Uvoq6FZCgSQC4gzXXOpKNVzeckvEwTVB6BSqk6ZTBBIJS3NLl6rk ZGgU08NJ0EVpARPRRoNUgKpXpyxHtCkiSwM5mupV7Qo6TsvQrVcSpvChCJpRzCKpg0CCTb4ZIqAA JoRogGuihLs5LsrqS4HY5QrIHCbbeCEsMYushzOGVkKrhvFFSVcoVblGEa2wUrboFqlpARIAIBXb W9Xl2WgrGq+yNRHNBGSm+cFOJNa686gaN0UFWF2tDaNAIDhDFzpRjlCjwQ6LMjRLNd5A4umxCpQj 65zM6aZAPKFaMUhFHbSsoSqWRSVQpe7vMsgDD6x9mGiCSejWWUICiBhEMHFk2jHIJVw9O3N2eZNc 4aMqyrDnji0cKSBmuA4zYAaWAOIpCKIiKojCIiIiIiIiIiIiIiIiIiIiIiIaaTUyilMWuaNGpNRo 0ahglVSFFRmGMdDxvcpbznnN7lw5RBsIRoJKCSijEWKQkoIoIkJBu65IQgRBI9evXnrd8PXr0bzN s5IUBhZrWKBoLpGo0Nz16cbjLpgOqpzHQpwBUpHTgVAErzdyoLAChEsQgUhAyhQSiBFhlYCZbLOr 96n+z+j+2Htll69//f/25OZ8/FnfG/lnxZhNFRhBCRQJBrGKxhCRnn/0P7MUV2/60Onv/38f/L9d OMD5R/8fTY6zXcyEDf/D/D/0EIcf+dQiBzsoVB8EDsn2+oEP86oIt7D7cH8kp+WEpARIHlRjp+Xe YhKMFDYAAAC+TUSBUfoqhV6Akk/udB1BDfOp/9OHGZS2FQZkH7/0UM/WauLpXr45Zx28la7edG2s UE7tkFAKETZBtIAOluB/phAKPmUmJ6qJvrCRZ1ultW8l55f+xD6S0mN0CIib55j/6ogDGXC/56jJ BX933GfXL26Zl8/fpBOvHGR/3af0P026/7c680Kj7y45ImIneKfuxXMGITrVO8gkgDOmsGUhyiTT cVt7KiR1wBL+DUhH+hkrlSP7PMU+/gLH55BWF03ZasoV04un+s4ccyVVz8xhCAtjfKho+di88G20 2TiJ3h/7GkAmhn/ejZT+OgRIuhNSUKkk2/kzce3SMnke+cf2P/HMfkf0VR398Ynl4ASWfJCJ26AQ QCTnkj8tmYkYl+G1Om0u0Fp7+RSDnRqtp6NlARUM4t7flH5Wj4yvA3OIju41kYc/kk04SfOFVjVT 4UVkIfXTY9jFZMeLNci/7fpyE8HZKIwAEpHMNjNnHH7dwEAf/tcKOR5GoYMKDwFGSvuaciyGKk/w K/+0Xx8JIgU7B33fEOf/ZVf09v7a/4vowWoUyEhJ3o06GmZasqkG4VFYkkND51T+Dh+uVP/PTjpj ZvllQSBwCHI0PmHdf+W3oWP+T5Jf/LSH/Yaf8v/UgcP9z7AtSS0X++VSiCEn+n1+K85/b+1HM8gZ AgITlB+PYfQJf+q9Gs7/84ReJg7ge4rUYDd/tetfav9HX4/7O3Od/73ndvPyTMM+1V2wq/4h/U+X aAGlaYLBUQG0Wi1ar37UUSP9Aq/v4DRFAP8HX1IAQRDp2/ybuyr3DM5fL9o+aFGKKCp/BFBFUWVC MJ8vX308t+fi+308evV9+xwMhhxb+8BP2oO2fr0LQ7VBsAP2p1HRAEGeUJeX0+n0+PT09e/7H7Z+ 31qCqWqGIMBcMirW4m10g7LldtW7rlxKKCkpqf/b/wJ46dzIeZg2xnt1z5drdDzA+ygkk+aAUAUJ cD3TBQ4nS/+IVSQwuBBXfiUa1BAAftJcu7rpSnZx11RzdtyjRqKm0u50467a6nWwltc0YigowEbB nbsuoEmhLByTBIEjp0p6/OvL1CQvLfz1+5+Wypn1qd7q53d/as1v66gIa8P3BPOAmG/kAVFz78AB ECj+yei+u3x+//aWv7RID7ZN+RUGiE/3YaHQ/6Fn+jZT24lGs19P65P56l93UDpPOgpkzKgJ/BkP 47DTO8fKWSYX66Q5Ci/In/3nQTAUpP9gz+lPsQ6Kn9PzzX9/2I6Yg838iVRWhuGB3n6Q0hJP/HMo vtjT+1ZyYZym18k0P8hlS/8pykhT/hwEQRgI6P251Kyu/Hnu7GEf6zDUBX2kEirTall8/J5mR8uX W5KJpNoKdDJWYSf2f9TbEmA3O/OncUUdibqPc0Ju84Eo9p/6YPoQECDIwQMP/p/f9v+f3eSWQ65/ whAR1165pOdVWIa/FgE3TgQXEnrBmaAZSVFa5WstIQsxLMrkSFPmHdE6pBfZa6idARPp6+fTZYEk McyV0T4Tm99G8v8/9fa7u6qr/p07DL/LI/aXmPqaHg9j/oREMjUEAE1A/P4Daa2v0qsX8wmZO7Mz Tm4YSWcg0l5aOC1mSxbbzEZeeIWSf0PNi40ef/S6PZP7qHbfifez35wXA+29RVAfP1zp6Z7XnVQl fj8d+srXivs/k5EfrORfuc+zkPhryN6QDOSpNyeDevENM/KVKlSoNrvtUU5mphVQiYSChGBiQTYo r3zfpUqB9WjqEdJ1py3+2HnNZV7dvRQRrQOpDk9OfTBW9BjItL4gZz5/fbO3nJWN7S+XfBzQEMH+ sA3kgoerqibCQd3zGQcJEaopJgpPNHo8TgyKBUqocQ4vo+VYhJ+tBUkgaxd7px3rb7/fiqrB6IZU glTOc3jaEhISEnY3r4zjthfx7c95aomlbKqII9jEjtwvBhBZAoDP+eUoqpjnuINTylTM+Oq8a6Sv LtwYPB5VDhK2/AY/c3M9WLyhCcpUADH7EuZwhGc7K0wUIQlcSwkfxpJlwc9sKdUDOwz0g/mzkfl2 vYg7v3o8D+AoIsfaK87LmK+mV9mkQTqAN1QT8qkE40VqyW+yKLFE6aBxZz3vQOnrogfGlEILr0Kr FBiRhIyJPx9FkCwlRPMoAnioUJEYQjMMBELTMvmnCCLUn9gPnrCclc6m0CnufnANF2PoFnQvYT9D B8G8beB2hD71r2vrvHUZqqvWOm0UCh9eYXib3gKkbGcY0UOSC00GcHYvSlKQhJQr5b8syDJJII7b t2PhxRg7GlvaJX9foWHeckKr5b0Kj92PTp29bkxEg5PHT8dONO8Do0XjvhHcmWG3dM0LFGKAoO/Q YGB7RpMlUVUFPAYo4MWnL8IaL8J+wlZDuix+PHn5zEkkzEcsSSSVkCWG79Dg7lj0MLC05lSgHFFT UFOLLXHmZppNpcXMdOBzpxhqKinumIlb18/Yf6EDgn6nQ/Bq9SGhEMCHUUPrAE2cEFNN9CWUdf8g A1TE/MccFExyifVehvAL7DKoYAOKC6g+BmMhEdKtZPvZLkPkAQgXkjCEnp00ybIwdQqu1xh1rsHR 1mYbQvssoi2xAmJKQCSSSCSUIIqiffWsYQCDcUFksuDLEL1WURIQqiStnq7IgZUAYRf2D0M6az7X lKUPtrBMzI50XKdspYREwl7qAgffXMUi7klZrqvoh75tI2yVrTbBTcxlJjVRcu7QzhG6AJ2mg0BA AzQDMV1+kRSoENuOVT16Z5Zq6EqbFhsbe4RTc56kgXKj13nW/xcAAAHryj356fPz78R7dEDzsn+e ZyMgfEHTTyzJgD3quIekPeHrSdDsUviTCW+k1RRCbPNYARAwKjD37UgxCvCDyQJeK4FkOlopm7RR AApRHJtDGftrCeuuOs9MSRE/N57fnzMHaaiVsGgq4J2AsD5AZS7nldlW/ttsWQgC8ihzvtcV6HnX Ekn18Fl6h6Flm1H25XckxIr8ykDSHeB068VKoqGt/SqJuQSCQScgFE46IGYhICR/ZBzI+VvbS14N XYoON5m+dv4ff722WeM2cTmTpfMAdt3S6i6pbKEtS1atMC0swm5729dmvPt0F/NcDAB2+iqNvPPx zmPB48iSqJ0DAFE5IBITxZQm4UTSuIJ9d1AoV+sTze1HWAcAozv78av7eKk+k77dJd3ZZLtBhUy0 AXRZS4GgYBKbJCQYLVUWBD7wPd1xnwvTRPJBNxPbOAMyoUQOISfFEQFmh0YaHkCvv+XldtDYu2KD bbaSRBBq7g8VX39XPabfI8Oyk8dXbvlfmdqVTeAFCPLljj6dtTDPMZTdfEMEJB3KKMW15zW6gx4H y4nElVUgjoSShJ6ElPuLdPq/Rg8RtBB1ASLrVenIz22Q6eST9Z8+e/X2Kq3mEMGCwQ5n21vac8Z/ PyMAzQYHoffpUVNffMqqioMwSQM6yHxef5y6QCY/G+MHUnn86EFcD6MpICvy9ue2cjXn555dvDt4 llp68DxyUrcMDwFjfOFmdbovIdDighvMWmbOLB7ks+vCT8fk+QQT2YYYQTD884SHaJMzmBWXxHwy 1fkvCpjKwxQX19neA7I3Ztt5wthsRPgxt2c7Ics2vyPeUQKHoUP72O6Hvep33H69Gyz69q5GCfJz ojOnpM6hvIb4ujZDPRyrOl2YEMtaPaLs0CVIk6AaZki3YOMC3NWr1PJi6uXMgAOTXE2CqCVQaYsV AZwETQKoruaW4Aw2dI+XlnSIc4mhyKR5Ql1tv/KCbHQjk8RDWYi1B3h5zlvnvj6EDzyHK0yDJRvk fKEN9rDbkUF/T9ZvP9uxyeySJ1N6Oq9vPTBqZAp5+bSpoaZfUhpNHS4DQSexQexA5+utBqDhFPxt XodrEvJ2lSSP8wkJVtmSzWb4GnRoCoW3UbjIRTUExuxCogBkOxp+IAoidgnvmPkZ9COtXl0Ayrvm BkFAkSLE4ZJhlVVVV4sNq7agAAAiIUoMHBkKMb1tAOGCyIfbyq4UsqtroCIcTBHQEIBSN4+oUqtV sEYgR6XJdDlkwAZRgRyMCMWdKuKba0VVG8qgaC78uRsD2u9LDlPR+49XkI0vtI56rUIYElxpMYlo FFkTxjUmBtftaLSHQAfZwk0C4eEmziF4Sv5HKGDrsgmHCzW5G22CDCJI22wf5OqrwJRquClyAsU0 nqAgQPCQ++E6O7B/ysvTC0BFu9Eo5HBH00sU8dhKpG2luNSwgJaBPz6U+dLU3GQ6EEsWgWtm7o3d 2vhK2Fq5suenoghRIF0f7tbGpAla2GkElAX9Ru0Ay42S42zVBNUSKRRobRPkBCw7+2er6IwkgJL8 KgmeEN4kqFVgQSPPvc98xOQLIOqhh2HhTykZPN688kn7/0PR0EUxL5xkuYvayg/xG4B+m58XpCTu bcy34/bHrrneBeyIJ2ILuRAD7bOLq6P01zVVoJQfpwf1/29h4iIqVJOYFx9jWhA7g+5mUDEQBQt2 XN9SpJA1MQa+dp8GlkkLCb6ELWCQKD7qobUEIFRAKaZKpUCAln5QAkECgIg8w5VU69zX7a5ZDehG crec78FHC8UbzfDQTpxruR7HeGTEwBCzjrWAtE5znq4Sj00QbhajSzf0BAlLXAVGEk866d9gIfP9 FAoSXAOo0YBgECfXJVVVBt2EiyA6mE7ed3Akgu3Bw19msHbl5t6wMsPUPCDXVOaIcjHOzyPzkmh7 YNgm23OGvOSSRBYigWM5hIQ8gInx3igGRArIkkkkm9/B6mJD8nje3oB3+SP28+j+j9HzvroEB9zm q+uZVVVVTpzKr8dWN5r435HGta+3KYt5ksW28xGX5f6Br94XXPKHeoMfqvhIIqgAAAQDAAsk5yje YKiL37ONQR9BVRVVCqoUUVAmtCbajwN4eFZoSkJd/w5IjCsQ49yB47KEqwCyIJAJ/IXyIJ7z7RIU 9UYFf7ggCBO3/QQgIi9+i5eIxjKYlKy1/KkNrRjR+0oup8yZpqvQvI67R/s0hm/7vtT4+Ib50Yec mBL54LGGXHGApqNqL++ovUrYf1j6b8j6oP5/63EIcfb9fn/Dec5zmfvZ/5H/j/X/n/Ta+eedhXLK bvBs3eM5ypSMYxjGlKTnKTtCUqPFRBZzacmZmL0jJqf15yfPO2LRaf8/9j2nnpfQnGvE3/5Zv6eX Xp/hQ/wRFHnrEhA5zQVSgI6ZjMJmD+2zaPG3AIiN9zDz1ok5FUh5ELdAwN4AlDLLmlBQ6ioByxVR VAQGpUBRVFLDON9kKMAW40pWIhpCEJeg4hufTHjgyGt1CTHGcBAgspQq+SCIkdf49yOHh/p/H+b9 5/H4+/3h+5eYfqGX+S/PELW73fc7f+mPyjFb/coFWyP9O6xFiWj/V83/s5/t/4zi7gwFhj+QYjOh jg5AxZruzOQ9M4JgyMIYeE5k4r8J1/ra6mKviffUtdkNWPDcVpsl2hqCCrCKXkImDZu0JsNaQrXL +H8TnFehcvX5rAjOGh7l+vXd62fwX48Op5O930cXZbp9R6nwOx9p1PYukml4ULSX4Sawv6X2WPOZ 64/yCyvRsQq/xz7r48PUvjnyfPPi/8WiOEfziu2mW0y2rghZZqEGygSyG0CQy2iiiaZARDX7Zvyu pUqYHQpFomALXwIsolCOnWFds+TcQVdFcsqrl1c8L9NeCfHndt+Z9B8zueR399238Z7PY327bunY lunQv11b7nB9h2PU7n2HzPZj0PY004LL6nY+JwaaadXtdnsdKPxPHXhe9Ek7S/V4c+qtPQj3+/Uo NIjrOnH0w+jli7EUhLigTJLfw6ua8OpKJpNax2eEorJYs1BlCHapMkOwer+/37kEWZmIUqYw1aoQ STNsfpkgUL4j5ZgKV21EfBTaHy/m/noc2Yil0z14/0fwl77nxfw1WKNtf6vUTRJJMSJbSLKaLTbZ JIPnz5SXrknsuyp5ZWGKAlm4GxadjG3ZwxNM+zhF/Q+6/qkd3B9vk5Z2wxiy4bmikSaA59KqA/XN HXOvN4Mpy0ImLO1vDCWUOnczLrpVa3HlvleE/OxJJKEkkkkk3xPAJJxTGULPwvfqtyFdYDVK663F ni2QVZNOWtKSNKNMTnObvDLXIlCSSSSSSSSSSSYaOUU3JJJJNFveknrWpMcn00WBCusXiFUnRPe9 RcFZNmFWLCmIISMvKsyrRmULJHLDqjhTiDuMdmQbchsqWLlSNiJQ0WIGkJ8uOI2ZIA4YI23B/uf0 +tF2MSp7AJ3dAkl00Arbq4UzUccNSQSEipIJCf6m4LaQtNtIXd9m8NTIPwm1OfDHx/E/PfVUNFDx 34SCQSCQSCYJBIJBIJBx092T7TT0IMHSc3LftsVYqxctXFymDBi5W8/V6+/t5VeOXjj0nS+Pnh/X +XZEigwKzTdEwpe2EWUfggM0yijUIRaVEpIUiAiB4IHfcvuu/Po+l7cTnyO47SioupjctGC0kcqf pPH6gD8v7f9f1/T+SAX/r/N/g/7/54K7/vlIXjb/ucfwkv+/9CwxjPFsvuWt/H/GzSyWNWhO8X/6 z/3hujf12a2n9kGEV6wxNf9/++dLaYWmixjz2RERE/L9v7F9/k/0X+cr/LISIP+2W+LkXDeR/5Ca 9tab2dSattab2bJq21t7Nuattab2bJq21pvZsmrbW3s25q21pvZsmrbWm9myattab2bJq21pvZsm rbWm9mzTsWndmyattab2bMvXZ0zZs3VDp143mpJbJi03k2ZmbMIevZu5smKzezZNW2tN7Nk1ba03 s2CbtzTezZN25pvZsmrbWm9myattab2bJq21pvZsmrbWm9myattab2bMvW7Wm9mzaqhX+3t//O8h IP6qF/X+CydLFGIJqR/U0DCZv/M+UcVjSMP5f5SZPsSeePX+/eX5+bTZdp8fxcOyz5Zl4JhjmRru c5o5j5OC23uIy/rleH9lEdHvtf8JpH/hIR+CN/Sqlm/YoDlsZ/1XWU2IrNaawgACQgDF6KAOhSRE QUAv/D+OmnSEFVYqrMiCpAApN+cjk8IOGKX0KloFksVLLzIwuo/i4cxKyXVa22UY6iS0K0vGAd+T De0Lre9RcOzWFrWzvaVxxIyLM2TMzMzT/wxvXBPbXHBkZeWhJdc26UdqC3QubGsebVeBouUNtmww u54LESINFWCpvuokRAg/0qFPchTSUe+umOjKZY5VaZVrKEINFyXurFobNQnZYmMZ7f0zboNJznRm bLL+qMYx4d/61WHLMyqsaU3jHLbvn67SEr3vfanc+qYrkfDrzjEMPFIgmIWMMQ33i0vZmac580pM T9tM+/x6kBLLXl94QbxppCG221r+j3VcU8rk1vh5eVT3+PjrfnrLAP9nrQNjSJ05ZoCxO7+6/BaD 5x9PMhfUntZmnqzGe/tUnEEiTWrzqqrSQlBWxD2eNKefbS1+7NSprWta+3t7znOqrSlKUlQ5ark1 8HGNhMkkks2WWWWWVRME16Y1f4XEnXAZmbGIQhhmwvpoUtB3bp/y8DoOkCx6R2JsfBnCB3VHJgVB HpZQ7rP5Xi8Fha82b5Qs9KqPWVbtt6O+/fv37whCEId/PN+cscDVli0SyarrzzWKyWgjSPyjXrMP KUWjD49QaMizCUlF1pCxPbI5L8eFqYe8oPWWGfAZZWhUefPnz58+b9u/nzLfnETgYxLFawliNGpC kKSoZznOc2b53+WvZe5cF3bceV361bmXvrlnUe89cduOR1IRs+O/2FjyPnebJb/aTOc3rrMzMzrr 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 0d6QWKrLXLdxiK5mcUdoGbEViPOu0KQtmziZhZ6z75wTYxm7bEChJdxV6KIMIfFLZqso7vvPNspk l5qZsYQ2vJXm8RGy2h4iszWvNu0N4WS5WqsWZtXJtQbeXJVawyGKA4sg1nz3a+JZPPLOzdYT2dNc O8OV3l3sOxy5jq/WlWDVPOSnasXhBTB5iChRd8g7zWz1XTtHGy0ohlJtsRXQiNCTcERMrqGLM2rk 0lkbnguUgSZnsWjjGURSIuUJxVQxZmxOCm+wqM02FRH48FI/48SU/0LtJpfST/vWpON8nH8pNLo8 nHrbSSSaTS+kn94/Hx78de8hzUvxz04p1wvLuLc8/rxL0l2k/3/wfJd3fyb8L6SaXfWdTEkk0ml8 pPzuvSku/82pai/r74/g/drCjLSXtwk55WX09ivMen7DXSw9Tri4eHooosi/83zb36/w+cfKzCZT JVF9cGSm7mREnTSMYdAIYm9rwFT2KQHuOrKuSiJb3yZmbfv0ol8uK/Q2ta1uvaM+tGpOeVHZab0e Z31zl7u3fLvMbbXf1Stq77778ePG99dddcbdHrWutLVrV3dVVYFiWgWsXZ1VY2tOtaUpRmZqUhD2 vr0SGRjWta5Z4nOcyeVfUwgq8KLtGF731vuK0pSZpCrM8Yu71rWNJznOUIRiwbpzj5eIxtbl+o9C o279Vx1kSQeteoC9tbt4gvtT3nVmLMzuTEADj2GmcEkaUVizNRyRSMFVlVlWqr6ptplqytp7Lm6x wr3f9Kl9D7fCThs+st8JOGRQ/k6WfL0Dx4q+EmGz2ezZ6JOGGGHs6WUbOejhr7Pj6TLb+3Jzhnu6 RLyVizNJyYZjiOJz+YWZJUSpL5Nl+FnLIscbdZnb36qrLsVsSSZrx0CnZWBDMot0EcqWVLvhbxJr wVXD0SSSXZBXo9bv8eOvXr0XabgjBt+kemwWBJW8ecz1Eo8mRGVIcAtmDn9feOkVXrPE4Ve16Nnv 1zcaW6Zv8UxmQcPCJWJUYZpFbQd9Gu+hiplKOyuXOJCRDWny2jaQy1cZkZxXm2Jq2S1I+vjjPvVw Nm+5wZWajq4j7nieDImMCJfQ5UfDxDQW7spSYeZJMGZpqYeFhAn67vQerLYQtsaOFhWLbGMSuAQm u02cpK0PZ12jh5GwwRthdKjrl2MRppkz3VhmwtBSXKKRIsTBYwq3v6y95IK1Wh8kBxVdjbzWD5b9 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 QVMCfueDqQP/6LuSKcKEgQmuGRg= --=-bahPN8RfXLsFoG1+NjIJ-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 15 04:35:11 2020 Received: (at 41669) by debbugs.gnu.org; 15 Dec 2020 09:35:11 +0000 Received: from localhost ([127.0.0.1]:55632 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp6jf-0006aU-BZ for submit@debbugs.gnu.org; Tue, 15 Dec 2020 04:35:11 -0500 Received: from mail.zaclys.net ([178.33.93.72]:56953) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kp6jd-0006a8-2j for 41669@debbugs.gnu.org; Tue, 15 Dec 2020 04:35:10 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BF9Z0UL036957 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Tue, 15 Dec 2020 10:35:01 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BF9Z0UL036957 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1608024902; bh=LfuV1yJjtc77aL4ArPQyJ0BAF2hJOxqq8LRR22k2E5Q=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=j/xf7NOAz/wxFipGkNVshnoRPbadY/pZtlcLL/MDic6SgCerX7zCxGBeHJJKPx3fJ p/dj8uO/Pnn6cBxE4jy6yHtNJF0OQTPwCIPIeqsyx5ymkNbFsc1rQePqIYOA1iohck jLNRRem4aYM9QDtbA9iUKDvSNvnXfGwRNc2FZ0/0= Message-ID: <7dd3dc784839b0b456af8cf34ab5107a27ef0a68.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Ludovic =?ISO-8859-1?Q?Court=E8s?= Date: Tue, 15 Dec 2020 10:35:00 +0100 In-Reply-To: <54153897349cc396d89a022dbce141bfea4804db.camel@zaclys.net> References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874kkoyebq.fsf@gnu.org> <7730dab2af9de1e47cf343ff5ed506d472efe591.camel@zaclys.net> <87a6ugqb4h.fsf@gnu.org> <54153897349cc396d89a022dbce141bfea4804db.camel@zaclys.net> Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Chris Marusich , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) On Tue, 2020-12-15 at 08:34 +0100, Leo Le Bouter wrote: > On Mon, 2020-12-14 at 23:24 +0100, Ludovic Courtès wrote: > > Yes, I think we could just cross-build those bootstrap binaries > > from > > current ‘master’ and be done with it, if it works for you. > > Yes that would be awesome! The master branch just needs the patch > from > bug - I guess > considering it affects lots of packages it needs to be rewritten the > same way Efraim has rewritten their PowerPC 32-bits patch. I'll look > into that. Correct? Rewrote patch and submitted here: < https://debbugs.gnu.org/cgi/bugreport.cgi?bug=45252> Thanks From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 20 02:28:18 2020 Received: (at 41669) by debbugs.gnu.org; 20 Dec 2020 07:28:18 +0000 Received: from localhost ([127.0.0.1]:43594 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqt8b-0007il-La for submit@debbugs.gnu.org; Sun, 20 Dec 2020 02:28:18 -0500 Received: from mail-pl1-f173.google.com ([209.85.214.173]:41233) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kqt8Y-0007iX-RB for 41669@debbugs.gnu.org; Sun, 20 Dec 2020 02:28:16 -0500 Received: by mail-pl1-f173.google.com with SMTP id y8so3934225plp.8 for <41669@debbugs.gnu.org>; Sat, 19 Dec 2020 23:28:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version; bh=gJq51H1/HFSaGe5wqjWIwhaLInFZH7uzpNuJi8bti4Q=; b=pMqIV2s7ut3amXPv5VxU7uIwuuJx3WoQx8p1TXfdOyWztQPm9LIiI/QoWvvOFjfA1S 0dPiyRs47g+y7E3O4QNHUC3ARFTpeFN9CQ9ZB5al9ePz5V+kWGnSunbe22W7lk5YEYyJ yPuyVXIXhFBC26/KaoesC/SUqrap5MI7fwDNfAGcrqLwn/eGwrUog/glpi0NicyT9YP8 LNVu+2mYqimP14GHGKejdvd7fKBhTxB9pFKgbRo0PiAa2FvtAtHFwpyFT1047W2NFixl OqMKUmdXG562qiBqFFs0YGAbKDlKAkpRin5zxVhiZi1irnifmw/w0uDdg1rVEu8Sxru+ +0gA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=gJq51H1/HFSaGe5wqjWIwhaLInFZH7uzpNuJi8bti4Q=; b=Dkdu9qEr+6QjRnHDOYFGTs905dx8gU1wycfz4ZN/+VBxIRHogdQ1pdgDUo4mWupSiW 0yI/VkE1Mre7pogz2Y436NZ9VsCzskM1vF3taGm+yWic4+Pa5heMCYLyhN+Td6Mu2acd jFMZVAtC1m0nwGL8vJcjrsk45B3DP57hoyN8/O+Hz8glfriEZS1wAm97WE1Sl0VCQ+6J /+qx84pxWpiXQ/tBs2tR8aWl1fuMOpMMlOoeZZ0XT07Js3fhcKwiTrcJ7xDcjpotVszb ngvaFU4bYubaMOjsniJk9Pz1S3RVTGJmlqNrqEAojmHNI04Xjg4PIl8CEuen6rHLVvi+ SB2A== X-Gm-Message-State: AOAM532z+pKEf0/1kmqIouBWgp+CRT54L1DAXs3JOd1UMUsfney+0YAs hNCjpNpdld/BPspO6B8kF5I= X-Google-Smtp-Source: ABdhPJy6zZiDN/xIHDVH9NSIO1Z8hW16daMTa/oX/Vhm8uNWOeIP34Xr/tgCH9QAiTYu1hpbbBE66Q== X-Received: by 2002:a17:90a:a24:: with SMTP id o33mr11993925pjo.191.1608449288766; Sat, 19 Dec 2020 23:28:08 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::c9a]) by smtp.gmail.com with ESMTPSA id c205sm13027525pfc.160.2020.12.19.23.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Dec 2020 23:28:07 -0800 (PST) From: Chris Marusich To: Leo Le Bouter , Efraim Flashner , Ludovic =?utf-8?Q?Court=C3=A8s?= , 41669@debbugs.gnu.org, Maxim Cournoyer , Vincent Legoll Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> Date: Sat, 19 Dec 2020 23:28:03 -0800 In-Reply-To: (Leo Le Bouter's message of "Mon, 14 Dec 2020 11:34:35 +0100, Mon, 14 Dec 2020 10:17:21 +0200, Mon, 14 Dec 2020 09:36:09 +0100") Message-ID: <87blepaqd8.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi all, It's great to see forward motion again! Efraim Flashner writes: > As far as powerpc64 vs powerpc64le, I'll let those with the hardware > have more of a say, they'll be the ones using it. As far as the > bootstrap binaries go, I don't remember having this much pushback with > my binaries for aarch64 (just a request to rebuild with guile-2.0.14 > since it was reproducible), and I'm not sure how much Janneke had with > the Hurd binaries but I don't think it was this much. The ultimate goal > anyway is to replace them with artisanally crafted mes binaries, and I > understand we want to have them as reproducible as possible, but I don't > think it's fair to keep this architecture out when we've let other ones > in with similar reproducible problems. Ludovic Court=C3=A8s writes: > I didn=E2=80=99t follow the whole discussion nor did I try to investigate > myself, but thanks a lot for going to great lengths trying to identify > the issue; this is an impressive amount of work, and I can only share > your disappointment. > > Given this effort, I agree that it may be best at this point to move on > and start with these non-reproducible binaries. At least, the problem > is now documented. I'm glad you agree. For powerpc64 (big-endian), should we just make the changes for bootstrapping on the master branch, or should we use a separate branch? If we use a separate branch, we could use the name "wip-ppc64", since there is already a "wip-ppc64le" for powerpc64le. Is it expected that commits on these "wip" branches will never be modified (e.g., via rebasing)? Leo Le Bouter writes: >> Do you have a preference big-endian vs little endian? > > I'd like both but little endian has the widest eco-system support > especially w.r.t. to Linux drivers. Many Linux drivers have endianness > bugs (lack of endian-safe serialization for DMA..), it's such a plague > that sticking to little endian is just better right now. One common > example being mpt3sas and amdgpu drivers required in some > configurations of the Talos II system. Ludovic Court=C3=A8s writes: >> At this point, it might even make more sense to try bootstrapping for >> powerpc64le instead of powerpc64, since the rest of the world seems to >> be gravitating toward the little-endian variant on POWER9 hardware, and >> thus various programs out there are more likely to be better tested on >> powerpc64le than powerpc64. > > Yes, my understanding is that other people, in particular Tobias Platen > and dftxbs3e, were looking at powerpc64le, so perhaps it=E2=80=99s a good= idea > to concentrate on that one? I agree. It's probably better to focus on little-endian. However, it isn't clear yet which will be ultimately harder for us to bootstrap, so I also think it's fine to work on both in parallel and see how it goes. Ludovic Court=C3=A8s writes: > Anyhow, please let me know if/when bootstrap binaries should be uploaded > to ftp.gnu.org (with a signed message). When updating bootstrap.scm to > refer to them, please include the commit ID used to build them in the > commit message. Over the last few days, Leo and I coordinated to try cross-compiling the powerpc64 bootstrap tarballs one more time, using two Guix System VMs. We did this because we thought that maybe if we took care to keep the Guix Systems "the same" (e.g., same kernel), it would produce identical results. Instead, the result was the same as before: all bootstrap tarballs except for gcc-static were identical, and gcc-static differed in ways similar to what has already been described earlier in this bug report. In fact, with the exception of gcc-static, the bootstrap tarballs were identical to the tarballs multiple people built 6 months ago in June. This means that (1) with the exception of gcc-static, the bootstrap tarballs build reproducibly even across systems and after quite a bit of change has taken place on the master branch, and (2) even when built from source on two separate, fresh, practically identical Guix System machines, without using substitutes, the gcc-static binary still differs. Now that we have decided to use these powerpc64 bootstrap tarballs, what are the next steps for uploading them to the GNU FTP server? I've never done that before, and I don't think I have access. For now I've put a signed copy of the powerpc64-linux (big endian) bootstrap tarballs, with a SHA-512 hash, here: https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-gu= ix-1ced8379c7.tar.xz https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-gu= ix-1ced8379c7.tar.xz.asc https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-gu= ix-1ced8379c7.tar.xz.sha512sum For the record, these bootstrap tarballs were built via the following steps: =2D Use https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz to install Guix System 1.2.0 on an x86_64-linux machine. =2D Run: guix pull --no-substitutes --commit=3D1ced8379c7641788fa607b19b7a6= 6d18f045362b =2D Run: guix build --no-substitutes --target=3Dpowerpc64-linux-gnu bootstr= ap-tarballs =2D I didn't run "guix system reconfigure" after installing Guix System; theoretically it shouldn't matter, but for the purpose of our experiment, I just left the system in its default configuration in order to ensure that the kernel etc. would be the same on both VMs. Once we get these binaries into the GNU FTP server, I'll get started on updating gnu/packages/bootstrap.scm and other files necessary to begin bootstrapping powerpc64-linux. I'll mainly be adapting the work that Leo already did, and following the lead of others like Efraim and his work on the wip-ppc branch. I will probably have questions as I go, so I'll ask on guix-devel. Please let me know if you'd like this done on a special branch. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/e/QMACgkQ3UCaFdgi Rp0HtRAAjn883AZMDTqduot7bySWoCfuRQHFqmiA8+1i4RmIcD56E6XuCnL/YIWI LZF0QVqyMaZdPCtf2ZjNyeZoQi0u//y33fVd1Ju+c/rynlMqysLh4Ka+OTLnQVk8 t7sGSK/JfpvKmpAFkLJpZd1q/z/hDasZklupl8CLBYDnZpKZeruvpzRn8NwyMux9 6iJ2bYtXRkvTLk39DFozWYT+9sSsy6cmz9SWtaz09g5aNE2mlscMxVQ0JuIy2v/D EdVa286sEt481KqpoiAPJ08Bthtx2ZUmiRzR1vdaiN+WsckAWmJ8FJC5/Me+FkHB xGRi025RFm9s863DSi9qf0NdzSApeJ3ixHErd2rR2nFxNgBTH9PRPqUfXdQ4KBFd ja+2op3hKx9Y9NLlg8fWdI9Xbue1qLQMDmWxrSyKSzcvzn34IRgg9OK2BOg20d3W LLYCfwO7p0f8Ozf+U7lE1nN9GDAhVqx3jNWnRmtKMN0jaFcjwECkNoiYcQfLFgo/ MVcETGCvwNtQYAsOAFwda3aJKQ8z8tjN+H6AGxzJOlB6qGmEq15adshG0b/EFuC6 4QuftjdxAkDlwl7/hPXVoH/vwX+hHwq77r1f0fys52hpNzjipnqsNRu9HjVcbZ4A jC9dsZa5j3RHXy//lRMWBpHN8Y1t4p8dL3C4msj5pxmNiefWLQY= =Ai5P -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 27 21:25:45 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 02:25:45 +0000 Received: from localhost ([127.0.0.1]:33956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktiED-0005I1-G2 for submit@debbugs.gnu.org; Sun, 27 Dec 2020 21:25:45 -0500 Received: from mail.zaclys.net ([178.33.93.72]:34187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktiE7-0005Hj-BS for 41669@debbugs.gnu.org; Sun, 27 Dec 2020 21:25:43 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BS2PVcM003887 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 03:25:32 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BS2PVcM003887 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609122332; bh=yCux7udn21Vbmd0nN6KoBWnH4BqB+XurzkP7MNe7Qxg=; h=Subject:From:To:Date:In-Reply-To:References:From; b=Wf3Ngoc3O6GoYRCsawzTFbtZaZdhqFzs5x03LHHqEeVgJYZkYprCxsGT7nf9cdx7s F2Ru5ne2cH3G428a4PqVGbGbXViStykZqArxabcNxjavi3GAx5sX32zL6hVRsSiKTW yhdg20HkJwgl+d3O//XcY1UMBbFuU1b9maUurTzQ= Message-ID: <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich , Efraim Flashner , Ludovic =?ISO-8859-1?Q?Court=E8s?= , 41669@debbugs.gnu.org, Maxim Cournoyer , Vincent Legoll Date: Mon, 28 Dec 2020 03:25:27 +0100 In-Reply-To: <87blepaqd8.fsf_-_@gmail.com> References: <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-qD8qYXWhi/hP/+m70mJw" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-qD8qYXWhi/hP/+m70mJw Content-Type: multipart/mixed; boundary="=-vMb+fr1gYR3ifKlGR3QD" --=-vMb+fr1gYR3ifKlGR3QD Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello! I want to have one last attempt at making the binaries reproducible. Could anyone help adjusting this patch so the package definition's hash does not change on other architectures? So it can be proposed for merge in master.. Thank you --=-vMb+fr1gYR3ifKlGR3QD Content-Disposition: attachment; filename*0=0001-gnu-gcc-4.7-Disable-parallel-compilation-on-powerpc6.pat; filename*1=ch Content-Type: text/x-patch; name="0001-gnu-gcc-4.7-Disable-parallel-compilation-on-powerpc6.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlNjkzMWE3ZWJiOWNjMDY4MWEzMjExYWMzOGExYzU4YzdhMTc2NDgxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIERvZSA8ZGZ0eGJzM2VAZnJlZS5mcj4KRGF0ZTogTW9u LCAyOCBEZWMgMjAyMCAwMzoyMTowOCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGdudTogZ2NjLTQu NzogRGlzYWJsZSBwYXJhbGxlbCBjb21waWxhdGlvbiBvbiBwb3dlcnBjNjQqLgoKKiBnbnUvcGFj a2FnZXMvZ2NjLnNjbSAoZ2NjLTQuNylbYXJndW1lbnRzXTogQ29uZGl0aW9uYWxseSBkaXNhYmxl CiAgcGFyYWxsZWwgY29tcGlsYXRpb24gb24gcG93ZXJwYzY0Ki4KLS0tCiBnbnUvcGFja2FnZXMv Z2NjLnNjbSB8IDIgKysKIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9nbnUvcGFja2FnZXMvZ2NjLnNjbSBiL2dudS9wYWNrYWdlcy9nY2Muc2NtCmluZGV4IDRk NWFhYTcwNzAuLjZkMzI2NzcxNDQgMTAwNjQ0Ci0tLSBhL2dudS9wYWNrYWdlcy9nY2Muc2NtCisr KyBiL2dudS9wYWNrYWdlcy9nY2Muc2NtCkBAIC0yMDQsNiArMjA0LDggQEAgd2hlcmUgdGhlIE9T IHBhcnQgaXMgb3ZlcmxvYWRlZCB0byBkZW5vdGUgYSBzcGVjaWZpYyBBQkktLS1pbnRvIEdDQwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLChpZiBzdHJpcHBlZD8gIi1nMCIg Ii1nIikpKSkpCiAKICAgICAgICAgICAjOnRlc3RzPyAjZgorICAgICAgICAgICM6cGFyYWxsZWwt YnVpbGQ/ICwoc3RyaW5nLXByZWZpeD8gInBvd2VycGM2NCIgKG9yICglY3VycmVudC10YXJnZXQt c3lzdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAoJWN1cnJlbnQtc3lzdGVtKSkpCiAKICAgICAgICAgICAjOnBoYXNlcwog ICAgICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKLS0gCjIuMjkuMgoK --=-vMb+fr1gYR3ifKlGR3QD-- --=-qD8qYXWhi/hP/+m70mJw Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/pQhcACgkQRaix6GvN EKZ5DBAAvvwVVRAH5Vzc3AU0RLSTrrNhb4tdh/KSHoIy0SHBt1yFoRWh8VJMujvy 90L4K0B4VPhfaJg1KUC7EOkS0NvHuBwsQt+v0q3nf8IWenIfGu33CmBNrcjfCi+7 NViN87nNbHCY3O77LTlpcIkbHEr8IKTiD7FFMaYEoVyc3IgNd72YntTmIGta0fWn DHv3j+NDCIQVP69zh7pckB08PWI7p4SLE6FSpqPqcPUYsmU++k5lmiBpdlv/As0b P45EBLW/8+sN9Y68e9EAZR2A3A0CmKjROdx3XAwpJBlmcdwT68ameJqJU+tZII7t F1x40g/jvNiqAvkuYHheM3GOoM/Q/uorEal5gEckNUt+53fPiJFrvTChQEkoaIWr kq4RzdYtQkGwIuRbH2F8Cg3FySUvLg4aRcmKfec1AFFCdQsGdqD2KIGHYyB5BKHl L1VAsHlhQhrqW2HJJiyFAF/kD2VIFqS9MlmYIJv+BCaFwYThpWguhBfHISIbQ6n7 f9vUJPGQ5sev0gZK6DBaQ20Vh0Evpk71tLVM3dZ6mibUy4p5Ehb0obE2k0aEbAj7 jDQTUXodzzOXV80eq96vHjigUBkQtzTw2dMWNSrwNljJXvxbtrW57Yf+KPexy/P1 NHwiM5nB48iDbn6wQAJl25uunUdCjbOsc9yCDQ+8bX2iojdxkTA= =/qYB -----END PGP SIGNATURE----- --=-qD8qYXWhi/hP/+m70mJw-- From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 27 23:23:33 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 04:23:33 +0000 Received: from localhost ([127.0.0.1]:34046 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktk4D-0003u8-3G for submit@debbugs.gnu.org; Sun, 27 Dec 2020 23:23:33 -0500 Received: from mail-pj1-f54.google.com ([209.85.216.54]:36278) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktk4A-0003tu-K2 for 41669@debbugs.gnu.org; Sun, 27 Dec 2020 23:23:31 -0500 Received: by mail-pj1-f54.google.com with SMTP id l23so5855337pjg.1 for <41669@debbugs.gnu.org>; Sun, 27 Dec 2020 20:23:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=GhUoKhqmF6PlWUHoJbjN92AAkRLyUTAbfCHcpxKrnIk=; b=oD4tBhnjRQzrO6jBZLX4yFV1n0JT7UQ/wySpbstClEw3N4LyFObabU9Y3aaeds8cNH xdghr3W1JWnF5H1dhBhbzHQkRGMduZF7o0KpraLSX+BZ9KMvrNPI615FS77dQVFA/S74 Qhoey9HMfSzwkaWWXx0ozFpxQgzgQZfmFImKjz1fPsVrNTYxbkTqdWPnQnj/7fAxcX6k 5dSNJdmEOx695nMKGH+xp37efrDnXjcyyLhcDJWW1TAii4OA+cnztAcz14tjAWCA/SaS Fiyevkm03FtZXzjnugqoEdGh2mIweWFG8p1XYfLaEcL/WVUSuN59yTcz0jS4x2cAVv71 D+7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=GhUoKhqmF6PlWUHoJbjN92AAkRLyUTAbfCHcpxKrnIk=; b=GpLO9K4aCfzoOlk3FfQeMqBPnGfY9bjBUuX0Y6B80u9ONw6AovXCUAVcLt5D9mLCDn zktRqGd7lZfseM1zVe91wlg1knAEQKtsX0j+x2fnBK5TSd1j9ZgIzDt+ZJLhNCT2aGlK AURL0GpJk/wxW0JZOpZcIOrDBEsPoL+leG3vOEfYrYNXaBx2neGEUCpVEh7DAgkXwZ1R 2pmXFUQLjXa+mFYOx6rWxCRQJPEIbG92RJI2SQVKgseonloUFy1wqRUik/KhbEs8kf2y FOpDSQGkDs0i9fhh2Joyla41xSn7Xezr8jrux2U2XANR68NUTP+gyrsqLNo/c4deeeXM oIrg== X-Gm-Message-State: AOAM532G1IbpQM9tJjfBz3ztqA9GualiKkcNtfm/bYrSrHf3hgv16VAU fLPwmuAzznmMC/CMmQ8FRi0= X-Google-Smtp-Source: ABdhPJywV8RbLsxc293BRzX8qWovEQhZIRZXDz4XwDhYveUOXfI/1OmVXZ2txWTg3a3RGj5Bk5Rx7A== X-Received: by 2002:a17:90a:f3c5:: with SMTP id ha5mr19133422pjb.61.1609129404869; Sun, 27 Dec 2020 20:23:24 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::c9a]) by smtp.gmail.com with ESMTPSA id w9sm34174235pfj.128.2020.12.27.20.23.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 27 Dec 2020 20:23:23 -0800 (PST) From: Chris Marusich To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> Date: Sun, 27 Dec 2020 20:23:21 -0800 In-Reply-To: <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> (Leo Le Bouter's message of "Mon, 28 Dec 2020 03:25:27 +0100") Message-ID: <87zh1y1ruu.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court?= =?utf-8?Q?=C3=A8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Leo Le Bouter writes: > I want to have one last attempt at making the binaries reproducible. > > Could anyone help adjusting this patch so the package definition's hash > does not change on other architectures? So it can be proposed for merge > in master.. > > Thank you > > From e6931a7ebb9cc0681a3211ac38a1c58c7a176481 Mon Sep 17 00:00:00 2001 > From: John Doe > Date: Mon, 28 Dec 2020 03:21:08 +0100 > Subject: [PATCH] gnu: gcc-4.7: Disable parallel compilation on powerpc64*. > > * gnu/packages/gcc.scm (gcc-4.7)[arguments]: Conditionally disable > parallel compilation on powerpc64*. > --- > gnu/packages/gcc.scm | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm > index 4d5aaa7070..6d32677144 100644 > --- a/gnu/packages/gcc.scm > +++ b/gnu/packages/gcc.scm > @@ -204,6 +204,8 @@ where the OS part is overloaded to denote a specific = ABI---into GCC > ,(if stripped? "-g0" "-g"))))) >=20=20 > #:tests? #f > + #:parallel-build? ,(string-prefix? "powerpc64" (or (%current-t= arget-system) > + (%current-= system))) >=20=20 > #:phases > (modify-phases %standard-phases If it's just for the sake of trying one last time, we could just add =2D-cores=3D1 to the Guix invocations, or run everything in a single-core VM. Wouldn't that have the same effect? I think you'll probably agree, so I've proactively started another build on two fresh single-core VMs (using the same procedure I described earlier, starting from the 1.2.0 installation ISO image). It'll take a few days to finish, I'm sure. Please let me know if you think we need the patch to run this final experiment. Otherwise, I'll just report the results of this latest experiment in a few days' time. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/pXbkACgkQ3UCaFdgi Rp1oqRAAt3SeMcvhgdz7wzd3FPMd5L2tI+fdw9jS9cOdS9YYX82rpFYRhDXmjzlg T6doiaQaYi4gy8gYzfHWYgswz2LD7pRHI275erdBRbmEVl6BhtvXjpXhnD1pfF7N +kK7Z+EME0zppdH8/4slWIfYQms+PbgR52aBTKtIhjQ+kcErbAxkegwJIHZSvJvw jZMSwdB0OtdhkRR5Z1s3Z8I87CNI9dPOkJGlMNQPdI2VHl1nSDSEbM9YmPo460sz tltJFRp5lEh8lm97YZmGG9wMn5RXHignwAq3AKGucZwrp0XH46ElKWs2uuWbyqve wwO9a67JXeTjzqt5FwwGGsVS9Q6vVz9PQHXl/rwvKoYx8iCR5fHs34DtbADGFfb4 pTnYhCLJs7+yIDbAMQ1nkRMkdxu9IXJ4gHyAFkDRBpGuBCCv5mflaJPbugm2XeZZ UWER09AlvEnGucOLns6ONrGrfO+Tpna8yP+O5mP38qI0DsMeVQ0jxct7y84Ts55L NZ1Jqepm30iFqjso3VydbdK+S7G+gXEAnarvEE71CLf2OF9hdUtmv+atKUyoCwZn yjkHtF1wT0S8zOYuTNxmHqWpQF+Rbzamzyb2ttHh/e8w3EFouPa4nu2XOXBcSDsR Y+jyu51kjAWfe5lNHDoFHgQcMeCn7tGTZS8Q51yhWJ8eLZAOf0o= =emb+ -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 03:07:54 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 08:07:54 +0000 Received: from localhost ([127.0.0.1]:34159 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktnZK-00036z-Aq for submit@debbugs.gnu.org; Mon, 28 Dec 2020 03:07:54 -0500 Received: from flashner.co.il ([178.62.234.194]:54446) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktnZI-00036l-5W for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 03:07:52 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 1138E40297; Mon, 28 Dec 2020 08:07:45 +0000 (UTC) Date: Mon, 28 Dec 2020 10:07:13 +0200 From: Efraim Flashner To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="9AdtJV4VHCAbgidI" Content-Disposition: inline In-Reply-To: <87zh1y1ruu.fsf@gmail.com> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Ludovic =?utf-8?Q?Court=C3=A8s?= , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --9AdtJV4VHCAbgidI Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sun, Dec 27, 2020 at 08:23:21PM -0800, Chris Marusich wrote: > Leo Le Bouter writes: >=20 > > I want to have one last attempt at making the binaries reproducible. > > > > Could anyone help adjusting this patch so the package definition's hash > > does not change on other architectures? So it can be proposed for merge > > in master.. > > > > Thank you > > > > From e6931a7ebb9cc0681a3211ac38a1c58c7a176481 Mon Sep 17 00:00:00 2001 > > From: John Doe > > Date: Mon, 28 Dec 2020 03:21:08 +0100 > > Subject: [PATCH] gnu: gcc-4.7: Disable parallel compilation on powerpc6= 4*. > > > > * gnu/packages/gcc.scm (gcc-4.7)[arguments]: Conditionally disable > > parallel compilation on powerpc64*. > > --- > > gnu/packages/gcc.scm | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm > > index 4d5aaa7070..6d32677144 100644 > > --- a/gnu/packages/gcc.scm > > +++ b/gnu/packages/gcc.scm > > @@ -204,6 +204,8 @@ where the OS part is overloaded to denote a specifi= c ABI---into GCC > > ,(if stripped? "-g0" "-g"))))) > > =20 > > #:tests? #f > > + #:parallel-build? ,(string-prefix? "powerpc64" (or (%current= -target-system) > > + (%curren= t-system))) > > =20 > > #:phases > > (modify-phases %standard-phases >=20 > If it's just for the sake of trying one last time, we could just add > --cores=3D1 to the Guix invocations, or run everything in a single-core > VM. Wouldn't that have the same effect? Close enough. We can also add it into the commit message, to build it with --cores=3D1 > I think you'll probably agree, so I've proactively started another build > on two fresh single-core VMs (using the same procedure I described > earlier, starting from the 1.2.0 installation ISO image). It'll take a > few days to finish, I'm sure. Please let me know if you think we need > the patch to run this final experiment. Otherwise, I'll just report the > results of this latest experiment in a few days' time. >=20 > --=20 > Chris --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --9AdtJV4VHCAbgidI Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/pkioACgkQQarn3Mo9 g1FSPhAAmT4SylnLS1yvrqGtc9ieBE7CcspOnS2jPxkOkn1QWQDXsS2u6unP5spE kNk7P5CSvmiFL6r3dSOtr6UoE+IoXouYTRp7NVvmlG7hFWcd5IW2oBYrHyVh/LTe cPPhECdMGTm3w2VPen+FU3DoPUofO/i9D30JGMSgbgmwRszk8DS70yJ6Ir5tePPS s5zUh67NUdp2IuoWNiWGVL1ub47P9WFT3MdbrTfA6ghxDw/2wuDwERa4pPNf4H0n j7Yn9ane2k5fw7Nncex1C2vdC7Xg57h03z8HwvHs9zjNad4k0Fl0UVvOHq63+9bu MfRtb/ZCXKIAjbjp2ozOBPxUwV/3XZ4fL8ezKr5zz1+Ya8xL2LEFXXK43UeMZOB9 HyUE5Cxhu2SD01U21Dv/GX8yUFX+DmXf5pq/tR0YqIlH+y0FUXo/e6bJtH14kvye 9TMukES/cHKpCByiCSqD8+LlvHmYgNFFDgLiMCGZ41TNrknmb7+cYpolTFUjM/SM EwfeYxrWVFu9LMe2ZGdCSjJRLisoxbJZGT7tS6OZVvKlftj4I5gXqRn/wY7bOY3S d7NkXXmuPmqMv0t/PBNU/Ndv0GxTXWCgQLK4xW9ZXh4M1ytCrQD3vnXI60RDKshj aWuytLsSOqWTuSveArv3wziR16G80ta+r0LLGS8OgtcOv5Y6VZQ= =JxnR -----END PGP SIGNATURE----- --9AdtJV4VHCAbgidI-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 03:08:38 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 08:08:39 +0000 Received: from localhost ([127.0.0.1]:34163 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktna2-00038J-M2 for submit@debbugs.gnu.org; Mon, 28 Dec 2020 03:08:38 -0500 Received: from flashner.co.il ([178.62.234.194]:54462) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktna0-000386-7e for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 03:08:36 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 68F5340297; Mon, 28 Dec 2020 08:08:30 +0000 (UTC) Date: Mon, 28 Dec 2020 10:07:58 +0200 From: Efraim Flashner To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="xE+Nk4QrzZe2B9XF" Content-Disposition: inline In-Reply-To: <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --xE+Nk4QrzZe2B9XF Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 28, 2020 at 03:25:27AM +0100, Leo Le Bouter wrote: > Hello! >=20 > I want to have one last attempt at making the binaries reproducible. >=20 > Could anyone help adjusting this patch so the package definition's hash > does not change on other architectures? So it can be proposed for merge > in master.. >=20 > Thank you I think you'll find the proposed patch does exactly the opposite of what you want :P --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --xE+Nk4QrzZe2B9XF Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/pkl4ACgkQQarn3Mo9 g1EqshAArsx5l2nY1P4PTKMIAyNa4Z6xRNo6QI/w+RO2N7YOuNQIlCouWjOe7ozh t1FmjrASVU381BNKiWpsLJqrCTZlhxK1K3qRy106XPmjo6Q7nDdZrrN550TCmnv/ U8oow9qU7WWo8mbSqeo5GO+b6t0WsYe1vJGXnm6VH70k9cvrG/0BWmBlKeHp171D H2/FNIJKI3byNwOIlbJ/9yLSCzn6vWL6YiZT2ic+xeKyUiL41QXzL0r2SsG2rcOz Pnhre7vLkgSO3+cJV/TGiplqKk1qSmGZ5uUWfB9NQolRlg6aFFciHRTTPmr8Qz/h Vi1CY0AXVkqP+LbRusPyiz0l7HdTRRwtzuTPetvQrHRScRfhmXr/SoFlNtHlh5KM 4+ROvryTQX3LydcWI495vCTWeC3t9jpaqHVK9iRbmEL3FtGxcyQUPzfqdwTJ1Uet E7OlNSmo2OC8A270RoMN84m14SBP4BuAhxHIsWFUgWmCqDrteP/wLlsxVMnB6YCH tVF0sQG+OMxXAJF/OdwaY74ILKhdBM8HzzYUKnzFAR96m6E8iVpKLfSng4GbXR96 a8iWQB8Rux8HZhH60c640k1zpmCbLNS/ptymFQtvUILXWHziLJpxCsS0kU3lv6QE XRWFhgrvq4mTAfhLiat9VcpEJ/VUYL3g5GlxhkgalxzJZT2+TH8= =ysIY -----END PGP SIGNATURE----- --xE+Nk4QrzZe2B9XF-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 07:39:38 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 12:39:38 +0000 Received: from localhost ([127.0.0.1]:34498 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktroH-0003fc-VP for submit@debbugs.gnu.org; Mon, 28 Dec 2020 07:39:38 -0500 Received: from mail.zaclys.net ([178.33.93.72]:45373) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktroF-0003fN-3P for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 07:39:36 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSCdRtS008463 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 13:39:27 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSCdRtS008463 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609159168; bh=Th9oYB6+71U+Pdv1akRvKqFGegyGoDuivyfw4584QaE=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=ShWL19rvyqiYbMAeVsVM4LsnTMkNQuTyWcjwy4qHDHf8/1Ibd3iPUHmbdQRS8JUTj tnSfTv/zHMByX0ltkdRG22aDo6iem6Jty4vKCamrqR0z5EwAfYUH1rMtUXiBy4uUgb di4U4aYKp6FHpypkuoIcTh/cysplpZiURPkHBVXs= Message-ID: <8d0eba14899e1c4ee1a00f883e3a612f215dcb95.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 13:39:23 +0100 In-Reply-To: <87zh1y1ruu.fsf@gmail.com> References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-qjxb05Ymdfkketo0qUWV" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-qjxb05Ymdfkketo0qUWV Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2020-12-27 at 20:23 -0800, Chris Marusich wrote: > If it's just for the sake of trying one last time, we could just add > --cores=3D1 to the Guix invocations, or run everything in a single-core > VM. Wouldn't that have the same effect? My system has an offload set up and somehow --cores=3D1 does not work, so I needed this patch to make sure, also to optimize run-time I tried to disable parallel build only for gcc. I also tried to build only the gcc-static binary with: $ ./pre-inst-env guix build --cores=3D1 --target=3Dpowerpc64le-linux-gnu -e '(@@ (gnu packages make-bootstrap) %gcc-static)' --=-qjxb05Ymdfkketo0qUWV Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/p0fsACgkQRaix6GvN EKalzQ//bKS+IeBjqKNu1OCKsvBFD9aMlaQ+W4hl1Hkk0mkVHgCXoRdw7o+nTOJm SW8Ex247ZkBAf/mqD2KN1nQH9IiMso/U7NrS9FbKiJ+mysmgrvcOQOTPwwBkTaqW qGJEpMUDtbAhV4fvnsV6evkDRdZ01f70o9PNu+pryrzepJNkjgsBUI8C0qq8rKQV 3oMqLS8MVZeswsej7lne9rOAmP+WNmcBTG25a/CLeY1AcKFxf1vDCfzLqWaysT0l xusaKUaVLyfgMpnk+alL7jPF16qy4wMU3Yr6q7b/axS1WVH9TBWra2RL2wgACXNJ xXBAv/HQGf3nwhIzRDwLzcg1sxbTpZDbMTaOmk2aEvbomq93EovFFV+G08hI1/tG KrgVYvNowLrfUKfWB96oNTqQEZh/2DbKGQ5ZVHrLVpq0chQuJGXd4RWN9R2m0ZZB TAUfsbjfpXnuZpJWMPqRfumneiszYMzSD0Tjv3eRh7d4OnqT3bwTBYKks96uX2GL XORrOUyGxUnBc6iTG8kTIIzYMwSBYPul8RSSjJn/lCBoBO+LiXp5xXp85AS6Smji auKnedJdt64fv9xgoIgM58lruBv5I7VkYNZDFe5kqoa5hvJtuu7vxCowp9Qc8h9L TnSObPwQXT8hdLDTteM0LTkI9smOIcSdQEcva6MEdSM5WLnCBSk= =uRmW -----END PGP SIGNATURE----- --=-qjxb05Ymdfkketo0qUWV-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 07:55:49 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 12:55:49 +0000 Received: from localhost ([127.0.0.1]:34570 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kts3w-00048K-QB for submit@debbugs.gnu.org; Mon, 28 Dec 2020 07:55:48 -0500 Received: from mail.zaclys.net ([178.33.93.72]:39073) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kts3u-000487-7Z for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 07:55:47 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSCtdOI010287 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 13:55:39 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSCtdOI010287 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609160140; bh=KvYKsPdurpbw/kMBFRqn95QproyYrsuagAUiPhemLO8=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=rjX/rtkctWMDyFRjib77Hu58Sc6OnKDGgRwt+o+2b1f68M0d1933nt7g2FP8HLtgp UtvkhodVHzNKF1C5f/bPlKXsZBr3E9N+E+7DkujZolRI6d3tG/jKJJ7W2cUB869h1H rVJzAUj9RsxyZv82p3JhlbHS9YvqsZGT+KO6fhNk= Message-ID: Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 13:55:28 +0100 In-Reply-To: <87zh1y1ruu.fsf@gmail.com> References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-3NYO/DbGJe7zZnMkJ4L7" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-3NYO/DbGJe7zZnMkJ4L7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, 2020-12-27 at 20:23 -0800, Chris Marusich wrote: > I think you'll probably agree, so I've proactively started another > build > on two fresh single-core VMs (using the same procedure I described > earlier, starting from the 1.2.0 installation ISO image). It'll take > a > few days to finish, I'm sure. Please let me know if you think we > need > the patch to run this final experiment. Otherwise, I'll just report > the > results of this latest experiment in a few days' time. >=20 I did the same, I ran on both my laptop and another VM in the server: $ ./pre-inst-env guix build --no-offload --cores=3D1 -- target=3Dpowerpc64le-linux-gnu -e '(@@ (gnu packages make-bootstrap) %gcc-static)' With latest master. Let's see! --=-3NYO/DbGJe7zZnMkJ4L7 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/p1cAACgkQRaix6GvN EKbtqxAAuTfGQkqTGltCXOwiZVXY2V9S+eCqWZ3HtOV6GZEcE16k1+U1ff1Ksx5L 5aa0bCDFC2McB49n7TTlHh/1PXdF6gHlVMeSPrcMHu0+v1qGGUJRx2ppqDPZ0OT2 8iVM2Wl4eAjK3rKTlEObe5lMnrJXd+NtYSmQYKT1Wa+qQSI/zACLBU3YG3J7Ahbv oqnx+smjWdWdoh9kiG4cCjiFXdQb5ka34WvPRt78emO9LELnyWEaVBBwCwr371B8 d+lpcmnkeIJkx91nrrs+OT+OO3St6pZOoKqUUyCbbhM4XbGp8RC49TjnpmRTS/u2 63AWAv9VkO6FooNvC40EN9/iQ2r3haSMS+XV41g4LQyclPt02NOmlPLbtiguZPX1 g3JcU2398QrQ/AGXlGowocB1RiPxhKy3gjWLMTXJcOK0IYG3kpgh2f6M91CRS8bS ARdCDf+ClKfwzgtbpTQt+HzvhOX0112DzBZYh2w7U71irDUvBxKdBize7jcZuLGm jC0P088MOyV7pL/JYPnANxlUPjUQBsUHnlDFjNgYBaa+nNDhC7C4CGIOCYk+DjUN Fti4k1pbzlyRGceo5eUoJOuT6ZHx+NxDwrx8pH31Lct7vflSbrROAeGMv2ZCeMyN iv/ukvrTnXM+u1ZGGt1uB5x47bupPpQurQ1o+M7Pwv/Ba3p2IfI= =7Rpz -----END PGP SIGNATURE----- --=-3NYO/DbGJe7zZnMkJ4L7-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 10:31:36 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 15:31:36 +0000 Received: from localhost ([127.0.0.1]:36507 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktuUi-0002F1-4W for submit@debbugs.gnu.org; Mon, 28 Dec 2020 10:31:36 -0500 Received: from mail.zaclys.net ([178.33.93.72]:58747) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktuUf-0002Ej-FC for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 10:31:34 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSFVPHt036657 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 16:31:25 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSFVPHt036657 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609169486; bh=W5HRg8n5SktseNHJ+FOVuAkVPzzyI0FYd/NE/NPTCnM=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=E08ai1LDcP5ixfbZfiph2vrut/nCe/PeuQB9FOFFwLeFmo9KK8fOoHpgXCl6x6Gcc Sq4ZBfr2Hi2CV0GulrYUOYjAqjgHa829AmZ8JtWu86XrfU/FIJRU/H+TslnlHpM/iQ YETez/m7iYTlVLOo8M5q5IvEvxb+lavJa8x0L15k= Message-ID: <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 16:31:08 +0100 In-Reply-To: References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-OLCJTp1+cxqGIx/KagRR" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-OLCJTp1+cxqGIx/KagRR Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2020-12-28 at 13:55 +0100, Leo Le Bouter wrote: > I did the same, I ran on both my laptop and another VM in the server: >=20 > $ ./pre-inst-env guix build --no-offload --cores=3D1 -- > target=3Dpowerpc64le-linux-gnu -e '(@@ (gnu packages make-bootstrap) > %gcc-static)' >=20 > With latest master. >=20 > Let's see! I modified my virtual machine to only have a single core because it seems --cores=3D1 does not work properly with cross-compilation. --=-OLCJTp1+cxqGIx/KagRR Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/p+jwACgkQRaix6GvN EKbzExAAo8iQoMp7CoRdrUbBOeSJaR4hyWk2BOx8HghMkwmSMShRSucaPZJDX5ig uuQPGcY61h5MtndC1PhW1U8WRhDfMY1imVhK96E2S9fjxJXCpUclG+sPMAvrS5WG SZ0aqsmi0kekzsviKX+oE+mI25zAXnnQb+w1Sg9fd8V9KXE0eZsfDWmYycyTAuzI 3J7eiiFutgzv2Hcu/1TKaG7OOtJ8SW+kS6EO5SHvI/RsO99nfn+4pxOdLIw35App xrsXZR+CnGOPsSG2DlFxvUyAu2Ny9QLquwZVNJRp6487nFn0iVPcVBk1AwGSsgv+ 7kx1038Nyeo8UYbLsIlTabLxD4RSXeKJcu02ddLdI6F28+5UfW1cVczfciYMWnMu sXXCYGP+LYp8KvUOo0ovgaYvKr1orY6ZKJhG8Mh/ttWYJ0uVQOJ1hMqdv1mPKA2M AuOFxsWrBXsXzCIE9vsf9uWAdaSGKZe+D1msMnkgv7DlOAQ4Zi65XxelZFX+zewB BC2LJFSvmx3iOe2ZH5UdiRwqzrjXkE3SkVGSmsXgl3bt4E53SfeAP3GlMjSHMGxT IXyw3UqvadfTT2ID4wz1kKgWXKZRY12SVbmg67z7jX2k093GJ3bu/UjobkIFoN+7 yncWk6YRDj+ufNWg840ft6IONBUul7ApUgcUnoqvAYg4sD4bQ/I= =h28J -----END PGP SIGNATURE----- --=-OLCJTp1+cxqGIx/KagRR-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 12:41:17 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 17:41:17 +0000 Received: from localhost ([127.0.0.1]:36768 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktwWD-0007mW-Aw for submit@debbugs.gnu.org; Mon, 28 Dec 2020 12:41:17 -0500 Received: from mail.zaclys.net ([178.33.93.72]:44187) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktwWA-0007mF-KH for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 12:41:15 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSHf6JL054382 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 18:41:06 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSHf6JL054382 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609177267; bh=5kVNpjNrefycIYDIB18wEzbdgRR3DfyPmjySphCGpqw=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=CRJe/8d2FjBzKW2UDY3cjkqGqzzbAvvS5g/ytdbhyhxDSxVSIHQvfjv2QfVZ4FHY3 YpgAsyM4NFCgkrN3210BTol8VUV5b9Bdmf29cTV18JYBncNzL0Cct1IY8ZLRHw1c8/ LLdPNw6tzJ7ievOfqzmKUoIeOC6kILLbQ/SuTFCM= Message-ID: <2f35e98480d308bc86c3eebdb9ae551d757110e6.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 18:40:55 +0100 In-Reply-To: <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-jCz+HvSWwsMwfVrzqWcw" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-jCz+HvSWwsMwfVrzqWcw Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2020-12-28 at 16:31 +0100, Leo Le Bouter wrote: > I modified my virtual machine to only have a single core because it > seems --cores=3D1 does not work properly with cross-compilation. Great news! I think using only 1 core fixes it. But since --cores=3D1 is broken for cross-compilation it seems, I had to use a single-core VM. Can you do the same? (Create a single-core x86_64 however you want VM, run a command and report hashes) $ guix gc && sha256sum "$(guix build -M 1 -c 1 --target=3Dpowerpc64le-linux= -gnu -e '(@@ (gnu packages make-bootstrap) %gcc-bootstrap-tarball)')/gcc-st= ripped-5.5.0-powerpc64le-linux-gnu.tar.xz" Also try with powerpc64-linux-gnu: $ guix gc && sha256sum "$(guix build -M 1 -c 1 --target=3Dpowerpc64-linux-g= nu -e '(@@ (gnu packages make-bootstrap) %gcc-bootstrap-tarball)')/gcc-stri= pped-5.5.0-powerpc64-linux-gnu.tar.xz" Thanks a lot! --=-jCz+HvSWwsMwfVrzqWcw Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/qGKcACgkQRaix6GvN EKY+Gg//T5ty8D+No88zQyz3Ah7YAjR1mYO1XoeTmwrYxF1HJtWzyOHaht2bhF1B dNYYaZfA/UsbyGIu4TraMpQCVVkAa1OTmMXuVluZ5ZX/A/Hi6caeRb1+iFJ4hKxY bhUzSjaV9JEKeZ6x1zfghM5/cA32spBG9vWYhtYq8Z+3va/nnPmGt5/TyqNXmJLn rL4o9xxzmV91Y9zpZpclrALc9cEekSWpgdmDzmfqr/kM80L6vZrhkGfHprGmn5wi Brl+vLHYbiFDi2JlTmw5p6UAR6BTiVmcZ6OXFANMlj9f3rzKpe8piYF2O+nut7jN Bmfu3t0jzUh1/Du6714jqBxFbtMJLcPej0pV4u7MuwqgQfJFinCru3TpF09x807Y nnDaCyH908LU7NTPjgMao/eZWLjvgjM1X0mawj7xUem5rmvBCcKCrQ2vMrErnuwU nEcMieoQV1btiaKj9nhlyV+2yp3xZKl0ZhNoS6F2XfVmjbb4zOnZrLBU7CO92kas wSs7GKF7vBMm05gCO3zaxm22I+ssly9wBjTUhCQNcIlO5iDpjcB/jn8C0p3IKdRJ gmS2aI0KNzK7KheU2ZT+NHFXFJ9k0xn9m8JK+DE3j6d4Xmyc//OOqa+Rq+tZQ6K2 zY+vEFpi1UKnQu8bz9mscxTNmk1YOTpiz3+zIRz97xj9muB2LoQ= =H/2a -----END PGP SIGNATURE----- --=-jCz+HvSWwsMwfVrzqWcw-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 14:01:17 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 19:01:17 +0000 Received: from localhost ([127.0.0.1]:36912 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktxld-0001RI-J8 for submit@debbugs.gnu.org; Mon, 28 Dec 2020 14:01:17 -0500 Received: from mail.zaclys.net ([178.33.93.72]:43815) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktxla-0001R2-08 for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 14:01:16 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSJ166o005048 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 20:01:06 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSJ166o005048 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609182067; bh=njM99cfF4nR2s6BbDodw+SEjAXsHPSYX0DJRa8OIsRM=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=aG/LSEzgcXKgZ/MCzw3T8K7tP2//JkX+Ry9gUKmUg1Xu1qmgtJc9R3h16cLY29FcE FNMhvPBXFlIR56DQlTFoivj8teRmHzYevrGh7dBghJuZCrkQqnFfUvhpCcNLJhg7aI tfecOOG4LXbx/5yDu/tB8yhtN6ZE5rOlbeqQ+37Y= Message-ID: Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 20:01:01 +0100 In-Reply-To: <2f35e98480d308bc86c3eebdb9ae551d757110e6.camel@zaclys.net> References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> <2f35e98480d308bc86c3eebdb9ae551d757110e6.camel@zaclys.net> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-hliSxWOjg56lVVUPuaOa" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-hliSxWOjg56lVVUPuaOa Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable By the way here's my powerpc64le-linux-gnu hash: $ sha256sum /gnu/store/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped-tarbal= l-5.5.0/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz 153f356a8f58102e7e57a006e836ec7450e69dee120ba83d9f7dacf07162537b /gnu/stor= e/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped-tarball-5.5.0/gcc-stripped-= 5.5.0-powerpc64le-linux-gnu.tar.xz --=-hliSxWOjg56lVVUPuaOa Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/qK20ACgkQRaix6GvN EKYxuA/8CL6YKKxKdlf+ZPdYPoaqsq6mK2SuhvXRvIrrag4rUJ3wLfKE0iHVgaWl k0wQqHqZyZ3A22GYOUBUE/9QXV1X6KuXifFghYmJmwTsocfg+I+ielHMMWqsZBKY 3C73slGdOw0VQ4Ybwl1u2NShGiT/BtkYOK8jHs19Zv/liysfENfYmz3fqWyxUkHJ 1a1JI7dO4aTinNRhX9MNpkjEq0ElGwdgltl4U4Pv2tZqrKi8xtQKVkYbN7saLXmE NraGKvxw/bIZP24xxCcWNMO4gv9mLefQr2gbIJZFZPf4DPfu88rczAmziZhUaYV/ NewF2bKsvK8eURhvzNbqf4As+kaKmcxJ28FBo3N3bL65keW6RZ+SpUJVRDfPD8pR aLj1ttDP2989xPihvRBmGoWaXggNC0vTykXFQX0NdAGx4MPb7ZyQFRQLffGoce2i l33W26PBmiOjyOkHrAb+y5J/34PsFo9rhSXvyq71rMuqKRQubEWRJ7uWbMaI3iLq sO4gSzVl4bkxwfmzIt/ajSfvle8wUL/TsKxOjLzB6FDZLwBJjhjaI1eetui9Ddyo hhV7AgNRdGU8iDCmuuivXULdLO7nIZWGFXzaXrJHlL9L0a1f0ey9nOTP4tSHf2+d VizXzlzpa1d1Pj+gNfhbw+pzocv7HPiGrL23km2JOrKkihycqJ8= =Tr2k -----END PGP SIGNATURE----- --=-hliSxWOjg56lVVUPuaOa-- From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 28 15:59:48 2020 Received: (at 41669) by debbugs.gnu.org; 28 Dec 2020 20:59:48 +0000 Received: from localhost ([127.0.0.1]:36994 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktzcG-0006QE-Ep for submit@debbugs.gnu.org; Mon, 28 Dec 2020 15:59:48 -0500 Received: from mail.zaclys.net ([178.33.93.72]:32935) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ktzcA-0006Pw-NL for 41669@debbugs.gnu.org; Mon, 28 Dec 2020 15:59:43 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BSKxU4r017839 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Mon, 28 Dec 2020 21:59:31 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BSKxU4r017839 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609189171; bh=CdQIVIFFgnVXG8VP7gLlzE6FXoVZxMRNEKUtotMcguc=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=FO6Y7j1w0WXF1948dlSoFRjsOhkqWtxkneD4XgLAL4vpzBnnlrPuXqQngoti3y4Cf 7rBLnZLxWX+OClWbh6fRIHYUu5vss97BCSRpx423ZoPU1FiHoJpYBhmrL00bS7Qskz Vvdge6t+dDZfcFYbbhl0Xxk6t4NQApfLyg8MY7R8= Message-ID: <0d60350583ac756768e41b3957384e6837b25813.camel@zaclys.net> Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich Date: Mon, 28 Dec 2020 21:59:26 +0100 In-Reply-To: References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> <2f35e98480d308bc86c3eebdb9ae551d757110e6.camel@zaclys.net> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-WdZNYq9UoCFP8IYJXzuU" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?ISO-8859-1?Q?Court=E8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-WdZNYq9UoCFP8IYJXzuU Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2020-12-28 at 20:01 +0100, Leo Le Bouter wrote: > By the way here's my powerpc64le-linux-gnu hash: >=20 > $ sha256sum /gnu/store/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped- > tarball-5.5.0/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz > 153f356a8f58102e7e57a006e836ec7450e69dee120ba83d9f7dacf07162537b /gn > u/store/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped-tarball- > 5.5.0/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz Nevermind, tried in a brand new single-core VM on my laptop and it did not reproduce... --=-WdZNYq9UoCFP8IYJXzuU Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/qRy4ACgkQRaix6GvN EKarRA//eoOC9KIdLtdReDoZtou7voruXB9d0wbZsPIBz+W0ICs4stjHawUNdvnu G8XN2O94KU8p9giu5HJ5j53xX8G4Mu8Lpr9fsAXBWupdn69kIJpO9+j2yzN68j5X Wh8xrlpxe35OHIawYzDNzr/2twABVRk7/kZXrwvaWtPE7u5f6aU++/mAeqZPLrxC DPxnboBia1oIYbnauqkVpIwemMXVfTyEybExW/rxxYyMayeQri9BSAFwYRKFWWNa bbSYK0QCG6HNGEONzangbyRT2LfUVLUgsYL+Z1oS/UTOJpXJQicmiSfbmNvybw90 f2AiXV0qYngGPEMRJ1vcSUp8R0qiV4YNIGuiZf66UD4uEeqmRRIYkSytO6/P66TC D28mSjnIkkVzWmKv2P3p5+H+F/Fl71MCcO9X7QZBkWnhBmrbGATat9gMxR591cBi MMeRYl0bvFt3H+KNgUV1A7aTIK2BOe9lZDMkDxxx870SYLAEdzaZN3m0MuRi0aOc SVaASWBda/xUIQL85kAiQpGH1nQ7iooGX92gT4D1lB5at3rbKLJ9RjmCR0fgyWCS Bs0XMonLKoZpALO36/Jj/9JAGqvyFJ4quFH4fpozTCw3CJj4AN0NEl8L7BZFZw8b 6XNo434U/9Mgip+1a6/FtJdg9Riox25qSM2htnGUvTYDQlI8NrA= =OVRM -----END PGP SIGNATURE----- --=-WdZNYq9UoCFP8IYJXzuU-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 29 02:09:44 2020 Received: (at 41669) by debbugs.gnu.org; 29 Dec 2020 07:09:44 +0000 Received: from localhost ([127.0.0.1]:37460 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ku98a-00007v-D3 for submit@debbugs.gnu.org; Tue, 29 Dec 2020 02:09:44 -0500 Received: from flashner.co.il ([178.62.234.194]:57852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ku98X-00007g-BF for 41669@debbugs.gnu.org; Tue, 29 Dec 2020 02:09:43 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 944BE40297; Tue, 29 Dec 2020 07:09:34 +0000 (UTC) Date: Tue, 29 Dec 2020 09:08:56 +0200 From: Efraim Flashner To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> <200570903d8a95f7d9772a53b2573b318d623fd4.camel@zaclys.net> <2f35e98480d308bc86c3eebdb9ae551d757110e6.camel@zaclys.net> <0d60350583ac756768e41b3957384e6837b25813.camel@zaclys.net> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="mzrPkU09CkCRvdy+" Content-Disposition: inline In-Reply-To: <0d60350583ac756768e41b3957384e6837b25813.camel@zaclys.net> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --mzrPkU09CkCRvdy+ Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Dec 28, 2020 at 09:59:26PM +0100, Leo Le Bouter wrote: > On Mon, 2020-12-28 at 20:01 +0100, Leo Le Bouter wrote: > > By the way here's my powerpc64le-linux-gnu hash: > >=20 > > $ sha256sum /gnu/store/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped- > > tarball-5.5.0/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz > > 153f356a8f58102e7e57a006e836ec7450e69dee120ba83d9f7dacf07162537b /gn > > u/store/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped-tarball- > > 5.5.0/gcc-stripped-5.5.0-powerpc64le-linux-gnu.tar.xz >=20 > Nevermind, tried in a brand new single-core VM on my laptop and it did > not reproduce... ab2fd297f65df5ab6fb5662dc3988f8421f2194026ac3df97eba3b53832796b9 /gnu/stor= e/cc4sj9kiw1vzhhhxawnqvjjdi4ygbxp5-gcc-stripped-tarball-5.5.0/gcc-stripped-= 5.5.0-powerpc64le-linux-gnu.tar.xz 9bf3685309b68cc0a39b2dc783ada393e6ef889398dd21fd07c7893159c13cc0 /gnu/stor= e/kjxwb8lwbgnp2np7ji8dvjmh290p1jnm-gcc-stripped-tarball-5.5.0/gcc-stripped-= 5.5.0-powerpc64-linux-gnu.tar.xz --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --mzrPkU09CkCRvdy+ Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/q1ggACgkQQarn3Mo9 g1GzVg//b0bukg6EgZb0xoZA2Q88hDFuxNm4fp1z4xxarcs0RdYEF1sd0gWQIA7n y1ORxgSPiheY8X25QjLeN4z5f+1lS9sxDSYqaKzfSc12fv2V2Wo6i3yrxV/Zgn12 dmrjRH7EvS9BRaztj0gYGTV4rGfLv6FfmlfumLSw3qyBxVJIc57PpgcCIJO85EZn T9aOt+JbAQwo1cQVwHjhhp0b5a5ZO/vCjZl7piuv2pKp5zhJP0EGVVKMbbcj0wwg ogKy+86/ixYmgjmq4gTr1/ajYrxc/VquYQANGQj0d2cSY6Kq7/1bMF47dGg5YpMc orHTcL/lfmMdZbCLUxhALxFGILV7DPZkvpvITDiu+BEX1SdW/OrN1rvT8tVlySx2 jraesMFaonU02jEmdXg0Z/5vzzmThgSY7Lp2Uj4UL8QFnv108J/F5QRuTxoAfN4T uljKyF747PDr8JdRawKdoCQqLqS8kgNdckHerr4Y2fK2J4pkhc/Pivld1X17HPGb LSXG5mEeIek5RZN+oxWXsZc0aTmKRnmTmKJKYR78Zym4UWCS90nLhRabiuZ3Rlcn ind1SOV511fhr8kIc4mf+Tl0s8kou8kCn14IDpfiC6FMrDGbn5z0mMH9SYFuV+5G ITfTa+JIPfqwPbmelHQAPhMVDLzw6vA68m+Gs0NvWeKvTOc6wLc= =VFBT -----END PGP SIGNATURE----- --mzrPkU09CkCRvdy+-- From debbugs-submit-bounces@debbugs.gnu.org Tue Dec 29 20:29:04 2020 Received: (at 41669) by debbugs.gnu.org; 30 Dec 2020 01:29:05 +0000 Received: from localhost ([127.0.0.1]:40541 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuQIS-00036x-JI for submit@debbugs.gnu.org; Tue, 29 Dec 2020 20:29:04 -0500 Received: from mail.zaclys.net ([178.33.93.72]:37353) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kuQIO-00036Q-QP for 41669@debbugs.gnu.org; Tue, 29 Dec 2020 20:29:03 -0500 Received: from [192.168.0.27] (82-64-145-38.subs.proxad.net [82.64.145.38]) (authenticated bits=0) by mail.zaclys.net (8.14.7/8.14.7) with ESMTP id 0BU1Sr24051996 (version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 30 Dec 2020 02:28:53 +0100 DMARC-Filter: OpenDMARC Filter v1.3.2 mail.zaclys.net 0BU1Sr24051996 Authentication-Results: mail.zaclys.net; dmarc=fail (p=reject dis=none) header.from=zaclys.net Authentication-Results: mail.zaclys.net; spf=fail smtp.mailfrom=lle-bout@zaclys.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zaclys.net; s=default; t=1609291734; bh=iyb5GDTz/PNlTE9PTrpq8J3sbw4A4VGAn3Kh3vU08nA=; h=Subject:From:To:Date:In-Reply-To:References:From; b=H/ygZhi1UkpjrF5k1feOxsycDUVOefEqm7qDMwdRQ/EyIoDqazaxMOR8JvUzTEXSg Rx/xASyZfk44BXSM7mkemB0s0eisWR/m8CDXYG+wfRujp1OYdPFRbvu7nFInxYJFaM o1hjUXUKiDoC5h76IE2zhBmyC+io9t2gLNz4qECE= Message-ID: Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible From: Leo Le Bouter To: Chris Marusich , Efraim Flashner , Ludovic =?ISO-8859-1?Q?Court=E8s?= , 41669@debbugs.gnu.org, Maxim Cournoyer , Vincent Legoll Date: Wed, 30 Dec 2020 02:28:41 +0100 In-Reply-To: <87blepaqd8.fsf_-_@gmail.com> References: <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-WsGeUuV9f0WmHQCAtxcC" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-WsGeUuV9f0WmHQCAtxcC Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello Ludo! On Sat, 2020-12-19 at 23:28 -0800, Chris Marusich wrote: > Now that we have decided to use these powerpc64 bootstrap tarballs, > what > are the next steps for uploading them to the GNU FTP server? I've > never > done that before, and I don't think I have access. For now I've put > a > signed copy of the powerpc64-linux (big endian) bootstrap tarballs, > with > a SHA-512 hash, here: >=20 > https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-= guix-1ced8379c7.tar.xz > https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-= guix-1ced8379c7.tar.xz.asc > https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from-= guix-1ced8379c7.tar.xz.sha512sum >=20 > For the record, these bootstrap tarballs were built via the following > steps: >=20 > - Use > =20 > https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.x= z > to install Guix System 1.2.0 on an x86_64-linux machine. > - Run: guix pull --no-substitutes -- > commit=3D1ced8379c7641788fa607b19b7a66d18f045362b > - Run: guix build --no-substitutes --target=3Dpowerpc64-linux-gnu > bootstrap-tarballs > - I didn't run "guix system reconfigure" after installing Guix > System; > theoretically it shouldn't matter, but for the purpose of our > experiment, I just left the system in its default configuration in > order to ensure that the kernel etc. would be the same on both VMs. >=20 > Once we get these binaries into the GNU FTP server,=20 Can you do it? Upload the binaries on GNU FTP server? Little endian binaries will come along shortly as well. We decided (Chris and me) that obsessing on this problem any longer is not going to help us complete this port, the amount of struggle is getting very demotivating. We got reasonable proof that this non-reproducibility GCC problem exists and is non-trivial to solve, that's what I wanted with the last attempts, I had hope it could still be trivial but turns out not. > I'll get started on > updating gnu/packages/bootstrap.scm and other files necessary to > begin > bootstrapping powerpc64-linux. I'll mainly be adapting the work that > Leo already did, and following the lead of others like Efraim and his > work on the wip-ppc branch. I will probably have questions as I go, > so > I'll ask on guix-devel. >=20 > Please let me know if you'd like this done on a special branch. >=20 Thank you --=-WsGeUuV9f0WmHQCAtxcC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAl/r18kACgkQRaix6GvN EKZPuA//bL1yVmDUVfkg0wVu0ZCUPmTI6tsboXf1E0I16Y0ya7eEfTimuYcus5F5 tJkk1TAMRZ6D/T++t1DixusdKtnHu6BuU1sxpV0XEDUWjDCXNRijWtYFSO+GoAe5 v6bVwm7jAdmPoJNoeocXWW033w77hRLgOap/3PzSbtA0cStLmZRsj9EkDx1FCMk2 vaJgZ/zQl+4/A8pj6/VaIdkm1gXgAqtmjfj4piCfhrTVy7IDkInLyougHUdRn7eU 1EcxgH9aGg6Dicr/oCQaITGArF2pl0ZQ95bRapS7YSdd0ndKu1cmPxWeZuFAus++ 833nkWJsGU4m1aEPXQjt/pqVzHwGOCjxDsAp2od77J0VE24bCX4cP3+tr7kHHpR6 rAhyZz/z0hZOwC6CqIzQ3MZxudz3hnOw8+vuoFw3I6D6++ekryUsucseUlOVNFPC TauGHBbp1P2pTLjIMP6N2BBHKOZp+/vUMMm+vzucMhRanPWrLMaRRMuFeTXhlvqW Sx4CRksl+KHxJ1akGeNMyM0BMVUhWYWQzKaWOpxruc3pvKi2pB1Y7BsBpCA9oISE HZ3+pcS7q8UrqVdEntJ8IsjupuT3Nhbn76AhHQ07R4KPWHJyMnaTrsOCAQCZZXhd bWVHm7c1JAjZKS0HnHVHFrvAJfFSTV6OF0t2i4BUhf6czak/xmw= =wxiE -----END PGP SIGNATURE----- --=-WsGeUuV9f0WmHQCAtxcC-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 04:37:57 2021 Received: (at 41669) by debbugs.gnu.org; 4 Jan 2021 09:37:57 +0000 Received: from localhost ([127.0.0.1]:53927 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwMJ5-0001r6-7m for submit@debbugs.gnu.org; Mon, 04 Jan 2021 04:37:57 -0500 Received: from eggs.gnu.org ([209.51.188.92]:47260) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwMIs-0001q1-Ao for 41669@debbugs.gnu.org; Mon, 04 Jan 2021 04:37:42 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:59519) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kwMIl-0002wk-OJ; Mon, 04 Jan 2021 04:37:23 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=35494 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kwMIl-00012k-Br; Mon, 04 Jan 2021 04:37:23 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 15 =?utf-8?Q?Niv=C3=B4se?= an 229 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Mon, 04 Jan 2021 10:37:20 +0100 In-Reply-To: (Leo Le Bouter's message of "Wed, 30 Dec 2020 02:28:41 +0100") Message-ID: <87sg7hxctr.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Chris Marusich , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Leo Le Bouter skribis: > On Sat, 2020-12-19 at 23:28 -0800, Chris Marusich wrote: >> Now that we have decided to use these powerpc64 bootstrap tarballs, >> what >> are the next steps for uploading them to the GNU FTP server? I've >> never >> done that before, and I don't think I have access. For now I've put >> a >> signed copy of the powerpc64-linux (big endian) bootstrap tarballs, >> with >> a SHA-512 hash, here: >>=20 >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from= -guix-1ced8379c7.tar.xz >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from= -guix-1ced8379c7.tar.xz.asc >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-from= -guix-1ced8379c7.tar.xz.sha512sum [...] > Can you do it? Upload the binaries on GNU FTP server? Little endian > binaries will come along shortly as well. Sure. IIUC, the tarballs at the URL above are for PPC64 (system type: =E2=80=98powerpc64-linux=E2=80=99); is this also going to work on PPC64LE h= ardware? (As you know, we use i386 binaries for both i686-linux and x86_64-linux. Likewise, if we can have a single set of binaries instead of having PPC32, PPC64, and PPC64LE, that=E2=80=99s better.) Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 06:17:37 2021 Received: (at 41669) by debbugs.gnu.org; 4 Jan 2021 11:17:37 +0000 Received: from localhost ([127.0.0.1]:56094 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwNrl-0005Yj-8o for submit@debbugs.gnu.org; Mon, 04 Jan 2021 06:17:37 -0500 Received: from flashner.co.il ([178.62.234.194]:54132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwNrj-0005YT-8V for 41669@debbugs.gnu.org; Mon, 04 Jan 2021 06:17:35 -0500 Received: from localhost (unknown [5.102.238.249]) by flashner.co.il (Postfix) with ESMTPSA id 6F42D400CD; Mon, 4 Jan 2021 11:17:29 +0000 (UTC) Date: Mon, 4 Jan 2021 13:16:56 +0200 From: Efraim Flashner To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible Message-ID: References: <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="Gvwd1HVfe7N10KYL" Content-Disposition: inline In-Reply-To: <87sg7hxctr.fsf@gnu.org> X-PGP-Key-ID: 0x41AAE7DCCA3D8351 X-PGP-Key: https://flashner.co.il/~efraim/efraim_flashner.asc X-PGP-Fingerprint: A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Chris Marusich , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --Gvwd1HVfe7N10KYL Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jan 04, 2021 at 10:37:20AM +0100, Ludovic Court=C3=A8s wrote: > Hi, >=20 > Leo Le Bouter skribis: >=20 > > On Sat, 2020-12-19 at 23:28 -0800, Chris Marusich wrote: > >> Now that we have decided to use these powerpc64 bootstrap tarballs, > >> what > >> are the next steps for uploading them to the GNU FTP server? I've > >> never > >> done that before, and I don't think I have access. For now I've put > >> a > >> signed copy of the powerpc64-linux (big endian) bootstrap tarballs, > >> with > >> a SHA-512 hash, here: > >>=20 > >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fr= om-guix-1ced8379c7.tar.xz > >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fr= om-guix-1ced8379c7.tar.xz.asc > >> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fr= om-guix-1ced8379c7.tar.xz.sha512sum >=20 > [...] >=20 > > Can you do it? Upload the binaries on GNU FTP server? Little endian > > binaries will come along shortly as well. >=20 > Sure. IIUC, the tarballs at the URL above are for PPC64 (system type: > =E2=80=98powerpc64-linux=E2=80=99); is this also going to work on PPC64LE= hardware? >=20 > (As you know, we use i386 binaries for both i686-linux and x86_64-linux. > Likewise, if we can have a single set of binaries instead of having > PPC32, PPC64, and PPC64LE, that=E2=80=99s better.) Last I checked the PPC32 binaries aren't working. Even cbmuser from Debian thinks there may be a glibc bug with glibc-2.32 so I can't test that much ATM=C2=B9. Rather than effectively needing to wait to add ppc32 and ppc64 at the same time it'd be better to add them individually and then do any rebasing necessary to make them both work with ppc32 binaries later. =C2=B9 If my patch fixes it I'll add glibc hacker to my r=C3=A9sum=C3=A9. --=20 Efraim Flashner =D7=90=D7=A4=D7=A8=D7=99=D7=9D = =D7=A4=D7=9C=D7=A9=D7=A0=D7=A8 GPG key =3D A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted --Gvwd1HVfe7N10KYL Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEoov0DD5VE3JmLRT3Qarn3Mo9g1EFAl/y+SUACgkQQarn3Mo9 g1FXBQ//TgHlPqjGlybtWw/Io1yp6ybNVDgbbx23bYaa94COLK3pT1Etyig7uN9w +m3RrnGu5Y4DjM24VYDfIK8f4q/hA9nHAMKiS4aqZovcPmQpU9lU5hyBOfEZTlQc OGXe7kKavL0PVh15RP9i4XwMvOZijHoe34Aoru4hgDFqSNfCL9DLRN7qneCtf9rd 7iskNkc5TmHPuvySt4Olyp22ES7KEmNZS6NJs3BSZBNNtKau2vU7SZQKvQLze4+L pqIK7xcXLWQWT17SEnamAPRFXryjF8A10qon/epc8rlj/NqmfRw1nKywGC9B/w5t CYmnRNXweClc2JBP1dZqvXCrVQYvllEcbJOcXtYl+oeKfQRYmQ+6Ka1Ar9jk8hRS 4XTdNcQGazhVCDGS1hsy3mSEDwRnLBqqJEsmaygJm6bagsQ0fM/hWUDi+Xr4sTJP 8fkVbKSTyr8hXH3E+p1tPxOgpEK9FwXoBB9ZjhGapaPDRdAySGgok2EfmTLeCpG+ pmS+oTVSi7L6HGzo1U92JE0Cmzmn+wPNCnoklWp/UpSunu7OS/U6i9BFGz47ekyb rJWIiCj9yenWBw63ScpefgMdT1vpGf2AXffBC/TP8YbQWTV75zNn6ytXoo7QSJOV FFtW5pGSdsY1dvSvzEuafjYJNgQf7g/Y6tP5E0aZvLw+jANF1mU= =BPhx -----END PGP SIGNATURE----- --Gvwd1HVfe7N10KYL-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 22:15:47 2021 Received: (at 41669) by debbugs.gnu.org; 5 Jan 2021 03:15:47 +0000 Received: from localhost ([127.0.0.1]:60730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwcp1-0006Y5-5t for submit@debbugs.gnu.org; Mon, 04 Jan 2021 22:15:47 -0500 Received: from mail-pg1-f181.google.com ([209.85.215.181]:39098) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwcoz-0006Xo-P0 for 41669@debbugs.gnu.org; Mon, 04 Jan 2021 22:15:46 -0500 Received: by mail-pg1-f181.google.com with SMTP id 30so15689526pgr.6 for <41669@debbugs.gnu.org>; Mon, 04 Jan 2021 19:15:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=tEDmiIUN30LsU1kNYu2myAYqkHRnYHkiutnzIpfS/RI=; b=u9yI+q0tGD0ql8+j3o3v7Y2sz5bMxogSVmZfK8ExXqr0nziqYZZw4o+2Bi1ZW0Q/70 AtP88JTk0ETIfroLbi240XVmxoyiOnVxU2uY7fg+FwStqinGFLjXKdF4+vSNDNI2EMOl FcXCtNnCmnui9WsnJ3Lgwg8AU0SNvihiNdBeDCmm+md4VFZnk8Wljso3QCJMldKOcR1G NqWrEGFzAWBZFI3AWAn7okjemTUtEAhfvFQy5wyMOonIVVdQHPxabUztjmSo1U0TDZ3k ayar2JmExrq/pFkygftuVGseXesfm19aWwAXtMfLw0bQ6+UXE0tYTaToYiMisJKW1Vby RX4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=tEDmiIUN30LsU1kNYu2myAYqkHRnYHkiutnzIpfS/RI=; b=FKB06ODJD9dZI1WWQ1W8rY0ax8z0osSwIHV7Zd0JDaYqPLTgSrcpRL7sDEvWK0Ci2m RlW+qFRySfxOqhOR00Mqx+/g0gylsb0osdTqXH4Pp+yMmL3TI/GwAhnxAC66DW3WNc8a rNoVSKow3Al9JqyuaS+HjLOtihtJQTj6JqT5ffBtLsxhBPJUljHowh5z1DLbuQwFDkfY GM3qsPjEvRqP3gm7jB+mJOyUNMqHMmZUrnoC/dO0QdOGtFzKctlUbGybmJc7nXYa3n09 VQitwOIjv9M8+OI3nbz8bcKLX4T0+lcii0LMx3Q2gmrU7p701n2r+1oEY0Pn5zE2L5r4 U3nQ== X-Gm-Message-State: AOAM532qYT+s/OsAdJqdGdXHGu3NAIkh/ImhPwXNbX0TA+lPfJPEX/vK CN9iKqLgXZNbncJ5BVAdO5M= X-Google-Smtp-Source: ABdhPJwS0bPhlmwkSB+26TU7ny+V1xzqulIgEXRGOtG/Aprn5NJ4TQ2g2mr3XX/P/LWC0z6XUwHJTg== X-Received: by 2002:a05:6a00:1683:b029:19d:917a:616b with SMTP id k3-20020a056a001683b029019d917a616bmr67950026pfc.15.1609816538987; Mon, 04 Jan 2021 19:15:38 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id a1sm56334893pfo.56.2021.01.04.19.15.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jan 2021 19:15:37 -0800 (PST) From: Chris Marusich To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> Date: Mon, 04 Jan 2021 19:15:34 -0800 In-Reply-To: <87sg7hxctr.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 04 Jan 2021 10:37:20 +0100") Message-ID: <8735zg13c9.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, Ludovic Court=C3=A8s writes: >>> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fro= m-guix-1ced8379c7.tar.xz >>> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fro= m-guix-1ced8379c7.tar.xz.asc >>> https://media.marusich.info/guix-ppc64-bootstrap/bootstrap-tarballs-fro= m-guix-1ced8379c7.tar.xz.sha512sum > > [...] > > IIUC, the tarballs at the URL above are for PPC64 (system type: > =E2=80=98powerpc64-linux=E2=80=99); is this also going to work on PPC64LE= hardware? No, we need a separate tarball for LE. I have prepared that here: https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-bo= otstrap-tarballs-from-guix-662e7e28d576.tar.xz https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-bo= otstrap-tarballs-from-guix-662e7e28d576.tar.xz.sha512sum https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-bo= otstrap-tarballs-from-guix-662e7e28d576.tar.xz.asc This tarball, containing the little-endian bootstrap binaries, was generated using the same setup that I used earlier for big-endian. Specifically, to generate the little-endian bootstrap binaries, I took the following steps on two separate VMs: =2D Use https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz to install Guix System 1.2.0 on an x86_64-linux machine. =2D Run: guix pull --no-substitutes --commit=3D1ced8379c7641788fa607b19b7a6= 6d18f045362b =2D Run: guix pull --no-substitutes --commit=3D662e7e28d576ada91fc9dec7d27c= 100666114f03 =2D Run: guix build --no-substitutes --target=3Dpowerpc64le-linux-gnu boots= trap-tarballs =2D I didn't run "guix system reconfigure" after installing Guix System; theoretically it shouldn't matter, but for the purpose of our experiment, I just left the system in its default configuration in order to ensure that the kernel etc. would be the same on both VMs. Notice that there are two "guix pull" invocations. This is because I first pulled to 1ced8379c7641788fa607b19b7a66d18f045362b in order to build the big-endian bootstrap-tarballs as described earlier. After that, I pulled to 662e7e28d576ada91fc9dec7d27c100666114f03 in order to build the little-endian bootstrap-tarballs on the same machine. In theory it shouldn't matter how you arrive at commit 662e7e28d576ada91fc9dec7d27c100666114f03, but for the sake of completeness and reproducibility I've included both pull steps. By the way, just as with the big endian bootstrap binaries, all the little endian bootstrap binaries I built were identical on both VMs except for gcc-static. The output of gcc-static contained binaries that differed in ways similar to what has been described earlier in this thread. So, the non-reproducibility of gcc-static is not specific to one PPC architecture. I wonder if gcc-static can be cross-built reproducibly for any architecture at all. > (As you know, we use i386 binaries for both i686-linux and x86_64-linux. > Likewise, if we can have a single set of binaries instead of having > PPC32, PPC64, and PPC64LE, that=E2=80=99s better.) This is a fair question. I agree that if it were possible, it would be a great improvement. I didn't know the answer to this question, so I asked in #talos-workstation on Freenode. The users there said that although in theory this should be possible, it isn't currently feasible because the ability to do this is not currently implemented in Linux. For the moment, I think our focus should be on finding out which of these two architectures can be bootstrapped in Guix in the first place. The first step in doing that is to try using these bootstrap binaries. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/z2dYACgkQ3UCaFdgi Rp0STRAAg0bC3F6xlp/OxckoesF0XY6Htdmgz/lGAEKjiDBFi4VnDx6qF1Hl4udQ qeu3TlSiHijYuVJUhPndQhTbwxGnxUMLfCRhZDFRng2e/3Xt07bOga1NvkdG2Wjm rTtTghMLLUhcOrzbdW/AMbwn7t6joFNI/5jMhtcFS5EMjjV68IpwvfWWHD4Tv6Pk DCzbWGjiiXuMvtvS331Qmkp6SRf1N+xIWiedtFvjSLuNIY/aoKhyO1hI6dVPnhwX xwDvozWQrduqOxW9ZRh+vo5CgIj6rRdz8/EQOdSdOeLDtMKTVbEB/95o2kV7mLby +742OAaqPF1upaRdFze4C+2HCn8zeRy/UHbDNjPu0f0Q31gjZP6OVBu9tOKIRvpN pyN87lGDuQM8WhkpACVeb4ul/QnjPptyynum2p9z5/t/9F0MaRBdvg9Chf6ZO5uO 6wHQCDqo0EJeZ/PneVIjx/MNAyi3qeX0xdAt0qawg8AScB+58tod+YnXL/O+LPGu MbVDLffTGFHGwbxDpBpgQNh7U4o1wBXlTYotFo472WyXbuyjxAqO2Efl9RUFmnNa i9DhiN1+D3HQfXELMa6N/LyFh+tHIhVZfWvG/Hz3LYBNXjQCHIGxcWXGXY8Ye+9v Izppu+SfEqBQWMDManzLdO+Bsj72nixcqxkmqabajanlA3Obp/o= =ep7a -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 04 22:54:14 2021 Received: (at 41669) by debbugs.gnu.org; 5 Jan 2021 03:54:14 +0000 Received: from localhost ([127.0.0.1]:60748 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwdQE-0007gY-Fq for submit@debbugs.gnu.org; Mon, 04 Jan 2021 22:54:14 -0500 Received: from mail-pg1-f178.google.com ([209.85.215.178]:39058) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kwdQC-0007gK-Vr for 41669@debbugs.gnu.org; Mon, 04 Jan 2021 22:54:13 -0500 Received: by mail-pg1-f178.google.com with SMTP id 30so15739202pgr.6 for <41669@debbugs.gnu.org>; Mon, 04 Jan 2021 19:54:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=CWI0aeGI9IaF3w6KUmJFng7lIb+mEodWGHtLvFq3ZPo=; b=Q+iJPFwOPPUWFibrVIXe6Yk/FRmTAYuWWcsndTzjV5Oo2XI4b7+k8M5BX9kWFnwDLp ELUIamgpjDNulgWeVh871/tUuyqA0ZQh+EzYO+f8lBFu8nT2S9flQMIDJF4HbhxNZiTy C4BVaZGLKRHTqzvK+BTTJ5QNoEYhkLuy6O3yvClHpadb6S/aklGFmiEnVBiyXwov6e3h nf5RXSvAn3/cvRTFxuEex2fs6+iwqZUzf5GKZuM5uI0cM7nBaq8fkIxogL7HGCkZXP6R le5IPlADrpB6JzZ5LMtazUEvQ+AefdvqXkYI+8qWtdwcaLRaIsL1Y23KcKCxpPEA2WLX 56sQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=CWI0aeGI9IaF3w6KUmJFng7lIb+mEodWGHtLvFq3ZPo=; b=LO0m9oS5u4jEEXXqhKcSmz0mGIpmAzNNZF/8Z7ZeL06foxb9VsvsBIpqZksrJlqW71 nEucO3jVIh2Frtl7CQYUTh7t7J3cKxTLoAPH1irDB6EnJxEiaKXnDg580+bd0z5XuYbq QU4riaWeXIuipnhjbC15iVqUIESnE9jBN7pL/UFpjlONnwdhOj6Esxy/cszOZM8VkD7N 8WbqbtmAHtEVNagoQlB+lV5fcjkHyNoDBId6y36lNDPtxhrZ8Elc9t974uZHC8nQfRZa NOH4ccp5FCmaLXPS1Qh409AWo9oyZOUNS/Pzr/ISRW7aYO04cjUIu9LojlRL9OQSQndH Eqpw== X-Gm-Message-State: AOAM532fvbNeA2erE2wKMBgM9Nf5RY/Mszsc015TWIdP1LRdPkbCuiV6 Tzrv2Fr1KniIFNPNDOZL3A0= X-Google-Smtp-Source: ABdhPJxqgfk88UaG0cCQKKQvXgejh0shNVWed1guCQoMY3rEL2kIeik02oHHnrZ14TzELycnCUQ91g== X-Received: by 2002:a63:d62:: with SMTP id 34mr74549698pgn.276.1609818847016; Mon, 04 Jan 2021 19:54:07 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id g16sm54356535pfh.187.2021.01.04.19.54.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 04 Jan 2021 19:54:05 -0800 (PST) From: Chris Marusich To: Leo Le Bouter Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <972680c699cf9fce5ad6e609228aa6715dff85ff.camel@zaclys.net> <87zh1y1ruu.fsf@gmail.com> Date: Mon, 04 Jan 2021 19:54:01 -0800 In-Reply-To: <87zh1y1ruu.fsf@gmail.com> (Chris Marusich's message of "Sun, 27 Dec 2020 20:23:21 -0800") Message-ID: <87y2h8yr6u.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Ludovic =?utf-8?Q?Court=C3=A8s?= , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Chris Marusich writes: > If it's just for the sake of trying one last time, we could just add > --cores=3D1 to the Guix invocations, or run everything in a single-core > VM. Wouldn't that have the same effect? > > I think you'll probably agree, so I've proactively started another build > on two fresh single-core VMs (using the same procedure I described > earlier, starting from the 1.2.0 installation ISO image). It'll take a > few days to finish, I'm sure. Please let me know if you think we need > the patch to run this final experiment. Otherwise, I'll just report the > results of this latest experiment in a few days' time. The builds finished on both of my VMs (new ones) the other day. The result was the same as before: Even when built from source using a single core and with --cores=3D1, gcc-static differed, and all other binaries were identical. This is more evidence to support the conclusion that the non-reproducibility is not due to concurrency. For the record, this is the summary of the final experiment I did: =2D I created two new x86_64 VMs using QEMU. =2D I used https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz to install Guix System 1.2.0 on these two VMs. =2D I ran: guix pull --cores=3D1 --no-substitutes --commit=3D1ced8379c76417= 88fa607b19b7a66d18f045362b =2D I ran: guix build --cores=3D1 --no-substitutes --target=3Dpowerpc64-lin= ux-gnu bootstrap-tarballs =2D I didn't run "guix system reconfigure" after installing Guix System; theoretically it shouldn't matter, but for the purpose of our experiment, I just left the system in its default configuration in order to ensure that the kernel etc. would be the same on both VMs. In reality, it didn't go so smoothly. While running "guix pull", the build for guile failed many times before I got it to succeed, which prompted me to submit this bug report: "Guile 3 fails to build non-deterministically" https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D45574 While running "guix pull", the build for gnutls failed many times and never succeeded - so I actually did substitute gnutls. I submitted a bug report for that one here, too: "gnutls 3.6.12 can consistently fail to build" https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D45578 In any case, this confirms Leo's findings. It's clear that concurrency is not the reason why gcc-static builds non-reproducibly. =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/z4tkACgkQ3UCaFdgi Rp0r/A/9GMi2kxAaooZurpUsFG2N+asDtRGcOb2vBjeGoGSr3cxcZilKeaW90As5 ITw6MN/5+O2JparHXGAzFTz52XztoeBkwt0Cec5sFbwlrvpcdrXF6+oC09lqyh3W 0V+7Y8Mh2Fk3QyZwE6s8jszDyeR0Zp0HevRArKseuaGmUG85t3CGFRZ3iTBDUCMb iDayeG61HFEhKZ1+jg3uRC3cDO6qWQ/hui5cllq9pLKYUMVW06jY3HKU4Q1eTW+a /AVy9jDx2UJYMjjP45GiJ7YAHqML6G64t5Bzs6HA6Nu0z+y+xsfFpqC+8FEBgpBK ili/dLfb05wJxmp9kjc3IMxRMr1GZryQQlX5EFhDP7nvQ8lppYOCNWEHcvGjx+xA bpWNDTa6qTOi2wNHoo3sz4tFQvxdXKU82o7Xa2oJU+60lW7UsY7xt4fTCECZ+7OU QnwWvFiQI42zZlFlj8sYj5wgcmQODRBwji69qPp1F2yzo+A6X/PZmTDSPcd8goEC Z49YMv2sP0h6b05+1Ftsni6BvGZkOe/zc2Lik9TxZFPYHxl7T5CL6I5YPN8hr1+p 6L7JMDTt37YtvRKtuqjM2Q57d5eQHhWfvvasEZVUcsv3m8g/zD0WlXbwNHCooOvo 8sUCVmL8srZDwFHByCK9rY6ecncnSFOrS7tTSkJHhQSKSKPkbL0= =AoFk -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Wed Jan 06 03:59:33 2021 Received: (at 41669) by debbugs.gnu.org; 6 Jan 2021 08:59:33 +0000 Received: from localhost ([127.0.0.1]:43378 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx4fF-0000Ol-A1 for submit@debbugs.gnu.org; Wed, 06 Jan 2021 03:59:33 -0500 Received: from eggs.gnu.org ([209.51.188.92]:44634) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kx4fC-0000OZ-Tj for 41669@debbugs.gnu.org; Wed, 06 Jan 2021 03:59:31 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:55480) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kx4f5-0006yp-NO; Wed, 06 Jan 2021 03:59:24 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41342 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kx4f1-0002EO-1H; Wed, 06 Jan 2021 03:59:21 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> <8735zg13c9.fsf@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 17 =?utf-8?Q?Niv=C3=B4se?= an 229 de la =?utf-8?Q?R?= =?utf-8?Q?=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-pc-linux-gnu Date: Wed, 06 Jan 2021 09:59:17 +0100 In-Reply-To: <8735zg13c9.fsf@gmail.com> (Chris Marusich's message of "Mon, 04 Jan 2021 19:15:34 -0800") Message-ID: <871reysaoq.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Chris, Chris Marusich skribis: > No, we need a separate tarball for LE. I have prepared that here: > > https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-= bootstrap-tarballs-from-guix-662e7e28d576.tar.xz > https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-= bootstrap-tarballs-from-guix-662e7e28d576.tar.xz.sha512sum > https://media.marusich.info/guix-ppc64le-bootstrap/powerpc64le-linux-gnu-= bootstrap-tarballs-from-guix-662e7e28d576.tar.xz.asc Thanks. I have uploaded them to (I meant to send them to ftp.gnu.org but typed it wrong; I can upload them there as well later.) You can update (gnu packages bootstrap) accordingly. > This tarball, containing the little-endian bootstrap binaries, was > generated using the same setup that I used earlier for big-endian. > Specifically, to generate the little-endian bootstrap binaries, I took > the following steps on two separate VMs: > > - Use > https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso= .xz > to install Guix System 1.2.0 on an x86_64-linux machine. > - Run: guix pull --no-substitutes --commit=3D1ced8379c7641788fa607b19b7a6= 6d18f045362b > - Run: guix pull --no-substitutes --commit=3D662e7e28d576ada91fc9dec7d27c= 100666114f03 > - Run: guix build --no-substitutes --target=3Dpowerpc64le-linux-gnu boots= trap-tarballs > - I didn't run "guix system reconfigure" after installing Guix System; > theoretically it shouldn't matter, but for the purpose of our > experiment, I just left the system in its default configuration in > order to ensure that the kernel etc. would be the same on both VMs. In the commit log that updates (gnu packages bootstrap), please mention these commands so we later know how those binaries were obtained. (Only the second =E2=80=98guix pull=E2=80=99 matters.) > By the way, just as with the big endian bootstrap binaries, all the > little endian bootstrap binaries I built were identical on both VMs > except for gcc-static. The output of gcc-static contained binaries that > differed in ways similar to what has been described earlier in this > thread. So, the non-reproducibility of gcc-static is not specific to > one PPC architecture. I wonder if gcc-static can be cross-built > reproducibly for any architecture at all. Yeah, that remains a mystery, perhaps we=E2=80=99ll eventually find out! >> (As you know, we use i386 binaries for both i686-linux and x86_64-linux. >> Likewise, if we can have a single set of binaries instead of having >> PPC32, PPC64, and PPC64LE, that=E2=80=99s better.) > > This is a fair question. I agree that if it were possible, it would be > a great improvement. I didn't know the answer to this question, so I > asked in #talos-workstation on Freenode. The users there said that > although in theory this should be possible, it isn't currently feasible > because the ability to do this is not currently implemented in Linux. > > For the moment, I think our focus should be on finding out which of > these two architectures can be bootstrapped in Guix in the first place. > The first step in doing that is to try using these bootstrap binaries. Yes, that makes sense to me. Thank you! Ludo=E2=80=99. --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJBBAEBCgArFiEEPORkVYqE/cadtAz7CQsRmT2a67UFAl/1e+UNHGx1ZG9AZ251 Lm9yZwAKCRAJCxGZPZrrtX79D/40ndhr8TOycZUV8fzJyi1xJh+iGwTUapRxJFS0 7dsXLnPYh6RQrZ8HoPsZ7mqA7pSo9+edzExEhOoqwVAU7De1wrMJ8MKv9r7g8aCI bXYK3ms1C6trU9Dqnv6wLUzl9wCqriUyzDQmJpIdyDs6yP591CHBhROZ8uur5A7D 8eMWEvB0lqHZm+iVlPYFStA3itnyuXV9rC90gpZxsgvCWt8n1qLTczjoqlYmuN8g O21vm6Hx8xEQS9Vs2Wig43aVFBZk+k685i1O1rq1vLmZl0zk4TiKRs7sp3GL+ugc 1J0lIjNgUhAy9GjFEuPEQfIHYvThXwpWrQrGK/xphR2COTnDH4bfc6zI5FBjoQH1 BbmW14PsPlnL4HsUURubWkfLIxncQKqrGt0vsOp2qVQmzCWqx3+JxHlbZ0gKS1Hc fUR56dALatIFJojW4toQ5ZF6DpVnN7whkENYOH7omlh4WDZtkc0y18/hqBqw2pvZ pGSpGLS3Bt2Cj6LfsGzfS2FGNOO9uHMLDvSxFOe4vG61XP5T9vWfg3QYL+wBsITC gTQGmlkdbgG6I4+EyHkIFGIeXy9n9tYpEHqC6fvyl8VALWh3cnbdikI5rVAMH0ZZ 7872hoN9cAPkcLR7XHodHb3MPgCw95dl3Cmt9CL0wxXEu+/ZKnK84RYbXsEvgqsV zLLRkA== =QI9n -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Mon Jan 11 05:31:56 2021 Received: (at 41669) by debbugs.gnu.org; 11 Jan 2021 10:31:56 +0000 Received: from localhost ([127.0.0.1]:55765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyuUN-000705-30 for submit@debbugs.gnu.org; Mon, 11 Jan 2021 05:31:56 -0500 Received: from mail-pj1-f42.google.com ([209.85.216.42]:38188) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kyuU8-0006ze-0r for 41669@debbugs.gnu.org; Mon, 11 Jan 2021 05:31:53 -0500 Received: by mail-pj1-f42.google.com with SMTP id j13so10301651pjz.3 for <41669@debbugs.gnu.org>; Mon, 11 Jan 2021 02:31:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=/hy3bS8wWMUTmFaeBI/HIkKEO6UMtFx6WxkO4baSt98=; b=ZQ6AKHH1eJRbp0OYpaaH/1mv9PXhYc265HqyAXsEOqVuaI2+neuI+E59et+o4iB+Lt a7hxQfdOwzwp0FagH/up6RZfKZ6xEFiCOUGliZBXerlgex2w+vpaSqACffmycCZXmFT9 WBpGfMMWeEGyu7C+V4ReMYC9ToEuhF2xdedJw6sNaOl77EBhdoloOZx7cQPavNglhwKg /9ATGGbklJK3TnodSRUvgx+tJLTNnzYNkgxVl9f+odY5Q3ocYvyM5EHSe5EXmMDX5Lpp iiQ7/4TjH365j0WVq39z7cz9rS9KjMF4sgt8c7GAfQ0ffGEXxcsi3kNKoinBWBlDjvC8 rbkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=/hy3bS8wWMUTmFaeBI/HIkKEO6UMtFx6WxkO4baSt98=; b=M+lYxgXk238/PKHFp3EIj0cKwMsqhJblhnxB/fxwHqTfPu3p7K/j+Se+DiYkz/cdIx /bm73vsoc3d4tPtNWBflCiHT22XMiZsXm7HE/O820Az7MdP2Y5GfYn9NCyx+kIDECZcC I0wgXGMLB6+TmEuyLckHAjQbC1B0/kjQVI5YX7APmnAiO2CJIvvvzxTTtW92sgMLTpyL e6dA0QZrbGMt2WAPccxe2fbtKiNfSkVHzh0xBZMVTbV/6pzBs/RRzANwT4IJ9u/6X4dW IEhUuR9b0k25zDTX3k8eaxjjhE7WLUnYtND7zQKdONetLNWc0s8KIRn7mhB92/F2pE3a BAxg== X-Gm-Message-State: AOAM531XFffhRlgl1zX7tuMENme7ElhaqCNEtY3n0K2OwmmzyaLihPxi 3tTrcFip37LGOqSrJhkI/bg= X-Google-Smtp-Source: ABdhPJyH3FnsKRcQ/8oaKRWg9lzGDuzOU81Gv3upv9kFWFIyo/05ZBj0pEYd6TEmM5DaBxao9pWTZg== X-Received: by 2002:a17:903:228a:b029:da:d645:ab58 with SMTP id b10-20020a170903228ab02900dad645ab58mr15892691plh.25.1610361093967; Mon, 11 Jan 2021 02:31:33 -0800 (PST) Received: from garuda-lan ([2601:601:9d00:688::e6b]) by smtp.gmail.com with ESMTPSA id gp14sm18642544pjb.6.2021.01.11.02.31.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Jan 2021 02:31:32 -0800 (PST) From: Chris Marusich To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> <8735zg13c9.fsf@gmail.com> <871reysaoq.fsf@gnu.org> Date: Mon, 11 Jan 2021 02:31:27 -0800 In-Reply-To: <871reysaoq.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Wed, 06 Jan 2021 09:59:17 +0100") Message-ID: <87k0sjbw8w.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Ludo, Ludovic Court=C3=A8s writes: > You can update (gnu packages bootstrap) accordingly. Thank you for uploading the little-endian bootstrap binaries! I've downloaded them, and I confirm that they are identical to the ones I built. Do you also plan to upload the big-endian bootstrap binaries? I think we were hoping to try both system types. I'm afraid I've hit a snag using what you've uploaded, though. It looks like we'll need to extract bash, mkdir, tar, and xz from static-binaries-0-powerpc64le-linux-gnu.tar.xz and place a copy of each in the following locations: =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/bash =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/mkd= ir =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/tar =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/xz Could you do that? The reason why it's necessary is described below. I've started making changes locally to (gnu packages bootstrap). So far, with the attached patch, I'm able to do the following things on my POWER9 machine running ppc64le Debian (unstable). I can successfully build Guix from source using Debian packages (and a manually-built copy of guile-avahi and guile-gnutls). With my patch, I still have to supply the "--with-courage" configure option. Although "make" succeeded, "make check" failed on the following tests: =2D tests/build-utils.scm =2D test/challenge.scm =2D tests/containers.scm =2D tests/debug-link.scm The failures fell into two categories: =2D Some tests couldn't download the bootstrap bash. =2D In tests/containers.scm, call-with-container evaluated to #f when it wasn't supposed to. Nevertheless, I created the necessary build users and started the guix-daemon via pre-inst-env. I then tried building a simple package: ./pre-inst-env guix build -e '(@@ (gnu packages bootstrap) %bootstrap-cor= eutils&co)' The result was promising, but it quickly failed like some of the tests did - it couldn't download the bash bootstrap binary: =2D-8<---------------cut here---------------start------------->8--- marusich@suzaku:~/repos/guix$ ./pre-inst-env guix build -e '(@@ (gnu packag= es bootstrap) %bootstrap-coreutils&co)' substitute: guix substitute: warning: ACL for archive imports seems to be u= ninitialized, substitutes may be unavailable substitute: updating substitutes from 'https://ci.guix.gnu.org'... 100.0% The following derivations will be built: /gnu/store/y9868ab6a4wjcvwzj4ln5fzk1y4y6zpz-bootstrap-binaries-0.drv /gnu/store/2nwml4l272qzq034hwf5icv9vxi813ja-xz.drv /gnu/store/c1v9lmsh0awbhpai72mzw4qv02rrbpw6-module-import-compiled.drv /gnu/store/n5hf44bybvqmsybjvnn61pkpmcdcrlbd-guile-bootstrap-2.0.drv /gnu/store/ix4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bash.drv /gnu/store/jxh9xn77flxarwzcjga485pgrkjknrgb-tar.drv /gnu/store/yd1mib8s1f38qwdn61zj16ijx8p0ryzm-guile-static-stripped-2.0.14= -powerpc64le-linux-gnu.tar.xz.drv /gnu/store/z66wc9z4qvffn60q4jdx7in6rxpswhx3-mkdir.drv /gnu/store/m4qv668s851v2ndzns3xwzg5rga9fhff-static-binaries-0-powerpc64l= e-linux-gnu.tar.xz.drv building /gnu/store/m4qv668s851v2ndzns3xwzg5rga9fhff-static-binaries-0-powe= rpc64le-linux-gnu.tar.xz.drv... Starting download of /gnu/store/2phdifnfw6i989rqbav04zakxx7qb165-static-bin= aries-0-powerpc64le-linux-gnu.tar.xz From=20https://ftp.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/st= atic-binaries-0-powerpc64le-linux-gnu.tar.xz... download failed "https://ftp.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/2= 0210106/static-binaries-0-powerpc64le-linux-gnu.tar.xz" 404 "Not Found" Starting download of /gnu/store/2phdifnfw6i989rqbav04zakxx7qb165-static-bin= aries-0-powerpc64le-linux-gnu.tar.xz From=20https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/= static-binaries-0-powerpc64le-linux-gnu.tar.xz... downloading from https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux= /20210106/static-binaries-0-powerpc64le-linux-gnu.tar.xz ... static-binaries-0-powerpc64le-linux-gnu.tar.xz 4.4MiB 2.8MiB/s 00:02 [###= ###############] 100.0% successfully built /gnu/store/m4qv668s851v2ndzns3xwzg5rga9fhff-static-binar= ies-0-powerpc64le-linux-gnu.tar.xz.drv building /gnu/store/ix4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bash.drv... Starting download of /gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash From=20https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootst= rap/powerpc64le-linux/20210106/bash... download failed "https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packa= ges/bootstrap/powerpc64le-linux/20210106/bash" 404 "Not found" Starting download of /gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash From=20http://lilypond.org/janneke/guix/powerpc64le-linux/20210106/bash... download failed "http://lilypond.org/janneke/guix/powerpc64le-linux/2021010= 6/bash" 404 "Not Found" Starting download of /gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash From=20https://ci.guix.gnu.org/file/bash/sha256/1kiw7n6mkdy2x9in97646nb7aia= yxr090ws1hbrlazah3fjqi6nj... download failed "https://ci.guix.gnu.org/file/bash/sha256/1kiw7n6mkdy2x9in9= 7646nb7aiayxr090ws1hbrlazah3fjqi6nj" 404 "Not Found" Starting download of /gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash From=20https://tarballs.nixos.org/sha256/1kiw7n6mkdy2x9in97646nb7aiayxr090w= s1hbrlazah3fjqi6nj... download failed "https://tarballs.nixos.org/sha256/1kiw7n6mkdy2x9in97646nb7= aiayxr090ws1hbrlazah3fjqi6nj" 404 "Not Found" Starting download of /gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash From=20https://archive.softwareheritage.org/api/1/content/sha256:d29a88a51b= 507d45f38241739040ee5e45759635c49c6463eac2b7598d3d3cce/raw/... download failed "https://archive.softwareheritage.org/api/1/content/sha256:= d29a88a51b507d45f38241739040ee5e45759635c49c6463eac2b7598d3d3cce/raw/" 404 = "Not Found" failed to download "/gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash" from = ("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/p= owerpc64le-linux/20210106/bash" "http://lilypond.org/janneke/guix/powerpc64= le-linux/20210106/bash") builder for `/gnu/store/ix4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bash.drv' failed t= o produce output path `/gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash' build of /gnu/store/ix4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bash.drv failed View build log at '/var/log/guix/drvs/ix/4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bas= h.drv.gz'. cannot build derivation `/gnu/store/n5hf44bybvqmsybjvnn61pkpmcdcrlbd-guile-= bootstrap-2.0.drv': 1 dependencies couldn't be built building /gnu/store/jxh9xn77flxarwzcjga485pgrkjknrgb-tar.drv... cannot build derivation `/gnu/store/y9868ab6a4wjcvwzj4ln5fzk1y4y6zpz-bootst= rap-binaries-0.drv': 1 dependencies couldn't be built guix build: error: build of `/gnu/store/y9868ab6a4wjcvwzj4ln5fzk1y4y6zpz-bo= otstrap-binaries-0.drv' failed =2D-8<---------------cut here---------------end--------------->8--- To resolve this issue, it seems that we must also extract the bootstrap bash, mkdir, tar, and xz from static-binaries-0-powerpc64le-linux-gnu.tar.xz and place a copy of each in the following locations: =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/bash =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/mkd= ir =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/tar =2D https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/xz After you've uploaded these files, I'll also need to adjust my patch so it adds alpha.gnu.org to %bootstrap-executable-base-urls in gnu/packages/bootstrap.scm. That's how Guix finds these raw, unpackaged binaries. By the way, I've noticed that the other architectures don't seem to have "raw" binaries at all on alpha.gnu.org. Maybe you already knew this, but it seems that the "raw" binaries are actually downloaded from this specific URL (see the bootstrap-executable-file-name procedure): https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/?id= =3D44f07d1dc6806e97c4e9ee3e6be883cc59dc666e Is that intended? I was surprised to discover that we store these four "raw" binaries in a totally separate place. That seems like it would make it easy for someone to accidentally forget to update the "raw" binaries when they update an architecture's bootstrap tarballs. In any case, for powerpc64le-linux, the right thing to do is probably just to add copies of these "raw" binaries like I mentioned above. Could you do that when you have the time? Thank you, =2D-=20 Chris --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=0001-gnu-bootstrap-Add-support-for-powerpc64le-linux.patch Content-Transfer-Encoding: quoted-printable From=20eb41c77618538f1f6c2994c9245d38c377ac12ad Mon Sep 17 00:00:00 2001 From: Chris Marusich Date: Sun, 10 Jan 2021 16:58:57 -0800 Subject: [PATCH] gnu: bootstrap: Add support for powerpc64le-linux. The bootstrap tarballs used by these bootstrap packages were created via the following steps: =2D Create a new x86_64 VM using QEMU. =2D Use https://ftp.gnu.org/gnu/guix/guix-system-install-1.2.0.x86_64-linux.iso.xz to install Guix System 1.2.0 in the VM. =2D Run: guix pull --no-substitutes --commit=3D662e7e28d576ada91fc9dec7d27c= 100666114f03 =2D Run: guix build --no-substitutes --target=3Dpowerpc64le-linux-gnu boots= trap-tarballs With the exception of gcc-static, all bootstrap binaries contained in these tarballs can be built reproducibly. Unfortunately, gcc-static is not always reproducible when everything is built from source on separate machines. Despite months of investigation, we still do not know why that is, so we ha= ve decided to move forward with these binaries to unblock further bootstrapping work. For details, see , which contains a discussion of both the big-endian and little-endian cases. * gnu/packages/bootstrap.scm (%bootstrap-executables) (bootstrap-executable-file-name, bootstrap-guile-url-path) (bootstrap-guile-hash, %bootstrap-coreutils&co, %bootstrap-binutils) (%bootstrap-glibc, %bootstrap-gcc): Add entries for powerpc64le-linux. =2D-- gnu/packages/bootstrap.scm | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/gnu/packages/bootstrap.scm b/gnu/packages/bootstrap.scm index c39e60ec8b..d9ba9f06c6 100644 =2D-- a/gnu/packages/bootstrap.scm +++ b/gnu/packages/bootstrap.scm @@ -122,7 +122,16 @@ ("tar" ,(base32 "06gmqdjq3rl8lr47b9fyx4ifnm5x56ymc8lyryp1ax1j2s4y5jb4")) ("xz" =2D ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5")))= )) + ,(base32 "09j1d69qr0hhhx4k4ih8wp00dfc9y4rp01hfg3vc15yxd0jxabh5"))) + ("powerpc64le-linux" + ("bash" + ,(base32 "1kiw7n6mkdy2x9in97646nb7aiayxr090ws1hbrlazah3fjqi6nj")) + ("mkdir" + ,(base32 "04dpvi231zcl40ig048vqqnyvmnkw1byrm1q1qqvs1f0g16yhrrk")) + ("tar" + ,(base32 "150c8948cz8r208g6qgn2dn4f4zs5kpgbpbg6bwag6yw42rapw2l")) + ("xz" + ,(base32 "0v5738idy9pqzcbrjdpxi5c6qs5m78zrpsydmrpx5cfcfzbkxzjh"))))) =20 (define %bootstrap-executable-base-urls ;; This is where the bootstrap executables come from. @@ -132,6 +141,7 @@ (define (bootstrap-executable-file-name system program) "Return the FILE-NAME part of url where PROGRAM can be found for SYSTEM." (match system + ("powerpc64le-linux" (string-append system "/20210106/" program)) ("i586-gnu" (string-append system "/20200326/" program)) (_ (string-append system "/" program "?id=3D44f07d1dc6806e97c4e9ee3e6be883cc59dc666e")))) @@ -332,6 +342,8 @@ or false to signal an error." "/20150101/guile-2.0.11.tar.xz") ("i586-gnu" "/20200326/guile-static-stripped-2.0.14-i586-pc-gnu.ta= r.xz") + ("powerpc64le-linux" + "/20210106/guile-static-stripped-2.0.14-powerpc64le-li= nux-gnu.tar.xz") (_ "/20131110/guile-2.0.9.tar.xz")))) =20 @@ -346,6 +358,8 @@ or false to signal an error." (base32 "0fzp93lvi0hn54acc0fpvhc7bvl0yc853k62l958cihk03q80ilr")) ("armhf-linux" (base32 "1mi3brl7l58aww34rawhvja84xc7l1b4hmwdmc36fp9q9mfx0lg5")) + ("powerpc64le-linux" + (base32 "1rnyfz5q38jyvxddj617443bnnzql4vw0mxzqpj8wz48wx4bhbq0")) ("aarch64-linux" (base32 "1giy2aprjmn5fp9c4s9r125fljw4wv6ixy5739i5bffw4jgr0f9r")) ("i586-gnu" @@ -479,6 +493,8 @@ $out/bin/guile --version~%" "/20150101/static-binaries.ta= r.xz") ("aarch64-linux" "/20170217/static-binaries.ta= r.xz") + ("powerpc64le-linux" + "/20210106/static-binaries-0-= powerpc64le-linux-gnu.tar.xz") ("i586-gnu" "/20200326/static-binaries-0-= i586-pc-gnu.tar.xz") (_ @@ -498,6 +514,9 @@ $out/bin/guile --version~%" ("aarch64-linux" (base32 "18dfiq6c6xhsdpbidigw6480wh0vdgsxqq3xindq4= lpdgqlccpfh")) + ("powerpc64le-linux" + (base32 + "0afs2j9z2d1hjq42myz4iwjh0aqgzf59inifw87x6= b6p1z9wv92v")) ("i586-gnu" (base32 "17kllqnf3fg79gzy9ansgi801c46yh9c23h4d923p= lvb0nfm1cfn")) @@ -547,6 +566,8 @@ $out/bin/guile --version~%" "/20150101/binutils-2.25.tar.= xz") ("aarch64-linux" "/20170217/binutils-2.27.tar.= xz") + ("powerpc64le-linux" + "/20210106/binutils-static-st= ripped-2.34-powerpc64le-linux-gnu.tar.xz") ("i586-gnu" "/20200326/binutils-static-st= ripped-2.34-i586-pc-gnu.tar.xz") (_ @@ -566,6 +587,9 @@ $out/bin/guile --version~%" ("aarch64-linux" (base32 "111s7ilfiby033rczc71797xrmaa3qlv179wdvsaq= 132pd51xv3n")) + ("powerpc64le-linux" + (base32 + "1klxy945c61134mzhqzz2gbk8w0n8jq7arwkrvz78= d22ff2q0cwz")) ("i586-gnu" (base32 "11kykv1kmqc5wln57rs4klaqa13hm952smkc57qcs= yss21kfjprs")) @@ -622,6 +646,8 @@ $out/bin/guile --version~%" "/20150101/glibc-2.20.tar.xz") ("aarch64-linux" "/20170217/glibc-2.25.tar.xz") + ("powerpc64le-linux" + "/20210106/gcc-stripped-5.5.0-power= pc64le-linux-gnu.tar.xz") ("i586-gnu" "/20200326/glibc-stripped-2.31-i586= -pc-gnu.tar.xz") (_ @@ -641,6 +667,9 @@ $out/bin/guile --version~%" ("aarch64-linux" (base32 "07nx3x8598i2924rjnlrncg6rm61c9bmcczbbcpbx0fb742= nvv5c")) + ("powerpc64le-linux" + (base32 + "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jlna= dz3m1")) ("i586-gnu" (base32 "14ddm10lpbas8bankmn5bcrlqvz1v5dnn1qjzxb19r57vd2= w5952")) @@ -713,6 +742,8 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ "/20150101/gcc-4.8.4.tar.xz") ("aarch64-linux" "/20170217/gcc-5.4.0.tar.xz") + ("powerpc64le-linux" + "/20210106/gcc-stripped-5.5.0-powe= rpc64le-linux-gnu.tar.xz") ("i586-gnu" "/20200326/gcc-stripped-5.5.0-i586= -pc-gnu.tar.xz") (_ @@ -732,6 +763,9 @@ exec ~a/bin/.gcc-wrapped -B~a/lib \ ("aarch64-linux" (base32 "1ar3vdzyqbfm0z36kmvazvfswxhcihlacl2dzdjgiq25cq= nq9ih1")) + ("powerpc64le-linux" + (base32 + "151kjsai25vz2s667bgzpisx8f281fpl3n9pxz2yrp9jln= adz3m1")) ("i586-gnu" (base32 "1j2zc58wzil71a34h7c70sd68dmqvcscrw3rmn2whq79vd= 70zvv5")) =2D-=20 2.26.2 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAl/8KP8ACgkQ3UCaFdgi Rp0QXRAAs4dUvro3BRO1Mikubz9H9MQPJbHsA4EZaGVCqELvz+Vujdth0OK3yL3A oq+L6jM+3srljQPKx2YHeMlpXFptJ6FGPoCrst+XHM08XcU1lzBrvVmG7SRDwn+j 4tJYAxYcuvauqzC9+4F+/dpxf4AZq1cFlMF8GS20ghWf4UD/k0CsspwouNBeqQxQ vg3QK+7H+fZNNX2SLF3H2ddawM3rH3bllMcBF9xCkv8OplNbgVmK/mRGLs14PSjs iResZBsy/w1BelceZDlenIpgECDbJusTptBvep82RYEF392fmSGBb0HD+JtUKY/y K97NNrqrTH/AVgl/zjpghfqII7k0cOztFMMYT2sMxys3DKXXegLMet1XodEX2rxb bsOpumyEiz8h5bs/dgSjdg2mAiOxlKtf6qXvQPKrUM6iTksF+31fMtVEg298wQ5M 2y82NFHsYLiJkYl4QxZhdQeCV+8m40c3rhCJ1/KqJCQgrwVRfK/U0q4JsTehw2hq 18uaEOiEDTEG7NjsdlyfZyLfEEydRvBqaaBbUHBfhoo+y09fSHZQ7C66OGBbKSBg Kg3jVFUd8gYyHhUd336RPpHhVxYG58riJqechDEmMuBqxdyTcCOkSp88vvZF8Qs6 6l8j9o9zuosc43JLELp6UsqcIrUXXKp11h9/T1jOqfWmxveZ+tA= =lLE3 -----END PGP SIGNATURE----- --==-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Thu Jan 21 01:26:53 2021 Received: (at 41669) by debbugs.gnu.org; 21 Jan 2021 06:26:53 +0000 Received: from localhost ([127.0.0.1]:56686 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2TQj-00077p-1V for submit@debbugs.gnu.org; Thu, 21 Jan 2021 01:26:53 -0500 Received: from mail-pf1-f169.google.com ([209.85.210.169]:46852) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l2TQf-00077a-Hq for 41669@debbugs.gnu.org; Thu, 21 Jan 2021 01:26:51 -0500 Received: by mail-pf1-f169.google.com with SMTP id f63so887151pfa.13 for <41669@debbugs.gnu.org>; Wed, 20 Jan 2021 22:26:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=uZi/VpxCIUTJWy/0M3Cvu3PcD+CCCSqcCIC6Im8ZajU=; b=C4CEUxvteA0jmPV3OLX4Et9aB2XbgUedmZxC8yQ7uj75ts+x1spohyTGruELomQPhN 7hAzer4CpLHhPJ1kbG33hn4rPzTPzVdbB2aFPFoghlP3SOkQZ5ZudOihOWwfHT6woabV zOotx/nKAFa5VbhlZ7V+QoJingdiK/s9hwpVBNXmHgWLGMGvYShSJysD8Tr2kXmQpYAV WSa7MIvo2PuYhtJ4B7gi7vcyRgiljln/sEIPDZxf83GJEODIcxhr6thENphu7OORv7Yg HDtBLEFZwBHbKAYi4nlNj0rgRWyqHk8HGOVGRHX2mbhAU+Sn/rkhyqgfkdHvDlEkc6nY 8E2A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=uZi/VpxCIUTJWy/0M3Cvu3PcD+CCCSqcCIC6Im8ZajU=; b=GU7+hPKtufhbvc4hYUA9iIdf8fTTkSivbY7gVCK/u2TNXHL6XnglVnZsVpC8ML3HwM SETBA5/UButOiHRQaPcIG/Fg1x2p8ZBYkAb5i8kWyXknVk0+In1Gl9kIdvDJOC8poujY G5EQJ/56Aa9qxUpH3GSYDaZTA777oWmg7ALm187/CMmEA1wHiCGL9tMm0Pv9s1QccDh8 uecQUpJ3m8hB3WbY1770EYGczUlRHSJnAO8Cfi5AC8mIjV5LbIFZ5UFmwlCLrc25LBl/ 1G45HQB7U3spYDS4e4Qk55bIyiSvIsSu5TQJg0dqj4UIYyY+Nk47Bwdq306l+IaHDXTG jEBg== X-Gm-Message-State: AOAM531l1NgYFA5mI4WFL4nWq9pbroXSXlY9lnic1SZTQ6gxjDQ3zi9K +O2GEC/EitLAg+4c4+1yGjQ= X-Google-Smtp-Source: ABdhPJxj1uJ5x8sfwWPU/e16Wl2STdmUoNEhuWmMFZaTPZo6EfZ9rqKKzHZfM9nCJfzDGYpcj6eo7g== X-Received: by 2002:a63:520d:: with SMTP id g13mr12922652pgb.289.1611210403669; Wed, 20 Jan 2021 22:26:43 -0800 (PST) Received: from garuda-lan (c-24-18-44-142.hsd1.wa.comcast.net. [24.18.44.142]) by smtp.gmail.com with ESMTPSA id 67sm4255911pfv.20.2021.01.20.22.26.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Jan 2021 22:26:42 -0800 (PST) From: Chris Marusich To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> <8735zg13c9.fsf@gmail.com> <871reysaoq.fsf@gnu.org> <87k0sjbw8w.fsf@gmail.com> Date: Wed, 20 Jan 2021 22:26:40 -0800 In-Reply-To: <87k0sjbw8w.fsf@gmail.com> (Chris Marusich's message of "Mon, 11 Jan 2021 02:31:27 -0800") Message-ID: <87a6t2955r.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Spam-Score: 0.0 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hi Ludo, I hope you're doing well! If you can find the time to upload those "raw" binaries, too, we can continue trying to bootstrap. For details, please refer to my last message, here: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41669#128 Thank you for your help! =2D-=20 Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmAJHqAACgkQ3UCaFdgi Rp27ZA//X65VkcV86vXPaS6TnoLoY/s7AxpQ/9sobQNjOftr00ZyWvqa91/eWk0Q lPMzugzcQRycdtcIxoSAmPv2V05N/fWwoOCuX/lmbc5+2rVxleZFmyxDMu6pL/Ec Rry59AvweZSBRUhGtmLVy/761IStJZTevf753QITbKlW5nxqsKYNQD4EjbYCuJbz 85PZ79CKdMYwfXUicKcXX8hWRjcPmMbyC9fmr1XrdT6Rlc9wQDmXqTNhgniSv6Ig gfWdzJ5u6ym2Qq1QAyZjOPKvVIV+MFv/rbCsAb46Bg8UIfyuZqxDwMatwc2KpJQm rDgojHeD7zlDMIkgqLkMi7OIcf127KzBiADjtD2Oug9LjPxYrhGEeH+FP0OlE14n JAmiPY7n7NUc1qqgDHQGDI6BN0XQyXvq1618uM6hMEUJ5sQbUjbJ/+UU1pCXzzx9 /VIzxIROB/zBSUo+Ng/3x7MRFiWk+61KjKf9BwZypnvZ7m1InfyqxbqRKYa59vxf Lvzxa4Wqx3YfiYFcNntwiKilQ/HOyyRp2WQqpBvaGCm5/+7iNd0wKEtuouXWkBIe +j2poRcsgtg4FCk4q26mdxAEFiUWT2g9YwpPvSq8r+Q7hEl5En3bzpLcMKnbzYzI PT/MulWLyAe0qhl8n0Tzqj4Nr36GdCrpO6EsGNTOrom7304L6o4= =M0jp -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sun Jan 31 16:35:37 2021 Received: (at 41669) by debbugs.gnu.org; 31 Jan 2021 21:35:37 +0000 Received: from localhost ([127.0.0.1]:58224 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l6KNb-00070j-Sc for submit@debbugs.gnu.org; Sun, 31 Jan 2021 16:35:37 -0500 Received: from eggs.gnu.org ([209.51.188.92]:58234) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1l6KNX-00070V-RZ for 41669@debbugs.gnu.org; Sun, 31 Jan 2021 16:35:35 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:39581) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l6KNS-0005Gs-5G; Sun, 31 Jan 2021 16:35:26 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=51390 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1l6KNJ-0002V3-9C; Sun, 31 Jan 2021 16:35:25 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Chris Marusich Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <87wo0hqbb3.fsf@gmail.com> <87pn3dth0l.fsf_-_@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> <87pn5wzwcf.fsf@gnu.org> <87pn3dth0l.fsf_-_@gmail.com> <87blepaqd8.fsf_-_@gmail.com> <87sg7hxctr.fsf@gnu.org> <8735zg13c9.fsf@gmail.com> <871reysaoq.fsf@gnu.org> <87k0sjbw8w.fsf@gmail.com> Date: Sun, 31 Jan 2021 22:35:14 +0100 In-Reply-To: <87k0sjbw8w.fsf@gmail.com> (Chris Marusich's message of "Mon, 11 Jan 2021 02:31:27 -0800") Message-ID: <87lfc8kcx9.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.7 (/) X-Debbugs-Envelope-To: 41669 Cc: 41669@debbugs.gnu.org, Leo Le Bouter , Efraim Flashner , Maxim Cournoyer , Vincent Legoll X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.7 (-) Hi Chris & all, Apologies for taking so long to reply! Pinging me on IRC was the right move. :-) Chris Marusich skribis: > I'm afraid I've hit a snag using what you've uploaded, though. It looks > like we'll need to extract bash, mkdir, tar, and xz from > static-binaries-0-powerpc64le-linux-gnu.tar.xz and place a copy of each > in the following locations: > > - https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/bash > - https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/mkd= ir > - https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/tar > - https://alpha.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/xz > > Could you do that? The reason why it's necessary is described below. I=E2=80=99ve uploaded these four files now. > I've started making changes locally to (gnu packages bootstrap). So > far, with the attached patch, I'm able to do the following things on my > POWER9 machine running ppc64le Debian (unstable). > > I can successfully build Guix from source using Debian packages (and a > manually-built copy of guile-avahi and guile-gnutls). With my patch, I > still have to supply the "--with-courage" configure option. Although > "make" succeeded, "make check" failed on the following tests: > > - tests/build-utils.scm > - test/challenge.scm > - tests/containers.scm > - tests/debug-link.scm > > The failures fell into two categories: > > - Some tests couldn't download the bootstrap bash. > - In tests/containers.scm, call-with-container evaluated to #f when it > wasn't supposed to. Perhaps we can investigate them later. > Nevertheless, I created the necessary build users and started the > guix-daemon via pre-inst-env. I then tried building a simple package: > > ./pre-inst-env guix build -e '(@@ (gnu packages bootstrap) %bootstrap-c= oreutils&co)' [...] > Starting download of /gnu/store/2phdifnfw6i989rqbav04zakxx7qb165-static-b= inaries-0-powerpc64le-linux-gnu.tar.xz > From https://ftp.gnu.org/gnu/guix/bootstrap/powerpc64le-linux/20210106/st= atic-binaries-0-powerpc64le-linux-gnu.tar.xz... > failed to download "/gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash" fro= m ("https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap= /powerpc64le-linux/20210106/bash" "http://lilypond.org/janneke/guix/powerpc= 64le-linux/20210106/bash") > builder for `/gnu/store/ix4mpvzxfi1hrmvdmmpgqhm9x1cdh347-bash.drv' failed= to produce output path `/gnu/store/0kaj6l1ccw0qd0289hii7qhr828s71sv-bash' Note that for testing purposes, you could always work around this by adding these four files to the store with the =E2=80=98add-to-store=E2=80= =99 RPC (I don=E2=80=99t think =E2=80=98guix download=E2=80=99 would work because you = need the executable bit.) > By the way, I've noticed that the other architectures don't seem to have > "raw" binaries at all on alpha.gnu.org. Maybe you already knew this, > but it seems that the "raw" binaries are actually downloaded from this > specific URL (see the bootstrap-executable-file-name procedure): > > https://git.savannah.gnu.org/cgit/guix.git/plain/gnu/packages/bootstrap/?= id=3D44f07d1dc6806e97c4e9ee3e6be883cc59dc666e > > Is that intended? Yes: these files used to be in version control, part of the Guix source tarball, but now we just download them (commit 836a85da0e8609d40716581be00802ee43463038). > I was surprised to discover that we store these four "raw" binaries in > a totally separate place. That seems like it would make it easy for > someone to accidentally forget to update the "raw" binaries when they > update an architecture's bootstrap tarballs. They=E2=80=99re visible in the dependency graph though, and they don=E2=80= =99t need to ever change. Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Feb 26 21:39:48 2021 Received: (at 41669) by debbugs.gnu.org; 27 Feb 2021 02:39:48 +0000 Received: from localhost ([127.0.0.1]:42910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFpWG-0005T9-LE for submit@debbugs.gnu.org; Fri, 26 Feb 2021 21:39:48 -0500 Received: from mail-pl1-f171.google.com ([209.85.214.171]:46074) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lFpWE-0005Su-FY for 41669@debbugs.gnu.org; Fri, 26 Feb 2021 21:39:46 -0500 Received: by mail-pl1-f171.google.com with SMTP id u18so82101plc.12 for <41669@debbugs.gnu.org>; Fri, 26 Feb 2021 18:39:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=hRt7S+gIUY7SBqs2WTSDhZ1jBZC0JuOBe4fwGd6FUwE=; b=QE6MuHFaaG9jKEoczVhBh+ciuH9qcMZAia9UNHQ9JkkxIAoTFFsPcxl7b9B67gUyc8 5QUUgpO+m9SnQDz6GRq70H4G8ajARVcwZ2BgpTqO535WbSRnMW8Y+hhUAyn/9KqDMK/q 3nbtYhJkV59q/I+PGT0B0W3o2Uh05TDMOwGoH9H8Nat07tWnSKqoUZUEoo+4qSc4+Ga/ qdtyKGEFb9VzirwPq/TFMKSettaX2/knKje2q6n9wYxDLPIdxNISwTua3XI1u36GcS7g 4dfNn12OJCQRMmPiQH7nzFERz+RD4I75YJ43hMqoByGIsMn71YDchhQpINQOL+IOD2Eh 6aOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version; bh=hRt7S+gIUY7SBqs2WTSDhZ1jBZC0JuOBe4fwGd6FUwE=; b=tktRsWNMtMFXPkZSIYKN9WR1ptf6TEAOdpkXanZ/JXXaIbmV5WZFXMJKBYgjUyils4 8qJkHT+JnoXQ6DR4u1+5l+r30xvnxRuu5/MTS90LElQ7qogPK1t9KtIZn72umIRQoijs HD2d28/YBVDXQcLMLI+8gLB0GcrkShvY9q4e6GZ+6DJ/QGzlGyFduOo8S1b0z0qU4k9C sl53QeSExnQ2RhP+46IdAmVhMMiA6b3ntSOXNrZXsHDHl85xsYxHDfTdfkZEUFQLxjFL imn8sfN8ND/cWv0aBTCZKJzOCqQzR2xBYRgtFwIWsYpIujnyXVXf7mzfoHtRb/i8L1Sw eBVQ== X-Gm-Message-State: AOAM532j0s3DYAWVxeq2j0wLfe7EATKQcfG+7OQi/UMw1Q4+Mn1o8bIc KBup80+h2d5zwA30A5bw5IE= X-Google-Smtp-Source: ABdhPJyLgIjmoY/5ZgNHnrUtezvsDD7bgZeLR7Q0ldlIgRSCgXW51+yTpVsdvH3uV/GGhC4es0yEDQ== X-Received: by 2002:a17:902:e750:b029:e3:a720:f4c with SMTP id p16-20020a170902e750b02900e3a7200f4cmr5827146plf.31.1614393580262; Fri, 26 Feb 2021 18:39:40 -0800 (PST) Received: from garuda-lan (c-24-18-44-142.hsd1.wa.comcast.net. [24.18.44.142]) by smtp.gmail.com with ESMTPSA id y23sm10621358pfo.50.2021.02.26.18.39.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 26 Feb 2021 18:39:38 -0800 (PST) From: Chris Marusich To: 41669@debbugs.gnu.org Subject: Re: bug#41669: Cross-compiled powerpc64-linux bootstrap-tarballs not reproducible References: <874krtnvk8.fsf@gmail.com> <87y2p4mqe2.fsf@gmail.com> <87a6xu2xrj.fsf@gmail.com> <20200913062858.GC1100@E5400> <87wo0hqbb3.fsf@gmail.com> Date: Fri, 26 Feb 2021 18:39:34 -0800 In-Reply-To: <87wo0hqbb3.fsf@gmail.com> (Chris Marusich's message of "Fri, 25 Sep 2020 23:52:48 -0700") Message-ID: <87im6e5j4p.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Debbugs-Envelope-To: 41669 Cc: Vincent Legoll , =?utf-8?Q?L=C3=A9o?= Le Bouter , Efraim Flashner , Maxim Cournoyer X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain Hi, Chris Marusich writes: > Going forward, I'm not sure how best to investigate the inputs to find > out what's causing the differences. I just know I really, really, > really don't want to rebuild everything multiple times, since it takes > hours/days. If you have any creative ideas for how to speed up the > investigation, I'm all ears. I've analyzed the graph of derivations that produce differing output across machines. Here's an image of the graph: --=-=-= Content-Type: image/png Content-Disposition: inline; filename=nonreproducible-drvs-small.png Content-Transfer-Encoding: base64 Content-Description: Graph of Nonreproducible Derivations (PNG) iVBORw0KGgoAAAANSUhEUgAAAyAAAAM0CAQAAADpPo5uAAAABGdBTUEAALGPC/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElN RQflAhkSEiJvui3NAACAAElEQVR42uzddYAV1dvA8c/SjSCIooJYP8FuREBAERVFQAFFBOwuBLu7 C7vFRCREVBABpexuUUEMVJCQznn/8LrvLmzcmLv37jJf/uDOmXPOPGfu3XnmnPNEThCIiIiIiIhI mHKZFiAiIiIionRSIdMClFb+cIY1VmVajDioaJU7bJ1pMSIiIsockQJJkp8tMNj8TIsRB/Wd5ItI gURERIROpECSpJzNbWjDTIsRF43lZFqEiIiIMki0B5IkgRWZFiFuVoosJSIiIsInUiAREREREUkR KZCIiIiIiKSIFEhERERERFJECiQiIiIiIikiBZIxvlin5CurMcXRBdY/ygZq2sLvuSX3qWlDVY3O U2uQrezv10wPLiIiYj0gMuPNEHP08PVaZT29ZlP7FqLVJzvfPuZrkFvyiX1cZYbdckum6uMeb2hh ZqYHGBERUeaJZiAh8YCdXOUS3+NjB9vJU/hFd9u7ObfWcqfawfG4zTeauNgqJ2ruTIz1uT10Mt0b 4GI7ONai3La1tXaAI5XPLalqdy30tFEeKU51llcs8nmmb0hERESZJ1IgoTDU6br4xY2WWWB3tXX0 oSW2N1d3n1oTq3epUS4U+FIL5Z2pqy/MsK9RTtNCZb2cYpYhOMwTelpiWu41/tFGjm3zqJRVbpKj ondzS760F6hjeqZvSURERJknWsIKhadc7xJMUtuL2ngBTFDLm+Bnh1rhGYebYXM32MS2mjkfr/jU 12YZr7odnaeh99XAa1bGtHsnX+nuRmNth23d4IbYVS9zu2rOdKpPYyWVYu6Na6IvNiIiIu1EM5BQ qGI2WCBQzdxYaSWLY59q6eAg9bQyxNb6eEb52EziQg/53RgBllhFbImqnN9ibVs5xK7YDuxuTu5V N1UNbfPMSfYxAmv8bodM35KIiIgyT/SiGgr97OMjlfxlmWOcpomNbGKEjdXT1AqT3AYu8LK9vOlA 5c20s372c7rBxspBbXvqo6P5OF0jbf3sGQPAL9rbyEKfeg/XaOZIHfylloluxFhj3Kafxvb1tdYa Z/qWRERElHkiBRIKzX3sXdv6QQ387H5zHIMvDfSjTirF6l1oI794QXdM9IjyHtDISpf6DEPcprKm LsTd9jNBD/vEWm7uXq+p5kXboI5quNNzlrhSO1RVF41852E9nJ3pGxIREbEekBNlJEyO993t2dyj RXprZKI1ubsR2cR5WuuSaSEiIiLKHNEeSCjU0N0fOpiSaUEiIiIiSoxoCSskjnJUpkWIiIiIKFGi GUhERERERFJECiQiIiIiIikiBRIRERERkRSRAomIiIiISIpIgSRJTimyPygvJ9MiRERElEFKz1Mw 65iPf0LtMUdFOVYI1zWnlvmRAomIiEgDkQJJkg38ZP9Y6MJwCFQzwxpbWRziAz9Qxe9OKfkbFBER UeaJPNGziqcsd3KmhYiIiIiIi2gGklUstCzTIkRERETESbSJnlUEIe9/RERERKSPSIFERERERCRF pEAiIiIiIpIiUiAREREREUkRKZCIiIiIiKSIFEhERERERFJECiQiIiIiIikiBRIRERERkRSRAomI iIiISIpIgUREREREJEWkQCIiIiIikiJSIBERERERSREpkIiIiIiIpIii8WYVNZTPtAgRERERcRIp kKzhO1X9aoVZ5to+08JEREREFEuUUCpr6Ozl2KeWJmVamIiIiIhiifZAsoYLcj+dnWlRIiIiIuIg moFkERuZjfJWZVqQiIiIiDiIZiBZxFGge6bFiIiIiIiLSIFkEaeA4zMtRkRERERcREtYWcWWZlma aSEiIiIi4iIy400LfxqjvNUJtcnRUBUbGmNOgi3LoYUtMz3oiIiI9YxoBpIWbvO8Hv5JsFU1/1ho c4sSbFfDW7YxMNODjoiIWM+IZiBpobxzHVuC19vHyEwPOSIiYr0j2kRPCystKNHrLYhMfyMiIkqc SIFERERERCRFpEAiIiIiIpIiUiAREREREUkRKZCIiIiIiKSIrLCyiCfNVdUaO9gvVvKzl1Ww0OG2 y6213Itq6pxpYSMiItZ7IgWSNSzztG9s4mM9cxXIIFfYySxNchXIGo0t94+23sy0wBEREes5kQIp Ecaq5n9ma4ppPtfEbvjde+prGatTxTiwh4tz29VwlSvz9fSIqv5AZZ/ZOdPDioiIWK+J9kBKgA4O dLT6LsVNttVbC9ONsqleWhmRr+4b5toh92iZq2yscx6f9nGOBLubmulhRURErOdEM5C08503Beip PC71nr2sVNG+BjkWgff9bmPNwc1OzdO2uVvs4hwHejdWslh1UNGSTA8sIiJiPSdSIGmhgpzczwvU By18gjX2QkX8rRPIcYYPtfY25nvH8Dz9tNUWE/LkSP+fb8AfUfDEiIiIDBMpkLQw3+a5n5v50/Xa uFoHbOtgl5roJIfY1/0+sJ8PcuvebC+1wE/W2NrNGtjW2TbHUp/aRx+76O5b03TMc73yKmd6yBER EesdkQJJicXmWWCumX4x13xz/WOZ2qa6I7dODW873tt2Vw8T9NDK7voZpqv9bOGQPP195PzYp9ut 8IgN9DPPgZ7BBGf7wc7u11stb6qUp10F35phpVpqqZrpmxIREbGeEIVzT4CF5vrLt6b7y2zzLVFO ddXUtKmG6qurng1tpJKBKjs5t914tW1gX3c6Ok2SveEkB/rdEstQXS111LWBBhrZRE211FQx07cv IiKijBHNQIpgkb/N9JU//W6mBcqroaYtbW13DTTUsNCWy/LsgTDDyVY7NW3qg1V6uzb36E9/+dsc c/3lU3MttcoSq1VTQ331bKixJuqopVY+OSMiIiISIVIg+VjiT1/51s9+MVcF1TSwtW3tbwubJdBP /mnd8WnPc746X/KqBhoUUGeN3/3pL3/5y1uetsQqy6xRR231bGQTm9vSBtFcJSIiIk4iBWKBH3zq Bz/5UznVbGEb7W1jm1J0c+JZhyxnswKU4GK/mOUvf/nRRLOtsMoqtWykgQY2sZVN1VQj0wOMiIjI QkrPMzJUlvnBh771vb9VVM92dnCk7VXJtGAlTnXb5Ymz9S+r/GGmWX73uVfNttIK5dWxiQYaaGRr G6se+aBGRKz3rFcKZL4PfOJLvwrU1dSOjrWd8pkWK+uoUMBcZb4ZfjbL7z4x22JrUNnGGmhoE001 Ui3TYkdERJQw64ECmW+qT3znT4FNbec4e6iZaaFKHRvYxS75SpaZ5Ucz/eZzT1ooR47aNrOZhhrZ xkbRHCUiooxTZhXIah/60Ht+VMF2dnGupiXoIVHStk2ZsKWqookmeY7XWOg30/ziK2PNtlqOCjax mUY2taUtI4uviIgyRplTIHNMNtVnltrMzk6yk9oZkKJCCc9xssFyqpzaamuWp2SJOaaZ5kdvm2Wp iippaCuNY/soERERpZsyo0BmmOgd0wS21sJZeUKJZIJVBhhnUZ6ScmpabaHKVhTaqiICOVYW0XM5 5S1TzwpLcm2vqvnI/hkdb8FU00ijPJItNs+vvvWDN/1mkcpqaGwbjTWyTWTpFRFR6ij1nuh/m2CM b1S3i7b2tGGmBQIrTFPe6tzjiur6Wm9tXGJVoUa3dd1uhcvMLqLn8hY5RS0PqGNe7ArlBBqVwgfw PLNN823MkDhQXW3baaKJ/8UCUEZERGQzpVaBrDDOqz5XxQ7a21vdTAtUDO+61Dmx+LuF85glzoqj tzuMd68tMj2oUFlujt984xszzLZUVbVtZRdb2rJAx8iIiIhMUwoVyLdeN9Y/mjrIvqVkJX2Azz0U xwN/oGUGxNXju85zuIsyPbC0scpffve1b8z0l1Vq2NC2mtrMllkyy4yIiChFCmS1Nw31hQ21cogd My1O3PzkePu6Pq668SsQ1jjdTA8nFGKltBL4zS8+842fzVXeBjayvf/ZwjaRsXBERMYoFQpkoTFe 9qOtHKF11i9W5ecJ97rZAXHWTkSBwEjXOMexmR5kCbPcTD/71Nd+s1h1m2hiF401yYjFXUTE+kuW K5DZhnrd33bWTZtMC5MwK5xsoScTMOlNVIEwzwnqeKjsmNMlzB9m+tInfjZPRRvZ3M6208hGmRYs IqLMk7UKZL6hhlqqtU52z7QwSfGusx0b15b4/5O4AoE7veD+UnqXwmWhn/zoQ9/5U3mb2MLOmto8 2jWJiEgLWahAFnnVCL/bS3d7ZlqYpLnRKPfbOcFWySkQPna6I/XP9KCziuW+952PfO8vOTayhT3s avMoZldERGhkmQKZ6FE/2stR9s60KCkw28kaeDCJlskqEFY7wUKPR7sABfKPb33nEz+Zq6rNNbWn rYtICBYREREPWaNAfvWkNzXQy2GZFiVFXnaNi3RLqm3yCgSecJ/bSuFeUcnyt8997QOz/BObl+xt 8yiTfEREEmSFAnnRsxY5RK8y4DB2nm88ZtMkW6emQJjmBPvlSW4bURSBz33pK9/5B43soKWmpdCj PyIiU2RYgcz2kFF2ckqZ2AL+zun2dU0KPaSqQOB0v3vSBpm+GaWMP33oC1/5U6CRre1rF7UyLVRE RJaTQQXyngf86HAnl5E/1Ic95latU+ojDAXCMwa6w76ZviGllAU+8rGPzJRjGzvZw85l5BcaERE2 GVIgz3lILac7ONPjD4kVTrDSoykvf4SjQPjWCY7QL9O3pZSz1Gc+9KEflNPMrprbfj32t4mIWJcS VyCBBz1hVwNsnemxh8a7ztXLmSH0FJYCYZXj5HgyCvQRCgt85AMfmaO87e1hH1tlWqSIiCygRBXI QvcZqbn+ZcqA8mYj3bdWutdkud9S54cm2Z2Gecy2GbovZZNfveMjn1hkQ3tqroXqmRYpIiJjlJgC mesGUx3u9DKVj3y+vup5JLRkrS9Ypm+I8o03wJXFBpGPSJyVvvO2j81Q3nb21KqMBdePiIiHElEg 891skiOdXcYWVN5wiXP1Cqm3PkZZZY0q9jUiNBlnOUY7l2Xk/qwf/OU9k3xhoYZa2KdUu8BGRCRG 2hXIGjd7RRfnlzHlwcXe9ZgtQ+vvIafGPl3h6lAlPckyT5fgnVk/WepzY31ijtp2s6+WkXNiRJkn zQrkQY/r6GKVMj3OkPnVSbZ3W6h9Lst94MwKPU3WzV73vE1K5N5E/GCciX5T3R5aaRFF34oos6RR gYxxjV1dpV6mxxg6z7nLtTqE3m9Hr2FP76dB5lGuMDDyDSlRfjTJOD+rYg/7ax5tt0eUOdKkQH50 vvKusX2mxxc6gZP95Ym0pLUa6XA87KS0SP6N45zj6LTenYiC+NEEE/yilt2116LMLeZGrL+kQYEE rjLaJQ7P9NjSwGdO0ymNmcjLCSxTOU29L3SEti5Om/QRRfOjKcb5QT37a2eHTIsTEZEyoSuQ0a50 sKsyPa60MNAz7olZ2SxDuLeuvEra+stXVlkZas85gtz9ld6qeqgE7lVE4XzoDRMtt60DtSwDAUQj 1l9CVSALnGe2O2yT6VGlgcX6qO5RFcHnOtnS8pCvUdsPltrJ/FB7DVT1gye1jR1fYJrhab9fEcWx 1EQjfaG8XRwZ7U5FlEpCVCAvusWpTsz0iNLCROc7ycm5x5M95ZFMC5UAV2jmqNyjO73i5TLl0Fma mW6C0WbZwkH2D93+LiIinYQUG26JUy30Shk1FL3WGwZpmq9sVaaFSoiV+ZbbzlPPQYaUqYAypZcm mjgeE73sAdW01qUMGp9ElE1CUSBvucDxuW5wZYt5TrSxSWuVBiHvf6SbtaU9Vj2dPR5t5GYRrbXG j0a71Dw76apNaCFyIiLSQwgWhZe71tNlVH2M0d6R7su0GGngYAP1NjnTYkSsxVbOMMLL9vGENo41 zNJMixQRUSgpzkDmOdaWxmV6FGniEu8YokmmxUgTe3tRT1fqmGlBItZhAz31xFjD3aahzjpHqXYj spCUFMhE5+tXRl3TftfXDiZkWoy0srWRulqiW6YFiSiE9trjLcM8qJHODo3CokRkFSkokIc87rky abLLS25yRQJh0JeqapEaWBxHwIolST4GlquonNXK5VkbX6WCZarkqxfEvXa+sVE6W6p36HcwIjza aIN3PO8W2+ihY8yYPCIi0yS9B3KuN71VRtXHuR7zagLq4xUd0dMYX2lVYI378/l2HOL1Auqs7VWy 9tr3X2oqL0eFPLkPL1ZRjqr5Yu32VE6O5+KUva7XPRG5FpYC9nGPD51sjNZO8GamxYmIkKQCWaOr coaUyXDV0x2ottcT8g8uZwme1kH5Qm7oHX7Jc1SxgInfxw7Kd7zCvpbkK9nIAoHA1rrnlq10hUDg 2NySFw0xz/OOtSJO6asbbbg7S+LmRqRMWw94RxeP2seFvs60OBHrOUkokLk62McdmZY8LTyrm/4J Z+Mopzz6mqy2P3SQoyVoJUeONzzpRzvZFIfK0daPauFm5eTkLh7VVz5fn5VYZ6GrKr6yzH65JWuM 8JgP89R5QX8bOMpmJsYtf2WvGeemjN31iEQ51AvG2NqFOrgv5MgFERHxk7AC+dUhTjYg03KngcDJ BnvDgUm0zcFsK1Txm+P96U/X+tin/vaxTfS1rUl+c6+PzTTAdBv42kVG+V57POI6N/vMQBf4FqNd 4kbfuc6l6yx2XalnnqN65nrYnm7JLfklllq1hj8TkL+cUT5wXaa/gogEqOUkr3jALB0dHS1pRWSE BBXI97q4tkxa7XyplSZGphCmvYLy1thGDxu51ji7OceDPrANKtocY1xoc4fYXUUTdXSIbRyLiV7y ljlGGO4XfOklr1nidUN9hTpytAMrjXFGnmte4hfvGe7e3JJ6ZoPlaico/1CfuibTX0NEgmzpOlP0 9bh2bkropSEiInUSUiDfOto92mda5jRwv+PdknSg83/90gPkmOYXDLElznaJP7TECvOxo5exwEdW 29YkK/Etnvapt3UyzjTt0d/3Jmlpim/1x0e+9ix43FYa5bnyV+DjPFZYh7ofX/tRi4TH8ZLPXJnB byEiWTp4zhCVHBXNRSJKlAQUyA+Odq99Mi1x6KxwjMneTuKB+x9LLcVSi/yDlnK86g7vaqCcK+2P vezify70hRw74E/ttFBJTq4H/w+m5+tzuekWxz5vqWksyti1uRZY3VyGi+XIca2BGGQ3nGFDObZ3 aVJzqaG+dEVmvoaIFNlQPxMc715tPRh6pOiIiIKIOxrvTF3dk8JDNlv50LmOzrcsFA+TPObJ3KOl freVn2yuoj/V85WmKuJvv9nQpuBza+yCz/3PIrVVwHSLNY1tnq/201pG0d+sFb7x3152in36VnWb Y5rl/qci5pluN/C1WjbL1+4iO8ft8HmE7aOlrFLNDHd7Xwunl9koChHZQpwKZJ6DXeeATEsbOrd5 yUN2TrhdfgWS/SSiQCIVUhYIPGyQLZ1lr0yLElGGiWsJa4Uuzi9z6uMfXX1tchLqo6wz1JeRRVYp J8cppujuUod6LdPCRJRZ4lIgvXQtc5ZX47RzmMfDSohSxhjmXbdmWoiIlDnMWFd53AGGZVqUiDJJ HAqkn02cnWk5Q+Zy1xjsuEyLkcWMMsE9mRYiIgT28JL7jNQqZskXEREexSqQx0x3d6alDJXZOvrH 27bKtCBZzqtGRTGyygj/86QnvKlNNBOJCJViFMhnHjUo0zKGyiiHOqGMqcT0kONVgz2VaTEiQmJr T3jUK9p6NdOiRJQZitwCWOF0A9XMtIwhcoEPDF3LxDWiMCoa5UBV9Mi0IBEhsbUnfOYaD7kqZvId EZEKRc5ATnekPTItYWjMcIAKJoSiPsqXskjEVZOM21/NKHdHb6xlip0N1V9/vf2eaVEiSj1FzEAG m+28TMsXGoPd4vq1QqYnzypTvWFB7nF51VQTWGSZNYW0qaKalZZYXWTP5VSRY1kxtfJSXjVVrbS4 0ADuG5rgf0mOdANDdVYjTwTgiNJPa+M9qYtOLs20KBGlmkIdCefpYJSNMi1fSJzrB0/ZMLT+5rhV jlUop7KaAp97DvvbvcBHf47aVrjW9joVk6ejuvH+0S2BEN3ljfK1PXRS2QIrrPuFVrDSOfliaCXG j472gN1Du3sR2cFql5ns8qTiT0dEUIQC6aOlkzItXShMc7LWCef4SIRJhpmrjSPUKqLWOeq7LI7e vvGo2xOU4AuPWeiEtIWa+dzxnk16FhORvXynnzruSSEKdcT6TCEK5FUPeiXTsoXCc+5yfdoiCL/l aV/ZTd9iAkZMdq6z48w8Pl9X45OQ5Ut3+lZXp6dlf2ay8wyzeRp6jsg0T3nAGXmyWkZExEshCmRf T9g207KFwGl+NyjhzBjx8JVBJmniaIcWW/d2wzyiWdx972dMngDtifCXe0ywr3NiIRzD5DXXey0t 9zIi0/ztdCs9pH6mBYkoZRRonHObvcuA+vhaK5t5OfRH3h9ud4CLbGu0Z4tVHysd43MTE1AfbOaT JGXbyHXe1kQPx/o45HEf4kxdojDhZZINDXaEQw3PtCARpYwCZiD/OMBb6+TjLm084SG3aB1qnyu9 5EVz7a+PxnG1+NSpejs9wetcZ0OnpSjryx5Szmk6hnoH7vO6UaH2GJE9/OF4TdyXaTEiShEFKJCL bah/puVKiTVONN8gNULs803P+N4e+iRgjfSoh9xvz4Sv9bqXPRiCzO+702+OcVKSXiAFcb0vPR9a bxHZxjXGeyLKIxIRJ+sokDkONTXEB07J84WTHRGiCvzM86bYzDFx7Hbk5TR/elr1JK442zHeCEn6 me70jvbODc2IuZ/FUYysMsw4F7pCp0yLEVEqWEeBXGBT52RaqhR4wFPuCSmJzizPG6WyI3VPMKDL n47VPIWkTPsZH8tUGAaLPWio7fUrIMdhMhynoetDky4i25jlaAfEZXIesb6zlgJZqq1JKmZaqiRZ 4XjLDQrBjHWpIQZbrINeSZiuvqWfK3RO4frdXGqXkO/O8x5T05n2D6GvTto7K2T5IrKJPqpE88yI YllLgdxpTql9t/zYqXo7M+V+xnrWD3bXJ8lwc7d6zaMpBou/Tt2Et97jYZI7zXOCXin2s9r+znJE GiSMyBYu9o1hpXoxOyL9rKVAWnrJxpmWKSnu9oL77ZpSH596yru20FeHpPs4wXJPy0lxNG96waNp uEswza0+18XpKcVZnqeDO+2bJhkjsoE7vWpUkh5JEesH+RTIBA94MdMSJcFix6nkyRTS0/7iWW+o rpuuKdhuzXKM/UMJT/ePzkl5o8fLfHd53V76pWBvM00PL5QBf6GIwnnY816PVEhEoeRTIMfoncK7 d6Z4z9lOTDpu10LDDLVIB8ekGOj9Lee7ymEhjaqtEWn3+n7cUzZ2rn2SbD9Rf6+HGKIyIvt41HPG lNpd0Yh0k0eBLHagKZmWJ2Fu9rKH7JhU2zEG+UkLve2cshwDDfakrUMb18mOKBFl/poHLXNKkvsZ gz1gfLROXqZ5wKuR82hEIeRRIM+bamCm5UmIhY5T22NJtPzYkz6xlZ4hhbI+wx9eCPU97QGzXRFi f0Xxqbv8pJuTklisuMeEKABGGecq06PUxhEFkuflcaiemZYmId7WXqeE1ccvbtLWFfY01pOhqI/F DlfT0JCn+S19Fmp/RbGLJw3xm/1cbFaCbc+2nZNLTNKITHCVCmlNhxBResmdgazU1uRMS5MA1xrr wYRCFC4y2DBLdHSsBqHJ8Y2+TnF86OMLtPF26L0WzQoPesF2zktwSfA4W7jSUo+FYEQdkZ3s74JS uD8akW5yFcgbnvNkpqUplgtcrap5jreJ+xNoN8rzfrGXY0PY7cjLK651d9Kb0EXT0X22SEvPRfOS h1V2mkMSaNPXPgb6yvwo3HsZ5WfdvBqFe49Yi9wlrDGh5QtPH8+61ek+01GPItTH9HxHHztXCy85 zkS3haw+bnGXkWlSH+xkYpp6LpojveEST2ubZ3nw5mJS7J7qVF/hmYxIHJF+GuvnlEwLEZF15M5A DvBMlrsQztfACuzqrSJSx76oh8/shJ89bay6ujlC5TTIc5p5XkjjeEcYm9HQ2j+500cOdrnZNtLU x4VusQ91ZOzT/3ybQYkj0stRDnNMpoWIyCpiM5BFVmW5+uBYK8Cn/iy0zrV64Ekv6+RklQw2XM80 qI/luqiRVvVB6ww/jLc00Osq6a4dvrGzBYXU3Dg3W/p3SafCish+7nG3hZkWIiKriM1Axnre45mW pUgG6ZP7uZ1xBdY5yuDYp6sdk2I0qqKY6Rg9U075VDxtDVU37VcpjgU2iH1q5L1CXzOGO8Vs9PVE pgWOSBu3+9MtmRYiIouIzUA+DXl3IGz+0QfltHa73wtUH3M0y1Uf9Eqj+piss6tKQH2wnaklcJXi GJT7aabt/VxIrS7+8rCKpcAQIyJ5zjepiPl/xPpHbAbSy5max9XgU9eobmWJClnVMP9gP03Vscgi y6zJc76cpUbka1FfJ8tU9UjosjztPk/bpkTGPciXIbzvXWq6QJBU2xxVDLY0X9mRKua7+/9STk0b eN9bdrHLWi0yTTmrtYpMjEPhftPcmWkhIrKGmAI5wAvqxdXgIRNdZ25Jimil6upbbZklVhTwKMxR UQ01ck3KVlloqUAPHyaVEbBwbvS2F4vYwg+Xn51idIp9rLangWomrfIrqqG68rH4wmsstsCqQuqW V0MlfyetrtJFZT+7yaRMi1EmWK2VCWkxSokojcQC2C6PU31Qzu6aZH3O5H8dBTdPOax6fk6zMOUH eiI0ttjClIKuU85GoQZdL94ToFGa70oybOOuTItQRihvb885LtNiRGQJ5eDXBEKYr7Es0zLHzYoQ 34RX66Jqifs5bOO9FHsIYrZr6zdLrc60CGWGkwzJtAgRWUM5+MlGmZYjy/lTW63cUeLX3c/YFHsI dw4WEdHMcn9kWoiILKEc/KZhpuXIar7UUX/9MnDlNiUYUjEiIj72LNGF3IhsphzMiXsHZH3kbX08 qFNGrt3YkmKCiERElDT7ZYV5eUQ2UA7m5bqKRazNYBd6yR4Zu/7/Ut4FiYgIl+Z+yrQIEVlCbAaS 3jAmq3WyqWb+56Lcskm20lSDfI5n72vjIN/lKcn0D3WgB72eUZuzdqEuFyxyquW5R319UUTdf4NS jtYfF4W6lPaFC4qt82vM8Phnh2mZL7D9DH3trG8+U/I77a21N3OPr9E9RHkj8lPH6kJNuSPWL8rB QnXSepHyjnSuy8y2KLfsSwtcp7/dckv+trf/qW3XXDe1RaFlGE+OS4zzZprvTXG083mIva3wch4b /m5FpuA91ArspRNeTTjRVFH8GYdpQF8fgd0E9tDGL7lnhpqll/fskqe/kQ60g/Z+AJ8ZaGSI8kas TcUS9QSLyF7KwfIkUpn+y5+O0dfzMY/vO7RzDnhKe33Nzq3X2wA91cvz5llFO0cYYKfckkGae8hg mxkWK7nH1/Z0OS51iIusxm2GONhroL8P8IIHfKqZlvZ1Qoi35kR/GaF8Ou9+HDTA76H1VkVdz+ro JvClNX5yh3vs72X87ErwkA+M8LW9nGe+71HFBrhSW+dZnKe/wTroaYEv3eNqZ1rjAu1iPhd32d+J 5uIZBzoqz8yyuqoe1z4WjPJrPXQ0HgxygJOt8KNxejrWq6ob5S6HeCi39fnGGOCDPCqlgQmudb+N zQDXuj8LYoiVZeqG+JuMKM2kqED29rV6jvECerrcDj73jZv1tY3f1spn8axqeZzMVhoiRzmv5pZ8 Ettp2C73nbsJWtvbV97SxEv64jZn2tKmYDe9ved8LW2ig8PNKiDERrJ0t6FH03nn42b32MM1DCr6 2gOaudiVuM8svzvfhzbT2TLzPA1e85H/YV/7+iS2yFjDPe5ysB+8n9vb3Y7SxN8mmOYc39nDAYbY zfmu86Z+DjDXJF87VgsVjMptV807RtvK0SZge4tsZH/TvaiPHXxoBzVtYFftTYvNkfZeZwntasfm OVqsi2Z2cgBu0dFBWRZMpaxR09+ZFiEiK6gAK5MMTfCDP81AY+PxgvmxIB+tvGcvcIm37eFucJcz 8rTtpK1t3KCXebGS8rHH/5rct/4j3eB2vGuGH/1pMWp7QLvY+Z5+1twoO+JOn6vu9FBuynJHaJln vyazHOA5vULqK1DbBBV10d3VqqumvKYG4Scf2yTmUFpTRU3tYKByRqgGVttNGwc42QbGuVItr7nb aw4GQ+zsOZxkJbo5WVcdtHai+hZqbR+n2MR8R1rhHpVt5kU08ILADl5FZc+bYJBj0ViO9gbY0yOx nZDVqvvNUSp70Na40mfeyDOuyv6nsk8tssYoE32rUqa/tjJNpVLkThyRTspBkKS7WbmYp/e/Ht85 uT+qcrmf6mgQ20P4xVf5Fpg2tg36WpnrLb53bKv001ybp2Wx7APnuMQfpqqEKvmCaXypku/BR94J SX3M094hWaM+2C9UU4LVVmB57BvPsTLmRFrJEjVjG+wz5WBhnvhZOZZrabCqenlRPQ3Ul/d7XqkR lsS2VpdbpZnXbex816vpbc3c6TRVNdBAVWI9L1dOuVibFcorF/OaX2GFxZZjN1+C8ZrL0UB9NXGt P/KpDyq4yQsaecJUk+Ro6i/NMv3FlWFysizaWUSmqJBK4y01sZX9Pas9jrOJ7r43yOX20810/Q3I rXuJ/WPBDof7w2lO8ZUmntFFjhnudqc+ztbWQqt0xGnuUNOf2jrDHm4zzUv+xj8W4zE19HCG+ZZo Yivb2kMvn6jrhhRvyExHO1e3jH4p+amstq9sH0pfKyzS3G4GuRmLLbbYP2CR+eqZqbVNTdITq+zr ZBtajMVWu8vz9jPBDrobCi7QVVe/uNBK/6CaA9TT0SC3GuVSHUywxle6OMwEK1X2LHjXnw5Qy3BT 7eNH+6jvFb9pppPx3lPdpmrooZeb1be9RiZ7xQZeAre4Ql9nW+Meq5ztQeOcZ0dzjXWT3axQ0fva +TrTX1xERJmnXGrNP3Gy5nraBI96yGqdbe8sQ5XTJl+W9e1dE/u0xD843+6We8gwLDMPVX1vGy18 icBcy/Cqaqa7TzfLPOtmnGFzLLIEVTytvMF+NldHy0xPeWX2S51dlVXqA/b3Skg9VXKPG630oAtw pvq2ic0Lj7Md3rGZVp6zO0ba3HQ764OTNXactn52c2wDHk72qsr20dFusR2JsfpZ6kn9dXCkGU7z jO2d7lcd8kTDbehBfVTyqn3wvV3V8b6GDjPCat18hnsc7Ad86iANfZvHU2lLR1pqmtlWW20u9neK Vbbwsd1QEVs6L9NfWkTEekBOEHCYu20ZZ4OH/O2S3KMHfGMD1xntwEyPpADaeDWhcO5TneWB2O5N NvG1AXmMDRIjsH+Im/Cllfm6RnchRM50kEMzLUREFpDiDKSNP7zrpaxUH4ky1pleyEL1QTMLI7v7 iIiIrCOlPRCaejHTIwiJV1xruMaZFqMQdvSWrpkWIiIiIiIfKc5AygrPudGorFUfHJbHiyIiIiIi O4gUCB7zkNeyOidKm5ixckRERET2ECkQd3ve6CyPR1xFPR9mWoiIiIiIfKz3CuQ6E4xRNdNiFMuh uRHCEiNy+IqIiEgXCSuQnFT33UuQ4gMhXuWTLAiYGA+HJJnEJ6dUjC7dVIhS+0ZEpIGEtUE5Cwk1 G8C/j7g1IQZChPJyrCjmsXGp72M+1dlPQ5VMs00SLVdarHoC31j52F1bneLsJf7v9T8ltzoWEifv UXJX/v+XhzXWqGBepEAiItJAwgpkQ5eZEmqs04qW+d3/LA11uaWccn4rcngX+M2QEK+Ybtp5JYm8 7DlW2V8Fq+OqXUFNVXzoF7urEmebwqhmtoW2iCPsXnnLfKG1HIsEylvkMzvbyvwkfxPlLPezOara 2WZWW2l23I6yERER8ZOwAumiS+hC/OBaT5XwwPubFYvMVFo4XL8kFAiTE6o9xy0WuFafECS+zhZx xxE+TUX35B7d7nWH6ZvCtaeZ7D1/qG1fHbPawi4iovSSFZvoy/KkWS0ZzjGnlKkPmlrir7Re4Qd9 9LCrcaGoD8YlEKHgAQ0dkDu+8w3zuVax8InJsI3jPGiEU8zSV2vHe9af6bx5ERHrIVmxI76qhG2F zrIkXy720sI+Xgk152Je/nClL/RzZGg9fqtqQm/+F2nmUPdoDmq5w0xXe9CF2qcgxZ72xHJvedMT ytvVQZonnUAtIiIiL1kxAwlKVIwzLfdYpoecFEd5OS39/qO/7vY0NUT1wUhtE2zRyZPOjiW6hUYe c4uBOvk4RVkq6+BWbxpkR49pq4u7YvnTIyIikicrZiBrStBG5jyLPZHpASfJLhaYo17Ivd5vkKPc Frq0b3ow4TbNvOkIP+WJ97ybkd50ni3dYJOUZWrgGMfgA6OdaandHGK/KHthRESSZMUMpOQUyAXm llr1Ac1DnoNMtL8vjHFu6JLOsjopy6daxvrGWfnKDvC2do50ZWjm43u63GgjtfSitrq7z6+h34GI iLLPeqVALvFbiVt7hcvRISqQefq63o0eUDsNko7UIum2T6uk+1plx5qkon1DVf+1HeERU1zoDyfZ 38XeTcOdiIgou2SJAikJMa4wvdRZXq3NLhaknHXxX55yoNbGpC3/yWuOSKH17XZ18Fq2eeVcZqQp 2psYsqy7u9brntHY7Vo61auhOspGRJRdskKBBCUwA7nGV57P9EBDoLkRKfcxX3ejvO74tEm50Dy7 pNTDxQ53kIVrlTbwqBtdr7ffQpd5E6caYpzOXtVGd0+Zl7b7ExFRNsgKBZKTdjPeG31eaoKWFE2v lMcxXHuHGRL6ZnxeXrFryn2c6gQdzV6nfA9jtHek69MieWUHud9k5/pcZ4e4y/Q03qeIiNJNVlhh lQs5Dtba3GNKmUnItKNlZmqUdPvzfG2ETdMs5atOCaGXXqroZIQG65w51tEu09r5Dk/TCFpoga8M dqJyDtTVVum8YRERpZKsmIGUS+sM5DGvGJ7pIYbIgUkvxf2ujZrGpF19rDZD61B6OtJFuhYwC6GC mzzlcV3NTONItneNcR5R2Tnauc63abxWRETpo8wrkBc95WUVMz3EEDnG6KTavaGTAa4pAQlH2y60 vg7X3+HmFniuiZcdrUeaFrP+ny2cbZRBajpPO9dGaiQiIkaWKJB0LWG95i4vq5bpAYbK5qr7NOFW 97jWcB1LRMKROoXYWxfn6GxxIWe7mWyhfbyZ9lFt5hyvG6S2c7V2rR/TfsWIiGwnKxRIxRQDhxfG eFcapk6mhxc6XRI2Rz7PJONtXkLyfemgUPvr4YQi9jrKu8mjbnWCBSUwts2cbbSnVXeqg9xrVglc MyIiWynDCuR9Fxhi40wPLg10TzA7YR/LDCmxZbz3NFI55D77OFjXIs5vb4y9tCsxN9HG+hnrPvMd pZOn1jE3johYP8gSBRK+49aXTvOsLTI9tLRQ01Zejbt2F409UCJyLXOV+camxb/kfFs7scgap3jD aB39XCJjha1c5m1X+0wHPYxMsy1hRET2kSUKJOwZyK/6eND/Mj2wtHF8nO/aaxxuzxLZOIfVrlbH 5V7ybhrMIm6xwo1F1tjQ807SzcASGu+/7OoOU51iqBZO816JXjsiIrNkhQKpFPIMZIFubrRnpoeV Rtr4M670SF20yhPZNt1Uj/3/sH3SEix9kLFGFlOns0k+c4gZJTbqf2nnKZO1c5s2rotCM0asJ2SF Agl3CWu1I52ZQC680slBcaTE6mkP/UtUqv9C0jxim7T0/7yrfVNMncoedYbu7izRkUMF3QwxWGU9 dfaClSUuQUREyZIVCqSKFSH2dqRDHZPpIaWdvl4rpsYZGri8hKWqCo4pZrcieRq4y0lxLHh2NNmX DsrITKCBASa61GStneHDDEgQEVFSZIUCqRri9mNf2zsn0wMqATbRoMiotDeZn4F38CrY0jNpvEIr XZ0UR71KHnOGIzIWvn9P95qitSvs5+4SMTCOiCh5skKB5CgfUk/9VHNdpodTQhxbRGLeV72RkdD1 VUh7To1+5nk6rpqHGeM1vS3JwJ2Acnp4zSBzddTH5AxJERGRPrIimCLlLQnBX/w6f3gu00MpMQ5z i9nqF3BmpivyJJ76wF9pj3YMFZXzu4P95uM0rP7nYAeNweM6aB37XDQbGOwBbd2UcH728Gjsald7 2W0u08OxamRMkoiIsMkaBbIoZQXyjEnGZHogJcphHnJZAeUnuNZmsc9r9NJGlTT5+uelnDUOt4On 10oEFQ5VfaphbEGqjiucHrcnzGnaOc1EV6b9DhTF4Q430yM62s7Jds+oLBERYZElCqSyRTZKqYe3 3b+eqQ9OcmgBCuQiuzok9yjH1h7KtKCh8IV7cj8faoSBa2VOL5z/Ge8sh3lK3YyOoJFrMdyVFjtK 39D99SMiSpqs2AOhhn9Sav+dfp5WM9PDKGHqaOaltcrG+MAt+UqWZlrMkJifz9j7Hk8nlJVwoKMd XAIhF4uni1Ee9p3W+kXJqiJKOVmjQFKxU5mvt7vXy4Q/p3oi3/ECl3s000KVCNWcr19CLXp61rVZ YmKxjTtMsqOTdE4yOH9ERDaQJQqkZkozkCOcp2Wmh5ARdrfa53mO+zpTk0wLVUL0sNwrCbXY2ttm OSxLjGorOc6bzvOE1h5MQzS4iIj0kyUKJJUZyFEOdlSmB5Axjs8T+elOdfTOtEAlyK1uSrjNfXrY P+2mxvGzn8Ge9bOWBiS0JBcRkQ1kiQLZwLwkW56tfgmH68guuvsmlpPie4PLyHZ5vGxjX7cm3KqX J5ydVQt9m7vR25roppdPMi1MREQCZIkC2SSu0IDrcqc/Sjj2avZxlLvAqW7IQOreCUn5mIz13Vq9 vLaOofHcODLZX2VIEq8eO3rLyLhtuEqGyk431ZEu1mm9syaMKL1kiQLZzO9JtBpt+HrkOFgYp5iM W+yiXYlfe5kuZhdTZ5Db1yqZ4kBX5Tlurp0uGluWr1Y3XYtN1FTNMUlti1czUjUdsmQ35P/pbLRL PWbfOEJlRkRknixRIHWTyOk2zWWezRZHlgxSUTdHeNcdcdZ/x08W+AP87K3Yyvtf3s4Xgv17K022 CF/5IFb2uwkxw9M5JvoSVWwq8JGZsRo/etvc2OcPYrkxxnjN5Dzf7zIP6ZzH5HqSrwWWa5THz4MH 7WoDlYodzTneSerlg5v1sb/3w/0yQmBvL3rKh5q7owTcPyMiUiFLFEjthL0VFuntrhLL8p3dnGxY 3O/hzbXQwgbuxIW20NaOlnlSA21s66NYrWWa2dZ+Nne61vZyCR6zje6aGmKmjXS0o0GYraUWGnsJ l9paGxuahO3tpbmm/vKa8Vrl9swlutvL4tzj1bEg8FWMzy2b6WW3WBZXkM3ji0kzVTg9Pe70jIVb LIqt3esVc7VydZQuNyKLyRoFkmjAu6OdtJ6a7q7LI+qZFlfNN30j8Ied1MYtvhf4USWne11gnl18 YYpZquBZq+3le3/7wjMY4C6/ucP1PrazhQK9Md+dlhtkAG7wlcC1rjPMYoHAGu+73yUCbbxnCqZZ 7lDVbZgrUxubyrGdj/IE9b/dQ8qpGQsP/x8F77ac6CN/JXnndjLREBdn6osrkvquM0457V1U7DJh RERmyBIFUivB+Eln2iEtmbdLIx973cdxmhLMsh1oq4J/VLMN6ihnmYNQW3n7aekCbGZPbKkDNrcK 81yhkcvU1tk9BjrNh9hYO3Sy0GoVNUNXS32vOTjAN5aaj6maa2mC/u63n/MM9GCuVF97z3idNIsd T3OPg+1mtp3yzEzL52Y8XJseMTOCZKhmlPlZawZe1eXesYnD9I8tOmYLJRGeMyL7yRIFkqNSAnOQ O81Jetmi7HG+q2xuO4/EUXcP7xvuE/dZqZbVLvS1Byy2rR6+9ZBfzRV4GsssxSKLsdxC7O0cP3tD f1+YrrcFzsYvzjbTMXZQXnUXmqGPrR1qsDdMdL92KpvkDy0EAm1d5F7naKGJ9vgMPKS+KZ5xmn9n KNt40ACnoHeeOUhFb3nEw0Z4x9dm+Mui2GPsHF+mdAcfsKf9k57FpJsc53jXNro4I2tS5S5b78IG RRRM1uxBV/dbnGlQX/eycZkWN2u42c6a4xJHxJFoqamH9LGXHdTAeEe5xT5OM1ZHTW2ZG4RxocZW oZ5aWK0xXnSki1Vyly1coo9GXsR+FmpsaxPxuq5u0dK9qrlGB1xid01cYBOvxvrexz74yRxbCbTw sf/53KnqGGp7HO0EpzkF3OPcPLIHaqrpJ9+aY7GVVlppufKq29RUXe0vRwON1FNDrQQDFZ5vKx09 YI9Mf52FcopTPOpIe7hcg0wL48+4gulHlH1ygoDD3G3LDAvS1/Fax1FvhiOMiDbPY/zgWJNibwFn aea0dWoE9s+zOc3bmlhlN69olWnhEeRmUS+eKZ51fwHlf1pkmtNcb46ZfjfXcqusUUVd9dWzkUa2 Vr9YpfK5k5yve6ZvSTE8bJC9XaxeRqVobUJoSeAiSjNZMwNpEPOnLppAHzdE6iOXAS7K/Qov07kA BbI2b7gB52SF+pCA+mBNIYucDTSwlX21sEW+8j/96i+z/eFNT1pslZWqq2djG9tcU5upnW8Fdydv 6uZnAzJ9U4rkZCe7X0f7uUytDMnwvdqR+ohAFimQTeKy5j9BRx0yLWrWMExFh+ceNdDcvc4sps31 rs+02ElTlLo51M0eyFfSYJ2lnjVmmeE3s7zvRfOtRj2b2txmtrW1mkbr78Ystcr6f053mlsdqJML MvIHPCKutYKI9YGsUSDbxBHW+g4rXJBpQbOG1W5dyw//Uoc6PVvsIkqYIw20ppixl7OpTfOVLPGz H83yqWH+tFJdjVxlgvtsmdXv2DkucLYbtNC72FeG8HnL3Zm+ARFZQtYokMbFmilOMMJbmRYzi7jc QWuFbq/nADe5JNOCZYQKtjXGwQm2qqapprlHgTl+0s4o29pNE4ttZjvb2ikrt4yruMY5rtLC2SVq hvyzFXGau0SUfbLmdXVDi4o8P0t/T2SPuBlnmrcLyPJ9mRFZF9+ppOhiWIo95Khvb0d4wlh13Oh1 vVU13mlaaOtoNxrm20wPMx8bGuhZrzuwBF+tnsqTMDlifSdrZiD1ilEgvVyxXuYcLIzLnF9AaRXH uGI9XWA40G2h9XWAynp7RKtcY4O5fvSJdz1ttkoa29P2ds3YNnZemnjKR65wn2tjbqLp5U1DMz3k iKwhaxRIRZXMU6eQs6dpnWe7OOItC3Ut8Mw5WvrO//KUJGLpVJqpYkMf2y2k3lp5TF+X6RQ7rquu PWOf//Sd9w1ylWUa2M1OdsqwGfzuXvWyE+zqhjQrtddtpn5GxxqRTWSNAqG+Hwtx5Hra72tZ2Kzv XFeEJ/5FLsqTSSNnrXhSpZc6xcbmPcSw0BQIzYzSzWwnrHOmgQYxO6SFZnjXeI9apo5m9rTrWtv0 JcfhDjdQB92dl8arPJZleVQiMksWKZBNzShQgXzvHm9mWris4lmb5r4Nr8uhHvWqjrGj1T7TUxWr kKOC6qpZbrHlAjlJRDTKUVl5K63Jl8W7MioIrJZjedJxkspZrZIqalhpoRX5+qnm02K3sg9waqj3 eSOjHW5uEZ4hNe1ox9h9nmaK191liXr2tbddbBCqNPFwlhNcqqVLEzYniI+f/G2/Eh9VRPaSNZ7o 3G1lgclp93WdtpkWLqtoYXCRzpTfOd6U3KOvzZejohoqWegdI41X17EOUTGJR31FNfXUQY98bn11 9XWqhs70glX5VEsilPeLB02ws27aamCFhVbGZMzBljYupofWRob+2D7CVm5JoP5C33vXp36w2lY6 aL6Wg2P6+c6FAnetZaMXBmfbJQpiGpGHLFIg4wz28DqlJ2mynhqmFsZ9phUbffYCtV26VtmnRvhE HW0dpm4K15/kfs+vU3quXvbQ1ZMhrMG/aYhZttfDLgm27KNvGl42TlQ+qWzzs3xmnC8ttplW9kl4 NKkw3M3auybUHbCF2nu3BMcQkf1kkQL52eleXavsCS8bkWnBsopACyOL3cZcqaWXY+/rc4z1qp9s obP98+ThSI4F9je0gMWkS+ygp2ts4OxQxrnca14yQzNH2T/uVk/6Li1xmi/0o5eSbr3Yp970gbk2 0tz+9ighw4bLjHZJIcYWyXC9wGUlInlEaSGLFMhyB3o7X8m3ehsXBY7Ox51+d2sc9cYa7mpPG2eJ 3XQJLfnWMfZzcgHld1mjn69dYFSIo13hdUP8aCs9HRjHht23zl/nJSQcbjLRyyqm2Mun3vW2X9Sz l452ToukeZnuXDnu0SiEvlZqaZwaaZc5ojSRRZvolVXwd5435DVOckekPvKx0uA4Qr6s8b7xHjDV Ge4K1Wv4OcsKVB808RaaWZTvO0yVSg53uFXeMMx1ttbDgUU+xLezwOq0BCG5SF0HGpni73EXuzgV H5ngCvNsqa02afRzb+JlQ3XT1YUp93WXAyL1EbEWWeXavXm+xECnOCxKWrsW92hX5CbxPC/ppaW7 7WuyJk4KVX3Md3eBAdWhSSzZ0b4pLPUURgWHeNRUxxhuP72NLCL5WJ04k/smzslO0cGfofS1u/5e 9pYT/eQ0+znDhDwJfcPlCFP8oXWKuxdrDC3QxCVi/SaLZiBs6ftcI8EXzI4rx976xVAjCznzo5HG W2gXx2uXW/v2Av3Vk+VMJxeazKh+LJJAD5fF0kGFTwcdMMYwN2msq46qrVOnmY/S5o99lKo6eik0 q6pyWmqJv4z1mMttZn8dQlluyk8Fd/pYf83cUawvTWHcq2Whbr4R6y9ZpUB2zN0D+d0doa6llw2e sGsBiYTeMcxHKmjrJtvnO3OdtnqFlr9uqEUFONX9R51Y9vKdLDA7rb7K/6qRtw1xl0a6OiRfrvQW 3nRM2q59uJq6eypPAMYw2MgxjsGHXnGMylrpHPr+yG7Gu0UblyfpIfKCl0OWKKIskEWb6Ex3Vkxt HOr4EK1HygqtPZnne1roTa/41mYO1tFGBbZ4wtueDOXai7QztEjvk9bGqYjLbBayQ1/hvO0lH2mo k8PVBtOcl+ZXj/ed7sE0Jr/93cve8KedHKVNyH3/7AwNDCxg5lY0D/nKPWkbcUTpJav2QBpaCG60 WaQ+1uFVW8fUxy/u1dVhJuhhshcdV4j64Dh/mBjK1c/Ru5hMkLVNBz3SZAdVEPsZaKoBPtfRkZ6y zDZpN5Hdy5POMDlt/Td0muHG2s8jWjrBa9aE1ndjo+ymTcL7VE+5KG3jjSjNZNUMhIOMMN2JJmZ1 Op/M0NtZNvSYd+VopZNd42r1sX4hhPoe7d5i3+tPdHTMY6OdZzQs8fvzvhd9YBuveitfMMl0MM2x rk/APyVZVnrVy763ve72D001znS6Bu6NO0rafb5fTyM8RxRHlimQC+3hGZencYGgtDLUkQ5UV1uH 2SShludolPJWegtP2raYOlfbPBbm4gaVQ928T4Qf9TBfcy0dWcB+UXjM1MPlJZQZY43RBvvSHnqF lsv+AU+6Tvs4aq62r1dDNM2OKEtkmQIZqYuHi9iqXf+YZaTxVhnlmiRt+Zdqa1hKM4KLVXZVsbWe 9p3rwAwnGZuBe/Uvz5ull7tMVcshOhcbPytZftdNP0eU2LhWGGmY3+2j11rGEskx3Sm2d2ex9W72 j+tLbJQRpYusssJiuU0i9RHjE6+YZI29XG47nZN2BavqTBd4Jmk5PjPZpDjq7Zi7yLWFCmvlJClJ NjPORm7A517US0UHOyINQdYbelkXKxxdQuOq5EhHWuAF51uqi94pRTSjiTdcbx/3F7kYusRQE0po hBGlj6xSIMvcXOKRS7OPVcYZ5WP17e/x2Mb1oJQMR3sZbGxcyxUF0d+1cdVraF7u506eibNV+Gxl RuzTTnbCdwbrrVIa1Eg9I3WyJo1mw+tS2ylOMd2Tumqop0NT6u1SBzrXYUW4CN6ocz4z6YiIvGTV Etbx9jfKwLSuXWczs71qjN9sq6P2+cJGHOjulFTI105O0m7oPp/HGYl2tba5Fl9zdQ7J+isZWhm3 jsPc9wZ7S+AgR4b6W1+ok776ZGSc4z1hpn2dkFKy5zVO8ZfHC9zlmOtgU7LrLTMiq8giM95h5jrG pnEtl5Q1vnCD9rr5wtkmelSXfOrjO1J0XWtmXzck0e5PT7kjzrrlVfJ37HNdm4Rg+5UsdX2/Ttm2 LjfOI3Kc6gC3+DGka9X0isc8npFxtvO0UTZxoiMKjVBQPOU8orsOBcZYu84xkfqIKIKsmYEssr9h NvWML9yc6btSgow3ygc20FbnQr+DS2zm9BSvs1IrgxMO23esAxJ4u+7jhFiqV0YZ6ok03bPi6G8v 3Ys4P8MQY63RTmfNQrjeYh31djxG5uZQL1ne8aCftXNy0iYDPzvBHm7KV/arbt7JyHgiSgtZMwM5 zXE2RRufZVqUEmGuZx2tpSc1N9Ir+hWhwt/WM+XrVXRhwqa148xOaHFmS9/lfj7Ud0WEPEwv+xQT OHALA7zhURWdp62rfZ3i9aob7UWj3O3wtRISlNyIn/KKKro6zntJ9dDYm1Y6xB95yi5xRkZGE1F6 yBIFMtTCWPiLzSy1PNPihMpPax1/41YddPW+00w2SPdigtRN1jCUNK1dlPNiQi2uSiiVK03zKBBa eCEEqZOhWVwRebcwwBjP2tD52rjKV/nOJraQWsVolzqXpBYKw6GmC0zVxfU6JHnnb3eCQ42JHX3k d70yNpqI0kFWKJCFbswTJryx9zMtUIjcaCu/xz5PcoE2zhO4y1vuzl3uKZohoYV1udttlsVd+1Z7 2Cmh/nfN9+DubUhIcifKdnnswYqjoTO97jn1DdDahT4GX2mdYPDyK30O3vBNhkb9L52MdKc3tHJP Ei9iRxjmxpjPz5XrJEWOiFibrNgDOVZrJ+Ue3WOxizN9X0Jhia7G4CHbeNIMDXXSPmEbs5ZeCyHP +L/c4Uf3xVXzD4eZkmDw78UOzeczcID7MuQNcpibk9jdmGOk4ebp6kf3+/fOx5dA6mc7+Sf2+Yg0 ZERJnNnuMlZbA5KwaTzDKu2M9WimBxGR9WTBDGSkf/KoD9r4INMihcIEm8SWAy73gZO87XlHJ/zn PMXGoakP+vna1DhrnpNw7ojqglhQ93852sOhSZ4YO/gwiVb1HO8VY20Vmw9Ptlmcd6uxBV6JzdeG +iVDo85Lfdd7x8Y6OTeW6it+7tPWUY7K9BAiSgEZVyCrXLdWoOid/GV1kW2CTAtdLMucoV3uO+kC FySdW3Fkiq5ia3NrXHFVx5mf1Pr3prGFnH/pZUox32S6aJuCMXjVPAt3/9jXpXH+3g71mZGakTWZ +8o7z1Q76e74dXbiiqaSQ91tWKYHEJH1ZNzIu5+u6xiXbmFqEUHjxjvZ5gms5Zc8FfzhB5XUMkd5 qy33WtJh997XL1TZ9rCbm4pVItckmf1hO5/YO/eosl0Nycib7E5uLKbGTzraqMA0slX8ihoqKCew yA1Gqh2HIsxRRV1b+ssQP6qSIdX5HxUtsK/7cbzjDdJXM5fZLK62K9xqkpU6+dplGR1FRLaTYQXy rs8LeFS1MaYIBfKLXnGE9ssOTna2HUwvNF9HccxUMbSMgv9xq5aOKjJkzAOaJpkRb1ev5zs+xSUZ USAbK+e3IgOXLLBzGq3EVmX6Dwvf5NkE76235xxlF9fEEUHrWgeroIKxjnditBMSUQQZXsK60K0F lB5U5C5I9i9g/T8LVEGTpKMJjc7zPh8WFV3qrCLOL/FEse/vhbGHH/Id72JFPtPekmOXYj3h05l4 KvPqg/JrjbCnybZ1SLFuur95M1f1PK6BQzM8l4rIZjKqQO6wkz0LKN/MCnOLaFd6VMiqAhdJ4mdc WjybO6lbRHyry4r1TCmcjS1b69vp6cE0jKB4/t+foTBKz68oOVYXMMKzvW2+fYvc3bjY6XnSuV2v g4MtyvRgIrKUDCqQPw0ucP4Bu3gjc4JlEb/bJS393utRfxZ45gfvp7QJXHutOUhv72Zkv2rvBLeN 1xcqu9EgT+tiZoHnp/rTsflKztLTIUW+0EWsv2RQgZzvbFUKOXeAcZkTLGv4Qj0V09JzTf0Kia51 sQEp9dx0LTfQClpmJNRgNfXKiDl4+GxluD56uK2Ac1cVsL/Y15m6JOCcGbH+kDEFMsb8IvIoHJhh f97sYKLd0tb30Sp4ep3SsZY7PKV+d/fRWiVnGpy2URRFRyMyct3SQWdvm6ltPrNrnrWxfQqo3d3p OuWapUdE/EfGFMi1RW7mVbRpMQHx1gemOCCNvd/rbvPXKrsx5TRQrdaKKUVj9Y1P4zgKo1OSGVBY VcCnVAinl7Cp5B7XOiOWhhhWu7fQ5LU9nKiLlZkWOiLLyJACudVexeR1PjgNbkyvysmX5qi7HJU8 v1atHfLl3hhsTmZuEX5L0w7Iv9R36lrRVp+2RZLmu//PJgUEwzwjT6SzkqOBDXySRLtZdsc1LsPu Zqcsxxy7W1xMnUn5Fv7G2EiOGvlmUKfLyf1drtJRjop5Qq0v0UKObRL2gW9pkr8dENu3ukaHWAbM guijawlmgI8oHWREgfzppULfdP6jU+ghFRcZRB6TxDuN84vB+liQp9ZDKuV7Y7whN0FqSTNbJVXT eoUTLfNsnuMHQvGv2XydRay2ZmfkLh6eb3TxUsVfuMzV+Ef9lKWoYlGxZtzPey3PUeAmc1yoS56y LV2Z+9vt4m/LvJGn1zMttsCOSfnc3Km/oz1nnomuKLLmGXaL4vNG5CMjCuRipxb7aKyrtk/j6OsX W8txTGyxp7ccFYzGhcrJMTBPzQFOsXses9oP9bWZLup5M7dsmvHuyKNknvO5PdWx2JHq2MJzuFoX GzkS3Kg7hjjQLDmxfz+HdJfesU2a7v//86C7/BX7fId9NQqhz91NWaesl7vSPpZ16R5nJKt/Jcyx v/18oqYKGOh2VNBHjmZm40tN5dg51x5ptn11k+Nk422oso/wmf/JsZuFlttLjk18q4Y1jpVjN4vw hnpyYuFpBshRwf0WeMDVcnIzeRzkeBs6N5+JSX9HxH6Xy7zrNhNsmifkyhseUMujPktqkekgU7xv cycV+zi4Sm0XlNTXF1EKyIACec9Mx8VRr9M6i0sFcYTtTVfROAzwhvc9r64n3Wms1/N4gH+gnHZW 5UkV29kdbjDArDwGrTe7V5M8bmA9/c9gM1RX23GaOgazvWZobFHmYn8Y4Eq32sQ081zlgoSz/hXG J2ldwPqX+gY4GSzxostD6bNFLCR6Xk70br55XslQw3ZejqvmvUb6yAkmWq2CAH/5Az+oZrrN9EQb rXzpxDy9T7Wrb73gfJOd5Dx0d65V2unvcf/4y/0CzNDQTyo5EYfo5ztfudxbbjfRMGeY60xnmLOW 0+hRa80HF8aUw2xznO4c/8vzejRHY9S1OEmPjUr6qmtwHK9s95lWhA9RxHpHEATBocGPQclxYDAx rnp/B60KLH8iuCLPUaVgaRAEC4ImQRBsE4yPlXYMbo99uiIQCBYGuwQXBO8HdYJTglW5bR8Ldguu CZoGz8WOhwWbBJOCK4JKwbu5dfYKPg+C4JOgfrB30C4QBMF5+a7/cyC4PvZ5XO5V/6Nr8FXS96lr 8HnYt75A+gb3BkFwaXBjSP2tDFoWUHptcF2JjCY/U4LDCznzcdAjz1Gn4NYgCIJgj+CDIAg2DYLg iuCCIAg2DZYHQTA72ChYEVSM1V0WVAgEA4Ig2DwIgiDoFjwSBMHPwbZBEAgaBQ0DQaNgbnBmcFcw PAiCIGgYBEEQfBdsGcwPagRBEATjgsOC84PzgiAIgiODZ4NbguuCIHg5EAjGBUEQBIcEA9YZS6Mg CILgr0DwTRAEI4KNcs/VCb4KgmBlUDFYlFv2ddAlgTt1YDAtmB40DwYWW3NJ0CImY0REic9AXlCv iDhXeamrfhxLELW9irf8hSa50Y229QqY5xwTvaeG6p7U1zwP5UlgepyPHOVbHWLHKy12nIFWuDe3 zgqLMNz+3o0tda3Ot7RwkfaGWYl3TAs18OFcW4V54wvlPkON9aELQ+qvgjoFGGGfHftGSpYWFvs+ jnqbx+zEPsudkv/rxf2HtzBKLRWt9AnmqeRdE11sSSxUyFI5WGoFqrrDtz70vDoGOscLTsfv3scr 6qptkTkYYQNbxdLfTrKZleb5125sonY43KHrZIOsH8t3Xt9GZuLPPL/DndyPxzRMMmjOwxrZ2hYm ekffYupW9ayLEg4RH1FGCYKSnYHsE8yIu+6LwSkFlOafgTwbCGoH2wWbBkHwQ1AxEAjuC1YEGwcC 67TfNhgfBMF7wVZBEPwWVA8EgruDIFgZbBL8FqvzUexNb9/g2SAIjg8E2weTAkHlYNtAsCboE1wU BMHwYPcgCPoHewdBcHmwbzA9EAgqB+WC7/JcL/kZyNJgvxL5PoIgCD4OBKNC7O+m4I4CSs8OHimx Ef0/jwdnFjLmvDOQv4JagWDHQPB5sDioHQTBecFpQRBUDBoGFQPBsCAIrgkEgmrBtFibmUGdYGkQ BPsFdwRB8HFQIwiCW4NawUZB1eC64MFAsEEgeCAIAsGmQflAMD4IghMDgUDwdRAEDQOBYKcgCF4L BHJnnP0DQe2gQlAzmB0sDhoEc4IgOCzW7rkgCAYFgnIxqY4Krg2C4KNAkBMr+Y/4ZyCLgj2Cv3OP bghaBT8X02JU0C4D32VE9lHCCuSm4MIEaq8K9g5WrlOaX4EEwbRgTvBYsGsQBEGwPJgYfBArnxpM Ddas1fa9YGEQBAuDV4MgCIJfgvHBrNiZl4PVsU+LYgtY44PfgyAIgonBm0EQ/BpMCFYGXwdBMD34 NQiC2cHYIAgmB/8EQRAEk4KlwZvB+GBsMCrPElkqCuST4MjQ735hzAkqxLF0ET8fBEcUUDqjkCXJ dNM8z8Px/8mvQILgt+DnYFrQIPgrCIJ3gyD4Jfg5CIJvguXB27mP0xnBuHyvP+8FQRAEXwV/BUGw MngnCIIgmBmMCz4JgiAIvgnGBz8FQRAE3wbLgrdyX1C+CiYEC2Kfp8T6CIIvgmHBslxZxgdvBWOC 14MgCIIRsXv6RjA1GBX8FQRBEPwSjAv+CIIgCN4Pvg+CIAjmBeNzr/Av3wXHxHmHzlxL4Y8Odit2 keqa4KQwv6SIUkqJprRdoIPxqiXQ4jT7rWOa+KTprs49Gq+HKn71rJ4lMWFLkCNcm0RqVXjaN24o ISlP1tZQJ+Uu5aVOS28VEJG2l24p+rknwy0WFuAe+Ymb84RzX6Klv/ymq6ElLl+6mK6Nc9TTWD0b 2rDQoDifO2Od9FszHKuHM4vs/0gd4zKGiSjLlGjc6Wv0SEh9cKKrirFtb+dVP9ulBExeS5bpJZal /lvTPKy1zvaMI1dEfGzqY3utU3qBfhlQIGdp4+JifnfVDPehjeLcnSsdBDa2jU9NstAiC1FNXfU0 1szmNlQv9sd/awEZebYwXjffuK+I/h93gOb5nG4j1j9KUIH87N0CPASKZndL/FjMZvJeBTyqSj8z k06CmyjXORObOtdxcRq9Fs9+XivgW9nJhl53cAmN6z+q6uRWVxZTq3Fo5tfZwkpbOcxhucdL/G6W WX71qtkWWqS8RuaZqLtK6qqf72FQ0QjnO9LgPKHd81PLbU6NGQJErK+UoAK5spD4r0XT3YOFBn0v y/xquxK5zld+jwWoOMZU14bkC3Kw0wosv8AlJa5AOF8b56lV4tfNLGvWCqNfzda2zley2se6udFH hlhggXLqaWhzO9lWfdXc7kVHe6pQp9/W2jjPnZkeaEQGKTEF8qWZRUTfLZy+9rMyTUHNs5nlIQTR iIfrnJv7+T6ttbZfCL02scyfBSTj3V1Nb6Y1RGRBVNHN1W4v4atmP+VNcJZTc48X+MEMP3nBH5ZY o6EdzbKV8YW+zFytfQbmlBHZQ4kpkOucl1S7ypp7Ko//7/rBMjklojQ/MztfzsOH9faGDULoeR+v Or6A8v6uKXEFwvn29XOZW6RKlZ8Myxfzurbd7Z57tNz3ZmrofTtpaB+VbWIre2iidp42jztSmzTH bIvIXkrIkfBD8/KsxibG2Z4psduRLSwsIc1+/Vquj9s5d618dMnSyesFljdXOSPr5mfm5vmO+I8B RTqPVrajjvq630yb6ewau/rZtQ61j84u9oTPLLW5fnlsIiPWN0poBnJDCnnutrRxvmlyOZVLRugQ qJykhv7VhiUg3afmOWStsp4+1L/AXHWJsY8//FPgvsP5bgplmSwxjva08drlHpemX1FyVC/mj3uE IF+838LZ2HDd1dRdd7DS177wnbHmqmBDg2yor3oxz/yI9YkSUSBTLE9p2eI8V+dRIIH3fGpOCD/X QAVVrLbcmrT8+Gv4Kk9k30SYUcD+Qfjc4uwCSu9wiGeT2q/Kz+5eKbCXliobE6LPSbzc4Nw8CmS1 L7xvYcK9BCiniupWWFzIt1tRVSvW+VUFyqsisCypX1t5VVW30mIrrKGYHgLVvV9M+MqbPBf31esb 4XC/OSk2vp1z88asMMMBehuruuUaa2one+QJWRpRtikRBXKb/im131uOKfbNPZrgoVByo+XYwGCN 7byWvUpYVNDCZkm1nJ0njnC6+M7vhSwrPudA2+VZDU+Obu4qRA1dZkAGFMguds7zS2xsT48nkSsw R2W1zfCc+rpYE4uZlZfKKrrbIRqt8xutYZQG9kpCbeVgnOnq6aKBpRYX+/svb0Us5UDBXOHAhDyN ahuti4XrRHurZFvbWmW6a/xtis897Co5NrObXSNVUuYpAU/091ydL11OMkx0i1Fpke5ojyXo3FgS 3Kx2HuuY9HC8DnoUcu5TJxmTslthS6MK2ZDv7dDYckhJslxrg22Rcj+jPaZtEUbpEzznkQLPDDEv Fj4/Gb7yku/tqXfK38x0PfPkM4yXNQ7XvJC9pAPcaM/co4W+9r5P/SDQyJ52tUcW/pVFpE4JbKLf HEKM2tZy0pJX+0fzsvKHPT8US6iimOn7QtUHuxhQxNl42bfQwCBX5Ev1VVJUdnEeo+XkGKqV1zxQ hPr4zgA3FXJuy5R+xdu70iNq662de3ITWyXDgKT2JMt5xSeuKfDcTfl6rGlvZ3nM215xlnIGOVAr J3qqgDjNEaWZtCuQDy0KxWzz6gLiGaXOi9qn+wYkRfoVyG3FhO3urk3K+yA9CvVs39oOHk3zCAui s6op2PRNcoAhHnePekXUOtkthZpANM7N/5gs1RxnlMfM1cmRSYbIH2GNrkle/yVfFZj4eA9NC3wp qG1vZ3nUZMMdZbqL7eNgVxtjXop3IiIbSPsSVnd9dAylp5PtFvqyTnuPZqV3QE/97JHG/uc7OI4l jJPVLfRdOj7282Ih5gB/6JLEIkrqzNbRODUTbve1qy11WbFhc85Uv8iwKft5IzT7r0me8LXm+iaU uzKwj2dTyjXTw3YFmO4u1M7YOF58VvnJVO/5zir/017zUBIpR2SGNM9AvvdnSOqDmz3un1Clm0FW qg8WpdmMd2A+98HCeNg3KS41tfViIWc21jpF5ZQc9Z1QTJTZdZntRGfoa2Sx6mOkH4qJurWRL0Mb SyuPm2B3l9rfXWbH2eoKHVJMVTbY165bp7SmE5wfR+sKttXXA8Yb4ggfOlk7vT0WLW6VStKsQG5J Yctwbeo4MeE//aLJ1gUslqY1ctNqr8Z5J4cbFldm+sLoUYTpw1WGx/3QC5NTLChUrRXE9Q6ylwlx BOyY65piF+a28m2oo6nqWK961DxdHWlEsfWnGReC498QH7t5ndJTzcjn2V4cDRzkFqO97HjTnGdf R3vMD6Hen4j0klYFMstXIfgT/D8nm2dkiP2Ni4URzD5WpjU4xCP2iXMRp5zh7oml8k2Gplb6uZBz VZ3kkjSOsnAedkucK/DP2dtC78T5GnSSc4o1297Np2kYURNXm+QcL2vhrCKvcL7LQrniMFPctU7p 9Un5+9fUxk1Ge9OZZjpLK3296Jc03KeIsEmrArlDr5B7HOjaYtyj4memVSWUdTxxctLqoPNcAnHJ NvC8i1LYrTjYs4WeO9E0H6VxnIWxkbPj2E17xwHeMMxNKsXV671qxhEGZue4crQnRytPmGBvl9jP HQXO7p5XfZ3YA8ky3GueWKusuc1TMFKoal9Xe90ox/hEXy2d4nWL03a/IlInjZvoS7U1KfSQgE95 NaEFiMK53fIMvQEXTztvpk23v+7pBHyQ4Wu9PGXHpK72q2OKiH01wa0p+wglRw8HF2GHNscFprvB PnH396OjTYpje3yJg0xM++h+NshoDfTWOU/pUm0M1zC0qyx1oPPWsuf6RffQjCNmmex109Szn4NK KL1BRGKkcQbykHZpiCjbR2V3h9LTm1m7gEU6v5j7CgxgUhTNPKJvkm/Om6np40LPtlUrpNeBRHnI vYUuktzgEC1NSEB9cIZr4rKuqqaiOWkfXWOXm+J8I+3jLJ/ESi/RLUT1QVUvu8m4fGWbaxVa/p5N dPO4Sa61Un+tneJ1i9J+7yISIY0KZEjCD6r4eMyLIbzj/Ga5/6Vv8CmRnshc//KF5Zon3Gp3Ax2T pAo5ypNFnL05QwmJNnBlgeHmR2jlH5MLPFc4d2rsoDjrNgrRDqto9vW4ifZyubYeNMHvKYYUWpe6 hrhgrWXIKw0J2VpyBwOM8qqDDNbe4R7wW5rvXES8pE2BDLOtjdPScyUPOdv8FHsZqm26hp4ya9LY 98AEH43/0cLdepqWRMsjfFjE2cbaZCgc+GF2XCv/4nRdPOGpuHc9/mOawUVmD8/PNiVqsFrRsUZ5 3mLt/OytAmJ3pUZjg5zsuzwl1R2Vlm+0pi6e9I4rzXGiDq4O2Z4tIhnSpkAeTdP8A3ZwTsrb82OS 9sVNP6vTNgP5x5eOTrJtC3c62tcJt6tq60Jyg/zL9V4zPU3jLZo7TDQh9jlwhR6O8XISu4FnuToB o4c90mKHVTQb28IAT3rePs7OXdIKh+0NdEw+D/t+3knjHGE3l3vdgzYwQFv9EzIcjgibNCmQL622 axrF7mXnlLzSZ1ls+zTKlxphvyX+P4+lFFamlfv1TsJuqrenizhbzsVxOaClgwddhH8Xrsp7v8j4 tYUxUKOEYgs3K9SwOX3Mc6vLbechkzR3uTZuSzmoyv/TwmW65YtsfLzr0zyiJs7xiqG2d7sWTikB w4SIgkiTArlP7zQLfr35KWzWDc9ASqP4CdI2AxnmtJTa7+VRJ5mcYKsDzChyybGzcoakacRF09QF ujnZEM8W40FeGH95ugB/iKJomAHD1POdEPP8qainUZ6xXDdHeimkl5XOjsgXXflEX5aImqzrOEOM t5+B2ujn/RK4ZkRe0qJAFvtUz7SL/rwxBiXZdrxuaZcv+3jDZjZJsY9dPG+A4Qm2alvkHIS73Zqm nCzF8YeXzPNs0iFtznF2gvGcy6lVwkt24/weSwX1H5u51NvO9YaWzi5yjypezraNU/Icn+CGEhtf FT0NMcqubrCfS3xeYleOSIsCeULbEkhvmWOoB2Je0vE/fO52mOexQ9rlyz4eXesxkhz/87K7Eoyl e6JhRZ7f1NEpB1pPnIla+9ViK5NeRx9pSRK7cVv4okTHeZXbCyxv6WFv2ct12rk95SWtmy2OKY3n 0Md8v3ssAZfVVKnhWCMM19gFWrvJ7yV25fWZtCiQoSFGwCqK2p53kWlWaBL3yvx8o/Q01JGF5qrI BtKxCzLLH3lSuqbCRl7zkhsTaNFEzWIe0uf5oQiHw/D5xwmudY8bVXNTklZ9q13vjiTaNU3CFCF5 rtayiP2+inoZ4SlLHekIQ1P65T3jK89qFQtfVM2mxb44hE9dpxjteTn6OMLzSeScjEiENCiQ99UK IetbfGxhuP6a+iPux9l/udyGJrySX3KkZ2Pq8UIS2CZDdaN9lVBoy5PcX0yNO12clnEXxLPa2tPY WBj07ZxRTHaUgrlEp6SC4exVgjOQ742JY0N7c5eZqL837OPMfC9jixNKXHW2XibjDBvHvH+WlthI 87KpC411icn2c3q0M5JG0vCseiyOiEDhsanP/IShZsZV/z/f+PYZcmCLh/QokNcdF2p/z6joyLjf 8A7zUzGxd3d0UIkseMzS2Qiv5rPi62PztXxCimeaKUmFDmRrf5bAOP/lfJfF/Xvax0MmauUa+7vN H+A+G8e9Hf5CrovqZ7n5LDMRb/k/dneft7Vxvdbu8HcGJSm7hP6sWuqLEgwRslSj3J93fFFG/3UR q59kLreSoXwalrDGalxkHr1kuFMbbeK2+O9UrLPdFT5LuznmXTrrZcg6Tq4DfZBgUJWLkkoLC3Wt KKGlladtkGDwxEp6eNmTlurmSFM8YaUt44zHXN+msU9T3ZT7MhCuV3qiVNDdy56xSFe91gq7EpE6 oSuQ5+1TAhvo/1HVU7meDU/HtW32rwIZFVpWuHSQjhnI02mZF57pCofFuRh4hjFWF1PnLhem0Q// cwea5u1CvD2ecXsCPuKvWe3wpCUJM61U4Sx2b5Lz7M1dbpKrPe5brNHevXG02t+vBspB4KHcWNzZ EJa9kSu8rZf7NXdHFE8rREJ/Vr0U8kJJcexvrKXOV524AijUxZBiM8tlmiDkx+g/fow7VlNiHOgF F3gwjprVtfBQMXV20sXpaZGTK53iCvepUsj5eu50oiVx9nZjQkYEa7N1iSiQfo5Nada5va1zP58V 5/dypjX641Y87XRKIHRkvBxkqJfNdZAzStgOruwSctqJGVbkM5D9yIMqpHW6nqOiOmpra5SHLVPd yiJqb+AtfGhyxrIMlLNGS32KqRVYE6puf07rtI1oW+P19JkHiq15viOLfQxd4FDDQg8z85Hz7FVs CM4WjtErLruh2+yhaQrybO+rkEe4LhNNz6Owr/eLNQktjZZTMd+i4wNe1N2qYvoor44atveVw+2s PE5zaJzpu9JLOWu01911eNa5qjophTlkxL+EnA/kOlXzhaW4zN9OLIGfTwU1VfOPH2xS5Lt7RX+p q5olaQwXUjSVzXSfqcXUauuNUEPhH+he26Z1XJf6wLPqF1PrDLs6sZg6vzrcG6HmhL/EZLfEGYP4 LNUKSNaanwXaeytB98H8fOeihJ0xE6W1gXaOfV5qL7epnNCrXI5KaqmW+yKz0j+WxNVDJbWs9odq qsrxja0sT/NY46Gqbz2TG/uMDzzgGwc5K9cyMyJxQp6BvLFWSIpy9rd7CQ5n7xK8VrKs9FSxdQKr Q1Qg3yuXZvXB9UY42HXFLJRdonuxCmQzA/QNzcjhPRdolcDW/ECHebyYiMXXOjol9UGjlKNJF8f1 9spVH5SzeULxusIke/4md8g3u9zTnv72hM4aOi2rQxtlM6HugXygrgb5SlZnKEBFNhPfW1yYM6Tn dCyBcXU21I2uKrLOpvaOY1v3KJu7JhSZLjTA3a5LqM1gjxSpcH43NWVz46py0mqdNMPL+eZRQVbM ATLNun95G+pvoj7u1dYtWbHdX9oIVYG8mC+BZkTy5IS6bzQ+6RDuidHY2/7Uucht0yu9EMdG9f3e TNkv/Qv7KW9izFkwfqp52jlF+D5cHUpAmM1DDqqen3Ncqnwa+y9bHGyIIdY4WmfPRDZaCRGqAnk3 i3NslC4qh/gzfk/90D1ACucBvXQsYn2/tiPiinv7sAEpuX5d6xQ3JBnQb2s3OrYQY4xvfRuKneG2 abTDek7VaHs4Qeq5yGRX+9TBehudaXFKDSEqkKk2VivT4ykjVLEwtL6eK2G1fqQRHnROoecv8G4c /hbbOT/plADTHGiOqfZNegwHOaoQb5FrihhZIuyUtnhYS9yVYID5iP/Y2W0mOcZTmuvng0yLUwoI UYFEC1jhUTVEBfKRLiUs/SbG2MB+heZQv8SFcfTSQ9Okcnjfo5eL3Z3iGE63XQEhQT8yOyR1vLsf Q+lnXfrrmaZk0usLHTxvnF3dpo1zooyHRRKiAvk4lGnzx+uEnn6lkKwfNxSZKLVwUo9D9LgncKEF BZz7wbV5jj5zmhOSuEJ4M5DJNkvRYig5rna1YzxS4LmD1fJEHH3c5lvPJHTVubr52MRQ8t3fbPk6 2++3hhata5M0hRmc6rtiA+MvcFGukUbgDD8VUfffv5bX3YCri6xZHC95odg6+f82X9ddRy/lKfna Kdrnmge853An57NnG6enK0K5j9Uda7BR9nKHls6OAjIWQmgK5CP11Aihn9/WCbP+jjcKrLlLkr4r h6S8v9DUDni0wIf8fM/nObrCJI8n4VVeLW6P6OJ4UaeQekqUNsYZ5+gCDVbv8mBcOxzPui+BhYRX dXCoJ0MLU/OUt/MpsM/9nWBkqcLJUS0tecMvcVOxdRZ5KjfcUI7mRc5XDgTb2Q1PpyTxpGIdOVfH rvYv/7hJjk10y/Md3GmaHV3kaMzQXG0f2TP37DKXmOq5EO9mDcd40Wt2dZPW+pkUYt9lg9AUyPA4 7MwHGeNct+Apx8SsUIY42rXWYIn+rjDTRnjAt5jtFlRTHctdpXu+H8dS5XCfl/XyHs5xAXjQWCfl Bpq4y1Gx5Ef3etWp7vexw/XL088jjoolx33EUbHV4/u8oa/huMqp5uFZo51vgCVYYTmqqYG39XaG 37HG5Qb42kZ5+n7ZBxomcZOrhvZ++lEGt1NreUFH7QsIUljPqc6Ko4faHnJmnMEwzjHQiGJ9/BNj qHvzuJ7dklAA++LYysehygo32zXPA7UwqqrnNX1j/kiLVPWjQZ5yjHcwPbb896TvDPe5Dm5R3jJU VQd3OMqteV6KxhjueudhoqO8DD5zohN8g1+c5VijUdcqDzohNouZoLf+sZeIgY7yEF70uYNzZxC1 vG2wRx3jrdxrPWK8O4w2Dg842CAf+Ts3o2IV7xmc+xo7yelOiTtPUFHUcpxhXtfCw5o73sgoy0gu oSmQqXHsgNzuCAvdbEvDzdQWD+qunPu0RGuDzXSBZXjY15jlbv+GVOAA72vmsjzLWQ+YbJkz3W6p 5pr7233OwwWOtcLVjkUPl6joJBfiLBeqpAY2yGOV1N2Z1njeDBc5WSWX6IkznWeNbnb1rdcdifsc Yrbn7YsRscl4bZMdZRMLHezfaLOz9V/L735+UkFTwlIg79hU9VB6SpZeXvGcPuvcheOsisOhkp30 d1SxtT7W2sZG50aDDYtannd+LEXqj34JVRlvF3o4kxmGuyWOehV96Ror9XU/rvKHb/Xxsj+1wC+x oDTPeF9d1FHfW7GgJjXc4kobG54nlsIoXU3zmg3daJnO5pruYNVUcaiFDvCV8u5DRfeb5HPNMEk7 i4zRFCfpr6IzXKABNlgnBsHH6xhTPOY0fBBbqGyU7z7Oy/U8u8tv/nKAWSHd3eqO9LTJOhthP70N yVg4pGwiJE/06Sqv5UJYENXcr7cjnGsENrbMvUY4HJub5EfzsJtRqK46asSsuqr5x2RXqW9jj6np eZu7XU3VVVbbRLTS1Xk+0hsbGGJvd2jkacP8rZYBurhGbe+pjrsMVsFD3rSDyw2xRFVwr29s5w47 WKmhN2yqpkWestLGqOEeZ6I86sR+OjlutqEt1PCs4d4xF0PdgAFm6OBEyToEVgtJgQwPbckleTY2 wgPautrB+cofdLD9bVZs+25+dnS+hcG1Geh5d8fx5p0MTTzmeCM1dFdSSacKZ+cE0wIXz3kujit+ QaCGqcrp7gKnq6G6irY3DLv5Su3YO3wtle1nBy/gmdhryBpbO9A5NlXJW+5Ty2Oq6eNJC2zqdbTx hTetsq1lfjVCKzs7Wj2s1Mmz2Nr7Hnap69DUm4b7VX2XOdgtdvc8bvGBnV2GZTo4ca04bqcr72oE BUb9/v+/t2pGyzHftzYJ8R5X0EknTDDSQBs6RNdQw+6UNkKagYzUMo5a5W2CNbH3xHJWCWI/zApW xRyfqspBVavwjxWxlqsw20+aOd48v8aS3bAyFn2pisbIsQLlVSGmFHJUi/W5wkaxay2wDHP84i9r cmuyRnVUkWOlWmqiosZYaTXKxaK45r9hKywz099O9b/YpL6qcvjDr7GZSJ2kfl5hzUDeDzELYSqc ZoiBzsg39a/r4jhTH/dXr9DN68V6+djbaVIfsKtr9fWDb0KOM72TX0Ptb5Bqcc+QKiiHqrHfbI6V NgdVLVYz5gHzhxz/ZfP477G8XFcP+11nE6z2q1lYrRGWxf4SK1lujRV+9bue9vOojkZrg4qxv6BK 1lgdM+yoZBWq+/cvfkXsarP9ag6WOcJ5+ZabOVft2MvEHrGlrZn5Evb+9/c2xetm+8tWaVpuautO E13hJ511cF/KGeVLKyEpkIlrvV0WzCKLsChmvTTfIqdp7wLN1NRWfbu4wOkWYXfdXa6bv7HM3+ra yyLN5CjneFM9i8WWWBL7yS2wkNjREt1cagsHor3NXWwXB6ppXiycw0pHeMyl3nWfCjqo5zwH+Nlx tnOxre2hmr8twT8WYpkFCJznYjtrggWWYInlzhNooLF/NLWzrVykl3l42jsG4DWn+8nZxQZPXJuq oWyiT1M1a96OGntNI63zpSbq7H9xpgEb6JcCF2emOFAbT4QaeHJdDnamPUI3hq5tde4LUurMTyD3 x0rztXKBDk7CEkssjhmELLbAlj53tFO8YyX+cbhRWIKlVrnFCd73trfs7x2v+ffvmCUxY4l//OVk tdWyleWWOMT9vvC2FdZ40VkO843m+rjUmdr5yUEO0NjFdtRGJX/p6nm3esddaGKiX1zkVYzxAvq4 Ww3XGIgzvOoEe9vAHtbE8kk+42pTXeZPm5rrMqf5Ma1JdXd1o0nu8KdjHO7eEsw0mS2EokCW+dNu cdTrZktsoxs4RSVnutf72noHk+zgN0/phZsc7zM3uRh7aY2xNvC4NXmcww7VVJXYssIR/oeGTsTm LvCtow3DKH1NcYn7rdEntl73vMXG5PYy2lk+spvG7nOJKY7zCnqrjrb2RRVnoppLzbGjd9BcKxxn tYPcY4zX7CvHaO1Mc78z8oz4U1840MRCPSIKIxwrrKH2D+PrDY0LDXKX4/NYr91paiE2dmvzkvEe XqvsRhd5uNjgjGHQSZWEXwKKp06IviD9nJjPfKMoKrva8T50iwv8+1vfOqYeu2mIN/xpC/fYGoP9 YawdHIaeNnKU2ka6NE/unf3si9qxAJRHaqKx533gJbvYzvG+8pXRKtndgypa7RN08JLvbOJLvOAU U5xvEJ73a67Rwgrt7GmwEb7Fj75BE628YYj3sIUpZtneh1hgqpWYaJ72XvODLTxtomZu0CT0721t tneNsW42xxEO8EiB5v1llVDCuY/xoscKPHOpprG8ZCVHY1PiWFlPlBYuDSkk4QJdjC+mzlBT1/GH SZxD3JX2KLyJ85DH9MvdGJ+uu1ficnxb4QBnxV4+mOdYW8SVJy8MhplqU595MtReL9EspL+ON9zt 1SLOL9MxSudqlr55Xh3Tw+eeNVVDR68nbtWhzEBGZ9Wb7qFp6XX/Es0aUDMEC4/5Fmeh+uAUrxim e2wfq4lL43yIVjLcHbHH5CQHOrrE1AePONF5auWbXabOdgmk0C2KNa4K4XUjIgx2crNJzjBaK2f5 LNPipJ1QFMjn2md6HHm4Lw3zD661TwmOYYMQFMh4O5WgxInQwIuO0ClmLtpZ87h8QtjQCLeb4gmX edYxJSbvt1bZDvdY5OIQ+93Vt6H0c6FDbFdidyOieFp70Di76+/AUB0bs48QFMhsQbGZ6CISo3YI CmR0Vqn1telhnHcc4gdc5/c4EuJCAw9o6Wlvl+jc6pHccPhPmZZSLvT8bBdKvvCPvB+nKUJESVJJ X2PdaZIWLk8psnQ2E4ICeStr33RLL7VD2ET/xgGZHkaR1DTIWfq4DEMNLnZfCL50ltvUjKtuWKzx bp7ZzkveTTlQ439UVD6EDdf+Iaq0iLDZ3gPGqquTE9MWPjOThKBAxmuT6VGUOaqkbL3+vZoZCaKY GAebooLm3vO664tI4vQvjzrR9c73uMvjCMwXFqNsly+61jCveTCkvhumHNT9FjtoUWL3IiIZqjvP FK0d58SUwlFmIyEokO8iBRI6qfs1vFFqHitXecZ1LnOi84usd5aRJtgTG3rVfYXY/YXPM2uF0ihv pMGFRIhOlO1TjIc13bBo+7yU0NtEBzrWaWlNZlzSpKxAZmODQs/mhJvysExQrsAQDPlJXYFMsV+m Bxo3W3vFnp73RaGhEOfpoJqRuVEDNvCGoQnmOk+OuX5f505W9oqHCwgRmTjNUtxGP9fFKsVVM/o7 pHwcf3nppbsptneAOzJ9K0Ij5d/VB0VuZ5YvJDHo+szyOLJVp65AfokruEz2cJRhuhtUoJXTe9rr m5sF4l+qes3XTk+7XCMKnMnV8Ip7Q1Ahu6a0Lv6UGnEGL8lJIqVA2SOev7z0c6aJptsvN4Zw6Sbl YIpvFZk4dCOXecrSjGv+bCFQwUKNi62XI7AqhS/na3VL3T2v4Fo9HOyPtZJNPeoRj9m5gBbP6ecI z4WW/6MgXi4kQVEdIx2G7in13sjiQoICFs9898adUi3HX1rIsSapa/0bCaucamr506caamB1ocEM c9SwwCxbWiFQxWLzbWapHFVMt7nAqpR/m4EKFvjJRnYSWGh5blSvwltUNF+zFK8bDlUM9IHztHJD pkVJmZQVyFdFBsQ7I2TXq/WHnJQUyJulZgckPzv4xVaqGZSbkfwcM72Vu3S1Nnd4QDuDbJUmef42 1+6FnNvAKw6Tk+sbnxxV/JFktNhznZQnLUHRVPJFCHdjpYe9oJsLi/U6OUbv3L/8uy11UexzRw+H FnJ/vse8pqq+cWQiyj72NMkF2nu4BEKtpJMUl7CW+8fWmR5DmSRIafHv/RJ1ewyXr23rOkf5FD1V M7xQ9QGnuUGPWBqj8BljjyLObmCkewxJ6Qpb+jSpdqP9FWcs43CYoZ8DzTHcE8Wqj2tskOfFcYwe uZ83zI2jnTobON84ZxmhlYtLpYnsLfrpXmQImuwnRQUyvUQDfKxPlEspUuvMNIY3TzeVvayx41yj nE3j8HHYzwj3uSQtsowsJgZvHSPdnS9rd6LskJQCCVwdmjdK8Yx2hBPtbIIr45jzDPJuLP0UTLcq zzt2Az+ELFsLDxitsVN0MqzE7khYHOwVt5bqLfUUFci7kRNhmqiSQub2X1QuBT4ghdPYta6xxmOm OzOOd9bNvGGZg0J8u/2PX7UqpkYdI91laNJXaOa7JFoN0NE2oY92XVa4XytPOtebcSYL/sAD+ZJ/ vZgvHsKOoSylrU11p3rTVV63jyv8XgL3JTw2NsEUl2ZajKRJUYF8WOgKcURqVEvBR/njUh8Z6Vt/ WOo4L9lbJ+fFEQjiDic5vMi8hYkz2WZxbPfWNdJtSb/97uKXhNu874MSCF4yQ3+tzPCcF4pVo//x h9M9onaekrF5FrDYplhn0eTZzSPGquNoR5eqyMM5hvptrbRZpYcUFciPdsn0CMoo1VJwN3o77j/4 7GSAwX7UTVcc631b66h/LGFR4RxhpOecFEsbFgZvxBlluq6RbjU8qWvUsTrhlEf93RraGAtmou76 2Nokt8RyFcbDGt1daoc8Jd+pqFGe401Dif5VODWc52193Wd/z6T5HoXJk+aW0llISgpklUW2yPQI yiipKJAf7Jhp8ZMm0N1KQ3Gi3WMWTmd4x8Y6uLiYx08Dr9hZa6NCkuWDuJ0x6xvljiQfWbUTTG17 rT3tFdII1yXwhLbudKK3nRqnk+J/9NB1rSwYgx2U73jTPMnE0kcHwzzifXu7IYWF4JLlSV+5K9NC JEFKCuQXtTItf5kllaS2czXNtPhJ8o/2muf+IV1qu1iukBz9TbWpTk4vZhHkTC+41wkhhItYmlA+ lQ295smkYmRtl5BL2fdec1vKYyuYWS7X0iceNtyBCbfub2PnrlU2YS0/mfIql1D28C3d4w1rdHBO GpfNwmSo4XFm58wmUlIg36cl80YEqSS1/bHUqvUZDnB8vtXga23ihNjn8s401S56Ot7nRfTSxGj7 aJ9yrKwP8i2+FE9No4xIwqJmhyJHszZnuSotLqJTHeso9Y11T1Lb8/f60cC1yr5QfR0fl/pmpkH6 gqntMlM000vvtGzeh0t5g1xS6rKqp6RAPrBrpuUvsySvQL5Km1tdenlXN7fouVbprbGc9P9xsikO c6GDi/TCPtFobzs4SR+Lf3mvSB+QgqjiNW+5PsFWzRIwbR1oszS4zT1jfzc5ytvOTtJ6b5TBBRgz P6vTOmWblKAC+ZdTTHKE/rp4t4SvnCiNDXBSpoVIkJQUyLRSu1SS/SSvQN7RPNPCJ8FQZxpUYFzn +yxdy0ali9dd5Un7ebBQb5k6BrlYP6cWu/leGB8kYYpQzkifJuiTslPcizqzPL3OW35qzHGVvU12 r5E6Jt3L567yQgFxpiY7ap2ypiGl8U2Mw41xhqsc7r0MXD1+eqjjkUwLkRApKZBZpfRdtzRQOWlr op+yMhN60dzrXqMLfR15zIJ1kt7ubbCn/Ky1000rpF1r4+3oIDfGojklxh/+l9RYhvjVeQnUr6iC uXHVPMOAEP17PtHHYaoY68GUXgT/dJwHCwhQMk6jAhZTm/k+tBEkxgFG6+dah2S1ErnLwyEkGSs5 UlIgS6I9kLSRvAL5q9QFl7nSaOOK9HF+zKoCAnds4UZT7OV07QuNjHuGiRZqnvCOyBwV1EhyPIMs dFoC9eubHketp1VMMe7W/zNUBxfr5B0XpbhjtsIRrilwse+5AuYfNMxoctf9jHKBax2etXsidfQt VQa9KSiQP0q1t3O2k6wCWWy1OpkWPiH6+caoYn+ID6iibwHl5fU11g0m2Me5Bc5FKrnByz62j6cT kOpbDVMY06MqxezH4mFn7xdbZ76BoSxfLXCzll53o9GOCKG/LvoUuPi13DcF7IDQMOklxbBoY5RT nK2XGRmWpGDO8EkSzqWZIgUFMquUPahKF8kqkBk2zLToCXGixXHm1bhHPccWcm5PDxinqdMc4vEC THg3dp/nvKV13ErkuxTncXfbVqc4A2I2iyOx7TlOtlFKEvG5E3W0ykiP2i3Fvv6lrz0K2fZ9sZBo bFVUzLgK4RATdHSMflmZHfCkEkmVFg4pKJBpceS1iEiWZBXIT6GFyy4Jjrahh+KufZtNClwW+Zdq TvGm232pvRMKCGbRxGOeNF6LtfKNFMyXBWYgSYQrdNDBvDhq7uS3Ymq8Yq4TU5LmZYc4X3uTXRpa ANSLVXZ1IedeLHC+CBtmyZv/0aZoop2bMi3IOvT1RUYX+hIhBQXyTamPuJTNJKtAvrR9pkWPk1UO tdNaeQaL4xbb6VzklnhTd3hPdw/bx/k+Wuvslp7wgk/t66ZirNx+tWXKIzzDKQ6Kw2y1iRwzPFWg fdK/c5PrUoi9u8jtWnjJVWvFpUqVO31fqPKfbnGhJv4Ns8ix7ywTzbZv2tIBJMvBHs+0CHGSggL5 M6VV4oiiqZZkOPfppWQLfaEDHVpgAtuiuUob+xcboKKDwcbbw3Vau3ytBaJG7jbKEvs7t4hIuAtT XjCCHq7TxddYWoh55lyH2NEwTfQtIJrw97Z3g+uclqQ6+94Z2ptvuKdDDn/ylFFFZEJ5fK2QJnnZ qlCruUxQze2e9bROSUVFThcneiXTIsRJCgpkjo0zLX0ZplqSM5DZpWIJa4GDHefUpNqe63gdil30 oaqjDfeSTVygnSt8ledcHdd4x+7OcZiRBbZeHHe2v6Jp7xEn+0R3Jxc4F6nrN1/GPq+7aDYZl7o8 7rl+3lhho3V2qj2941oNQhnL/zPKI4YX8fCYUOhuFTtnxBOkKLbwklOdoL/VmRYlxiY28HGmhYiL FBTI3EiBpJFkZyBzS8G8cK5DnFXEI6Y4erlE1zg2nmEjpxvleRsboKX+Juc5d6zRLvOiFm5fK0zj ajkqhjTa3YzQwSgK8Q75LxD8RgXsTUyI/b9PXOHb+8VcH5e7X1uD9DO+0J2IVHjXNV4swvx3rMZF GNhsZnYaZEqVQ0xWV+sUMruEy6FZI0nRpKBAlkcKJI0kNwNZabUNMi16McxxmPNSXI3v6C7Hmhp3 /QZO95rX7O4h++prSO4OyN6e8YrljtQtz7LBHJVDHPHDsUfmsALNdbeKzcQKCps+IbdOT8XR352+ 9arrtDXTM57TOsQx/D/fOtugIl9Tniwy+dTGWesod4lnDNIjK+JRHWpKpkWIi6QVyMK0hHSL+I/k ZiB/Zb1vzp8OM8CRKfezj2ecm2AOjlqO9rRJehqvra4ejWWv29Al3nKG4Vo4P7bUFZ4x9I95HMPO LLDGrcqj2Trlc2ILdSf5oYCz+entdnC87U11U9oWMmfp4+4il9Rm+7nIWL41SDgDSknRxMu66OLR TAuioQoJhvnPDEkrkH+y/lFVuqmU1Hrs3/mywWUfsxzu4iI2WBOhqdfcnUT023IO9ID3XGS64xxg gNFWoI3Hve1/ztXV1bmRnX63hx9TknMrgbcdCj4oUOXVMBBt1ykfj0qGe7jYaxyW698yr5gs7qmx 0BGusE+RdR4rNqpW3RTvaHo5ymgTHVriQR/X5n8JhfnPFBWSbbgg6UAPEfGQnGafk9ULWL/q6pq1 UgylQj3j9PBzkiaue9kLfxtviGvV0dYhmjrZyZa5ykNy7OlsH/rI1p7SG3xglTUJXqecqhq7W1f3 +1BXk1WwKl+NmnbCbN/kiYmVo77bcY/dfVzEG3sF/zguj0nBSse6qABXvRzUTdHwfrlOzixWPbxa QFze/GxqRr68hdlGLYOM0N2JKfrepEY7b4X0qpVOcoKAw9ydsJngOx4wKNPSl2GWOiR3BTx+Bvsk Cx2j/mWOjq5JQzDys80qwqA0Xr70iqkW2FpbR/nREJe71efeiMXKPcYzVttIV8sTDM0YIEcltVQz 1xwr1M7XQ6CcDfygtmqW5y4M51jtd9upZq6VRSwX52CJOrEt/8Byq1XI089/lLfMZ75OYeE5cJCu Timm1pse9UIxdW5VZZ3gmNnHQqdZ6tGMxduY7vQiUxZkB0nPQOaV2rRFpYPk/tB/TjAJUsnxj8Nc nAb1wT1u1c7QFP/Qd7ADFvvABL18bqUW+imfaxn1rM/d6Cj3lfSNC5FDUtq3PMxBxaoPHo3jrX3H rHPcK4ianvGUA13tkIxcv1GJpP9NlaT3QP4OLSBCREEk96f+xzoZ4LKDpQ5zTtom5AOc6pBQVoyr a+Nqg91vM5/qbs88oUi+cKhPSuJmpY1E50556WLfOILUz/KbA4qttWXMeCH76WOYuw3IyLXLq1oK 7lPSCmReFEoxrSSnQBZm5bxwlUMdV0QUq9Tp7n6nF7t0Ej+1NHO+oWvNN7YNxTs9cySvPo62Y1xR A+7XNY5aDUrFu/W/bG6MSg6Iw3E1fBpmtbHBvyStQOZGCiSt5CSlQpapnmnBC+BQXdPi0JaXXb3h sbjc7eKhXMyxMK8x72YWxum8WNY4XkPXxFXzzbi2nWtbmTU+3/FwvXN19lqJX3eTsjwDWahmpmUv 0yQ3A1mahbZxnbR3RglcZwNjzdE9hffs/6e2xWC5c73kM39Y5hffhBQEvXRxhuoxH5PieN5OcT4V 6iSQBz4bONQIt5Z4kPX6WeHSWDRJK5BlkR9IWknui8m+Gcgxdnd+iV3tQS20DsEBa+OYp3ozdzrC ThqojEVZmT0ivZxmVdyJrB6P27aqYVw5GLOJTU0ww1EJG3GnQpOM+6IUT9IKZJVKmZa9TJPcDGRl qCE4Uuc8tV1Zolc81yW6GJNiL9UKTAUV/rLLyoS35VcYb5LX18qp8ek6ofd+MmUtb5NkOE0Qd76W j1WM27ujUalTIPCo5rbpABwAAIAASURBVNqaVWLXa1iWZyCrc311I9JBcnsga5K3y04DN/jd/SV+ 1YO97KY41+wLp0oep7708ZnDiq1zlbfzHL1qfx0cki9fxKF2tXs+T/ZbbaWljeJKZ1U4J+LBuGsP dELcdbfPquDp8XOuCx3q3RK6WtU4M1pmkqQVyJpIgWQh2aTWHzXR4IxcuaEJfnOEZSn0UbvYDczP rcAK3+FdX/giNyw7a8y2Jnb8fa4Fzyyfx2Sa7Qv/x945B8axtXH4SZqmtm37q93Utm3btm3bto2U t7q1dWsjNc73R7bbTbIY7ibpPH/cu505mtnNvHPOed/f+xKIRDzgmvlBcd9C6vyKaQFjC3ssHreh qMEnhIWBPMEOBIJT7Db33htvBGlVmdGmhGGG5NLPuS4jx3qqQJRUSh6lWUx7JynlhgwCrgYqZiCB 6V03eCJ/vTXwfCubWChT6lBbZlEMLy4orp+Eaw5KzKYMUIpFnCc3GclIVvO5s8QkJRnIRUtSEZ+9 QG8Sko34PGUbMclIPG4QgX9JSxrC8gioQWLSEpvvfCY66UhEK65ylmGkMcXDww9WUYDmpk1+gD0m cZhK5rjlC0QiL9CRnYqvvwnhJO99AEySJZAZlBx5/ZOOHUxxSkBpSA0WIfXGWMIKxMj3JwosBuQE w1lHGJeOoSWTaGQWGZRLRoe7E1OJRjpiMJzMCASDuAHc4BoQBTiB4CoREIxmGj8ZhzffqEx/TlAH wXNSIvjKZgRV6cczVuODIDkTGEhWBC9YSFyas4VfxOQG14EE1KQa+yzyC741eT5FNC9YfTT9bUZV vITVgMiyFMZ+sF9WerAoCtOlBQ6isZsdTvDJCtYzEKXbvAZScVNgQESg+Fbu0pZFmmfBk08O9rNe Yd7D9BLy5lXgijm+pT+VScR1UpGGubiTkehAWioDGfjAS75RifDM5QdDKMJIhvITD5KRHKjJfzwl FeGAutzjBnWA6GTiKl/5CIwhFam5SxZW0I7b3DMLJiYyLZE9JLHpSAzT4/kWiRRde23iSHTc/c1c 8sr0yowYJLfRf+PJVi7SW+de3DVxSdd7jAYGmvKJuoxUqfuqFZHYQDzyO1yOCsj/HObNu8YAZtOO 10ArspCe96RCIGjKO1M2Fx8+A1/5QCxisQQfDtABb9LTmS2MIAy3Wcpr+pCVlFxnB0/oRw4K0o9n bOQkWfnFUQTdEAiSsJm9vKULgsjAPaAi3uzlBFuobjqSEncG8Jru1FFwz6qQUrYg5zLay6wRLwhE WdtnFY/o7OpBuBzDgBhoTA0aS9BDch79GEoDFsmuF9FusJugCT1oRiNasY2ZVMaN6Oadia8mnQbf /4YgLDCDmrhRmhfcIAehcKMp70nDLKIRhuGEYQKliUseGtKRtMSmElMJSR2m4G7eiH9GcaKwjB3A RVIDCZlIMXIzjLRAWs4CW5hINIrIfqx/pQS5GSiz1lYSyhbxTBCkZyC+LOI1HV09CBejWM69Lh3I 7urRB2uKslP2jkZe9rg4wLMFMRni0hFY4y0NiSU5osGXAcSnmZ8jD2hpIWjxyXSnf1j9lr4T0uLc D5V7U7aWJj8F+LY/2fn+C7PP7hLnOypSQ8GSX2kGk01mnZWcY5SqexI4aEx0RuvU9gPaWKRZDpwY MxADDZnA+0BoPiAyG0lAIVO6WmmUchCO+PtBbd00hPRzTq1rg63HflgJR6TykFK0UGA+jhJCtvmA DEFMzMQW83moOuYoKGMYEAPN2M4mlrp6EDbpy3AaM1ly+Vw89ZeXPjA4KOjFJSoyQJFi8nhFyzix g40szHLOMNHVg3AZhgEx0IhbDGBJoHbuzsMhzlKNdxLLJ2evn39HCGRCMdpxgKbMUJTu6yLvKaKg XrQg7cjrl41s0SAnZtDEMCAGmvCThowigauH4YDQLKQsRSVqZTVmvenTB/YzjbomicXgxjJ6sVzh juYYWinsNSikS5KGG2sYy0lXD8MlGAbEQBPqUZnCrh6EJBqwipF0lVAyL2eYSTO8KMcCflE7iCtQ u1tdhBvDInbJdqLx5Q73JaWQska8IKqHZY2ozKeNS5JOuZrAEbhsEMQZQegg5BOflAP0phBTyGD1 /E3+4Qg3icQH1jKJmMQA4DUrXD10VbhZ8QZrx0uzhpZ8xtJIcd2E3PUjABm0Sccg6rHf1cNwOoYB MVDNHnZw2NWDkMlwjtOMivS0OHYab47ylAikoyz/Iw4+1CWd+bxPEJCWsMdDShGN7OQjp+lIZZKp MIqPuKBCbTlJMPHD+k0ZztGEea4ehpMxDIiBSl7RM0huIebmBIOpzWi+sIHDvCQeOelFWkKby4Qn LFvMkushAmG+RzlkYCn32M4oXpCE7CyjoUKhF1+G01jVaHaoqB0Y6UtVZijeEwqaGAbEQCX16KZw Bd3V3CABs0lIZCYy3YYDQCf6mQ3ILzbRnS86KBS5EQo3fvHNYduehCAs3/CROQoPPnEST1KSko7A ULpShO0cohBFSaZgzA/4V5UmbUKnZFxxLsvITwGLOWvwxzAgBqroRSpF0QOu5BF72c4DYuPFcSLT j5NUs1E2O2HZQSkAErCZX7osY3nwjbZMdai/6gYM4QbTSM5rmemG3Cz2KyZznBdEBE6wk3b4kJQy eBFdRnvDaKrqmqP6i7IJDoRiPK39JAAL7hgGxEAFuznBAVcPQjI/OMpG/sWTrLQmtzkp80TWUYAm NpZzBtPaZEBQFCkhjW9kpbykkmVYySJ6KR6LoCE/2WryyMpFLuA9R9jMZMKSg3IWUvG2uc8VmdIw /nHHg1dE0+4WBgrykZ8uMrWMgzKGG6+BYt7Tx09q1cDLE5ZSh/xMIRsr2ckwCprNB0AVDnKM8lYd MdOTijm6j/CKjBDMmsxnHHUUxXJfpwCZWOrPoTciZZjFEWaQmAkUpA7LeGm3naE0V33NcSVI5gc9 hnI2yLmUKMeYgRgopiFtSeLqQTjgNmvYx3dy05q8dsqFYzEbqEATK5ugoyhOZZ3flZ8QU0bpOGxi LkXobnPpzTqLmcx4Ctg8n5SkNEFwkM3MJTR5qEBGq3f1ugZGNSF3yKfR/QtMTKT9X7OMZRgQA4VM IjINXD0IO1xgFScIRSEmkVZSjUoUpg07mewvEVNUOtBW5xiQJ7ITcDWlLK1YxwyTaLxjWvGUfURy WM4NL7yAW+yiH69IRw0K+VmsGEhbDa45cTCQdLdGJnIxiAGuHoZTMJawDBRxjeXMdPUgbHCVIRSg MwlZzna6SzQfAJFYSlOqBxAar8c3luk65lukkF0nNhsoRglWSyh7kXwkYoME8/GH5LRhE7soyjIK UZd1+ABwiadU1+Ca0wazSJA/jGRHkE+YJQ3DgBgoog0j/ewiBA7uMJj8tCc2G9hLC0VpdctxhEcU 5ryfo7OYpOvj7r5CV+gmbGUVdR0IRE6mBaP8BE1KJxzVmMdhGrGf4tRkI4MYock1p+CZJu0EPtzo Tj9XD8IpGEtYBgroR9ZAJkPxmtVs5CuV2CDLGdUankzmEK0oapHbJDojacpB3cb/XtYeiCUxWcc8 itHNxn7Ia5oRngOqlYSLUAS4Tje2EIrcVDcJvCgnqkxH5KBEZeZwjDyuHobuGDMQA9mc4ZBuWdiU sJmqVOIpUzhAe9Xmw5eCHMeN/BY6UYUpoUL5yRE+qjbpm7CJ5dTnQ4AzayhBFRZpJkSfighcZRiP qEYlZqsKBgyBW7DJChKQvoEytZrWGAbEQDZdAk0y0uv0JjfraMMhBirYRbDPYGYzkQbmh2Qv3Oiv 05V8l7U7EZA4bCAfXn5SoH6jCUvYRG0Nx7maEKQmEcM5yADuUpmKLDXngpdLrGCkyOufvEQIdmIt ATEMiIFM+pKL3K4eBLCcUnQgKXtYpNtyWhq2k5+SzDX9ez7nmK1DP480EYpvzjpm0cSUqmknBcjI ZuJqOtIpFt5FmRnBQXpxmqJUYy0/ZLeWmBuaji5w0ZUprh6C7hh7IAayuMBBvF08hv+YzUFSM4z/ OaG3plShAxsYQ1pgDSWJqLl4yyONokwSsZWpVKQ3+/iXFZpH6YwnewDdrJzkBA6zgsmko46syI7E 3NN4hIGJHITkCPldPQxdMQyIgSy6Mcyl/R9mKs+pyk7COa3PKCxmH63IwQhCs4NieFBV0x4eK/IX s05bBAVIqcPi0GtWsc/GuQIU4BdbmEx3ilNPojxjCk5pPsrARAcmBXMDYixhGchgEkko6LLeV1GU MTTnIG2daD58KcIhopOfVYThMBPNyW614RGxNWrpPY05yVM64cVZje9BLxrZFbR3pwKr2UQUWlCc eRJ2RtLyUOMxBi4K8zqYBkv+xjAgBpJ5zArGu6TnH4wlBweYwhaKuuz6e7CezVTgJd7M1jR10F2N HACWUYRsLCUWLRlPRwZqOMazXJWUPSQGHdjLeC5TikYOss9HD4aKvH6pHMxTTBkGxEAy3Wnvgqzg 7+lPXnzYzkzSuPgOxGEZLajCMFZwUMMt0v8UZeTwyz2qsI3ttDb9OwuHeUcRzcIf+zBIRun0jOcw NZhNIUbyxEYpD9wUe3AFDRoEIbVqJRgGxEAiu3mrqUOoFF7Si5KE5QADNYrvUE9pjhCB6uTlLEM1 ajO86iREg6hOA5b7C+6bQG/qMEmDEa4ikgJft5KsYy1QkxrstFoiGnc0GF3gJQKp2OrqQeiIYUAM JDLYycGDH+lGaeLiTU8XzHvs05413OMZW2misqULhCcd6+nOGJ4qbGMX+fnMcav5RIpwhPOUUSka Ihin+NuPTk8O0Y4VFGB4gGtMzBWVdzCwU1Xj/bLAhWFADCQxmtwyRAnV8o0BFCEmJ2kXSH+ikRnJ BFIzn0w8A14olBfMyEeu8JaJdOeLjHq/3+cfU4tpzGOkzXwiniygAeUlSS7aogdlSKjqfuVjEZsQ VKI+RyyOB1dF3j+U4rouWSwDB4Hzr9MgkPGKtQx2Wm9jKEQoDtPNX9qjwEYqFnKA18TmIB1YQ3tF rfx28+xAYsl1NlCKjcBoylKWzaR0UL4621hMMwWhfgAXOaqJOHkU+nCcWoyiKAtNY0kRrCNBANxI YdP5OehjGBADCfSlCWGc0tMGcvOYvfQOhFq/1ijEf8zAixXAFEUeN0VM/5cuknKRykBTGvCO49SR VCc6W0lFPkVxF1002+sBKMVWZnOePHTjPQV5o2HbgZPSwXgXxDAgBg75l6u0cEI/pynNGpYxIdDt edinERFNn5ra2Cq2h2/kdjOiSiz/2hSJ84pYDJMlktiVWXSWLfE3k/iaS8UkZSKHSUhlmgTbnCB/ KMJlVw9BNwwDYuCQgfTWvQ8fmtGDPixXmBfDlbSw0JQtJXtT2HcJS3p8fz7zO/sY2fsHmfDmOaV5 LLnGG+YxUbtbZUFo2rGX5lygHNt06SGwEA3BC1cPQicMA2LggP38oLjOfcynCJnYZzdreeBlGs3J RCTTjs3/uC+rtidRqSI5t0YBrgKeRCIT9RTl05hCSypKTtDbkRbm+ZUeFKA21dhOQebwS8d+XEsG Drt6CDphaGEZOGAkw3Vt/yLdiMsOyUs4zmATXUlgUrV1hDvhCEtK4nOHe3zmK5nJLDnC2o1IvOES ZXjrsKwHz7kGRCQx8QnHJzriI9nDJxQvWUImoDy5acIhpjt8f9zOC5rqc4vNxCQe03jEBPJSjvZ2 xVKCKrk4QRVXD0IXDANiYJd1xCCbju0PYwsjKeTqy/THfRrTy2m9vTXPXvSlFQ/IBEAMNjOS/Mwi vZ3y3xiscyZ4gAScowjxGMsHJlCYwnTTSJs48JBelRN1YMZYwjKwyxQdcztfoQgvOB7ozAcIp27j R3aSu7LfDfeejKUJ0+yU70A1DSRWHJHE7Mgbgf4cIzbl6WRT/CRokp5Xrh6CThgGxMAOq0lIap3a HkpL+jExUMZ6iGAZ+vUT4effuTmIN3X4bLX0Lu7QxQmjSs0Di3950JGjpKUybfjPdbdKY9wIxXNX D0IXDANiYIfp9NWl3SeU4gWHA+Hc4+8iDCvIQyFOBjjzmf5OyqeXhHcBjjXjODmoTutgMxOJrFio JnBjGBADm6wlocMYZyVsoBzNNJH4M1BPG+bQkTH+jralni7ffUA88OCTleMNOE5OqtEmWDx6EwRT yRbDgBjYZCY9dGi1PfPYRGVXX5yBmYwc4To1+GA+soaXtHVa/2FsLu80wJv0VKWrBB+1wE3CYKo6 bBgQAxvsJZJqkXH/vKAIUdlKPFdfnIEfPJhLcYpyHICnjGKWE3tPZDdSuxXexKckQxRFvQQW4gSL eVRADANiYIMJmm+helOS1ppmyQuaFOe0gxKPTPJ7e0iPGxcDnK9AIj//Ho4nbizwc+w8bmyUMaom zKMbk4AO9NQsxa4UknPDQYmOHOIHeZjsxFFpSxQLtYLghGFADKxyjp/k0bTF2fRgSTANp5LHEyI7 KHHctCfxhtpEDhDQuJl7fh5HMxmIN97+8sRPAKt7C7ZJjzePSExcqjr1fiSWELsfikHs4hZ5WOvU sWlFGFli/UEHw4AYWGUSzTVtrwfbOODEjCJasodoJKMFPYGXFMONLHwEahGChFwyl6tJWyJTmlsU JCQrge9UxY3kXAJa40lUtgIRGEsc03v3SwrgRl6eA5uITUh6AX3ZhRvTqU5vovuT+HjPXGb6iQCe y2RiEMtPRpLBFKOkgozjdfnBFc479f4m9+PIa5uoTGY5myjKUaeOTwtCS9Q1CGoYBsTACs+4pek2 dxNesimICLT75wulaMMCVnMN8OInB6mCDzU5zV7a42MuuZsb7OcJmWnLKFoBzQjJc3rQnDPMwpu5 fAWe8C+byEEpoDzu/EMYKvOVinRhO6NZSy+ycYGaAHz2F70xhN7+tAHuMJaCpLAQHbnHFeryQ7YE /3tacoa5tGGsE+9wShlhdolZwlAGUjuIRYmENmYgBn8PM6ikWVs/KEs8RZkyAgfXiMxgCjCaCMAl 9lOQvsRiE0fxoiu5yIsbXkBMpvI/WlCWanQmBLCGfXgxiOPEoAPehKQKEJGp5GA5j4Dz7CMb23jD etLTjWJMYifpiE0GP+pg30iAG624zQrCsJI3nLG4w814wFPmmZesmpGAJzxgnz/j44jGNCMWCTjC Beo4bdM6FCFsBDNaJxd7KE91+ipMkOUKQgZpFwDbGAbEwAq7aaZRSz4UpYwTsxlqT0STfPpxvgIe HAd+AjHMIuQTWMsoAH4Bn03JZX8CiWnIdrawjoSMpzO3yAF85ARwEwGE5iBwjC8kNi3kHCAqPy32 OOIQG/BkPmvpziMeUZiW/KSTuUROs+EIafr/eyaQjRvMYbeMKx1EdBoB4M5icpOPC066x6F5KbNG TY7jQR7JqsKuJjDqLWiBYUAMArCBNBpJePtQgia0cvUFqSIpZXEjDesIDQwnDxEIxw1m0ZjwuLGW HFQhB/AWH+C9KbL6LTCR+RSjPEvwxp2E9CIu8JNexCElnYBBFCUqhWlLbtLjRjjW05UUHMad1ewk CqdJTD2gGFVIQgEEr7hJRA4DdZkCjGAwkYlNK0KyhIrASX7wiNwsooTk69zGYWZa/Lstk2nCIqfc 43gO/bCsMZDNbKO408ycOuTNBYMKhhqvQQDmaySg6ENJWlDP1Zejmg2cJw5dSAB0ozz/kpSUpOQh x4lJAXO5FaQDGlAegO1AMS5wjNAUIjyXuWwqvY4kHCcyeYB2FOES6UgHHGUf7ylCROAS3uTDk4lE 4QNx/I0omunNuz5xgWw85TCJyAHkIoq51CgZUoh3Gcgmf8dycoB6HPdjVvQhJVfMqX3lEJul7Kct ORgeRHfYgjqGATHwx20+kUODdnwoTWtqu/pyNGAAy/DgLtcBSEUq0/F4/txdfRO/JiYxAKUALFxi 05DG9Ol/QGlzrbQWvml/HqLpTEGcDayOKJSp/u9EX7GoZvqUghTmUvklX+F36jOSuAGOh2cDgyjM QhLqeoeTmEIYlVCYwowmP51MTgcGzsRYwjLwx2IqatCKoALNgoX5gJ4MoRv/BcFku1KpQ1WbM4AB dKWizklnk6j0qerOetZSTWYuSAP1GDMQA3/sC7CUoYQqlA4Gi1e+hKOOq4egKz2JQQc750uTmQac 1NEVIpXqnOHxWMtmalCdzrqN0iAgxgzEwA+HiatBPriWpHBKLgkD9cziqt20UgBx2cMbKuomxxEe oUGgXXkOcZuidpW1DLTFMCAGfliqwdv2YL6a3FoNAju7WMwqSSWnUEXHGPCwsh15rRGKafSjGUN0 GqWBfwwDYuCHyxbbu8pYhbc/WT+DwMoF+rCK0BJL12M+3Ziqy0iimxPbqqUgx/hMQQuJGQP9MAyI gQXbSWEORlPGZcYHmeCuv50HNGYO8WXUSM9hTlLfnzqXFqTWNJpjOMNozgjNR2ngH8OAGFiw1uwO qoyftGCcBnsoriaE5LfyoISnnz/319RgJFlktuHBEjLixU2Nx5ZUsxmIL/nw5inFgmkap8CD4YVl YME1GZHL1mhBBfK5+iI04BfnuMt7whKG73zgh85xxCEIzU++WbzZexCWn3zhp8O6bkB4wvKNj3y3 M84Y3LDIQf+FynShqKLRdiUHtempqTR/EjZr2BqAO5PYSQ1aWIhMGmiNYUAMzOwjqaofxEpeMtfV F6EJ2TjCdD5wgn+BIgEk1bUmLDtJSip8zJpJIVlLUgrz2qEJceM7B3lDdEoTmc/4WJUYFHgSwhzK +I2y1FGR9aMAW6nPvxo69ibnmZY31ERJ8tKCg8wkvA6tGxgGxMCCbao20J8xXudwM+eRlzxsYDtZ 6EBVIjihx7U8pr2fIwPpzEBiSKx/iM08ISV1HCar8tVHrqhSLjMWu+hIRVbIloy3TjS+80OHx1EE ljMbL8ZZSM4YaIexB2Jg5oxJfkMZbeko+XEXmHnDVLwozA16sYBGTjEfkDNA+GYKRlCKwxLrF2Qc 0whDHQowhNt2Sv6kHOVpq8GYJ1KWQpolnwrHc41a8k9zltCPQTq1/ndjGBADE9eIYCHEJ5eViGAg XLKVypTjBTM4QE8ZUoTqSQAB8vKlZxWdZQiyR6Ex21hFOFpShMk8tlLmJ2UprYn5AGjKNFqyVJO2 Ilsdrzak5hCvKc9r3Xr4WzEMiIGJ3eRWXPc745nk6gtQxb90IS+raYc3g0jtghHkt7IAmIxN9GOj rHbi0Jk9zOQdNSnLfJO4vC+fKEkZ2mk46mzsYbVdIRSppOKihuMKyCRqUoyDuvbx92EYEAMTh1Us YPWhEvFcfQEKecdEvOhLFvaw2KSo6wrKsdPK0XhsZTTLZbeWgn4cZiiXKENV1vIV+EI5amk2+/hN BDbjSQneqmwnheauwf6pzWr6G1HqmmJsohsA8Isn/E9h3fscUSHH7UpOM4PLFGeRznLlUsjKaz5Y 2XGJwS4q84Y2CtrMTGbgCKuYT0L2MILquox9DKsoyQQVc1hIZNWAaksyDtOY2iw2HnwaYcxADAA4 QSLFdftqsoThXL6xgOL0oyQnGBwIzAdAWvZbPR6BXexS8eacn6kMYRNZWUJbjuky9hospCPTVbSQ VBdH3oDMJyf57boZGEjHMCAGABxRnETqEg+DWCqfK7SlAOeZxg6VkffaUokNNs64s5krdFPc8h7a cJjVbKAAE8hLN/7VfPSpOcJ+WiquH5fPTkr72oER1GS7U/oK7hgGxACAfyyilOUxjI6uHrwMdlKG DuTiOJMscvcFDry4ZefsCt4qfDzPYhCrSAF4UJ01bCUNvfFioMbv4Z6sJQGFeaKwflgnzUGgEJsZ zRgn9RacMQyIAQDPyKio3k2eUMHVg5fEL2bhxRJ6soe65ojvwEQoYnPCzvk5hKGu7Fa7sZ29fhYo fd19VxCJFhRnouIHvjX60IEKHFJUN5KmI7FPHA5yTsV8ycAXw4AYADeJrPCnMJ7Grh68BHwYQR6u sYhlMjKFO59yrLN7fgJJqCRDVuU7NfnKJqvSkLHpxF6m8Z6alGeuZsmiKrCCfopE35NyTaMxSGM5 kanIF6f2GdwwDIgBcIwMiuq95xz1XT14BzynGyX4yW4mBJLNctuU5qSDEkPIT3E/sR22uUFBcjHZ bpkU9OcQg7lOKWqY3H3Vkoz9HKWV7HppuaJB73IYSSkKG5nUVWAYEAPgIpkU1VuoUM/VWTyhE2VJ wBH6EtHVg5FADCI4DKfrTCNK85/DtlZSizES96cyM4ajtGM/hWjELtXX4cEK4lNcZqbzRDxU3bNc WjCAKjq4FPwtGAbEALhCLkX11quU5NOTJ7SmMmk5Rfsg9DMvxXqHZerQj0oOMn/3YAk7ySur73xM 5zhVWU4e2qpOXtuH5pSWrOUFkMiJeyB/KMF8GrHPBT0HB4LOX5aBbvzio6IokPOEUxE9oiev6Eol MnM8EBs461SQ9MgtyUwa4G3j7AOK8pNtCqUty7CIA+RnIvnpqUpepCqL6MFMyeUT46OiN+VkZBN9 JWaGN/CLYUAMeKZQkntZoIqi+M1nelKWpJyguauHooAEhJDkXJuNFXQOoOALsIiqdGOsqlGEogZr 2EISelOIYYrz+qXlALtlxNDHVjVq5SRgO9NVhUH+rRgGxIALCucRJyjv6qEHYAr5CccxWrt6IIop YjOc0C8p2MoY5vk59oG67GCPyrySv4lMC7awnNA0pwRTZO5o+BKa9UShtASlrBfcw4du1GSGJqOX RxT2sIORLug5aGMYEAMuKVKfPUdkorp66H5YQx7us49+gTLKQyrVJGtCxWQPmxhg/vdqvCjISiJp Op64dGEvU3lBNcqxkA+yWxhKA0pwBrhlx+m7AEnYxVhWuUinypMtnDSyhsjEMCAG3Calglo7KObq gVtwnuJsYAVjNX58Op+kuHFXYtkwbOYerYCP1GYVm3Xb80nBYA4yiIuUpAbr/MWifHNQuwbz6MZy qrDApnkcaP7kOkXkDVyht8t6D4oYBsSAh4pmIN6UdPXATbyhJV3oxfJAuqUvl8IOwgn9soh45KAy tVhHXJ1H9j/GcZR27CI/DdljOnqeOA4jONKzn/ZcAJraKFGDdACEJbnOV2GPVTygqwv7D2oYBsSA dwoC7L7go2jeoj0zKE4W9rnwvVVrasiKxDjHRdz5RjmnjS8fs/GmKovIQ3vusJbXpGO1g1p9eQXA I/raKOG78Z/EaddhnaW8pKeLxxB0MAzIX88XQhBSdq2TgSKq+xzFOc1eWrh6IJqSFME9SSWf0ohu 9OAE3cjBVSeO0Y2yLGUvXgxjGAA17D5231io39ry6ipJFlCVU0QbFvLAppEz8IthQP563uCpoNZJ xfLv2tGNDgxkXpDf9QhIEdY6LPOZ7pTDi738DyjNeOpwxMnjDEslhpv/NYriNgXZo3AWwXIKANDI RqmlQGUnX4M1lnPdyFwoCSMx11/PE0W+VKfp4dJRH6QnpWTFOQclatHEwUr8GFZTmVMW/mb5WE1d 2irQ67XGE6bxg58Oy4X3k253D+60IZxVuUcPIhCRUkRgG4cpS5YAMoahCA0s4AxvXeJH504Euphi otZQnolBKlGBazAMyF/PXeIoqPWCpC4bsaAtN5hLepeNQG8S48E1G64NgvGsoCiHCOvvTHL2UpUb DNZgBMc4RD8Joo0e5CaCeQn0J+/5xHcb8xCBGwnJSW9+8AJhpVQ4lgFh+a7frbVDZDpRhiymf22i EOkDudab6zEMyF/PU2LKrvOFX0Rx0XhP0Z6yTHNR786iDCusxCR8Zgrryc8uolmtFZ6dNKURC1T3 H4JCFHf1TXA6mS1mPm7Mpy6FjVV+uxh356/nlQIDcsPGA0x/BtOFGX/BFmdNDvg78ohOFOITexlj 9+7PJTHFFYT7+eUXn1x9C1zAVz+zomQUs9jhMbCGYUD+et4qmEvcI4ELRvqU4rzliHmRITgTkyic Mf/rOHWpS0qOMZDwDusOoD7Fue7qSwgG9GWryfnYwDqGAfnr+UAE2XUeu0D2bgtlaM54p/frKqqw BfjCLAoznFocoBUhJNatyxhqGhLlqvGkniFuYhdjD+Svx0eBAVEWu66GnpxjM/Gc3KsrqUlOPnOM nMxV4LCQjw3U5K7NuG8DabQhDy+J7uphBFqMGchfzyciy67z0Knxwj6U5yu7/iLz8YRx1OU67hxh rEJ/t8QcYLvhiKqaqkxw9RACMYYB+ev5qiDZ6wcn+mCdpwgV/po/4rfMoQzV+MpCdqvcyA7Dejyo yEfVo/K2iPa4aaH/aw3fMY/hPJ8ZrarXcRIyFH423bWpNPW3W7GFZrTiksWRd0yjCS/N/35OXR45 7KEN+0y9GATEMCB/PT8VRKJ/V5iCSj7raMF0mjj3lriETyyjBmW5zQi86U1Y8nFa9cN/LOUp6iD9 rWOOWCTaDU8sOyV3mL6r2ETnBeNU9TqF1w5KbDSJ2IxlHPN4YHHmBl14wmUyWDgTjGEs8y1EYnqz TEKqrFAUNVJN2cQwIH89SgyIkjpKGM8UtpPV2bfEyXxmPXUoyCm64M1IMprP5HIoUeiYxoynERtV tRGZsGynO3eACMQEdnCKCQzjG7CNE8AvZgFLWU8bLpKQiIQhPODDMLr4Sb+7gtP0YTOwkF6mGcFO 2jMVgKN0YRjvgFjcYYQ5Je5KOrIGgA+MoDvXgWWspTVnGcpdUvl5mKXkBls5TCKOmY8N5S5pzKUW koQ0kiLe20pM8fU3YhiQv56fCqQUf0n2B1JDR06wz2URJ87gHUupSlEO0oJ/mBRAX6y+xZu/cnKz hcmqIho8WcJEtpKCb9yiKzCenOxnKFWARWwDPtIPHz7zjft8YhAHCYU7kJuVXKWvRc6QFlTgHJXJ yVIWUAqYTDM+s4BmPCIfd1jLVOAlzfGmFQ2A9tTiCtXpCaRiJkdIzUXgM/dMJui9FQGVt/yiiL87 /st0Zhl9+GFVdMU/sUnMVg2+h+CI4YX116PEgDjjzaM2MTV4/w6sPGYTu3lLFrrY0Z/NxCfukVh1 b7HYT1Pqs1hh/R9kZjeQk5UUJTwQisH04zH5gUiEB8ISjvB0xoPVgBvhcEcAiSlFE0IB07nO/2hA RFaThyHsYy8QFRhBCcoSj7E0JSdDSI0HIJhLGV4Tl0XM5Q5JuEh1ChCC+0ALVtMTT5aZxvg7BHAY zylAFeAFJRjlTzX6d6nBdAJCS9TcasMIyqr+FoIjxgzEQIFwndBZ7E5QgWRMdNH90Jc7TKAc9bjH QA4w3oF8eXnma9TvXNJSWHKuQ//EACAqn02PDHdSAJ4IIBw/ATc+AR9M+ll/Irq3kJcllAVOsYmT QDjiAqEt8sn4cJ11XKEGOfHmLZ0YDHgSC0xSn7+IB8TBHR+T+nJc3vCB9+Y2Ipu8CQ+wmUvAC6ox mVr+riOKyf1jAmUIxUUKcErC1efmoxGYaRXDgBgEOr5SgvzBUE77KkMpQgs+Mo59jCKThDoNNAwH 7EkvqinaDfnJHnrRgZ2U4zVfgI98BL7wEchFHyZTmudAbHYzhpe485mvfAGqsAsftnGfhdxjOuBj MjW+D/+3QCvCUA0vEnKKytznPguAV1RjEunIDhQmFZPJTDqqc5U6DGIgNYjOVsbwH4+ZyDXGsB/Y y10G8JWYfOE547kGrOE8cItJXDWVesh/vCY60/0sGwqbd6COeS/GefxyiSaxPIwlLINAxg/KUC2Y pYi6wEqOEpHizJeZdjcyydhBKY3GUYz0NOA0Q2XWS85AnnKczcTlM2WAQiQFwlARqMlJ5tKSdPwk Cx0YSQpKEoeQlAdKMxM3llpcd3kiAulNu1s1gdEMoycR6EY24jKcFOwHWhCXpaRjPrCZdsygElOA M3TmMovJD7RlBGlxYzyZ2MYPCpv6eEZ2PtKDl8QjNVspRGbOMo6M7OAHhU0xRVX85bEMZdOlvTaF +OXk9+0fTtlpVIebEFCOSbKDlerSgeyuHn2wpig7Zdv3vOwJIPLtiHwckf2mU5IlpkUNrflFCSrR Wpe2XcFdlrOXkFSkmsI7tp/ZrNR0TG35j6UO9AfWc1SlE25QpCLxKEs4YhMnwP1pSz5qKm75Ol1k b8RfpS/rXH1LHGDMQAwCFWUoF0zMx3+sZzu/KMYS4qtopzADea5AMdk2U1lEYaaS09W3KNAREjeO c5eXfEAQiWjEIS2JiENqOjFQhQFRws8gMAMxDIhBIKIKXrR39SBU85W1rOIthZmhSdqtkizQOP9j A7LRmIa0cs0NCrR40sUs0vOVpzzhAZfx5gUfCM0OwpCRZCQioQRNZPX8MPZADAyk04LEdHf1IFTy DzO4Qk6GSNoil0ZjqmmeQDgdh6nDP5r5eAUPvvLW/DkUiUhELouzk9hEYbbwhFe4E534ZCA9ie1G 5qvhWxB4PAf+ERr8JQzkC7NcPQgVfGERa4hAXeZp/OYYm0Rsp7TG4w3FWsaRj+kWke9/O/a/t1bs oqZpGes9d7jLBfbxnK9EIxEZyUISTTXi3ihQqXM2hgExCBQs4zi7XD0IxdxnGgfJyyyS6dJ+S8Zr bkAAupCXJjQ2lrIk4Ul0tlEGgIhkJjOVAPjBdW5ynt08A+KTitykVrXv5cszTXe+9MEwIAaBgLNM ZK+rB6GQk0ziPo0YpeOKdT76c4vkOrScC2/qcZR5hNLvFgUbGjHTZEAs8SAd6agIwDsucZGVPOAz sUlDXjISB4gm2zsSnunk6aglhgExcDkfaMVMU3xx0GIfYwhJW0ro3lMdpuuUjTEUq5lGQUZR0OJo FKfpLQcmHL0CeNGf16bYeOtEIi95AfjFWf5lG1N4TwrCKkiN+5Y4rr4hDjEMiIHLqU/rIKi4u5sJ eDLAgRSJVtSnIN9000BuQ3k6cJG2gA/32cN8K2/awR93h6GChVgq0U/QnWxkA+Abl9jEYarwmXTk IY/EbXefIPBSZRgQAxczlmg0cPUgZHKYoURhOFmc1mNI8jCflrq1n4A2FGUcIXhPZEqRgSWcVZnQ KgQRCcElPInJD0UtuOHOMxLzmZ86XbcbP3jGNxISHw9OOFxoakRz2Y7mnvyPeNxhCf9xgkNM4zup yEdR4tqt9yYIpNI1DIiBSznNBg67ehCyuMQg3jPAtFDhPNpTV3MD8oINnOAp53hLAYbhxnq609x0 9qcksXNruBECN+Ayg4nMQErz047OlG1C8J2iDCIHPxTVl9LDB7axkf8ITSlmOPR7SooHV0kju5+3 vAMSkIBqwFsOcJQVfCcZBSlhI2XBK2MT3cDAPh2ZFATibX/zhh7cojslXdB3QhKz0bRVq47LbOEG VzhNTAoQj9KUJbTpXE9aU5kZxAJCqPpm7jCCxzSnAqD8QROKoYxgg44PqkjUpjZwmA1MIzqlqWT3 zb8syxUJfVoa48hUohLgwwH2MRs3slOYov6u8qOxB2JgYI9eeJnWiYMCk1lKY2a7rP/O9FRsQL5y hP3c4ASPSEcmktGejFZW/N2YwRrK0UbVsuJVhvGQdlTR4KoLspD5NNagJfsUoABwhnXUIhzFqGpj p6KWJkbcl/CUoxzwlF0sZzBxKEUZs9n4qcBzy9kYBsTAZZznaJBZvjpOH9Kyx6Xbmpnx5KispbOX HOQk/3KUT6QkNTkZSnKHf/TVKEordir0jLvEKB7RRhPj4csYylDZlO1Db7KSFbjMKmoRhtJWzEg0 YnGMPJr2GpsGNABOs4U6fKcgNYltUgwO3BgGxMBldJUtK+4aftKR60zQUJxEKe0YL8GA3OEwpzjJ WdxIRWIKM56Usjy4orCS+XjRX+bb9iWG8Yz2Gr6jA0SnEd2Yo2mb9knHYOAyK6lJeKpQ1Y/2VVWW aWxAfuPrt/WYLYzhJnc550Q3DWUYCaUMXMRcklDA1YOQwA7yEJ/dgcB8QDHec9bqmR+cYTp1SYYb yejKTRpyhW9cZQc9Sa/AAbgxm1hAA1OGQcdcohbtqcl+jc0HQEseuiDQNB1DOMBwrlKS6mw0b+NX 5ryu/calBYvoQ3IWkYPG7HD6lUvHmIEYuISvzGWzqwfhkB+04AUrzQqtrqcL48xZwOED1znAYU7x HPAgPXUpQSbCadJXAjYxl6J0DpAY1j//MpQ3dNIxdmQCjSjskvfdDIwCvFnMCDLSiDx4klUHbTL/ 3KQ59fjKHlYxkvRU9Zf8KnBgGBADlzCYcoHeSfEU7ajGPFcPww8lmct+wrOfM3jzFIAUVKU4eXQR vmhKedqyjhk2W/+Xobyms86Bh6kpTXfG6tqHPfKRj29sYhz9qEEmduhuQK5THghFWcrygy3MpA+5 qUdml90DaxgGxMAFPGM/x1w9CAcMZjezA8XCFcAPbnOdczzlGOsIxw/iUJxcFCGlzj3HZDUrKE0z c3zIH84wnA901P1hCtCPwpzyk8Hc2XhSjWq8YCnb2Us5iuva21MSmD97UIlKvGM9fflCBWoFmhBD w4AYuICx1A7UyXLeUIfkeLt6GLzhJhe4xBM+8JSP/MSDAhymF+2cOo5alKUdG5hBYvOx0wznA12c GBMzii6BwGsvBp3oRFuakJ4MtNBJfxleW2SR9yUSjWjEAxZQnoQ0dEk0kn8MA2LgdN7gzVFXD8IO 3nSSsO6vH6+4xj/c4DUh8QTe8ZQIZCcjBUiFJ/+4IBYlAgvZTDXq0BH4h5H40NkJIpKWZCc7g+nv 9Gu3Rju+MoeFtMWdZjq4DbwDG1nrEzKAAexjNoMpT3O70o76YxgQA6cznsqB2P1vAmtYSiqn9/uS a5zkOq8IS3xikppHvOAjMclDdtJZRIVnpy/HnSTiaEl5yjOIvEQhIj1cspg0jnyUCxSuram4w1sa 0pB/mMFYytBC00f5PQeLVEUowivmUYHktHLhwp5hQAycjGAv+1w9CJs0QHDUictrT7jBP1zhEeFJ Tk5y8p37/Is3kchNPdJbrdWLYWx1wd25yAMi8Y40LntkjaE9R1zUt18KM5/O+M6LXjODsqSgvWaq 0tdJ6rBMNLrTnY30R9DQRTNmw4AYOJkVZAmkEg1vqEph+jihp9dc4ziXuI07KShOLeLxgX0c4C4R yUF9B2/ZhZjAXoo69e54M5Jf9KQAMJWctKKhU/v3JTf56cUIF/Tsn5q0prPpc1T60Ie19MKNVpos aJ2WbIoqUpGrjGcStWnh9LRghgExcDJLA8Wff0Au04RO1NCxh6/c4hBnuMM34lCE7iZV1xNM5BKe ZKUa+SS2NZCuTjQg3oziFz3MgZ9tqUFH1jJedx+wgAyngOZSIkpIxi/uWTgVQFWqcp4JjKM2zVQ+ Wu+acq9LIw1zeM5k8lOYHprmZXeEYUAMnMp1vgca11hLNjOUaWTXoeVf3OMfjnGV70QhM9XIbwr0 e85E9vORNBSipw1Jb1tkIR7Lqe2EO3OI0WBhPHyJwTJ20IgiDHbCGPwymdaBwgm8OCvp6e9YZhbx gMnkpwztHYrD2+aZbNMck6H0YSoVyEYfmb8m5RgGxMCprDDJewcu5rKITRqLZz/nBMe4zhsikY68 tLdw+DzKai4RlnwMUWxOh9CQ2nzhoI7unIcYRQj62HjfL0VJepOPXk7OXpiZUnRgklP7tEZ1mgYw IAAJGYsPkylBbro6SBplnaeE9KO+JZUwdKMbUyhPAXo4RX7SMCAGTuUIS1w9hACMYyc7NZL/+M51 vPmH63iQhjw08Jd8aDcbOEdCKjPUhpumVBJRkppsxh0fXe7KIcbgRh+74o1ujOAW3ZnPGAmbvtrR j6JOEBNxRCLcuUVyq+fC05uezKA6GelGEiLIetReswgilE872jGRUhSmj+67jYYBMXAiNwip6I1M T/pzmT2qW/nAMQ5zng/EIhv1yEkYfyWOs4gLpKYikwmpwbj3sYJ/Nb0TWyhn+rSXcYSmL7kk1ErO erZQl4IMceLjZC7VyOvynOGlWEE/m2fdaUMbVtCATBST9bpwSrU3V0faMJrC1NE55NQwIAZOZJ2T Q88c05YPrFNR/yX7OcY1fpCYbNQjtZUyT5jNIaJSmama/cE9tthCv2a1V7lMpR378TIZj4HklFG3 HOUYRD46U12j63NEYtrRiPVO6s0W1ahvx4D4UotarGM4D/gc4KXCFuc1eOyHpA8d6E8+uum4bGwY EAMnclJRMlD9aAUsUlTzLfs4zEXcyEA+etsUhjzBNO5QhTUab2vG5T8KcgeAMxoYkMW0A1qTj08M kDTz8M8AmtKNJYwknaZXaov67GcCnZzSly3i4SnJfFchJ/moQywGSZIQfazJKwGEZzw36ckchpNR lztgGBADp/GFl2Rw9SAsaA3MkF3rH3ZxjM+kIT997Srg7mI8YWlOKV1GH58bFMIbOE8dlW0tNyWw vUZ7WiluJR7L2UFzcjFYox0l+8ymIEV0ejBKpQzLJfmhfSU/S5hJeYrQ18FM5AkhNHTFTcE6dtGG nIzQZOnUL4FXUcIg2HFe1dag1rRByDQfR2lPPkYRmekcYDq17JiP+1RmJiPZoJP5AAjBEVoCp1W2 s9bCAKkVry/FURJQmCm6XfUfPJlAa3OaJ9dQTWJc/A/eAS05TjQKO5ClP6+5QGMJjhCdvGzU/PqN GYiB09gbiDIQtuG7LEnCuSwiNlUYKcmvZSPD6WNaeb7DF50ecm5EYRDXOcB13PiuqI0wrKWH+XNY XnGQ+HyVMQZBdH95wzvSmL7kp6fu7r25KEVrBbNI7YhFOC7ZEJzxyy8A3OhMcwaQhw42g1YP6/J3 0pNadGI1EzXNw2MYEAOncU3F8oi2dOKbjBzbP6hJeNb6e0zaZiVT2W4Sw3tAPgrwWafrcCMcSflO d0LwU1ELIXlDMSLghidhCQ3M5aPpYScFT57hxiF/RyMymWv0YhYjdN4R6UNFFlNf1z7sU57lDJdV Izzj+I++zGOQVUnMCzqJxCRiPUsoQ1vTgqUWGAbEwGk8kvSmpj8DeG6RFtYR96lFTdpLLr+RqWw3 xyB/Jy8rXX3BuvKZqlaPp2YDu2hNWkboGtK2kBLkdIF68m8q27h++yRgEUfpTWJGB1gIfafj1dSj PC3ZxSyVUUi/MfZADJzEO4TL/fYBxnJBhvnYSyWGyDAfBxjOJgsJC8FHV1+wzryys+BVgkOkp5iu qWgjM45mMuZMWhOdiJxXVDMvB/CiHCP9HD2lsSKCfyKxgsJ4sUOT1gwDYuAkHro49Y0vM9nHBsml pzCY9RSRXP4S3VjtNB2ioEEbDvGC3CzWrYd8lKORC6+wAisU163PIZ6Sk73mI0cUOVHLoylrmaiJ C7RhQAycxCPJewj6sYLVbJZceiA7OeBHb9U+b2nKNBnl/xbCMooNHCI/u3TqoRu/GO2y66vASRW1 QzGReYyjMa8BOCrjhUU5idlFBApxT2U7hgExcBI3nKqWZI1DTGadZF/4Ntxim0UeQMfUoKOs+O2/ idjMYzpzqMBZXdpfyBaXpSmLTnguqmohPTvIS1EWAp+cplY9mJ5UYpuqNgwDYuAkHhLfpf1fpjPL JQdo1SYES2W1356ssnI4/H1kYC0d6Ex9/tO87RAspIcO7UqjnAaOEk3Yx2lyE8GJ+TBLsp0xDFPR gmFADJzEa5cuYT2hITNIIrF0BdIyWVb7q7kt05lTCz7LWoK4b5I++cMLrvDW37Gb3Dd9us0lLvh7 t37IVYURJ74U5iAlqEI33mt8L5IxjLoKnZnVUoGjGrQShankZgdznTjyOBzkhoodJMOAGDiJT4oy HGjDZ6ozWHIe76pkp6+s9p8yigUuuK71EuY8PUwGoT6JSWbW2wUYQkzSEcXCVP4iAylJbEpUlZwM ZMLLtDYP0IgEpCUUJ1SNug6niEtxhvBN07tRgnLU07RFqcQmLFc0aekl+7hK8QCmXk8WkYRiCr0F DQNi4CS+Oj1f8x9qU0eypEh10ss0H9CK7pLjex+COYPHa56YPr3nkUWZH3wH07lHfDEdfWMu855H /AQiEBt4bK73gufmz49Mj4RVnOQ7N1jCBwS7LXYKKvEQwWI6mI9M5xMCwVZOA8kRCF5aeM91RCCo wVC1XwidOAwUYpymUfpdCe9QHVcfSrNag1a+c4+cjKMztZjuxNH3pzYleKigpmFADJzEV0K7qOd2 pKKlxLJ1SMNAme0vxVNiLvWnRCYBqYjNbaAk0YhLI6AFkYhPfnO5tUQhMXFpSCPiE4ZHQCuiEp+M wGwiEZ9E/CQiB0hNPNICUIKYxKIQ8IAIxCc889jJfWqQnjWUIDxQja3mXtITD4hpkfLqlWmRLzL7 gLvkoQ6nLMafie+84ZsmfkKe9GMXT8ml6ZLNbM66ZC5YkcMatHLI5MNXksOcoAIvnTb+RvSjEpdl 1zMMiIGT+OaiGcgYXvgL1bJNB2IySPZ1TZacXrUjBRAs5yNxWMI5PvKDfhxhPvcRTAZe8gwIyxdu 8ZpFZEFQmUXcYjV3EcRiEjsZgOAwIRC8xxvBL+ZykBN8R3CZnXSgKoI9dKAkXlzmOj9MwY1ReQ88 M89UbtHRIkKjHvtISxH+4x1Qgex8IaeftFUViMpm6mr03URgDJv4h3ys1ahFWM0cDmjWmlTi48kN 1a3sM2d5CcViqlGKLU67ghJMpaFsHznDgBg4iZ+yXGK1YjM7JXvIjOIFE2T3MIgKxJZY9gotgKyk JCRnqUVYQpCUa+QlIZCFXcQgNidxpzgeRCE5dYDsvOEer8lOKPbyhvWEYagpDVYeogNVucNtiuMB 1OIit+kCFCUmT/nBTyAaTwF4THJWEptYXAauUJUFZDOPLynPacEgcpMYWMck1lHGz8N9O4KBquXj LYnNLBawgWIaxUaHYwlduanhCKVRQgMjeIpiFv+qyyZmWCww6k1O5tFUZkyLYUAMgjE3GSrZGXcZ e1guu4dX7KOX5NLZGQ7s5Abfyc9cbvGYk2ThEMd5y05KIBDk5L3J0+kTX4BvfCADcTjGV3bThGM0 pCuD2EtYjnGRD8wnHenZxAOeMZucZKQnsJiHxOYTF/CVHT/NLdZRlpoIBOm4QFEmksvkufQKEFyg Ay84Tm0+sp5P3GM7ycHkM7WaF8AdXmj8PaVgGeNZRDF2a9BaMiZRz4nLP75UZL/KFh7i7k/GJC7b iYCX07bUM7KEtrJmIYYBMQi2fKMRoyUqC51iqqIEqSOpKeOPaDqfcGMc0fhCZaqSgngsIxv9yUMU ixwa3/EEIAxfAXe+EYvWpMWNKrxiLbEJQxIK8ZmEVCMiqahDTmqTiNhUogBTuIwbDVgAVKMuoYjF cLKTgs4WKb2G8QQv3AjHT24QGxB0xI06bCY8b+lOOJJQgwZAbuYCS4iJG7uZr8O3lYGVjGE2JVQ/ iCEfPaiqsY+XI5LgpvJBv8uqn+BQelHTacl70zGPFnI8yoQQoqy4LeRSR5ySXcdADkXEd9l18oiP suvkFb9k1ykhnsuuU1Q80ObGSKaqmCax5DuRU5xX0IOPyOXgW7opSvn593khxDYR0/zvH+ZPftv5 aBqXb5kvAcr8sCj7zfzpl8V3+d3i0wfzeb98F0J8M/X1LEBrlr28NtX9JX76a+M/UUTBnbPNCVFe lBZHVLczXZTVdFyOGSVG2zx3TZRxWL+aOGnjzHNRWnR12nUcEznFI4lljRmIQTBlMFFpLbFsPZop EpBYgJesjAivqYobZSw29f/sC/ltxzdtVURTmVAByljuJ/0RZ3GziGL2sPgU3nzeLx5ASFNfMQO0 ZtlLFFNdN90XLXKyib6MpAL/qGqnFVk12+yXRmX2qKgteEx2G+disI1flNE8+NI6uelLTT5JKmsY EINgyW72M0ti2YEkoImiXtbRTFb5qNzkFd9dqh0bFMjNVtoxkGqqIrwHEovGThx1cn7yQHHtPSS3 K2IyjlqU0ElJzD9lqSfRMd0wIAbBkOf0YqHEst4cYKqiXi4SRrI4yh+iGlncJFGUbbRhOOXxVtzG OELSzoljLihD69k/mynroERdptHCSenJmpGBNhLKGQbEIBjSgN4SZdUF3S02r+WxTvec3387hdhG d8ZSmoMKW5iFD52dNt4qKlyRz1PSYZn/sYt5GugASGE4zyVEwxsGxCDY0Y9UVJFYth3lyaiwH28/ ylIG+pCPjfRjMiUtki7JYQFvNUmdJIV0fFTo4vwPsSRpxUVlD7c1zGlujyUs8aNDYA3DgBgEMw5y kIkSy+7jJj0V9vOOHyR09cX+JeRmPYOYQglFKanm856OThppDoX5NTb5CSG0zwISUE6VJrI0QjOT dny2W8YwIAbBii/0YI7k0gMYr7inky5PkPV3kZNNDGMRXgpkC+fxkRZOGWV1Nimq500lGaWHUgYv J4RKZqK+AxU5w4AYBCua0IjUEsuOIjvpFPd0UlL2QXeTk2zwJYoTRTKzsZyZbCO/bMHEOYSV6Fek doQvFQijXyaczGw5LelKKW7rfj1t+GhXy8FwCDEIRizjk2Td3cesV+HfA+cZLKHULw4xyizfLpdQ ROAnn/nGL39n3AiDB9+snAmJJ7/46ud4CDzx5JuD5Qi/7YckNKGBD3zhlx8HUzd+EIEweALuXLaQ k3cGqVjEA4Yzhzq0lpG9bwKDKMd6ySmNlZKR7VSTWWctJWT3U5HIVGcuWXS+ntmUoCTRbZw1DIhB sOEV42V4wfShjaqHyTviSiiVnFl8CvCQl4IHkfnKRA7Tjf8FkOWIwGtaMYjU/tbC3QhHb2qRwU8g WBh2sYa5uEt+O/bgPqN4RTkqkIjP+PDDnLnDnafsYD8Qj5Kkl+TuqS0JmckzhpODmrSVrPI8gJkU ZaVEcRulVGeWbANyiGUKeirEfBoylby6Xk9U2tLWpvOwYUAMgg3N6Sw5rdMV7qjMG/FVYn71yop7 uMNgsrHNhndON6bYWNffS40Ay3jViM9Nesvqvxd3WcI2stAoQD77rsArTnKE4xwlAYXIIVmTWBti MYk3TMCLQnS2+Ybsl5Ykojyz+J+O4ypAb5nK09cJpdCoZWI1dRhDQR2vBxqwns2Ut3rO2AMxCCYs wUOGzPgAuqjq7T4RdL2aR9SiNW0YZ8N8DOC1zW3hENyycnQg1+gjcxRJ6M8aktOSAkwMkD09GqUZ wSomkJPd1KEQTZnn1GSsURjMQWJQntbclVSjFPNowQYdx+RGKnbKqrFMRTxRClbS1SLLpD6MZ5SN M4YBMQgWvGOKRW5vR5zhnY03Kqk8ljj/UMZwKlKGnTa1kdZwgnk2ayewIaixmCuMkz2WENRiK0t4 R3nqWH1UxacGU9nHZqpyn/YUpA4TuOAER1MATzpxjJw0pC7nJZTPyFamy846KYcqMg3UQQmZ7W2T lNX00DmFVjLyM8LqGcOAGAQLOtJYhh/LGNVxAW+JrNOVbCM/HzhmRwjwKqPtZi6Ja3Nbez17FCaQ TcQADlOfhRRkoDmTu18iUpLBbGUfrfjOILyoSH8OSpTlU0cDDlGd7lSU8CiNxR4eU4OvOo2lCFdl lP6HaBIX4GyRhDV054ROV+PLQDbyzspxw4AYBAP28Eyy9xXc5imlVfb4RhcD8h/Vmc98RtjZ3v9C IyYRzU4r0Xhj44wb61jCRsXjK8ES1hKamtSyozzrQT66sw5vhhOP+ZSiBN3YwCsd7pgl5dlNZ2ZR XEJisNnkoxDXdRlHaBLJmBEslayaYJskLKYDF3S5mt/XVNOq16FhQAyCAUMYLaP0GA3UcD9IEp6Q x2iqUZV1pLBbqh4NyWO3RFSr74q+hGMNIxUrSwHEoCeHaMEiCjDKgVFISwsWc4i5ZGEf1SlICxaq UKx1TAFWMoVD5Gacg5lPO8ZQX+F8zBHlZYQTnlHhZvGHNEyjicR9IGV04riV0EXDgBgEeUaSg/SS S7/lXw20hL5pHE/gTWGecIjqDsoNIrrDuVbUANvdlsRkGV1Uv60WYikbgHLU5pDD0gmozVT2sYUK XKUlBajLZP7V9A7+IRWz2MY7vOhqY7HNl3zsZRfNze7J2lGK0xJL7iWJRqGm2RhFXZtzTy2oYWUr 3TAgBkGch2xgmIzyi2WoDtnmu4YG5Btt6ccEJjiMaNjNIWY4bC+ag2iPZMzR5G01Gj04Ri0mUpg5 krbMI1KaUWxnDy35yGDyUomRHNIh+WxUBnOUZFSlvp2t9QisIQkFuKhx75GILjFzxwqHrwzSKUx7 qpky3OtBW44ECIk1DIhBEKcX7SSHkgGsp6kGvf7QLIRqGwVJzAEJGRGf09uO79Ufojp8mP+PMVTX SEupHBuYz23y00myUQpFPnqxjqMMISxzKE4JerJR4/dnD1pxlDL0ppKdPB29GE9Lm26qSikmaRHr G1c1VXSuQRkNDZJ/QlCcmf6OGQbEIEhzgmeyEpceJUog0tB9TxNmsoyukko3pJfEBFYedhexAArR m0oypE3sk5iRHCENTakkM61retqzlIPMIT27qUxh2rCcexqNC6AG2+nFKvIxnR9WS2TnMPcoq6kk SyWOSCi1gcwa9gnQiSR00LjNP7QJ4IBhGBCDIM0g+ssqv4R6mvTrYeNhJIdNFCYXWySq+vYgnWR/ nQgS3uUr0VhlLIxfQtKcfXRkDvmZJfvuJKQu0znAKkpxlpYUpDazNFtaysEyVnKPAvS0uisSghk0 orxKbQJL4hJSQkjlch0ye4zlPwmJoJQRiwTs9nPEMCAGQZi1RCafrBoXHSYOlUYIlWvN32jOHNZL zqm+izOMkdx6BEkus40oQVVN7sYfCrKapdykIH3sbmDbIgZlGctOttOaJ/QjPxUZzRENdkniM5oD xKYqDaxucVdhHweopGjU1u/ERgcl/uOdJEVnuaxkGft1aBegsT8jaxgQgyDMZAbJKr+NlHhq0rOH KgOyj4KkYavkxbQ39GW2jPYjSdzf6EpyGmtyPyxJxFj2E5eq1OecwjbCkY+BbOQAQwjDdIpRgt7s UrlLEoqOHKUqQylmRb4wEoupTXlZd9o2VRxmUFyg6QzwD54spjuPdGm7GP/5cRI3DIhBkGUe6Ugp q8ZqamvUd2gVccxdGcYSWWlWm9JOVvqqhJJjLUbiqUvO8FC04SiV6EVZtqtox4MMtGMFh5hBKtZQ mSK0YI0qxa1ybGQih8jD4ACGthp7OUZZbqq+A6n47GAeuFej5dSAJKO/bmlvc/iZWRkGxCDIMpd+ MmvcxkujvsPwRVG9exTGnf0kl1FnPBGpL6uXRDKcdGfyVOY8TjqV2El/FlGAharbSkoD5nKAZZTn JC0oQD3mcklha+mYzS5CUpYm/mZJkVhIe+rJ/m0FJIfdRayDxCKG6j5sUZ7ctNel5dqGATEIDkwj t6SMHH/YT2LNnG+VGZCFVKOnrKh5uMQa2YsqMXkto/RyTssQopRLDlaxmDPkZoxCo+uX2JRhLHvY RlMe0pt8VGI4pxTMCCPQixOUoS8lWexnSbI4J/hJbn8bxnKpxVHz57gWgu2+I12hgR6CPYZwixU6 tJuNlxYx/kY+EIMgyjLZmk5bVStg/SGMAhfYxrxnHxFl1mrLaNlBi9EduvH6ZRPFiKTbogckZgpv mEBBitDFro6XdCJQkIKA4DzejOUxkchAUTLJfK+vTGWuMYkZ5Ketxa7UcK7QjfmMDZALRSqZuUVX 1pONsLzhNE34yCwiMZv+DOCVhr9G6yylGHl1cFpPw17z7o0xAzEIkswgu+TkUb85S0nN+g8r04Dc Jz8pWCvbfPQhJ/lljy66zM1mdzYyl62a3R1rRGEwR4hBWdpoGufhRhbasRpvxpOOlVSjKC1Zy38y 2kjNDA6RlAZUZJf5aFq2UZN6TDAfuSWjzQZE5QjjuEtMFrGZx8xnH5GAT7ylE+uoq7OCblQG2MwZ o4YyFvlODANiECRZSk+ZNR4Qiqia9R9WcnJYgE1Uph+9ZPdynKOKYqRjyp4fRWANQyQFv6nBk04c 53/UpJEG29T+SUU95nKQZZTCm8YUpAGzuCZ5bC05QEcWk5fxZk+jdNQhNEVYC7wgBWsljya22Yg3 IYfpk29Cr9+/nGWKEtnKoTzJZcn8SCMvV8yfDQNiEARZQjrZSUB3k1XDEYSXsZ7fj6lso7jsPn7R TeHehCfIzsIRm8V0VLwpLYcmnKAkrahn8SDSklhUYCJ72E4DntOdvNRgNGf8fWM9rb7/F2IZa3lP SZpzAehGM+Kwk610ohlQjeMSRzGKUqZPMcy7Hb6aCb89v+oxRb+bbGIKWxW7UtsiOh48N302DIhB EGQ+3WTXOaThAhZElLxpW4uX7FGUL7w7JciocHzheSG7Tipm0Yj7Wt0iu9RgL5VoQy3NhQz/EI7C 9GMz3nTGk1EUpRy92GuaXYwit40c8XEYyHEK04c6bAIqMYaFFDGpWxXitsT+15izVvo6j+cyJY7y /WaKsljfW2xirCyHcWmkNrsHGAbEIMixg5gOcmZY476mUb8RJKnPvqAwWSXo51rjBKdVuJJGMb8j yiEbI6ghy4NLDZU5QC06UEPzd2S/uJGTjqzGm3GkZDGlqWiKfRlBIpu5UWqyhXimz33owhLT52/k kXiHwpl2lQQRSQvm/YhXQEaZmmHKyUsWRmrc5v/M35hhQAyCHDMUvFPdIYIszV5HRJAwAzlDGdpJ FEoMSA+Z7r5+icIzRfWK0pVKTklC60t59tOALlTXcSbyh5Q0YjFHWWM2/w/woi4fbJRfaf40ntVA ONyA52STuMeUh6FAaHyNx28vt9eE19lk+mUsmyTPmqSRx5xPxnDjNQhiXOIzuWTXOqC57qkjNjKC ORJE2q0zlBzmrVclJFGc76Mqb6ls4WejP6UpzTY6EYc+pHZKj36FDpexgvzgL7FUSD748+SKTxLu 8hC4S2Iy8t1hKirfrJUViMM9oCI+/CQi/5KCWrzQMXMHhOY5m0wuvCHoS0e2aNh6QrObuGFADIIY kxSpN52iosbj8OCbHV2teSxiq+JI46tsx1vV6JJxWHHdpryhBqu0uEmSKUMZNtKMVAwggRP6u0wJ ChCNJCQgHhH5GkA/2I1QhLDTgg9uDntxIywPCEcEBPdJylfc+MUrEvGZX7peXzgq8MwcA1KGpazW MFNIWOATYTEMiEEQ4y2XmaOg3k1yazwSewZkJIfYRRjFbXejv8rV5diq0kV1oxeNma/+JsmiIhVZ Sk0yM1BHkQ9f8jKeWBb/DiV7gTO8xHK/H+Ip+f24DQ8qfhtSiexnfjSC2pqmmorFFbJh7IEYBDEW UkRBrU/8IrLGI3G3KTHemzPsUPGIWEEE1R5jMWTGovtnBB6Kd2/UUJejpKci3WzuS2jDVwVeakEL vzOqxGTXNEtIAlMwqGFADIIUG2muoNZZHZZFQtjww+rEf6xR0e53JjFO9ehi+hHdVsJsHjNU9TiU 0IqjRKcIY3Xsw9HuRfCjN0s1bC22KW+KYUAMghBHiKrIFJxUvJltG+sGpBWfzA6fyuhJBZkikdaI iFD9kFzOCaaqHokyenCQ1+TWLVbC8f5FcCMWGTSMfI9nSgBsGBCDIMQsyRn8/PKvKo8m67hbMSDt EMxS1eolTiqQPLFGaA1y621ine5yG7YIy3DWcojCTouYCO6019AcJzJmIAZBjZfcM8tDyOO+pjIm vrgH8NvpwDdmqmy1l8wc77aJqjASxJIQbGKaU116/RKPeYxnMpV0Ej35u0iHu2b3MYZJ6cswIAZB hgWUUFTvLSEIp/lo3Pw5Yvbkg8rZB2wjhALNLOtENy0yqCMia+knWf9JDzKzhea0opkqvzLpNOQA /1EI6K5BGixowQYHJT5zyPSpPZ7k8DNz7EtUQtHW4shKEhOCohbZDh/jhhtuVHM4lgqazSfDmebf hgExCDJsoamiemdJrMNo/BqQkdzWwO11pIbaqUk0ij6OyyLaSNa01YdSHCI7ZVXF5kvlBu9IwAzg gSS5Gkfcc1jiril34GxmsJ9YFh54PrxhChuZZqHJfIs2HOGxRTaRL0TgCRck3J2qKqOL/uBp+vUb BsQgiHCcaLIVeH05rViS0B6WBmQ2B1V5Xvkyi7Sk02x8abihUUtpmU5dHmk2MmU05zCvycdmHdr2 JgnZ6MEIwJPQfGcEEIUjeJHIND8YREySWDyAe9CL9BTiGS2IaNI760tUUnIUmEYc4rAYiMwOcpOC 0wA0JRJ5uQtcIzuR6QgM5AKhGME6ZpCPLdwyuxiHZxp1KEU9i1lJX7qRh/EWbsjuhOIr8Uji8Dqj E1ajXCwhDANiELRYYBLDls8VXWRM/hiQ7SzS4LH2jbkM13B8cTWMdMjFMKrwXsPRKcGTkSxiHhU1 M42+fMGLcvRgAmcA8MCH/cA3VtKaKngBYxjCGBrz0FzrMEsYgwexScwwWgOT2MVB+tOce7RlDBN4 BXxkLd3xoiDQjs0sJSYFgfykYiELGEFLYrOF5twkPQACHz/ju8nxAOpv/Rhh/vyTl6Qjmknz1z6Z OaDJPQth8vEzDIhBkOA7lxSLkdznfzqMyM30J3SOAay1I2oilaGU1SjZqy+xZWYltE8JOlFOkyUd dSRjE81pQGcFOdBtcYGoTKYaYwgNgBshCQW4MZhqjCcmj1jBNhrQj5q0wo3MQAQmUorB/I9etCMR b1nGDTowgSs8ozuPiU4HIARjqMRsPPjANnZTjg2EYQeCpVRkPbvISEKKE41fplRT7oSkGm6m3bAL VGAuiSzG+5X8VKOGxT15jw/PWCEhY2Ihjmlyz36LvJikTJR4jP99oTjOJfjdXzW+92vJYleZyDYf EbITyUq/nlc0Z47CpTVL3rFLs/VpX2JprKlbg9dUYLumbSqjNKUZS17amBM1qSOcKWr/oj95w1+m 9FqvCUtUjptcOBqQgRjAT0ICH0356n/yk1jEYQCfuEFOcgJrSM0NhEm59gNhiMAZMvOa18TmIwI3 zhCKX6ao+1wsoQjn+UV8muNFIuA8HTjkR9jlE1XpTjmLI9+IAMQkhE1thD/kUpTh0jbuAB4K3ixC ShisgRrcFMithVCg8BnQHVXK2JSYNzXT3RWKJBQBrsvOnS6VsEANumuyQDaSqqZHkVa4E9LCU0cL WpGfWpq2qJyu7GA/ZTRxS01HdtzJyTLCAh/4gA/vga8sIwNuZCIKwxhEHMIzily0phrwlvfAB5Px ectLRnGSNnRkAReISnq68BP4xmTS40ZhPBhIU5IRjRJkoSTuJKEH3YjJVSIznbEsIjFZ6AwUozVl +EkWDlOJuAwHxtIDKMIOhpOMSsA/FAFmEY5kuJGLtA6vNRK/NFUB9gDwVDAdDONvnc5Aa9z4IXth RMmrgDvfFTy65Bs3oUK58wE+iiM5TuqyhQ6ehKIb+SU4TzrmNQfMOd60IyqPNV0Ug150pZkiMUvt icES9tOYwgxTHVd+kEPEYwDxgRFkJiazga4M5CrvqAfk5D+2EYGq5jojSAvkYQIAC4lPOM6wDShM cg5xlIhUBQYxnXN8pyZQiYscJDklgQ1s5T5FSQVcZDPpiM89tpOKwuY+QrCU93znHXmA7HwABnET gQ9xgfhUAtqRnNumVh0TgXsk0+xbUGxA4lhsJxnog/w3BSUGxINvhJVZR8nsSChcggJYpjCAEOAy xRTXtUd4BuHGGE3aGkENFXfHFjF5RAaN2xxLU3povAyinMKcYAB56K/i9wEwkN2E4BTXwbTzUAnI AhaZL+ObMwr64lsutqnnKgDEMyu1ZTDf+ZxAUnOt9KaNcoCyAY4mopW/kdWx+FzQ1O+fSKE4pggR OVefiCsaGhB3gPAKhNcyOiWD2N+MmwKzHtq0DSeHUAq8a9ydbEB2+/lDksdNsimua493HGS2Ji29 wJuOOowwHg90aHUu9zWMVlHPIBYzjXqqfM46UJOy3CS5qy/GCUTXdGHTHZSJHqTjpqvvRDAnooKs 1uEUvAqEVuSeqcSAKN0DOUsExfKCX/hszmytLds0i+odQy1dxP3Scl2XK1/JMYV53vUhBVspRmkV Y4pBZ/pYzBOCM5E0dcd2B4isIHdAcj4Y2+i6EkvB+2NYBQYkvIJv313B8tovxTnJl1FJYU24S1TF de3RBR8NfK8APnEkwMKFNiTSRMzEGhtYY5EvPDBQn72cprROJjM4EUF7AxJVkcd4Cva5+l4Ea2Ip iP1VUicKr2XXCaFgr0W5ATmhYqP6mC5b6Iv5ThMFy4XWmEERjf2vfqNtJIglnqxnigtFFq0RiXl0 ooHEYEz1YvdBFQ8FXpe2cQeIo0j4uQqrXX0vgjWJFIgOpFagWaTMgMiffSrNAb2HxJLThwbkXx2i 0B8zncmg0Qx8HR00H6EvcXT0lIzMKvpzUrf2lVGMY7zAS8L+bKi/NoZaic+lbdwB4isSfi7DdY3e wQyskZK7suskULBoEU3BXouH7Ifnd8VvfMslSTTY4oYOW+ht6AoapVxdbgpL0wN3Qmsg6W6L+Myj jcaiIlpc8wQG09LBNv937uk06wv8/NDegCRT8A4KUFR19gMD26RVMC9MqKiOfIfssLJfHb4pjAL5 xg0L3VG5fOUTCRXXts40IlMV5TMqv8wPoHKkJTE1ks6zTgYmU1e3fRbl5MeblxT2tx/yg3Msowul yEtNLsh2XQ9qeNpwzPioaWoDD4BwCD4puKEdKEMXl9ycv4FI/OAzYWTVSaZggywFi2TXke/4/VXh e896sqjwULpHFMV1rXOXpRru/R0iMqk1HqEl8bhPTh3bz0N/qrKLCDr2oQQ3JnCL1lSlNuc5yQUe 8o1YJCMrLUlAaJpyipB8kPzbErgRkrCE4BNfJc2m3QiJB1/9uZuEIBQ//M3fQxCGX3zR6JXElyg8 sHFtzzTNzml6LYzIYwU+0NEowFi6ajgcA0ticY0sMuuE5T+ZWcNjKzA68vdNPiuUG1xND0X1fDmi +Q5IR3pp+O46myYaj88vKXRfYirLe8qzR4XKgPZ85BLXuc13utOCsjSkKHH9LRSmYwoL+CHRgLgR mkh8YROf+B9xJfggCsLxlPMU8xfNFZZdZCUqny16DslO4pOP1xqKjITiI7GsnnmukfegL6bvPQ2n FAXRDMCLJpq/5Rn48j+8ZRuQhFyVaUCiKPCoiiTbv+eTIh+sl7xU9QZ9SrGCr3WWEYbymrX2jP9U RlA7IgPTdW0foDavqcA23ftxxEOu8w+XeMh34pGU/LQiNocYRUQyBSjdSfbS4T4WUoeG5JFcYzRN aRjgaG9Kk8/fsUv0YBSxnXKfnmsa72IyIDk4pGirMhzN6aBhqnYDS3IoWFzKw1HZSVHlz1rCy04v qmwGsgIvBbX+cJtcqur7xYfJbNKwvfmU0bA1a8RVuLspj7a8pRYrnNCTf75xncuc5jpvCU1i0tKW JH7evAuSgSYsZ4ZJql0JD5jGYbLTj5Qyaj1kk1V9My/mBDAg6RlDWUZRxAn37JPioFxrmHzZcioO wGnKW9Y54bL/RgpwR3adrCbxaDkk5LLMGuFlS4V/VjQD2Uo9BbV+84pfmoYRdqWupm+JO6y8n2pL LCclgepLbH9KUXryHG8m0oAiFGMI58nHKPaxhzl0IleAhZuobCALBTihqK99VKU+iTnAZFnmAwaa dbH8UtBq1o60bKA363W/d89UGFJrmGYg8fnCa4V/bLMoT14nTb/+LjyIzDWZm6wZFWgCyc+eHV52 hMFHme4AALdAlTrRaU21jY5xS1Ovw8PEsrFKrR2h8eAdkXTuBWACjehlkSVPex5wk2P8yxM8iUkm mpBS8lOnPV60oDw9ZfT3mbmsISZtFM2Cr3CTuVbPeBKX4+QOcDwB26mAD/V1vIdwVkLiWzmY974y csCkKCmXOPShAbt0vey/lQJskmlA3IjBGZnS56ll+xXJ19N5piDaYYmFXqkS9lBIVX2/9NM04Sws USEQKZ3o3NYlH2NAFlCFUapcHgLykzuc4yR3eUFIkpGDIqQlsoKWMnCMZlRgkaTal5nCBbxYTnyF I+9vxz+1JNusGBCIxm5K8Y2mmt5Dvxwlu6btmQ1IaVYpNCBQkXM010iZ1MCSCnSQ/SeZh4MyDUgO 2VutkWUbkCcK3rb3s1F2HUsumcSutWAuSTR1iP3BFaf8xcTXKaGvNdZRgqg0U93OR25zkjPc5RtR SEZ2GmoiSz+HZZRgpIMZxQbm8ZWGzFDhPn6AT3acLbxsaniEZQ+l+UZrDa7WOucUJ2azjtmAlGSI iiD3QdRnMP11u+y/lZR84YlMt7tS9JAZnROHz/ySJe0QRXYg4UuLPAjSOEIcVemQ3vKJxCrqW/KJ uRr7GW0ivS4KvP5JLHt5Ug1bKEokqiuq68MtjnGF63wiBpkpR3o/mcC1oA65aMxxels9+5JZ7CA1 gxQnL/vNUEbbOZuULzYXFj3ZRRm+6hRe+on3GmsOmw2IG2nZocJFcTFlmK6j5fxbKcga2suqkZ4P +MhUj4rOFVkP+Giyc5X4yF6JX0JNmTX8cpxUqupb0odqGuf2W69zBMhvMrHEKf344skGyhJFRgqv D9zkOOe5xRdikJ2S9FS8bCSFZByiOVVY7C8e+xTTuEU5NmvgdrGYBA5MUEq8bXrghWA7ZfilS4j2 Qc3DVi3ifxowQZWP+wbK4mHD88BAKbVpK9OAQFr2yox/SM9JWQYknGwtrA8yDcg3LjFLZh9+2SYx xadjrnPalLhUK75yzyJxqZ4kUSSUqpxorKIqUR08QN9ziWNc5gmC6GShKhk1DW+zz2zmU4zppiBT wTKWEJrGVNCo/RmsdVCiBLvtuHC7s4MyhNAhydhGymncooUByU8/7qmY9HuykbJgmBBNSYk7V0gr q041Fsg0IFnYL3NcHjLFb97J3PpcR1aVSzyXGaSq/h960V2jln6zi3Qat2iL2Doq8lonIXNpwnKL ZLC/+cxVjnOeG/wkHrmpz/+c4iEWkMbkpBOtKc4YdpKVCTL/wuwxHC+HKczyOdx13EoJPDVf0bnC VI1b9KNAUItJqt60wpoc0TprPMi/m+rMZbysGoXpzw9Z4hJ5mSZzVKH5IMuAfJC5BLRalstlQO7i odGi0y5+av7etlnjCHnbhCIkrzRefnNERibRhC0m4/CDGxzhDDf5SXwyU40civyotCUdLalESCZw XNN2X7CRIw5LxQYH34ob2yhNKE0XOg+QQKGgkG38PGVakFvljy00O6jKU7tbSAbyqEtBvsn64t1I xxZZWfxi8pO3sv6sw/BOll/VN6LLKP2E1yp9nrZSUFX9PwzTQQ7kumy1AOXE4Rp5ndabL3loQxF6 8C/n+ExUMlCKocR08ihs8ZX5rCcu59nFOZnuI47oQQtJIbNJOE0JuyVCspnShNQwLmSRDo7j/u5d TQc6+lIaXM9bp3i4/y14kpcFMuvUY7nMGmk4JKt8GFl6vN/5KcvDb7Hq/YtdGmlWTSW9bP8xR5wn huZvgrZJbDXyWS/us5zOlGMF4WlABtaxn7UMoFIgMR836UQh7jKbRWSiO/nJrWEa3GM8kDhnyCUh Mj4Mm5ntcD9FKh+5oTKuyhr+DEgHTiqQz/DPbDJS2Mmbd8GZtrLNQX6e8UpWjbwcllU+pqzv961M IZMdNJB5xX55xTtNUtl+ZLEO0dWbnbSB7ktqJ+QJf8ceRlKJQjTnNNmYxkYOMpOdGgtnqGMLlWlN Bo4w2hyP3YCJ1NbMRbuf5BfwfJyVUCoCmxnHHk3GtjSAApcWBFgo70J3DWxeD9JSzkniYMGfxCRg g6wlKSjMElleHIVZKKv9BLJSFb2RlTHiMNFUCr7tUu3J70sfauqwzXuaUZq3aZvMbNCp5Z+c5ySn eMxXUpKZgaTxM7Oqz13qsMyJ12qLd8xmI8noZiUCPDdbqM0d2qnuZQ6JJS+8ppAocxmV1VQmigZ5 NVfIXseQQoDlv8qE0ERXsxzrGKKZH8zfTk/Z3hNNZQqzxeG7LIn2ODyVUfqVLAMyT7XI4FpqqGwB 4BqndXAI+cRr0mjeqm3iy5bed8R1ltCJshRmHC+oy2oOMYc2ZAqwMDeA6Bo8mNVxjuaU5isbWWxV QATiso/Dqr/pz8yRsffrQTSuSCqZgAW0UB0OuovYGqtg+WJl/2gy4zT5ySXiIC8ozQMdhv23kZ5o MqfZ8Ykt0zU3CztllI4pa4nsuQzXjHfcVOn19IrnNh4V8uhhI2JZHec0j6+2T+QAGfCU8ZkjjKAC uejMZQoxm0MsZwBF7TpfTOI9/QB4pWG6JKmsojh9KMZR+trVYgvBGr4qjKD/TQ9qyHJASsG/Ekum ZwJ1FIikWjJNJ0NuxYDEorNmO/9TaU0VQyVLA/oxVmaNZjK1Y0uyW0bpGLIygtyW8fazWPUOwToK qGzBtxUPFdnYbbNfl7Voe8Tikorat1lJO4pTkjmEZQgH2cZIKkheZFzEFRbyjjhOzRv0nEHkZT/j 2E41STWmkY0SvFXY32kuyIwdz8Y5yWUL0JWqfFF8N07xVSdPPKsebLWJr5muVVkOcIAaTspLEHzJ QCKZf4DFeC7L/6YoN2WUjiXLC0tOwqqNquXe1mvgBfiTMRpHn//mgsZ6qI5JyjXZdT7hzRiqkZ/2 /ENxFnCIxXQgo4Jt8XVsIBrfmazjNVpuSR+lNlUIx05myRJh7E59SilcMeku29nif7K+larUUrEs O4Juiuvax4YL9AxOsVSjLsKzguIUNfIWqmSI7HiE+rIegSGIw2nJpWPLUsN6I9mJ8zRhVcq93eSb BnHefShDQtWtWOOpBhui8kgj41F1nzW0piglmEEoerObbYyjnMPYanscYz8/gfMKkp1JYxVZOQL8 ZB5FGE19jtBV1r6bL3UYQiXOy643kbSyF03jy3oFg5ZkUKjycZKPFFVU0zE2Y2hWMZUDmnXThB3s oRQ3dLqMv4EEFJbplNCYc7IWmorKStjqIeMP4KXk1D+zVS+fzlIpwghwjcOmlXut+c+fiJ8zyCph u/Yi06lBPtpwmlLM4wjLaE8WBWnA/POGSmY5FW0zqvxmJjWBkUzEi8vMYpOKKKKizKOxzJiopyyX vcAMYQgh04QM5QsjFVzTIPoovh+OsGlAIrGcbvyjWUfRWEJH6ut4KcGfoWzjoawa1Rkjo3QFjsko HVGGcXovUSrvAxclrljbxluDBawODFTdhnWuOXkLHSCRTZfRz5xgFJXJQ19e0pbtbGUU5TQdYxQe Mtrkn7VK8R6DbQbQCoDteHCY8aqzUGZmPd3ZLKNGezoqineJIzuV9GL2sEZmnU2E1UyVISB2oviT sohWnNSwsxKcwJ08msVW/m2400VmnoB2HJbxlhObkDIWOyLyTGLJrwiJ792zVUt8rCaj6nf8iSTU TWrkhNPSO/0hIr/47OfIC3bRkyrUZSXJmcoxNtGf/ETUpf+QdOMrU4gCsjXXHNGCwebPWnl5JWYT I1gpsfR6vlNbYT/ynXPXMkbma/0Y1eoi9rCruJeOJdRjtKZxs0NoRC/mMtTpK8HBgRqsZrUMd8MQ VGWEjGlvGVYxQGLZxNwmj6SSzyRnJ9loM1ebVOapDtJ7wHKZSxhyuOt0HyyAZNwjDfAAbw5yC3eS U5JynCYK79jIJ74hdOzfnYhEoQET6YsHQpNHvRshmMF9iyMd+YSbirY9+E5VUgOx2Ul5fCQkl/3E SNlzgt8kkhWM60sU5tOILZKXhMfzPw3z4gTEgWRrGtZSm+aqA7ssScoqDtODRIwMJPo4QYmplKe0 jHRRncnLc8n3ubKMHYjkkr22nkpM0rOTBCqzQpzE05TlQTlt6K3Byr8tHpNMt7ZtE53hxOUY7mSl IjlMwpbbWUo33hBCwXazfD6TGy/e8J7Q/NKgPTc8GEpEPHFDAL/w4TNfVRjCiCzlm2lGE4mdlAOH JqQd9RQv+KXHW1Gt3tRhn6Syz1khU6JILg41vxOzk+rcl/xeKo0C7GMBlchPb52mzcGVODSirQzZ ETfqM4QpEkvHIyQ3SCmxrNQdkycSlXhnqnY2nGBaD1fOZKLpKrXuo5Nvl3XucpjDPOc+brSlj7+/ tc+UUxk8F9ywXMINw1bK4m7XqXwzL1QE6CWQ5eLyh0pcohlzJJTsRHsdX4YAKUrGEdnJE2poEs1q SSOOEo2iDFYRIPM30pp3ssRmWnJehpxeGcnaRXEk74HcsJJcKCC3eK8y2OkuT1SG/l1mmQ7i7X94 qfOf82/usYhG5KMpt6nFFg6SiZwBXtV+8sEpowk6fOCHxb9Cs5lFrLNZ2ofhkl/NrBFZ8TO1H+8k 9LyFd9TT5T79QaIU/ky88OKU5t134yhu5Ge0JpPav4XZjJelRNVNhktqTcnO2/Eke9TclbRsM021 99Qo1UutbRgvK02WXF7JzFUvl0cspCl5aMId6nOQfQymKBDZz16BgVTCspGxNv8i2lNflb9aBBUv 5ctY7kAQ/gtDdA3d9EVyLpWWTKOTDomiQtKPfbwiLxNkhab9zcSgh6xMZeX5JHHNFGIQk6OSSkbm h8QNy9cStvy+clxlBMh9LtFIVQttKaJz6qWXOi3YPmU1LSlKQ65Sjf3sYxBeFuvT7oThsa5XFlyJ wgq6WZWC2cBL1SlnPRTPAUMyiw58slOiPXVUhuRKQUYyrswc4QEluav5ICIyiu28oRD9dPATD45U JRl9ZZQfbuHs6IjakndYwvJcUrnXEnIXziefrJRT1q5RWZzub9ZyT6fgwT88UBXRHZAPrKcNXtTn LOXZyB5GUcJqTEIKHdYP/g4SM51GAeRl3zNK1fKVL+El/gVZIyNN7GTN2cx/dHDC3ZGVzdGdqXSg tqzgNKlEYTAHiUApuspanvlbmcwxdkgunZGMTJRYthJXJE6to0j8pj5JEN5brvLnfpcrqmYwNxnN PFUjkMITWWmAbfMTb/pTipLsIh/r2c1IB7556XWTEQn+5KBrAB2qFjTTINwyvMy0b35pTgQbYkVv GSJTSlUpstMBl+IQ9ymiaYDhb0LRHW8SUoUWqvRD/w7mM0CG8NsIVkjc9HYjs52NQ0viScpe+URC NsItJJQht2iNgar8r77ThNEaPdzt8UaiQ7NtzjGR6hRjLrGYzlFmUYsoEurl4qLuV6eGTxIeeH8c dOfSw588y1q6M8nPIvgnxtDb9AtdT2va0JJH5rNfmEMXyQ4jNcjrZ347B3dZi8i2iKhyxWU2q61q +janvZMUDxTkk/dkKqPpT1PNE9UAhKA9RylBd8qz1Sm3IKiSmEHUk+x8EJ52kqPYm7JEUrkMkh5K DyU8mKerTOdziscKo4F9qU1VCqkagTQ+Kt5Ev8ssapOHIfykP/tZSBtZCYJSqcwnoTcvJOh/dzct rtagDd6ks3C5XUFLTjHQj4xJOiaxnxTcB0ayhifcsfD3nEZfLlBX8q9mAO/NUfQ3mcMMTa46vFkl TBkeTKRtgMiXCYTV3fvqNwoMCEBWdpGbojoJXkNlttOHZeRjpgvS0AQVSlFaRu7wuvhIFEvMwndJ kiZJJM2AHjgMDjyFm8oUtP1VpR/oTSzaq+pfKt8D5OxzxEvW0IJ8tOQ+rTnEerqQXkHPoQnhMInq EuZww+RucZpRJmfxG4xjrp9FzQOMYAsABxlhSkO2lRuM5gsvGMd0i83dz+zgImN4BMxmkenoRoaZ Atx2M4J1QCTicJkJ5tiipYwx/QYfMsEU87CRuUzhLlt5wlFqWwio1+QlB3nDQ7OrwDHe8ZATVGMC EIttrGe3hTdgF56xh1MyloEXs9Tk99SC4Ro5Q3iqdhzKSRl/kSinWCspRkQjhAo+iPaioFinpgkH PBDdRA7RUVzXsY+gTVPRV3LZeyKb8JFUcr7oKKHULVFKQqmBYp6DEjXFNlX3YLmoq6L2NFFeUb2q 4l/ZdVqKXRJL+ohtorsoKYqIVmKTeKPq/vjSLEDfq0RXi39VEIhswlNkFkJMEojUIorwFvsEIrmI Iqaay7UTiNQiprgnxgtERoHoKoRAxBYFxWKRRBQW2cX/zKXvC0Q6kVKEFcVEFoEYKoSoJ5KKsiK6 2CrWCEQBEUfsF98FIo3IIBAbhRA5hKdILRBnxCuBSCKiiGTioYggIorSYrlILIQQYr1I4e96joqU 5s//CsRrIUROkVMIkUcg3ERV8cOi9AUxTHiJUX5amC8G2LmD/4o8Qog+orcG34YvA8UCDVopJrab P38QORX8LuXjI4oKIYRQZUCEEOKmqC6Ki6M6DvWrWCiKi3JijRNuS1CklJgruex00UBSua8it/ju sNR3kU9CW/WEt93z10UhVdf/XeQSDxTX3iDyi2+KaioxIE3FPodlTouRorwoIBqJBeKxqjvjl0li hL8jlgbkjUD8EEKME3mFEBHEftPxtGbTsVOMEKuEEJjvdkRxVAhxRcQQQkQW54QQjUROcURsFBHE RrFEjBDXxHsRWvwSQmQR/YUQh0Q2IQRitjgh6ouCYqkoIz4LIYT4IjzEGyHETJFHvBUhhBBC9BJN RW9RTQghRDJxTgwWi4QQZ0RcIYQQ20QKIcRYMUrcFEII8Y9II85aXF11gYgqkom8Qoh14oA4K6KJ thbnl4h4IqyY6OeO2DcgQqwU2UQ9Db+TYWKWBq3cFtnFR9PnymKOhuOzzW8DonAJ6w/JWcVgBlFd Vj47OXjSgF0MZjfZ6W+xDWbgyxrmS56It+Il6yWU8ySrhA1GDzwcLovAKwc+WGMkSNbZowflFG/A H2YE61W6D8vDzeaZpyyjAXkZjDujOMR8GqpUBvNLHruJkr7iSQggFSGBL2bN4LfmT2sYxHw+42a+ 219IB6TEkw/EJjlwh4uMYDLZCMM4hnCYXyTADYhOFiAc3/gBrKIPt8hLHSawheqcJBRRiQyk5hOf TQtE6fnEG5OwTgIe84F3QBxTdtN/yMBrRjCUK8ApOrKHLBZXtArBK3KQFahMIbIw2s8dqMtDntJf 1i5EMU5rKgIr7PwepJOU+qZlrF7EVvnXJBeHWlhSyMku1tGElPQlsU4Dzcxs3jGPOkSmHpU1ufHB g3CsoTwxJP6wZ1GR4hK2ctvRSsL+SjQeOfQrem839uExV1St2P7DGQ4qrHuWjqyWqNMVkJB8VzHu P/zkMLv4B0hPfXLrFgmfkSd2zsYiBuWpTS9iA+VJy1BO04qWFGIyN8nNXOYCkIksdOA4AylLNoYx isRE4C2fCU9jXtCRkOzAy+QddJePALzHB/jCKzzIQi4qc5SELOMiJTjDYnLynFqUpTXtic0nGuBF IxaSnHzE5j4H2cdJZpGEsiSmCHUZyA6imtSkzpGTbtzhCBUJzXIqEpaupOUqK3gINCQLHrRlIHCe j+SlFyHIyHxCy3JrqMsq5lFGM0HMn4TQpJ22lOYU7zkvY09HI7Sc1iwTeUQLTafd1jglWoscop04 p3M/QYmLIqu4JbHsTFFbUrmK4rDDMq3FVgclXjlYoOposbquhELiuMKaV0U2Vb+hJuKg7DpNzUtD viOYJCqJ/KKmmC/uq7oL0igqnvr5t989kKeinKgumogqQgghWouYooB4LYQYIOKKTBbLde9FTRFd VBRCCFFHxBCVxEchRHXxWgghxCyRVMQV7c27DQ9Mv7YOYo8Q4qKoJYR4LCqIaCK7OCMuidwitqgp PouvoqHoJeKI5kIIIf4VOUQcMVAIIcQ0kVCkF3uFEE9EduEpnov3oqiIJ6ZYjH2NiCbiifAinLgi hEgpLgshpom4Iqc4I4QQYpRIJBKK4UIIIQaIlkKITSKjiC7Ki3t+7oj9JaymYogQ4oBp8UYL+ouF GrX0TGQWhSXucGrB7yUsN6FxGoDZzCUffYimq9n7ygqWAlWoodqzPnhwmK5skBjnXI2SErzY9zDH YXaOqXyiu90S5xhuJ1/CK8o4UPSxzwieSQ6Q9MsV6jKTHCr6bk8Jysis04EmZOQ1h9jOTcKSm1JO zIvTjiJ+lIZX849FUPAeXpGEynSjo9NGFNhYwH2buShnsNcUH9WBWPTWpL8eZNVID/kbsanupOBB gI9UZA+K3Xht05xTJKMsHVXFWDoiFA3Zy3QeUYnKrNZoMSEoU4BBVJYoD72IWRLcdIvx1GHCmzQO s9zfs2vURqvKX/4vGxWqIlymAdNVmQ8Ir0DH6AnDqEUVdlGeTWynn1PTqmXhtJ2zYehNYar9xebD HodYZNbAnsBWrmrS6geN3IEFFZjHExcEi2qyB+KfNrRhGmXIS38i6Tj4lAwFjrOI8aSjkUtyvQUe SvGZimySMPcLyyiaccRhubpMdPB+n9ihRN8FO1ELbzjIcRVX3JYJijbA/6EFc1RGnkB0yXL28Ii9 7MaHvXSmg+JdF7XksRsHlE+SrsDfyVO6sNwcw+POcDqwW4N2fTRSZ65OUSoRne5O3wPRfAbymzYc Jz4l6aF7zoHczOQ4pZlAQXpwVufeAjOV6Ux5STM/L4rQ1mGpZpx0kFE9qckjxjbXyWjz3FiqqfgB dqKoxJS6ftlHCxapNh8QS4IQnuAUfSlCTS7Rhk20paLLzAek5rWRNkERNRnoJ81aIZJrIpX+XpNf Q1vi0wXIT3QWO/nO6GZAwI1OHCUGxemluxFxowrr2EZ6+lOAXoFc90c/KtOZcpIWsgZy2+EOhxvl HcxA3BzKhL+06WL7lr0qBBS3c0VRlsw19GE9GRT3+4dYdsVBnrKUOuRnJElYxBHGkAd449Dg6ks0 GanFDH5TlXKU9XdsDMvterVJ450GilWDeWNWBBnFDCcrd+hoQHyb74o30ShOP5M7n56Epx5b2Uhi OlOAIX/lH0sVulGe/ySUXMwYh3eoPTsc7C/FcrBP8slmLMNIqimOwHhKf0XOv5OZxnaNXM1jWzUg gn/oS3Gqc5FmeLOeJsS3OOtaskpOF2bwm07EpUuAo+For1K/DX7xS3WGyhmctIjYiktxhjn17uhs QABC0JVDhKIIIzVPi2uNqLRgDyuJSBeK0euvk7GuxBCq+NMqtUYMxtPEwTcSjoIOZOOS2TVCt21u Er7koIo/wPr0UpBbvDsH2K+Z114qf0GUz1lCXfIxmsQs4DCjnCLPKI9cdrfRDQIygYc2Fqtq48Me VW2/laBTbZ9VrGaDnyN92a4ix4h8nGBAADzpy0G+UpAxTnoLi0sHtrKCJPQjD511kZ8PrBRhIvUl 5BXMTw2HaWQ7s9Lu+f/ZjW++ZXMBawR1FP/4OpCVKjLr/KQan9mg4Q8+JOH4xe85RzGqcZmmHGUN TTVOG6UdefxslLs5688/yOA/PHkJW1lls/QwlW/7D1W6GO1gEhv8yXOGpJGM5HHqceIvKDQD2MVL cjPLaX1Gpzmb2EY6RpGf9uz9S7R987CUjmx0WK4dkRhqt0QssjLbzvmkPLRz9oYfge0/POW4Pw1R 6SzinoUOqzT+oyh5Ncgg55eIDKQ1BZhIfOZziJGBcM7hl3B4WDhZRCacqwcUyPD0s6i6jRlstPOI zEg6pqro7SxpVNQ+SD/WEjnA8Racl7SErQ26uPHaJiKjeMZg8tNUhhC5WqLQhCZ8ZCcrGEx8SlFB p9zUgYfU7KQSjx1mbZ5LEdL7CS/zTy+q2kkWm8julv0FG3EeQ2mo8LrOMo29Muvsoi9DKaGwR2tc ZBMX2c0LJpI+SMnqFOAUpfiXi9xnI3c47YS9SWuE5QNuePLD4lgo3hKZn36O2caD93whGR6845sG qlKCcJy0iILZzyA2EcFunWGUoIGDMra5QmbFoz1OF9bYUJlrxlCnvaQ72YAAxGIa/zGCWTR2qvBX OKpQBTjCemYRheKUlZWSJ6gRjb1U47GDGQasoBwJzZJ5AYlLFubQzMbZiLjx3qY5fkxSK0fv8a/C N7enNGeOTOM/hH2ssjoO+XxlD9u4RBS8mM2/bNPEn8sZ/OA6F3nKVsZQhBCkITXLSMBXlzj2hiQ8 xWlHcYvMIW5EoAoNqCxBoBPcCMEeRvGMllQhNF/4ovpK3Pll3iHbT09WORSzjExt+ih26L2u+DXq H9qx3OZvugFzue+kjISaS5lI5z/GcopStNFZ9sQ6F9nICb7wP4pTzFW3wAk0JKRDf6VztGQrMWye f0R1Ozsq1eluM546PwesvKM0opii/IHfKUq3AA6V9vChPtE0Sa9zj+3s5QVpKElJk+DhJ0rLFHJs Rm28NBiNVK5ziWtc4zFfiU4KMhOfkc4X3LPCTTqbklJZsoGjjJXVzgWm8oDa1Nd0dLvpwxqJ3noF mE1qBX38pCDeikZ3nDYss7v8NZ/zmsSp2Oa3lIkLZiC/ScAkfJhDeRLSwumrxxnIALxmF4voT3zK UtIJObGdz0IGUJyVdn2PstCDmuyxudobjyzMooWNs8m4bsOA/Ec4Kz+wi9xXmH62CtVkmY9jdKY5 jVXewcNs4yShyEM/P3LhEBYPHgW6DfPbXOEaF3nIF6KRlDR0ILnFWvkI3kjKoq4vw6w+8ovLNB+Q kdk8YAq5KUgHjeTvtzGYdZK9/DozyCxyIocbCl+cD9OFlX7CGgPSmDxO+pZdOAP5wy7m8ZTi1HHR ktIvjrORs7iTg6IUClJr2lJYxVhmOoi9HstpO/5Wz6jIMRv3ZT1HbKQ23sU6Kxvw1akvywz8pg5J GSKjfD+OMJ20iu/aK3awnbskoShlbLxc9CCdrHdfvWYg97jGVS7xgI9EITnJyU5yG1HOHSgg24dN a/6jlo237+q0I7+CFr8wl5UkoT3ZVY5tEbNYT2wZNUowRIGu2hR86CW71n66s0qCnPxoPtmUhdSC 3zOQQGFAAJ6xjJ2EpBSVXPZO94R9bOcOcSlJcd0ym7iC87SkvYP3/g7AJJtnexKdrlbPXKWnDY2l CYgAsR7HGWTKoi2PZkRknOTSt2hBJsYrvFvn2M5xvpCBSuS2G+zozRQ7bp7WrkI7A/KQ61zlIg94 R0QSk4pspJDw4FvPPqZpNAaldCSNjRntag4yXXG7m5nJT5pRVXELo9nLBpneaQcYb2U5zhE1aS9b imcnA1gjaW7kQ3Fzfnk9CHQGxJerLMabiJSlvMvMiOA02znOR9JTigJWHOWCIu+oRlYH7q/1SEF/ G+c+UJz9VuNmP1PchjBjA5oFELgsRzcKyB59K4QMqerpLGAYxWX38pO9bOA8MSkm2cEiLwdlxNOr NSBPuME1znOX90QgkWmmEVdWWqLXVGW/ijGo5x0lbIr4f6KYhAgme5xjEjeoSmtCy67blQcOBX6s UYH2FJFV4xtesq9zEyPYIHmZrjlFqKHgWqQRCPZArJGGEcAlVlEPd7wo7wIvFzeykx14yQn2MQk3 clKcvIHtVskkErtpR0UW2QleWkIZZtDK6rkIlGWE1RClMITimdUlnicBptq7CaHAfLTETbL5uE1r 4nNYpkTES7axlcckpQIjZb0ypGAvpWRfkRyec4urnOcObwhDQlJQmeTEVywDExU3nspaotGaiZS3 eS4s8TlEQRWtZ2Ehz5iCF9npLGsdoRbRFJkP6EdPmQbkuOzl+sXMZosdVxf/tKaXjgbkN4HyqZie 9MBdNtOTd6SlHIUU+1orJzplKQvcYR/T6EUs8lHY3zZq0GIKSynKWDt/nhsoSgwbCwA9yEtrqw+e uFyzakA+B3hbGs1o2aNuQmjJSy5jWM1AWWmerrCVA3zlf3RSpO1bl/k6GJBX3OY6/3CXV4QlLsko TTISqZa+8CUzhzVKY6SEH+ywG8lTnRWqDAhALIYymPk0JKbEPZVXVKc4PRT2l42o7JD1O9hAaVk9 TGAbO2WJv2fmB9dJpfCKpBLIlrAC8p4j7OAioclNaZUpgNRxnkN484Q45MPLjkh54OYmDalgJ4vg K0ozjKJWz83jpNWo9GFEtTJvuUoPNvs5spb1LJc53uokkpg06h+6k4lxEpdzfnGYjZwhHEWpQArl N5S8bJcsSWFvCestd7nKOW7y2OrvzwAAQcNJREFUEk/ikJTsJCexDjnSt7DFrrqAvkzhgd1v9DNF VS5iWbKHqXyiAXXtljpPM7pTTUU/Z+kpK0NIIdbImE305CZrZTv3TOeRbtKKgXQPxDbX2M9+nhKL 3HiRyWVTJ8FpdnOE9yQiPwVJ5+obo4AmvGOJzUWeR1Rggo23tkJMsbKouJeVzA1wdC3e/sTgCzDX gfuhX75Qmbz0kVDyI125yBhySyj7gt1s5j8SUomiGsQgdSe5nUh9vzSjnp8lvA/c5ypnuckz3MxG I6lGaYZs361SHNa1B3vkZa2DdfxaNNfUV+0647lIWVrY+LbXM5w5qtcWKtJO8jLWZbqxXXLLLfnO PAUjekklCWnjlBFI90Bsk5rUtAZOc4KxPCEimShJJp3/1ALye4fkGyfxpj8viUYOipHBn6hZYGYe s/CyqdwUj9VUY6ZVd8ge9LOisJWKB1bK/utPqGEBqWSZj6dUo77NCHi/1zONug5UgwGuspnD+PA/ WqteJPlDSxpLNiDRCQNc5Tr/cJOnhCA6iclKVZLrmrvTL+EIzzVFwW/qWU4ah9vA1VmhqQFJxSze M5UyZKFdAMfuIRxgjwYxEz0YKtmALLOzC+SfGsSX4X9oSXRicIJcqq/MHkFmBuKfKxxhPw+JRCYK kFmjECIlnOEIx3lCJLJQkkxBRKDuFs3IZdMr6zJ1WGLVgaEyTazsMeS38qZTkRF+omVzs1aGZ905 mjCIcg7LnWAg8RjpYDngGKs5S3iKUUaWEZNGVVpT2G6JLzzkGvcYRnTiE5okZCEFqVwW0DcGNxtO 2XrjxUyH6/JfKKLhIpYlK5hDBNqatSd+UZ8wmigVAJSlp8S02gVYJ2kB6w1VKUZPxSNayjmFxscR QW4JyxY3OMEJ7vOZeKSnCKlcsN3uy2WOcoj7hCMDJckRBOQae3KKWTbW/0/TkkVWFuiu0sxKCFgl BgcwNwXZYbF+P5H/ZPyUNzCSWQ6l5h7Th7sMt7P5/Yl9bOQ6sShPGd2SyR5gKusCHP3OY65xkps8 4hcRSUxxptFO5uapPvxLP3/7U85hF3NZI6FcHRrL9GqSzjGm8IgGNOE91SmjWBU6IAeY7C87h3XO MlDS3b9OPTo4TLhgjxdU5ZBm12dJsDEgv/nMOU5xlEeEJw3ZyKmZz4pcrnOMo9whJCnJQ4FAJ3Vh yR560sLGAswZWrDAyiykI4ktNEt96cb/qOXnyHPqWKTb+U4+dkl2jx3GAVY4eEP7ymD20c7mn9dz trGNp6SlHKV0X6mtzCQSAL94wlXOcJ3/+E54EpGRlKQ1+6h1pBp5dR6LNPKz3QWvWqXpL2lJZRNb NZsXWOM5c5nPcybRSNN2izJJwq5oJzJL0CLfT1emqP61lGSiLouVQW4PxBFhyEMeOgIPOckZNuCD B8lIR05S6eDJYptUpKIR8IDjnGQxn0lIBgqTVnX6Su0pRm7asoMpFmlXf5OVWTSyYkIGU4yG/oxB dk76MyBn/fi5j6SUZPPREOFQsH0iy6loIxjtBhs4yGfy0kXSprp6fpKeMpTnDD5EIAEZqUk6qy8O H52Sk1MKKfHWOX4lIP8gJK7Il2SUriOJSSxS04GNHKGtHSVquTRlghV3Ev+clOAbtZA5bFSQddM/ hdil625XsDEgf4hPfJPWzxPOcpZBPMOT1KQnG2mcGFeekITUAL7zDycYx0PCkJHc5COmq2+RBeFZ yHoq09TKPCQrs2jIAn8uyxFpRHd/bqDZAwh63Lao9YEtEr1+7tOYEnacjAFWMINM7LDiUXOUjZwm FEWYpMNOh19ecY0zXOMenwlHBj4SgdUuWz6VTxm2ON2AjJO8XBSKZOxWoCUgjc/UJxpbgXZsoDdu NKOyJi3XZAovHSyVbiSNwxfafpxjtya7qYUZQwdNrs06wWYJyz4vOcUFrvGEn0QhOWnITjKn+03d 4zhHucQ3UpGD/KSRJUGhJ+9px1tm/r+9u46Tqvr/OP5cYOlOBUVFBetrFxIGFoKB3YrdfvVnd2CL ih34FRMDMRFMLMRGEQUVEBBQpGOJ3YX5/cE47i6zu7OzEwuel4+HzL3n3BN3Zu/7nvh8PnG2Inzj DPfbqcTZPd1qewvVib2BHOxur+tqK4s9oJc7nWczc82xoes1SCj++RuudUuZgZ9e8YB2rikxXlpq qCHGa21PB6RtpYMFxhplrAkWqqWNTXSwVXSkNdKjnii3hEy7cy+deQ5M0+x4aYx3SgWc37/plaS2 rpbPd850YjFPXN/qZ4JDnZ6COYLHLHa+/rrHGYFONMVuTnJ2mY5NCx2jUcrsdArtlqTT+LJZ49ZA EqXAL0b5yRhzVLeBzXWwlXUzGh16sa+N8IW/NLCVbXXMUPCXsnlBXyc5Y5XzYx2jr90t80Qs9Ud3 6q2b/k6Q579+ijpue8VBCqLCvLndzDHQhX5JyNXcVb7yRCkx1uA1d2njmmID8nle96ZJtnGQvdIy nF7sJ6OMM8FCtNFBe9tqF8eo6yCnlmsDX3UEhO4ZGKcV5QydHJdw7mR8RSVCf//TL84W9T/c50Md nV/JaaOxullsvo/jWFI94gydReI+0PP9qS2mOFYvF6Swxwe42RapvYn+xQJSlHlG+cF4v8tTTUsb aW9zm2ZwXm+6z3xpnLka2tHWOmZ1emuhS/zmLpthiIJYoNvf9HaLuwwyNvr4jmhvPHr7H7b0QzTn NK2xbjROen1dosGL+jivlOmdE7R2i1mOsWkJs8Oi8Qze8IBmLi/yhzDVq94zz3Z6Jbh1MnGWGec7 4/xinoi1bKy97W1Yzu9irNPKNduqSgJyu+r+L2O1/eVAIyt0xQmOTPkk2+nmeLLUCaRC/b1gLecW 2deXV4GJpEI9vR39/GEcS6N+0c0njV2zikSc72lzfO0sN6Y0+DKX2KbE+mQqCAJSgrl+9L3xJpmv psba2VA7W2YoWuIKPxtplB8VWNfWttMpCV+iqeBDV9rX1Vr5y6TYyGih9v5Ed2/hjZgZVAfjMDnm sm7lj6l71GH7O+71ZjTl3rjz38N0x4NedYZexVJ+tb2PbI3hrtHBxTHrgbEG+0COTg5L4ZvVcj8a Y6yx5ohoaSMb295GFfoWzreOi8vMUZUE5Cf/l8HYhJdrtcrevbJ5y8spncT6xSn2dUW5+YZ6xBIn RIMfbO7cOKPy0ugX6+PrcWyYrootnj9UoswJNsJ2Nndryi3aSo/XUxmCgJTBQuONMsFvZouoqZX2 1tPeZhl4qC822sdGm6qG9W1rK9vGnZldLDdpf6zlca8XfIb1/Bqt49qYH95PdTLDAb6MHuepi8vd ilb+BOe5Dzv6Qit/gX7Oi3uf21iIHH+UcMY41k4WOsk5rjDM38L0mVd9rrE9HFzBiYZ7nBx3BDTO D8b6yRzLNNdOB9vbMOml8GW6erHM6ciqJCDs6qUMjXiX2N3HFVxzLLBbCiexntXPreWYe/7Dj+4x zvFa62nVx31Z3BY1+3suzlv/6dGVjVXL2yn693RnGsaEq/qkSwVBQBJkub/8bLTxppijhrra2MQG 1tM+zTbns/zkS2NMUqi1nf3H9kUmde51mUFpMkorUD+63XR3H2CSzS2Opm3jW3Clm8EXUQeXLc20 d3QAf6/zMU6H6ErBU6XMfe8V2657XrFQVt/oqABs53uFuM1cI6xlP/tXeEz4ptNN952tosfj/egn P5hlmabW095ONkzR7rzXPF7mH2vVEpD/s3UFViUqw+0WxQ0FUDa9HVohz8qlc5ZpBlTQ7n+BZ1wQ /Tu4tQJ+ev+rHx6OEzBrf2+izyre3e4vMjofat+U9PgfltorDR6x1jg7kHRR3drWjnmNWmSmycb6 3LNmWq6upjbXwbrWS/nQs7muUcd7c431iQFuVl1z29tGNz9booeuHknDLu9DY9YKw53jfuvL84nb DMEogx2Mm3R1gHwfRAXkKd1jXoa2wCk6GAs+KiUCyB1FrD2+Vxj7KX5aZPlxtELwmEHlBMOKzyhn Ra1FnrSV4WbK01gbHZyvXQW8oSbKgQZ5NGHPWNnmYPdkSEAGV8B14D8c7sUUCMivTrZXElEOGzrR 2dHPl5kffWEqn3ss8IS5cVKm4KpV5GN2TD62sk/sNSd11FatQis5FSOMQCrBEjP9brSJpptjmdoa aqmD9a1lnVKiaFeOhcb62I+WeDn6aOUM96lhRvSdvbLkqO0zX/vUT9EJqUtcLqIxPnW7N9U2Vh3V tPCuvW3kRzPVVkdrvd1pusY+tZ9vbOs2lxnoSDMtK1FLXe87HM3s5Cg7W8tyi0TU9pKz4rSqgUlq WmBFwv3INVmfIru/tnSVttZPy7dSlAW6GWijUlKr1giEToZnYDP7/3zr/iSuW66LTyu5P/Ip97m9 2D2f5u8p0bJp5DwDihwfop+cBH6BTSzR3p6eMqvI2WqaamB7H1liYZGzufb2nSYO1Nt26lloYQV+ 5cXJIa75ak93VypgQTzCFFYamO0vE4zxu2lmoaFG1rKJtlprneL33fryih3vpnZMUipHDfXVU9tS sy2w2FItVUOuRuqbbpKWaimUq5l5xthQDSs08qflWspTU8Q0m1hqkgbamR1H2qqZI19zrdW12GJL onlq+AONolNf+fLlK7DETFtrqKACEREaer3Y/diziGOV9PK+m71fSlpVE5ATHZnyKZNV6eqpCkUG /IdTHJiAQ83SOdWfni42PTnAtbayJIFra1mgMCqvORZboI1qCUhPjsYWmK5tsdemHLl+sq1IEfmg mnwzNba+OhZZKN+KCkf9+Ic6vnetk1Y539vJKd+pGKaw0kAzzWyqZ/SowAwz/OlnQ80y2xI1NNXE +jbTylpaVWJYOV4eGltbOzvb2F2GZ7vzVY5r7aWzn4zymQ/iTimkh27ecXGCQbCyzcEGp11AXrVe kvLBYZ5LWkDGOM0Bq3jUynN5BZbEVzceLfFauZL65qetxiAgaSPXOtahyCzubDNMNc6HZpplkeoa aqqFjWyolZZaJvx1rGuI7kXeVbIXX67qMsNybGYzx0hs0iJV3GY/zzsy2zcgAbql2ecUPFSJOvZy veVJ+Wu435PujeMLbYWlae9x9siLO+FXJ66spIYgIBmkmWY2K+LhJ88MM/zhF6+aY45laqiviabW tpFWmmumWdwhbS3Pes5dsU2YiQzJ/22sKDZ1lvzEQDI8rbutikVDqZrUs5aRaXU5+bE65brlL51q tvBGzKA1URY7RY4RpazurMlz9vH7Vt+itNUYBCSL1NNOu2JnlvrLn/4yzef+kGeeJepoqIlmNrCx Fpprpi5+8INn9XCNHVmNoiH+O2jmHid7dzUILtbLi2kVkLsr6crvcE9VUEA+8n9OW212wmWCurFN +KknCEiVora2q5jIzfGXGab7zYtmyZMnV2tjwBBDbOPytJkUBpJlFyc7LKnNq5mlh4fTWPr38iq5 aWBP1yqowO/7ap94Jkvheqsqy9IYLjkISJWnqaar/EFM9Hzs8yiHZzTeSSAxTjbJyWnyKJs6mmjh qzjOBVND3xQsWG/p9Wh4hvKY5HSbV8Dj77+FJWn0oJFJJ7SBlNEY1LKXfkZZEcfzZ3lMXeXMtLj5 FsfJmRmW+w1zSlnfKd7aPH8kvXs+fdxoxSpmY1WPAxMKMpsMU0xKQZyNwxIKE8szDvFfd6W4D/MS XD+YgGVmx02bllAJxflzlYXvmavspVrqj4TKKkhjbNYgIKsly91ktKXecZ6t5VR4kSzPzmYWOzOm lJ3ibyQUyWNVnqz0xuJvnITTPBA3tbNfYp/vUF9r1Q2pZI2p5wk/Z2CfU+XYP+qKP/X0TYmd+x4m rmKIWpJ8vb3qvTSEyLqgHA8IAwzHAkcp9EAc9yV8G8cvb0kejPmWW8mO1lbfI7HjxbbVskSArefU 0drmCRgQL0hjGL0gIKslLVxRLNTsilU+r1w2+8doaWmRP8IC9TTUmKjwzEG92D6lRcVKO0J/LCV2 /cJoGRTd/ZUXvWppNG2IDy0v1uYlsRIWR6/ORyRq7regSM6VrdrRIFSPbhAoLCKSy9CoiIvJbiaJ uDKtkdeSZZCP0hrdu/I00zTq3yy1zPWVU1NS0tZeKzP9I11sa1AFfV39zSJirnsWxYxPl0X/gupo SYnRwJzov4sx2EdoaJgaakTXahYXE7y6GlNk83BhkSXtxdH6XjSyiNnrPaaKGOrs2Lma7nRHiS0Z p3hOxHI3ltvDOWlw2vM3QUDWOB62rrbquUZvDbVUgF7qqO1wTFJXTV3Mk+ve6BvTbsapqxom2EAD NT0TK22gI7CHHdTWxAAbaegsXGljTdR1PhbbRH3V3YpDbK2mA7zkBjWMi5ayyLbqqu0pdFRPTRfi DFuoL9cjOmtkDzyljbYa6IEf7O5vAblcrgZ2xkIt1LaL6UWG5dtGPeDuoirysoEJxCrMJj0NSkOp /RyYopIO92oZqVe7zuMJB8stzi/qaWB7G1pqpvZaa+N/OEVt9RyM+h6zjvrF3MB38h3edJCJ3nC9 HF/pjFy1sIt6arsulruWSXZSx7oW4jK56kXXnLZWT65bjfWR/8qNTXW96iLsq4Uvomdq2MM6xSxY flTbUbimzHuzkrlBQAKJEzHTr751o51FrOcl73nPHLO84TPnOUrEif5ATnTfeKFc1VVDb0eJGOIa rHxrqqkAM2wn4ghn+MgE/wN5ZvvZvea7TBMRH7vccou0FvG609wnYhPLLcNZasn3q73cZJYVfnK3 GVZoIM9DznCnfF+aqZ7pvjHfJ97WLPoeV98Uj5kgoqHHXaSjiEvNVN9KZydwvhw3uSjbtz4udbxu QPSeVU0OSkPsvwJvOydFZe1mSikrYb/oZonhSceF6e0IEWebqrbmdnKYps7DIMNFXIlllpjq4+hE 6spf20oHJ7mWaKe3+0XsYAGqqWGRr/1lvsOxzDLUNdvNIjZyuQVuM1rEfA+4WUTE1660ruM8K6KN QsswOxqXM9e8Im1dWmxmYF50/1NrM8rt5eISIaBTSRCQNY5Ch6plG+s7FR3N8qNDNdHMcb423jU4 WVvUiE4PrRx6V8MnbldXdzPdJ0cdo9RRHY2dhl1110Y79VHLSappb1O/G+1ydLG1MRpHHxvL5KC/ Gmqb7hu3yLWRtX3ubDk21c136joFu9rSznKtb5ZcB2ihoQOMUSf646xtjNl2VNO7pvneFThQO9Uc p5Za8tFPRH8nZPvWl0J9QwzwBGpm2KAxMVpqZFSKy3xI1xRawWwTdxLrQce5yp2VKHesq9HbenjS +5rqJh9vGK6PGYg4AV00l28XtayLmmojN/r7XPmNrnwVy1dffw/pp5q5aqvtdrVsqBsuNM5v2vsP LjLGV/4P29nJD9GybpOrtvnaRjeu5GtapK3Vi22ZbRKd3ppqrXL6ODmt1khBQNY4CixHoSXR9YjF tvKqpfIMtI0N3I6nTcF6PsI3fpBrhUJ0dJXFZhjoXEvMs40lVqBAPvKib2AFiHgGU4zVxubuwle+ 0yH2pljdBJwiz3ytbeU6/G6WHTyG33xgC3kKkRcdaRRYrrrXLZTvLZtGa45YooNWvpBvuAt00BdD TbTc0xbIU9Nw8xExMdu3vlTqe8tzXtSgiu6bP6DItvDU8GJK43oftspEzXyH+NzwSlqZtHcHXjAZ 7zraHXooQK7r9Yo6IVqOiHwRn1lgPGoaiv4W+ft3vlJGInLQwTXW11ETiyxwiaUm+BT3a289vxiP e21qG/fjJyNtqtAEXGqR+Rrp6Ta8ZraO/lk9qa5+9NNSbGaZAbiu3H1u4ysZ5T0+f9u8BwFZ4yi0 AkvlWIIV5trNzuqob3dd9POoHHdoJd9+InKcpKm86MLeE56Wo6UBqK2Rf5bJl6EgOoiurlAN1bSw ntM1cYvJcuzoOrVjS+W93C3Hz+pqiAfNkKOtN12jlhztnKGNRQr8szhfTb4VWthaLdvaz0zVsMI8 GzpBezm6G6ufd+S4WDOz0UBdDNBYjjOSiPmQOeob6i0PxY0umX0OSfEk1rM2L/fNuCJ0NbXYQvbr 9nKwpypt//S0Z+W4XytcqK8c12ks32lybGFv5CvEEtXMRQO1cLFz1DBWYxzkLjm+VMfKCa4F9pDj eCeingaYq7FT5fjOzRo738Zy5DjPNRbKsbkLNbavq+SYrp6GOFMHOQ7yKH7UGAXaOcbbcryDZr7B k3rL0dBV5fRxpO1T+E38zfK/x9KRwBpAxyKfl0bmRSKRSOSPSCQSiSyM5EUikUhkfmR+LMfsSCR6 NhKZGYlElkUikUjkz1jqgiKlFUbmRCKRvyKRSCSSH5kTiUQikemRSOS8yN2RSLSmlVctiUQikcis yPLombzI5GJtnBtZGPuUF/13Zc0zYv/vHzk52r6/z8yP5lkamR0pjJ6fFYlEa/ubRdGWFeXUyLvZ +CrK5D+R07LdhFI4JDIihaXtHhmX4vadF3k2+mlF5OxIz8jUJMu5N3JHseNfIpHIk5GNI5FIJJIf mRuJRH/986L/LowsjkQi//x1rGRRJC8Sif6e8yK/R1b+HeVHr5kTveZvlkZW/mYj0fz//Fb/ybkg MqXYNXOiv/tIZHwkEolE/orMiSyMTCtyJhIpiP2l/E3fyD2r9Hj/yOhUfAElmB3ZOxKJRCJhBLLG USvquGDlG2D96FtaQw1jOZoSe3dr7m9PWq1iqUVjglfXhOgujtzoRsm1Md8MirhIaBq1dm0WG9TW LTF0bhwbgjeO1t44WnPL2P/n+Svavr/PNIzmqaVpzCtrM0rY1tZLcgtnpjnCcGdWSXd+B6dwEmuo FjqkuH2HRldBvtRJW2/EDZxUccbaUY4TorY6uRoT/fU3iv5bPzpmLB6IrJ66RH/Pda1j5d9RbvSa JiXGmbUoEoi5bpHf6j85G1i32DVNYv7tNgQtNFE/uri+YTSlRrE1kvgsMafYhv9U8Xdsnqo5JRuo 8tyZFv9bZzg22x1LK9X0NdtuXq1ygndgKQabyXC/a1Pevi76WOwBr3rANikrdVNTzLTWGuwK6LMS 7lpTxZKodIQRSCApmqfFQVu9tIeczS71THGiM+2b8l1PlW/Z+qXGUawYn2PHNLRwM1vIMyKF8gEN tFuD5YNXYgHuUsvc6GgrCEggkDHamIQjPeIMz2a7MSU4zAspKefuJI36ymaAt7UrYp4XSIxRRQLa pZJJ1kYQkEAgg6xrOtjaO552SbabU4yexqRgdeZnf6U8SO6fevnMKLXTGBhpzWSYdmmyApkcNU4M AhIIZIwWMZ9fjQyzQg+zst2kGDVsnoBbjPK4M0X+r/7haT0d5VG1bOrlrNyZ1ZfHnZKmkv+ILugH AQkEMkbzIu4tudPx9q601+LUcWylJ7H+9JOjU9iiBY7yprcdjn92YgUS4zczEvAEnBxToovzQUDW CKqmeVp2qR/b9lt1aCBSzCDuCC+6Iep5LPvsauoqMScqRl9HprA9r9jTnl6IbYHdyUxzK1lmjWKb 1Nc0ins6uDONzn3+tBnCNt41hNHuUKuIQ+hAQ2+kfC4+FbQytphl8EaGu8i+Hk+RZUPl6OL5uDEt EiPPxymzaF/qHH94NTpR8jcdvap3Jct9UY1VZDIiRzW11VNDoXmWJxmerIa6llsaDWRQQy0Ry0qE NUgfjTxRJHbjH75N4dbs4uSJRK1gql93XYZ6F0gjrRSKyAn/xf5boaP90hjKM1m+VsOWJc7trb5z 1LJVthuntXsrYYnTVzt7pKQd7zvOXu5dZbTQ2GOVHOO0VkMhRX4p1dRQX1MNTPeyvl5R0/qqJfGb q66ZvqbaUqEcOZp4xFybKsjQb365zfWKBY+6RHfbpeTbWJWffekIkBOpimaxgcAaymved2+c8/Od hseK+AvIDnvqb/2krozYxdCUxL67wA8esnHctC5eLWLVnTreMdQ0/9HDtpUqp0exuJhXOsBOaWht +fziFB+nrfQHzYn64AprIIFABtk2FmSrOI28YE97Gpzl9u1XJJhYxXjMjimQjy900sR7pcgHu6Rg p1hRftPXfrp4z6FedHUl5ePY6HL/34zP2urkNUmGok6Mr2OmomENJBDIIOtaKj/m56g4p+rhbIM8 kEVHJ0c7slz/rvF5OgWmkVcZ4QFbl5HjcDc4OSU9HWWwEarbXV+bpqTEYeaWWLaeGzW3yzQfmu+g NJY/XufopzACCQQyygZlTC209oo97O3prLVuLU1igVQrwmAbVDLuxHe6KjS8TPlgO3MrbTsz3Hm6 uN7anvWuK1IkH9ywSnCrgixNSV7vpjSW/ps6MfcvQUACgYyymw/KTD/FUO/a3/gste9ITyZx1YMu rlSt1znX7W5NIGcnryRZxxKDnKij/+loqFedldLxwfV2XUWKqqmVwhoS5T6bV3Iqrmze0CX2OUxh BQIZZe9yVxmae8oQx9k3DV5ty+dQ/RRW8MHwkfqVcBr+k3Ns75MEcx/umgpbu8/0qrf9aStH2zMt b82/GWpkiXOLsxLA+C/PejetNXzg6tjnMAIJBDJKG9VNKjdXD58ptGPSb9vJU93WFV7Kv7sSAWxv capr3J5w/m0s8FfCuX91h+4O95vLfOoBe6fpkXehy1aRiyVZebxe4Ky0GkvOM6vI9uAgIIFAhumS kEuOHDca6CmHlLJvK30cX8HgUqPlJekyY5y9/OETu1XoqsQmsb50hd2cb7n7DXdzWgK7/s2LasRZ tJ6dJkeGZfGKPMenuYaORY6CHUggkGF+cY53Es49zG066KN5Blu4m4EVWB84zsF6JVHLrV7XJwnT w9EuL2ZtUZyId7xmtJb2s39G4ssU6GxQiYiC8LZXPJyB+v9hkT29YL201nGA64qssIQRSCCQYdrL 8XPCufc13PZ6uimDoXD38VTCeSeblIR8/Gwv03ySlOX6lhb6M875BV5wtE6esadhBjslQ+HJLnNQ HPlgasY38Z7l+DTLxyQLiy3QBwEJBDLOARXc6XSKj+XZMWkjv4pyvLcTzts3iSmTux3vcvcl7e6y a4lJrGkesr8ePnG6Tz3t4Kinpkzwgy9cHjflL2tlrBXwgkXOSnMdjzq42HEQkEAg4xzvwwpeUdPN XvWRPTLi0ryNxj5PKOdcX1VwT9Qv9jbBp5XymnWkodFPP7rZHo43TR+fuN+uGX+kXeSGUlL+zGiA 5unuTPuE2QrDSzizDNt4A4GM08CWnqtw5Iw2HvOTG/VzSdo9DR/ncTsnkO+eClo83+l5fSrd+i1U 84YvfaiBvfWPxqbIBo9pXaoU/lXCl3B6OcUVWqa5jgG2LzG2C4vogUAWGOO/3kvy2u/cYJEr0xYs aCW7eL9cT04FuhiesL+nn51tI/dX8q11mfd96GGt3aFjRrcWrMp8exmmaSmpexmYsfZdabG7015L F0/ZoNiZMIUVCGSBLTROWkC2NtgNbneAT9PYwo6eKzfPg3ZLWD5udYIrPFwJ+ZjtaYfZw0t6et9O 9s+yfPB/epcqH+RnrH1v+TwD8vGCdiXkI4xAAoEs8ZmbytiMmgifuNci59ovLe37yaXeoBTXj3nq oYtBCc3zj3WuTdyXtGX2b17zrgV2clDMjd8ens5yEK5P3FCGzXeeA5N+RagYkx3iVeukvZ4uHte+ xLmwBhIIZIVd5HrPnpUooYsuvtbXHU5NaSTylWymmf4et7WH4qTuZEfb2jch+bjF6262e1Kt+N4g n4no5jZbFEvparBzU97rinBVmW/980rxuZx6TtQnA/LxuE1WkY8wAgkEssY3Lq+AQWHp/Opmv+it dwqjwE/2uPvMw0Fx7b5XjiV2dVspAZPetoU2+N4FttCvwmOPiI+87DuN7adnXCuLcf5rWMr6W3Hu MFW/MtJHeMyADLTjBJuUso04lazQ0WtxtiWHEUggkCW209LzlQzRCht7wh9usYseTo+OCcYaHQ06 mhyD3Rj9tKyMXB/Z2Q8lRgbwp3318KabDXGLrmXWVHKKLM+7BptoXQe6qQx36JvI93tcackEU71c zlbsX9Ns0reSG1TLgHxwte5xrVrCInogkDVu0U9hSkpa270+1EgvJ/kedzvSo5Uo7wKXRj8tipP6 T0SOQXHkgwMwRBfVjShHPn7RxovRzzM97lB7e9tRPjbQkeVE09jNyym5d8nwf85Xu8wcUyoZHyUR XvKpJzLQ2wk+dF3clCAggUDWWNd+rklZaXWc7zP7u0JvT+J011eitFujY6PFcdKmRf990SFxUs/x FRgdE6HSeFoHswyzWF89HWa8i43wkO4JPZj+MSfMNG/Kd1Q5eX5P+wjkM3d4ISP9Pa/UUU4QkEAg i1ztY9+ntMRehthAPriuwpEzijJQJ/EFZCp4zmFx0l70QPTTgnJ8ZJ0UdYLyhLPU0s+HbillRSU+ 7RWaktJ7lyi3JOB+fnqpcd1TwwRnezIjwY8f1lzPUtLCGkggkFVucVHKAwD9s+zd35QK+LUqyafa xBWQ3/GaA+KkTIyuvNTXWWd7lVryGN2jMgSXJhlWdncvVyISSbJcac8ExGFhWqew5jrGPSkLxlsW UzxeRgzNsAsrEMgy/9XClSks72gDix031klBEuVU08K3fnSgZVbEzkY09q55TjDX0mL5c9QwzHJs oINm6skzL07N1SwqYQJ5tvuT6ul4Z6Y5+t6qjHOyEeXmWqhXGq1AltnHWQ7PSH+7O7vU8UcYgQQC Weceu+qWkOepxJhkTrGpjUUWW55USdXUN0VdtYsICNXMt5aC6DTZP+RYrIkmWGaZfIWlOKDPkau+ WshTzZsGJL0OtBEmWT9ldy4RLnZVArlmJWyhnwwHOypD8nGV9mXIRxCQQKAKcI+zfCw3RaVVLzEz Xr9Szs3jTZOUZz5YS62Eyq6HDaxXCSeAu3vZ/1WidxXlWQ11TyDfj2lcQu9ld6dnpLfDfF7OOCos ogcCWWcbx6YwEGlhkuON7JAXd5UlUY7MqDHhEv30TSjnjzZJUxsOt5WLMtLbya7yeDl5goAEAlWA s9V0a7YbsRrSDr9lrLZLHJFgkKjfbJiWFhxpk1IsMlJNoRPcVO44KghIIFAleNI7Xs92I1ZDunkp QzV9ZXTC02VT4/iNqjxH2LjU8FWp5ii97FNuriAggUAV4Xk3GJPtRqx2HJmxfViXuSXhvPPTMALp ZfOYg5l0c7a2zk8gXxCQQKCK0NKDTvRntpuxmrG+HBMyUM8DNrRLgnlnJ7iJIHEK9LBTCr0WlM01 FiS41hMEJBCoMuzoegdbktE6X4zjpuKycqeFlvu62PFse2quT5EzA2yimbOK5XrYWnZK+eN+zwxM Ys3xRIKPVJiiWUprX2gf+7os7b1cyZ2+83SCeYOABAJViB5O0yNFDhYT4484i9Bj5ZVz1TQnFjvu ptAjrvZM9HiFLxzrYf2LbDj92Jlu006nFPfgqAwEbrrAWRoknPsrm6ew7un2c0rGYp/c7z2vJZw7 CEggUKU40WEJWRokyg02cLlzTcINtrW7EfhBF+u7Go3Md5ENYz5xobGv9bJ91EvX1TbQ3e/4U0/r uxK3+FGLmBuRGX413CHuiwWfquYhVznMzcbHSn3EOU4wUKFRKb1j66rh15SWWJIP/OGkCuQfa7OU 1f2D/V2VhoBh8XnQG96sQPSWICCBQBXjTD3tmyJbjodd60Kz3S8f3+qskf1wuLZuNxs1DdPCoY4o Ylme71F7a68jbnSby63QEV0sdqV+bnCoBm6PjUJmqSkH2/q5WO0FBrgidvSTbUBjk1J8x/YuJn+p 55oKTF/BbynzUvWu3h5NYDdUarjVm4ZUyLo8WKIHAlWO89W0l7fKiTiRCM94zCl4Tx3L/WykXAtw lonWcguW2tuleNsUb7neBr5Ww03OdKZmZnrRMHs4TQfvmuVXbOb/XKi93tjD985xSrS2pcUWj+fb 2zm6xY5rR31nrUh5sNfDHZ9Sb2LFucnO/lOhK2anaATS34CMRDtfySV+81YFrwkCEghUQc5U094G a17JcuqbDGap62HrGIvaCpyL0bbxneqxsE35OjtLUyyPjhEWqaWuCfbAfI2jY5QJqimMBpo6Uied rCvPRO08X8Sj1xxHud2uRdrS2SBnyfd7BR/H5bOO2n7WIfVfA6Z43WcVuuIvtSocwjceVxrtHXXT 0qtVOV1+EpsRgoAEAlWSkzXVw1OVfCxeYVdD1bRQxA7OsZtFlpntGLO08ptl8swHC83WxbZgsYF+ 8K1NNHSZgz3me13tYC+5tvWlZzT2iw2dE1sFOcmGtvONUbjCZo61pWnqulg3txjiTQ+5UGv/Md4+ aXB0vrcX0rTJ9UIXVzDW/MQErdXL5hj1vZGWHq3KCkdZ151JXBkEJBCoovTSzLFus0clyuhqlHHW dozadjTMCIcZZy0DDLRMXy3sGnVXcWMRqfqvq43Sy9noZaS3nOVEvOppv7pLJ3zuWa1jVzxsDz95 ymbYSGtcZ4oV2uiAljbB2qZ4Uhu903CvDndMWgTkFSscWsFrPovKcPL87lg9XZyG/sRjuqP1TNK/ VogHEghUYSY40QmxNYbE6OjT2DvzLEdrY7h2ZQQFyi4fecKAFJTTw50pD7C0XCcDbVDBq05ytD0r Ueu7LtXHfinuS2mMcIFrynTZXhZhF1YgUIXZ0Dter8S7aHOnqelc72e7I2ln3zTEB7/CfhWWD6bY qhJ19nWDVzImH4+52LNJy0eYwgoEqjh1vO5S+xmoUVLXH1rhKZjVk8McleISfzKiROTERFioQIsk a1zuRLk+yth7/ZlmeK9Sy/RhBBIIVHluc6y9q+wkVNVgLXX9mNISL05qVeW3pOXjV7vb2v8y9FD+ SRfrGFzJXV5BQAKB1YCjPev6Yr6mAiXp4fkUljZAU3sncd2XSW5SftoxbshYdMX+TnRzCmxnwhRW ILBasJGPnK2Hx4rsfQoU5VBHpKysRR4wJKkrv9SrwtcUONMC78UsctLLPGfhw5RYmIQRSCCw2vCA U+2fsKfUfxst1fNDisq6xHFJRmqfGHXYkjjf6GpzL2ZIPgbbSzfPpchAMYxAAoHViIN0dbbXPFKG w/AaFTR8yy41U9janp5PiZX7F372YFJXzlNQQTPCvga733Ypuwdlsdi5ZnhVm5SVGAQkEFitaGqg Z+zj7FIN8paYqGkR14jpJEdNuZau4oC+mlpqW2apFWVe39DEcnJUhFTtOLu8ArEHizO2Qp6rZjhN Sx9nSPAHutvJRdzrp4IgIIHAasexevivF9xn4ziprfRWI4WP5bLI9aefHCCvhGDVMMUvtrK5BfKs KNU3VK5ZDklZa5prYLQtK1nKPTazU5LXflzEG1h5DPCASxyWst6XxQQXqunVlK+fBQEJBFZDmnjS UCfq7IZVwqcmt/ibPIc7xoFxzj/uDZ1KxCRMNwd4rpICMsPASmyY/jbmHaxs5jndCu9qnJG7coM3 XBX3O6osYRE9EFhN6W6Eprp6IsvteM7dnoxz/mQvWWhn12UwSO8hRlayhAudo17SV09PaAn9BXva z0sZkY/BdpHvq7TIRxCQQGC15lJv+cTuPs9iG2oY6jHPxUnJdamP1LCbm6KxQNJNU40rFe9wmPmO S/rq8eqtMh4syRxHGegtJ2TgbozS3XOeTaP9UBCQQGC1ppn/6eMqx6U5rGtZ1DHUg16Om1bLVT5W oKvbFGSgLQcaWImrb6hg7MHifG7rcnI8bi/7eDXJLcIVYZqTXOxSg5Lw5pU4QUACgdWeTt5zkJOc YXqWWtDAG+70eimptVznQ3k6uT1FoXpLp1clRmPX2r1S8Vc+KNP1/kQ9DfdBLBBw+pjrQofaw3t2 S3NNQUACgTWCQ3yisyP919ys1N/Ea24ytNT0um7wvgU6u1c6Y0g00dTXSV35q3fcWKm6J9qh1LRb HetMzyTpEjNxFrnCPtY10rFprokgIIHAGsSxPtbWfi7zVxZqb2mw68p0HN9AH2/5XUf3pbEdvZL0 iXWRKyv1QPxdriZxU97T2Rwj9Ehjr2Gh6+2rsZEJ7gWrPEFAAoE1iguNtL5ezorGNc8kbbzkcp+U maeJO7xpks4eTlMrDvJlElcNVKsScTHgS5vHOTvDCe7ykNtTEie9dGa6zB5q+MAlGfREEAQkEFjj OMMIOzraScZluOa2nvN/vignV3N9DfKTLvqnoQ2NNKuwhCxzj3sqWe87uq1yrq+D7OWtlDhYKZ3f ne9AaxvpSjXTWlNJgoAEAmskJ/rMPi7Qy5sZrXcjA5zt23LzreVez/tWJ0+lvA0HV3gn1mUOrrSV 9ji7FDseajfTDU/zWsSXjnGsbXzm/CzYhYeY6IHAGs1nHjTFoU4v10IhdXznFE/GndBZlan6GOP0 SlhfrMoCPcqZSCvOKOf7uJJ1jne2t2NHY12OW1Iepb04g/WX45QkHMiniiAggcAaz+/6GaGTU2yS oRq/dK6nEt4SO8lNfnFOCv1CHeLiCnil2stVdq1kjf1Nju7hmudKo12e1rjmc/T3po2dV6n465Un CEgg8K8g3wsGKnC04zIy1fGpiwysgBHbBH1MdG6K/Ok+5wv9Esz7qC88Xukaj3CZbXCL1xzn7JT0 Ij4jPGKi7k7XPI21JEYQkEDgX8SPHvGZnZyR5mVdeN/lBlfIvfk4N5nmPAdVuu6Fuvs0oZwL7OG9 FHilOsDrBnpQRzeoXenS4jPfUwZr7PgsTloVJwhIIPAvI99zBsm3jyNTGFooHsNc5zWtKnTNj/qY 5YJKTwAd6sISi9rxOcV2zqx0T3+2l44au87alS4rPu94wm/2cqq2aaohGYKABAL/SqZ61hD1HOuw NG79fN1tXi8jemJ8RrvRHJfYpxI1P+9Ld5Wb6xPXe6/SvRzlCOt6Jk3i8ZNnjNDW8fZKS/mVIQhI IPAv5hvP+VwbR+iZpl1aL7vbm0lMEX2nj/kutWfSNR/iWrc4Xve4qf3tax17uqPCMcyLM8LdavnM mEo4gS+NaZ7zhjoOc4QGKS89FQQBCQT+9XzkRd+lTUYGesjQpB6vX7vZYpcnsUPqM8Oie6Ked0Tc HNVE7K+TSyvRs5FuVugW7R1Xii/iZJnhNa9aag/HpNWbbmUJAhIIBLBSRkZp7iA9KrhuUR5PesLb SUrT525R4HJdwBVO0S6BqzobEf30VtwRyEINwRYe0DWpdn3mdstcYnf097vrU3SvphvsNUvt6mib pajM9BEEJBAIFGGkN3xhhW4OSaEZXH/PeztpH02fug23aqKNtU1Qp9wrCq1vGngn7srBBzG3I7VN 0zShVjzl+Oin9/WV49KY9BzgxhTYY0w02NuW29VBWbbuSJwQEz0QCBSho474xVsutlh7++qa4AO2 LE6Rr4dhSV7dWWefusNw/GE738st54oa3o2+v8fP+XfMkO0NS7B3l7jDBroYop96riqyw2uReZV8 4H/pFV/I1dW9abZdTzVhBBIIBEohz3BDjFHPTg6u9Fvx3d71ViWunxazKdnWNwnkf8oJ+CjuFNVu PsJJCRsQ/lc/tLeD6s63bbG0QYZ7IKkezfSpIX7RTE/dK+2LKxsEAQkEAuXwk3d8aLZ1dNatEu5Q bvOZ15K++p91DTolZCZ4rRt8bbs4KTUsL3V5fVVOjXkNfjNOTI9jnVRmJMJVWeE7Q4w0zzYOtHu5 46mqSxCQQCCQICN94BNztdcpyeCvN/reoCRrf910D/s+etTatVaUGduwkcVOdbJu5haJxRFRx29u dJBTzLK4zBqrqWMT93kmdqanN0rkybdHgjbvMN4wn5hqbXvZu0rvr0qMICCBQKBCFPrYSKPM0czW 9rJVhfZXXePXCjtb/4eOTlNboULzLVdQRs6IahqaK19Dy4oJSK55GmlqngKRMsI8RdT1s4eiRw20 1sLG+peIgfGiDz1Ybrsn+cinxqmns246Vub2VymCgAQCgST50gif+0M9m9tBpwT9Xl3qj6RjgHQr M2Ru6vndoYappW6pOQ53vk6lpv7qA5+boK4ddNUlbV6yskUQkEAgUEkmG+kr4+RrbGM76KxFmfkv sDDJWIQdjcxoz6Y5q8xVm4X2ixN5ZJlvfehbf2psO511yWAslswSBCQQCKSIFb71pe9NUKCV/9jS DqXsLTrXiqR2LmVaQCY7rUiYqFV5yli3xI7G+tQok+RraTtd7JDmOOjZJwhIIBBIOfl+8KUf/Wqp ejrY3Ja2KDYRdI6aCTg7LEl2BeQJu5VY+D7R+ToYZpSvLNLMZraxa4rt+KsywZAwEAiknJq2i26f jZjiK2N84A80sqkONrWj+13gThdlu6EJM8JZRnstKiDLjfaz0Z70lxo2tp2T1oA9VRUnCEggEEgj OdazXjTO4BKTfWOsd/ypnmruMdbJWlqvDEuIl+U4OGutr6YhJjo3agL5njzvmyZfEzv7xE2uyFrb qgJBQAKBQIaoY5OYGeIyC0x2gT0d6Q8r1NXShtpY2wbF3uVf9KJtXa8nFNtCO9b0mEerZFlkiEVO LjU9129O81jseLgdnGDTaDDZT9IaunZ1IAhIIBDIArW00MInztDJcVaY6mfjjPaWWfLUUlcz7e1o Kr61v3b6OKpYaKo3fFSugOzruTJ9XR1ouIgTS3XzONM3ZhY5XuC42OfhamuU7duYZcIieiAQyCoH 2Ns5Jc7NN8dUP1vkNn/GztZQ18xY/MRHjXS1EQ7SAAu9qZZecjDGlzaxi/E2do1tHOR7o7S0H77V yhda2xksM992fgeLvWO+Xa1fpB1/+K8XLDfeVz410gK/xKbbjndEHMcm/y6CgAQCgayyQncHOquU 1IYWgka21tVLfoxNYz3lBFv4VW3zLNJCTUutbZKBjtbadNfY2X5a6ugBXbX0p908YW/vWteVTo+W MsMm5oKzvaupKd61eaz2yc4wtEhrCmLyMV/POBYg/zaqVb6IQCAQSJ5qhni5FMPCPHV186jx5vnQ DdYp8sgq1NYPlmprsMfsZL5lqnvbjQaZZqwHdNfJNK9qrb1FZhiAWs4xxRae8wVYHvOn9R+1zfNH CW9XK4od/bPY/2QScRLXPMIaSCAQyDI1DLWPmrGATf9Qz/Rib7mLinyOREcKHcwz29ZgS3/K0wmb qGmRBeZp7hJLvGuybsjVFcf5zcl2Ql31QZ5LDLCfgyxNqM2Dk3bHsiYRBCQQCGSdmobYRw1Hr5JS +iRJxFD/EzFIHxvZ1Q5medXj3rWHB92pnvrmu9fZInIsMEAelsjDxGgZk31grtfsrpalqhvh7agU lc071tY22zetChCmsAKBQBWgriHu83IFrmjuWC85zz066OoO57jVQE0N0ME+5vgAN7pJD30U2FET +6JDsV1ZNzpJxEEeVEs/R7vNScUW0UvjUWdk+4ZVCcIieiAQqCLMsZ+rohYf8akavrB+dqYPMnxv qiZhCisQCFQRmnpDT7n2yXZDyuFuJ2W7CVWEICCBQKDK0MIrDlDT7tluSBnMMsbD2W5EFSGsgQQC gSpEa4NcVCT6edXj7iz65qpqBAEJBAJVivW94HxfZrsZpbDIB6vYzf97CQISCASqGBt52tm+y3Yz 4nKXnjFnKoEgIIFAoMqxqcecYky2m7EKS7zlgmw3ogoRBCQQCFRBtvag3n4pcTbbIWLv0KNYXMV/ O0FAAoFAlWRHdznepGLnamW4DQ2K1bjAWy7J9m2pUgRDwkAgUGX5wBVe1iZ23Nz2alpewVJqKVBN joIKXlfTNNWLmC5eopX/y/YtqVIEAQkEAlWYYa73irWiRzMsFVHRh1Zz59vCSVG37YlTTURjjaNH kxzts2zfjipGMCQMBAJVmH0tdajXorEIWyVZyro2KiIFyXFZWD5fhSAggUCgSnOQfL28UanwsUsT dNJeOsMsdFi2b0WVIwhIIBCo4hyuwIGGqJfFNlznyWzfhipIEJBAIFDlOUa+noZlfBfW31xsPx2y fROqIEFAAoHAakBvBXoYlpVH1ke+9FG2b0CVJAhIIBBYLThNvv0NzXi9BS72RLY7X0UJhoSBQGA1 4Rx72z/jtZ7q2Gj09UBJgoAEAoHVhgt0clBGa3zYEudlu9tVliAggUBgNeIy2zg0Y7V9439h91UZ BAEJBAKrFdfaxFEZqWmhMz2sdrY7XIUJAhIIBFYz+mjrhAzUc4RzbZvtzlZpgoAEAoHVjts0dXKa 6zjTto7LdkerOEFAAoHAasjdajkrjeXfaqE+2e5klScISCAQWC15UEHa3Bs+6UPPZLuDqwFBQAKB wGrKY+a5LKGc1VWvQLlDPOKlbHdutSAISCAQWG15whTXJJCvSQV8+X7qRi9rkO2urRYEAQkEAqsx zxnrJsxyeSk5dtXA5XqpUY5B4Cvm4hsXetra2e7WakIQkEAgsFrzkonusKtbjYubvo1FlltkuS5l lBJxsH185yKP2zjbXVptCCFtA4HAas6MaMjbYz0dJ3Wy9UFtS8oo4w6XgO9sle3urEYEAQkEAqs1 v9hWXvTzX1rEybGFH9Hb/0otI6K+xWA/Q7LdodWIMIUVCARWawptGvt8c9wcK63We5dRxs1R+eAt r2W7Q6sRYQQSCARWeya61CCQL3eV1IUaamxuqVdH1FSIdVzm7Gx3ZbUiBJQKBAJpYrkFqkn3O2qO XO285FOXGOkSd5tfrM6aGljHzlhgRZyrGzlXobaucpzaWGh5Gtu6QpM0349MEkYggUAgTRzrR00U yElrLRErRaSJXD9YYEPLRWJ1RuRoYpTG1rVglZZEVLPCBA39R665FltB2tobUdtvTosu168JhBFI IBBIE/N9WAEDvn8H73kr201IIWERPRAIpImC2O6owN8sTuMEWeYJAhIIBNJGmCFfswkCEggEAoGk CAISCAQCgaQIAhIIBAKBpAgCEggEqgxL5Jc4s6CUnDOy1sZZUIpZYn4Jf1tL1/BVoCAggUCgynCB m0qcOTBqYV6cfPv7KYnyZ7ur0m08xid+0jluWh8Xxj5/qrE6qrkifbcr6wQBCQQCVYbGcon5pVqO wrixBGsaYrMkyp/u0TjW6BXjeV3UUBA3rUmR1jb1tIiP3eKv9N+4LBEEJBAIZIAlNtNNjs4GaSLH QAxXX462JuEsOdp7Q2NsaxYe0BvV1MZFcuQ4vEh5e5rrNZvaVI5bXCrH2grMspFOcrS3CPfIkaMr PtHeptZxup9Vd1yslIdVk2M3PC9Hjq0UGG9DO8lxunvlyDEe/7G7HI38jEN9pbZqmKSDHA28i6vl WNcz6sfK3sz+6KKumtm++WkjCEggEMgAdYzVXcRcV5ngf67GYS63XCdnGOMxY7xvnBwsUBMrLAUN fekl0ywzweBYeXPUlmOct3zhCnUst54HNTfBGfK1cqGICwy10FS3a+BXj5qqv63kx6KGTHemQWa5 yBzHeNoydZ2vgYlu84dHjbRcb1djjE4iDnckFoiooTqOc4SIJ1zhVzcbaZTfVhnfHOoCjbN989NG EJBAIJABVljX+ejmOE0daQnmu1I1fc0xXHebW9eJlqOm2qipFqhjpCm21ti3vrCJHN1QXXWFetrA jtq5UDXdTcJ6jpOrj9EmWse+6uvjKwV20QU1rZCLXDlO9ov2DtZMT4vUdayabjdGnq3tZi07OU81 R/gdbV2Jvn5BDdWsfHR+6nYNHG68D+1oZ82dqZbpcuR4CBxsPX2yfevTSBCQQCCQAZZHRxSLFWKJ ZajldTyqlm2MAK9bjiW+xfNWIGKpDtoZbbF3XOJ7k72KiIiC6B6npfJRYDkm+xL/09bappqOx2ys MOr2L8ccMMNkj1vHLybiV3Us8j0esY6c6ChiiUIsU4ipXsRjWmGFCFZgMzdaaKrXdPa9RRhkmdYm m+xM7G9bfbN949NKcKYYCAQywBL5lmhgqSVYYgkecCAYYRdby9HMMsvQW0eN1LcOCvzlINtZx3IN vWcHbUGBhRZbhkL58jS31DLUc7IxahivrjO0QSvveCc6HbahiBwneVxTbOQ8G2ILP7jB1qjnVzOj efMtxhIFaKWvE/E+lsmzyFL018slONJAB2igoeoKiLbwUW9609X4yvbZvv1pIrhzDwQCaWJfj2sT O5qoHWbK1Ri/2hgL/aVtNATUJC3VslQ9/K6+JuZpbKqWauJPi62lbrHS8s3SGhNsiHlqy7OnUaZo E90N9Zc8G6DADOuA5cZqoVWsnDnmWl91zDFPOzDZepisjRryzdXKZr6Qp4F6mKItJlkfK0xSK9rH KRpraIGG0ZLz/a6GAkv8p8g9ed37+mX7i0kZQUACgUCaKC4gmWCc3f2R8lKXWsePRUSnMqxZAhLW QAKBwBpDB++modTahqdIPtY0goAEAoE1hhxbpKXc/1S+iDWSICCBQCAQSIogIIFAIBBIiiAggUAg EEiKICCBQCAQSIogIIFAIE3kapDtJlQ56sX1Lry6EizRA4FAmljoHu0tkZPthlQRIhp5RZNsNyOF BEPCQCCQJl73lRqVjr+xJlHdMr3WIMcmQUACgUAgkBQ1fJ/tJgQCgUBgdeT/AYi1Bx3dD/peAAAA JXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTAyLTI1VDE4OjAzOjU0KzAwOjAwUfHqfQAAACV0RVh0ZGF0 ZTptb2RpZnkAMjAyMS0wMi0yNVQxODowMzo1NCswMDowMCCsUsEAAAAASUVORK5CYII= --=-=-= Content-Type: text/plain And here is the GraphViz source, which you can render however you want: --=-=-= Content-Type: text/vnd.graphviz Content-Disposition: inline; filename=nonreproducible-drvs.dot Content-Description: Graph of Nonreproducible Derivations (GraphViz) digraph "Differing Derivations" { "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" [label = "glibc-mesboot-2.16.0", shape = box, fontname = sans] "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" [label = "xz-mesboot-5.0.0", shape = box, fontname = sans] "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" [label = "binutils-mesboot-2.20.1a", shape = box, fontname = sans] "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" [label = "bootar-1a", shape = box, fontname = sans] "/gnu/store/5x8a1yib7vdza727vrq4zmp6cmsafy7h-module-import-compiled.drv" [label = "module-import-compiled-1", shape = box, fontname = sans] "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" [label = "gcc-mesboot1-4.6.4", shape = box, fontname = sans] "/gnu/store/alvrmh47xqk7glq9wmvrzivfjp2bcvyc-module-import-compiled.drv" [label = "module-import-compiled-2", shape = box, fontname = sans] "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" [label = "gcc-core-mesboot0-2.95.3", shape = box, fontname = sans] "/gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-gcc-4.9.4.tar.xz.drv" [label = "gcc-4.9.4.tar.xz", shape = box, fontname = sans] "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" [label = "gcc-mesboot0-2.95.3", shape = box, fontname = sans] "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" [label = "module-import-compiled-3", shape = box, fontname = sans] "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" [label = "gcc-7.5.0", shape = box, fontname = sans] "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" [label = "glibc-mesboot0-2.2.5", shape = box, fontname = sans] "/gnu/store/i5wn3xl6p0zw1vglscgk0bs9dwc6hdh6-gcc-static-5.5.0.drv" [label = "gcc-static-5.5.0", shape = box, fontname = sans] "/gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-gcc-7.5.0.tar.xz.drv" [label = "gcc-7.5.0.tar.xz", shape = box, fontname = sans] "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" [label = "libstdc++-7.5.0", shape = box, fontname = sans] "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" [label = "binutils-mesboot1-2.14", shape = box, fontname = sans] "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" [label = "binutils-cross-boot0-2.34", shape = box, fontname = sans] "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" [label = "gash-utils-boot-0.1.0", shape = box, fontname = sans] "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" [label = "gcc-mesboot-4.9.4", shape = box, fontname = sans] "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" [label = "gash-boot-0.2.0", shape = box, fontname = sans] "/gnu/store/i5wn3xl6p0zw1vglscgk0bs9dwc6hdh6-gcc-static-5.5.0.drv" -> "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" -> "/gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-gcc-7.5.0.tar.xz.drv" "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" -> "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" "/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv" -> "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" -> "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" -> "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" -> "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" -> "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" -> "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" -> "/gnu/store/alvrmh47xqk7glq9wmvrzivfjp2bcvyc-module-import-compiled.drv" "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" -> "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" -> "/gnu/store/alvrmh47xqk7glq9wmvrzivfjp2bcvyc-module-import-compiled.drv" "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" -> "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" -> "/gnu/store/alvrmh47xqk7glq9wmvrzivfjp2bcvyc-module-import-compiled.drv" "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.3.drv" "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" -> "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.drv" "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" -> "/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv" "/gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-gcc-7.5.0.tar.xz.drv" -> "/gnu/store/5x8a1yib7vdza727vrq4zmp6cmsafy7h-module-import-compiled.drv" "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" -> "/gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-gcc-7.5.0.tar.xz.drv" "/gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv" -> "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" -> "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" -> "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.34.drv" -> "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" -> "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" -> "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv" "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" -> "/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1a.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-gcc-4.9.4.tar.xz.drv" "/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv" -> "/gnu/store/d1g7i2w8k1g5jrx4n6xv4q8xnrlmz8f3-module-import-compiled.drv" "/gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-gcc-4.9.4.tar.xz.drv" -> "/gnu/store/5x8a1yib7vdza727vrq4zmp6cmsafy7h-module-import-compiled.drv" } --=-=-= Content-Type: text/plain I generated the GraphViz source by manually massaging the output of the following script, which walks the graph of derivations that produce an output that differs across machines, starting with the derivation that cross-compiles %gcc-static: --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=analyze.scm Content-Transfer-Encoding: quoted-printable Content-Description: Script to Analyze Derivations (use-modules (guix ssh) (guix packages) (guix derivations) (guix store) (guix inferior) (srfi srfi-9) (srfi srfi-1) (ice-9 match)) ;; A very janky script to compare derivation outputs on two machines. ;; The basic idea is to start from a derivation that is known to ;; produce an output that differs on two machines. We walk the graph ;; of inputs starting from that derivation (an input here is a ;; combination of a derivation and an output, such as "out" or ;; "static"). As we go, we record the derivations that produced a ;; differing output on the two machines. We stop once there are no ;; more such inputs to walk. ;; ;; It is expected that any derivations under examination have already ;; been built on both machines. It's probably best to just build the ;; root derivation on both machines before running this script. Make ;; sure you build without using substitutes, since we're trying to ;; compare reproducibility between machines when built from source. ;; ;; This script was written under the assumption that all machines ;; - the local machine, gs1, and gs2 - are using the same version of ;; Guix. Run this script with: "guix repl the-script.scm" (define gs1-eval (let* ((session-gs1 (open-ssh-session "gs1")) (inferior-gs1 (remote-inferior session-gs1))) (lambda (exp) (inferior-eval exp inferior-gs1)))) (define gs2-eval (let* ((session-gs2 (open-ssh-session "gs2")) (inferior-gs2 (remote-inferior session-gs2))) (lambda (exp) (inferior-eval exp inferior-gs2)))) ;; Represent edges in a graph as pairs. (define (make-edge from to) (cons from to)) (define (edge-from edge) (car edge)) (define (edge-to edge) (cdr edge)) (define (get-inputs drv) (pk 'get-inputs drv) ;; return the inputs of drv (according to gs1, or gs2, or locally) ;; one input is e.g. ("/gnu/store/...foo.drv" ("out")) - a ;; two-element list. (gs1-eval `(map (lambda (input) (list (derivation-input-path input) (derivation-input-sub-derivations input))) (derivation-inputs (read-derivation-from-file ,drv))))) ;; Evaluate to the recursive SHA-256 hash, as a string, of the output ;; path. (define (compute-hash-exp file) (pk 'compute-hash-exp file) `(let-values (((port get-hash) (open-hash-port (lookup-hash-algorithm 'sha256)))) (write-file ,file port) (force-output port) (bytevector->nix-base32-string (get-hash)))) (define (get-drv-output-paths drv output-names) (pk 'get-drv-output-paths drv output-names) ;; from any of gs1 or gs2 or local (sort-list (gs1-eval `(filter-map (match-lambda ((name . output) (if (member name ',output-names) (derivation-output-path output) #f))) (derivation-outputs (read-derivation-from-file ,drv)))) string<)) (define (get-hashes-gs1 files) (pk 'get-hashes-gs1 files) (sort-list (map (lambda (file) ;; There aren't usually many outputs, so connecting once per ;; output isn't so bad. (gs1-eval (compute-hash-exp file))) files) string<)) (define (get-hashes-gs2 files) (pk 'get-hashes-gs2 files) (sort-list (map (lambda (file) ;; There aren't usually many outputs, so connecting once per ;; output isn't so bad. (gs2-eval (compute-hash-exp file))) files) string<)) ;; differs for some output. (define (any-output-differs-on-gs1-and-gs2 drv outputs) (pk 'any-output-differs-on-gs1-and-gs2 drv outputs) (let* ((drv-output-paths (get-drv-output-paths drv outputs)) (hashes-gs1 (get-hashes-gs1 drv-output-paths)) (hashes-gs2 (get-hashes-gs2 drv-output-paths))) (any (lambda (hash-gs1 hash-gs2) (not (string=3D hash-gs1 hash-gs2)))=20=20=20=20=20=20=20=20=20 hashes-gs1 hashes-gs2))) (define (get-bad-drvs inputs) (pk 'get-bad-drvs inputs) ;; return the drvs that are not identical on gs1 and gs2 (filter-map (match-lambda ((drv outputs) (if (any-output-differs-on-gs1-and-gs2 drv outputs) (begin (display "Differs: ") (display drv) (newline) ;; Without the outputs because the entire drv ;; must be run in order to build any outputs. drv) #f))) inputs)) (define visited (make-hash-table)) ;; from-drv is assumed to be bad. ;; The bad-drvs returned are a list of edges describing the graph of bad de= rivations. (define (get-bad-drv-edges from-drv) (pk 'get-bad-drv-edges from-drv) ;; Don't visit the same node twice, to avoid loops. (if (hash-ref visited from-drv) '() (begin (hash-set! visited from-drv #t) (let* ((inputs (get-inputs from-drv)) (bad-drvs (get-bad-drvs inputs)) (bad-drv-edges (map (lambda (bad-drv) (make-edge from-drv bad-drv)) bad-drvs))) (append bad-drv-edges (append-map (lambda (bad-drv) (get-bad-drv-edges bad-drv)) bad-drvs)))))) (pk 'gs1-use-modules (gs1-eval '(use-modules (guix) (ice-9 match) (srfi srfi-1) (srfi srfi-11) (gcrypt hash) (guix serialization)))) (pk 'gs2-use-modules (gs2-eval '(use-modules (guix) (ice-9 match) (srfi srfi-1) (srfi srfi-11) (gcrypt hash) (guix serialization)))) ;; guix build -d --target=3Dpowerpc64-linux-gnu --no-grafts -e '(@@ (gnu pa= ckages make-bootstrap) %gcc-static)' (define root-drv "/gnu/store/i5wn3xl6p0zw1vglscgk0bs9dwc6hdh6-gcc-static-5.5.0.drv") (call-with-output-file "/tmp/myedges" (lambda (port) (write (get-bad-drv-edges root-drv) port))) (display "done") (newline) --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable This graph shows the derivations that produce differing outputs across two Guix System machines, when everything is built without substitutes, walking the graph of inputs starting from the derivation that cross-compiles %gcc-static for powerpc64-linux-gnu (from x86_64-linux) using Guix at commit 1ced8379c7641788fa607b19b7a66d18f045362b. If the non-reproducibility (across systems) of %gcc-static is caused by a similarly non-reproducible input, it's probably caused by one or more of the derivations in this graph. This graph is significantly smaller than the graph of all derivations, but it still includes 21 derivations. Some things I noticed while looking at the graph: =2D It's suspicious that the module-import-compiled derivations are all at the bottom. I spot-checked the output of one of the module-import-compiled derivations on both machines and found that the .go files differed. =2D Every derivation except the root (gcc-static-5.5.0-drv) uses /gnu/store/0dn61y4n8ig333b23hmc80hvlcy8gdli-guile-bootstrap-2.0.drv as an input. The root uses /gnu/store/b5nnbpgkvgdpzgvj67539ylcaqacj90l-guile-3.0.2.drv. =2D Strangely, /gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-gcc-4.9.4.tar.xz.drv is non-reproducible, even though it just builds a tarball. The tarball itself does differ on the two systems, but the contents, when extracted, are identical. =2D Some of the derivations in the graph are reproducible when built locally via "guix build --check"; however, some are not reproducible. For every derivation, if it was reproducible locally on gs1, it was also reproducible on gs2, and if it was not reproducible on gs1, it was also not reproducible on gs2. Here is the full report: =2D-8<---------------cut here---------------start------------->8--- rm -f /tmp/mylog && for drv in $(> /tmp/mylog; else echo FAILED: $drv >> /tmp/mylog; f= i; done 2>&1 | tee /tmp/mylog-toplevel ... marusich@gs1 ~$ grep 'may not be deterministic' /tmp/mylog-toplevel guix build: error: derivation `/gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-= glibc-mesboot-2.16.0.drv' may not be deterministic: output `/gnu/store/wgb7= 0ir475v4vhg4bcjzv4h2kaa93qj7-glibc-mesboot-2.16.0' differs guix build: error: derivation `/gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-= xz-mesboot-5.0.0.drv' may not be deterministic: output `/gnu/store/r1zsxj7w= lvw1aa1ifv3nyrrjag44pc9s-xz-mesboot-5.0.0' differs guix build: error: derivation `/gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-= binutils-mesboot-2.20.1a.drv' may not be deterministic: output `/gnu/store/= mza1k0mgr8ab407yzavwwz07ly7221wy-binutils-mesboot-2.20.1a' differs guix build: error: derivation `/gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-= bootar-1a.drv' may not be deterministic: output `/gnu/store/x2iy3ka299sk1x9= 7an783jl4pfbn60pj-bootar-1a' differs guix build: error: derivation `/gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-= gcc-mesboot1-4.6.4.drv' may not be deterministic: output `/gnu/store/q7f07g= pd9sq9krc68gxa73vbqmk06y0a-gcc-mesboot1-4.6.4' differs guix build: error: derivation `/gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-= gcc-core-mesboot0-2.95.3.drv' may not be deterministic: output `/gnu/store/= ri28kdl41bb76qjr4cyarylw7kxpvfxy-gcc-core-mesboot0-2.95.3' differs guix build: error: derivation `/gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-= gcc-4.9.4.tar.xz.drv' may not be deterministic: output `/gnu/store/56km255b= k1s880yn6rxw4wj3crm2pshk-gcc-4.9.4.tar.xz' differs guix build: error: derivation `/gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-= gcc-mesboot0-2.95.3.drv' may not be deterministic: output `/gnu/store/i4p3m= p4sghwbjnn6w9dffpswgc31jhm7-gcc-mesboot0-2.95.3' differs guix build: error: derivation `/gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-= gcc-7.5.0.drv' may not be deterministic: output `/gnu/store/01b4w3m6mp55y53= 1kyi1g8shh722kwqm-gcc-7.5.0-lib' differs guix build: error: derivation `/gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-= glibc-mesboot0-2.2.5.drv' may not be deterministic: output `/gnu/store/6h5a= 5sn3bx3wlkw8140ksxymwlksm6iz-glibc-mesboot0-2.2.5' differs guix build: error: derivation `/gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-= gcc-7.5.0.tar.xz.drv' may not be deterministic: output `/gnu/store/9qrvpjwy= dmqfjm81frrdcn0n3gpn0bs3-gcc-7.5.0.tar.xz' differs guix build: error: derivation `/gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-= binutils-mesboot1-2.14.drv' may not be deterministic: output `/gnu/store/zp= qfz6hvg47xml0yrwfy491drfbgg19p-binutils-mesboot1-2.14' differs guix build: error: derivation `/gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-= binutils-cross-boot0-2.34.drv' may not be deterministic: output `/gnu/store= /2601fgjs5h9cpvv5nxrcv52wix29ifrd-binutils-cross-boot0-2.34' differs guix build: error: derivation `/gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-= gash-utils-boot-0.1.0.drv' may not be deterministic: output `/gnu/store/zsz= 0mj4jdsz4l511d368hwx2d9wrg4my-gash-utils-boot-0.1.0' differs guix build: error: derivation `/gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-= gcc-mesboot-4.9.4.drv' may not be deterministic: output `/gnu/store/zz2blvh= k3gdqppcwy089p56f57q7zj0q-gcc-mesboot-4.9.4' differs guix build: error: derivation `/gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-= gash-boot-0.2.0.drv' may not be deterministic: output `/gnu/store/prkqai3zw= h3shlqpll6xyncmmqpj49dd-gash-boot-0.2.0' differs marusich@gs1 ~$ cat /tmp/mylog FAILED: /gnu/store/07bd5ll0adnyrv1zaz11vz2x1ax447ka-glibc-mesboot-2.16.0.drv FAILED: /gnu/store/0zkiqxwm6k637xr5s1690nwllnvybvyw-xz-mesboot-5.0.0.drv FAILED: /gnu/store/2pziz2j7781mhadl8lcfpzm8anvazb37-binutils-mesboot-2.20.1= a.drv FAILED: /gnu/store/4ji6ayrgcyfyxpb583qr5ja4awdlxrdc-bootar-1a.drv FAILED: /gnu/store/agday74gvxnd6a7191fw2g473b5v66kx-gcc-mesboot1-4.6.4.drv FAILED: /gnu/store/asnd815v865cvfh2l2dlxmh5y556v3i5-gcc-core-mesboot0-2.95.= 3.drv FAILED: /gnu/store/bjhkfxc5axkjl1jv94q0lwym4n6si6f8-gcc-4.9.4.tar.xz.drv FAILED: /gnu/store/cf3m3ddm8dicrsxba4kjnji5lbyagvbk-gcc-mesboot0-2.95.3.drv FAILED: /gnu/store/fdmz5blhzfczkpjb9jj6bdbhqlpv3i7l-gcc-7.5.0.drv FAILED: /gnu/store/fs2r7irjx7ppqks3zhsqmxb8lah1a4v0-glibc-mesboot0-2.2.5.drv OK: /gnu/store/i5wn3xl6p0zw1vglscgk0bs9dwc6hdh6-gcc-static-5.5.0.drv FAILED: /gnu/store/imx7vf2qg44yg9i4gsbn5bgpj3crcyr8-gcc-7.5.0.tar.xz.drv OK: /gnu/store/lhhbpfhk2xm8znvhnbrig8dfgd9xc80k-libstdc++-7.5.0.drv FAILED: /gnu/store/mrsasf73k1yvdcbn1wyb4ad6dk7ns3vn-binutils-mesboot1-2.14.= drv FAILED: /gnu/store/wxpvfy5g3xjl0kp85cmmy66057p88kln-binutils-cross-boot0-2.= 34.drv FAILED: /gnu/store/y4g2gsdxbk2kmp7lih88kdndi7868dnl-gash-utils-boot-0.1.0.d= rv FAILED: /gnu/store/yz7h0nf33465a32yjpm9rh6w9959h34q-gcc-mesboot-4.9.4.drv FAILED: /gnu/store/zf6himkd5rz2ll8ym0c2488bgpnkjkkr-gash-boot-0.2.0.drv marusich@gs1 ~$ cat /tmp/mylog | grep ^FAILED | wc -l 16 marusich@gs1 ~$ grep 'may not be deterministic' /tmp/mylog-toplevel | wc -l 16 marusich@gs1 ~$=20 =2D-8<---------------cut here---------------end--------------->8--- Although this does not resovle the cross-system reproducibility issue, it does seem to narrow down the possibilities. =2D-=20 Chris --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEy/WXVcvn5+/vGD+x3UCaFdgiRp0FAmA5sOYACgkQ3UCaFdgi Rp02jxAApTZbLE9rM+o71dmhWwWnKFYCLp46OFl3YxiiJm0XvLc4J9/yasxXJOnJ Z+cYNaXiKsfVVO7f2jLxGYQW8bZzJbfjUFy7ds7JWZ93M6JZc1J6Ja8Q+WSL+F3X LqGOY2jgvLiWSb8hNk+miVYmKRSaOea4wKkyMm0ctkgKqo8p9A6ozbSHqfAWv8RI dzHliquVfJ5w7MGyE68+fF9gbjpVmtQBsyop70e8uH7giB7vPI3qRyH5v7RnnGJ7 9nqSwIxSQMHuNU5SRvJBfhTXzVtoifiOWLltvJvLAubvFv/nNMpXuBd7JmPIXT/e wYM0WjLKk7Ka9OU3mJ/WXMwRUxMkjxocuQIxGrhvyOwjI4Zk8LOQRYANnsfFsQFZ 9ZS0ZYj1BEWTjB9APO2XOoVXS1VbzZ7QKC/OeX6Nyv86y5qUIaSOGTPXP+cH5AJg 5A4sXbfWYGHZbrpsjh2qgAEsn39PJSViwyXGvHyCNYUC4c+7zbtwnZY9Dmm+oa15 soHbIwY3dS45XCVl3i6VfhBW89KzWvsGXcymX3kJkXhN3XXklw7DFHtWGfgMrbde KLhjwqHkJGeuY6cbAcW3UJLiEleU69fObl+lxuspiFQOIA0TjeLXgN3kqm+TNeUb UEqdyLeRMMeEr6jpwq6NQm/C3rTPNHdvBCnMpUnPzVikumLybeM= =ot38 -----END PGP SIGNATURE----- --==-=-=--