From debbugs-submit-bounces@debbugs.gnu.org Fri Oct 09 14:35:52 2020 Received: (at 43872-done) by debbugs.gnu.org; 9 Oct 2020 18:35:52 +0000 Received: from localhost ([127.0.0.1]:36197 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kQxF9-0003dc-Qk for submit@debbugs.gnu.org; Fri, 09 Oct 2020 14:35:52 -0400 Received: from eggs.gnu.org ([209.51.188.92]:57102) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kQxF4-0003dM-N9 for 43872-done@debbugs.gnu.org; Fri, 09 Oct 2020 14:35:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:49613) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kQxEz-0004Ax-DZ; Fri, 09 Oct 2020 14:35:41 -0400 Received: from ld1009q169-0682.bb.online.no ([88.95.2.177]:53404 helo=localhost) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1kQxEx-0004pf-Sm; Fri, 09 Oct 2020 14:35:41 -0400 From: Marius Bakke To: Helio Machado <0x2b3bfa0@gmail.com>, 43872-done@debbugs.gnu.org Subject: Re: bug#43872: Closing due to consistency issues In-Reply-To: References: Date: Fri, 09 Oct 2020 20:34:59 +0200 Message-ID: <87eem7fdt8.fsf@gnu.org> 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: 43872-done 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 Hi! Helio Machado <0x2b3bfa0@gmail.com> writes: > This patch was a big hack and breaks on every architecture but x86-64 > because the derivation hash changes when producing different binaries. I'm > leaving this for reference as it might be useful for a casual install, but > the proper solution probably involves a complete refactoring of the Guix Go > Build System. That is a very clever hack. :-) The reason it works is because network access is allowed for fixed-output derivations. So the Go build system is able to go online and download everything it needs, instead of relying on declared inputs. That is why different architectures produce different derivation hashes: those are the build outputs. The problem with this approach is that it is not deterministic. The next time someone runs the same build, one of the Go dependencies may have changed (i.e. a git tag has been overwritten, or a package declares a dependency on a branch instead of a tag, etc). Guix will detect if the output hash changes, but is unable reproduce the earlier state because it does not know what has changed. To properly package go-ethereum, you will need to declare each dependency as separate packages. See e.g. 'syncthing' for an example. Unfortunately there is no importer for Go yet, making it a rather tedious task. Since you don't seem to be afraid of hacking on Guix :-) consider writing an "importer" for Go so you could simply: guix import go -r github.com/ethereum/go-ethereum ...to create the necessary boilerplate. Thanks! --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl+ArVQACgkQoqBt8qM6 VPqrEAf/WeFN250sGAcjy9QGh8s1nHIfgAeqLPhz3lgdsscBfzcuzRp5nycqphXa 7vkPNWUfE2FrfPEgZDweD+9oJMpKDkGewbtskkLiBrXZj5sQcwROZUXKhM00y7Ci WEGAeEv4tZFzC2+g4QFqmEYd+SOM7EhUUy09RioA2aF7PTGPA+yRHfkbHMNJRwK+ cGxju8lIhEzX/NZ3Fy+qDcaU77oVn5EIDOcmIDn6aB7h+aeXb4ZufVuQ+TdJcgGE /6WJCqwsVF0e7yLrjixWnr2PqkFbV5xCW7nlEhTJxiheQijJZE7Zwond0Qgj4a1h GA5BVqfkCotaAwDFUglAvjPk9LOoPQ== =h9Md -----END PGP SIGNATURE----- --=-=-=--