From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp12.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id qDB0MHGd8GLs/gAAbAwnHQ (envelope-from ) for ; Mon, 08 Aug 2022 07:21:53 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp12.migadu.com with LMTPS id gL0tMHGd8GL2/gAAauVa8A (envelope-from ) for ; Mon, 08 Aug 2022 07:21:53 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 582C815EA0 for ; Mon, 8 Aug 2022 07:21:53 +0200 (CEST) Received: from localhost ([::1]:34346 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oKvD6-0007Wy-EY for larch@yhetil.org; Mon, 08 Aug 2022 01:21:52 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:47804) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKvCb-0007Vx-Bn for guix-devel@gnu.org; Mon, 08 Aug 2022 01:21:21 -0400 Received: from out1-smtp.messagingengine.com ([66.111.4.25]:47709) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKvCU-0003ah-9Q; Mon, 08 Aug 2022 01:21:21 -0400 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id E37D75C00F0; Mon, 8 Aug 2022 01:21:10 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Mon, 08 Aug 2022 01:21:10 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1659936070; x=1660022470; bh=COMHIUyo+pn9/J7Wo8XyG5QynNgI VTCiIYUCn+XNEis=; b=AChOJzn/NzZRWz00xP0ZXfe9oYekTF0pndSLo5Vbk3BK HjGUwaeYZno3IdpT2a/wxa2oDF8MNtJhy2bn2k0lcjAD7/pdQKfIbaG3oLctd6lT 5w09KAQfZpY42L8oi6za/psGg9X18HxTF/XN0wapkHVN50+l1dqqnG6u1JkiIAID a1UopW1rhFCA1zI9K2HiPShHR7VuVC4G2gadb3YQr9zYA60/k5ky+L9HOjOOaiW9 ZBYMIkTmLjQvXcr2P6/Ar5YHSp/Jhg1q1qcKniVMMgzY4qQPRuO6LD1u16vVjzCJ YLgBCl3MWCeC6IZXEYto4sOHpa0NfgYrJtcifihvOA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrvdefjedgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhephffvvefufhffjgfkfgggtgesmhdtreertderjeenucfhrhhomhepvfhimhho thhhhicuufgrmhhplhgvuceoshgrmhhplhgvthesnhhghihrohdrtghomheqnecuggftrf grthhtvghrnhepledttefhffffveeuvdfgtdffueekgeeggfehgfdtveehgfeiteeggedv udetjefgnecuffhomhgrihhnpehgnhhurdhorhhgpdhsphgvvgguphgrrhhtnhgvrhdrug gvpdhnghihrhhordgtohhmnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehm rghilhhfrhhomhepshgrmhhplhgvthesnhhghihrohdrtghomh X-ME-Proxy: Feedback-ID: i4721425c:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 8 Aug 2022 01:21:10 -0400 (EDT) From: Timothy Sample To: Konrad Hinsen Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , Guix Devel Subject: Re: A real-life test of long-term reproducibility References: <87iln3bwrm.fsf@gnu.org> Date: Sun, 07 Aug 2022 23:21:09 -0600 In-Reply-To: <87iln3bwrm.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Sun, 07 Aug 2022 22:53:49 +0200") Message-ID: <878rnzwbsq.fsf@ngyro.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Received-SPF: pass client-ip=66.111.4.25; envelope-from=samplet@ngyro.com; helo=out1-smtp.messagingengine.com X-Spam_score_int: -25 X-Spam_score: -2.6 X-Spam_bar: -- X-Spam_report: (-2.6 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: "Guix-devel" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1659936113; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=COMHIUyo+pn9/J7Wo8XyG5QynNgIVTCiIYUCn+XNEis=; b=jdj5wPhmnQodozFKxIEZjEVB4MYtsm4COVkGBWX10QTqdyd9/3v2DfvpW065gcE01tEnPb 1NiNYiIaAbLsodsJNqJecVSZWo6WfcRM3rBUrlLmt0h2Y/3b90a4idKdJb2tVN1+kHflNG 3e/PhEug7P2NWNO6/Jg2DHoNqLUDlYH3nKbZ4Oc+U5aKOu/Oar+g17zisSwUxmgoAoAO+B vfVF//uFxV8UucIYbNWFFbq/MVND1bICMFejRHndoJSYLIdhW7CmzykFTUnm6C8r1lf0h5 Fksfrspsacw3l5nrF58k+h27wogES9OhhU7+n3SITUNkfE/V7TJ5HPesf1Z0/A== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1659936113; a=rsa-sha256; cv=none; b=r40gFbO2m9Pu2hQSJOrs27XmihTvEkC7gS60TnFieeYST2dY0m6HP+az0Tc3ShTyjRkxRe 1NLiaX8E0dfot0XpcTo2mPQh6wC514Avcehz6Iq664m8dvrFbSpizDApPcWY6mf66ioJhI ehiKcj0YaNEQHIUY9rXjwpcTS3QpStTh00ap7mh0EiQ2sQ//JkgXz7aBgSURQ6MsyjYB3m dmrxtgQ47ZqGdGl7TF+UJonNzq1fWKmMuxOT1kHTD7XmA4y0gKWrWiXeGBwyzpo0FQL/Ng saA0xfKGFXGeXJzITOsQcSuyu3ZMnX0frPsr9tfTwJJbDP5sx6nZEElCN/+1MA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b="AChOJzn/"; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 1.21 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=messagingengine.com header.s=fm1 header.b="AChOJzn/"; dmarc=none; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 582C815EA0 X-Spam-Score: 1.21 X-Migadu-Scanner: scn1.migadu.com X-TUID: 3B0LmYdM5uYl --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Konrad, Ludovic Court=C3=A8s writes: > Konrad Hinsen skribis: > >> The package I want to rebuild and use is "nmoldyn" from Guix commit >> f250a868d8c687df08559682fa68fb4ea2a1ea69. That's the commit referenced >> in my notes, obtained via "guix describe" in early 2018. I am pretty >> sure it worked fine back then. > > That=E2=80=99s a commit from January 2018, which is a few months before t= he > release of 0.15.0, the first release with proper =E2=80=98guix pull=E2=80= =99 support: > > https://guix.gnu.org/en/blog/2018/gnu-guix-and-guixsd-0.15.0-released/ > > In other words: warranty void. :-) Agreed. That=E2=80=99s probably too early in Guix=E2=80=99s history to get= good results. Keep in mind that the Software Heritage crawlers only started indexing Guix packages in 2019. That being said, I was too curious to leave this alone, so I tried my hand at building that package from that commit. > [...] > Again, none of this should be necessary as long as the target commit is > after 0.15.0 (or 1.0.0). > > That said, it may be possible to build that Jan. 2018 Guix using an > environment created from Guix 0.15.0 or 1.0.0; it=E2=80=99s likely to hav= e the > right versions of dependencies, and it should be reachable with > time-machine. > > I=E2=80=99d be curious to hear how it goes! It turns out it=E2=80=99s pretty easy, apart from having to boil the ocean. Here=E2=80=99s what I did. I decided to try the easiest thing first, which is checkout f250a86 and try to build it with an environment from modern Guix. We still have Guile 2.2 packages, after all. Here=E2=80=99s the environment that I used: $ guix shell --pure guile@2.2 guile2.2-gnutls guile2.2-gcrypt \ gcc-toolchain coreutils bash autoconf automake guile2.2-git \ sqlite bzip2 gettext libtool pkg-config grep sed patch \ diffutils m4 findutils tar xz gzip libgcrypt gawk make\ texinfo help2man >From there, I was able to build Guix normally. Some of those packages were guesses, and some were added to placate =E2=80=9Cconfigure=E2=80=9D, I= =E2=80=99m not sure that all of them are necessary, but they are sufficient. After that, I tried $ ./pre-inst-env guix build nmoldyn It hummed along for a long time, and then my desktop crashed due to the kernel=E2=80=99s out-of-memory process killer. For whatever reason, and ev= en with 16G of RAM and 16G of swap, the Python 3 build gets smitten by the OOM killer. It happens when running the test suite, so I disabled it. (From what I read, the test suite is used to generate profiles to train the optimizer, so this is probably a bad idea. I decided to forge ahead instead of worry about this too much.) Next, it couldn=E2=80=99t find the source code for ImageMagick 6.9.9-30. It took a minute, but I tracked it down hidden in the following RPM: http://mirror.speedpartner.de/remi-archive/SRPMS/ImageMagick6-6.9.9.30-= 1.remi.src.rpm After extracting the tarball and adding it to the store with =E2=80=9Cguix=C2=A0download=E2=80=9D, the build continued. There was one other source code issue, which was Mesa 17.2.1. It was easy to solve, as they just moved it to the =E2=80=9Colder-versions=E2=80= =9D directory on their server. The only other two issues were test failures due to certificate expiry. It happened for Python 2 and NSS. I remember there was a discussion about this problem in general recently, but I couldn=E2=80=99t track it dow= n. For Python 2, I disabled the offending tests, and for NSS, I just disabled the whole test suite. After that, I got: @ build-succeeded /gnu/store/40x598cvpp16m87z52sj98c62dfbmmka-nmoldyn-3= .0.11.drv - /gnu/store/khf2pf29vfq6b3dcca9p9mvz387jvdl7-nmoldyn-3.0.11 I=E2=80=99m honestly shocked that it worked so well. I wish I had a better= way to keep track of where the sources came from. For example, I=E2=80=99m cur= ious how many came from the build farm or other fallback options. Overall, I give Guix two thumbs up! Other than the Python 3 optimizer bit (which might be solvable), nothing substantive had to be changed to make this happen. For best practices, I do have one suggestion. The Guix package collection is not uniformly reproducible or archived. The best thing you can do to ensure the long-term prospects of your projects is to actually check how much of the source code is archived and how many of the builds are reproducible. There is no turn-key solution for this (though maybe there should be), but you can check the source code against the Preservation of Guix database [1], and you can check reproducibility using the Guix Data Service or with =E2=80=9Cguix check=E2= =80=9D. Ideally everything would be archived and reproducible, but it=E2=80=99s a w= ork in progress. By checking, you might be able to fix some of the issues now while it=E2=80=99s easy instead of in five or ten years when it=E2=80= =99s impossible! Thanks Konrad for the interesting experiment. While testing this out, I came to really appreciate how hackable Guix is. Even if I couldn=E2=80=99t= find Mesa 17.2.1, say, I could proceed with a similar version or try to build it with Git. It=E2=80=99s not ideal to have to make changes, but it=E2=80= =99s nice to know that Guix fails gracefully. In case it=E2=80=99s useful, I=E2=80=99ve attached the changes I made. -- Tim [1] It=E2=80=99s at , and yes, I kno= w I ought to update it! :) --=-=-= Content-Type: text/x-patch Content-Disposition: attachment; filename=patch.diff diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index c42b4a00cb..83629d30e4 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -223,7 +223,10 @@ also known as DXTn or DXTC) for Mesa.") (source (origin (method url-fetch) - (uri (list (string-append "https://mesa.freedesktop.org/archive/" + (uri (list (string-append "https://archive.mesa3d.org/" + "older-versions/17.x/" + "mesa-" version ".tar.xz") + (string-append "https://mesa.freedesktop.org/archive/" "mesa-" version ".tar.xz") (string-append "ftp://ftp.freedesktop.org/pub/mesa/" "mesa-" version ".tar.xz") diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm index a31e93d499..da9317cb42 100644 --- a/gnu/packages/gnuzilla.scm +++ b/gnu/packages/gnuzilla.scm @@ -336,7 +336,8 @@ in the Mozilla clients.") (setenv "DOMSUF" "(none)") (setenv "USE_IP" "TRUE") (setenv "IP_ADDRESS" "127.0.0.1") - (zero? (system* "./nss/tests/all.sh")))) + ;;(zero? (system* "./nss/tests/all.sh")) + #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm index 29fa2809ab..f11f405331 100644 --- a/gnu/packages/python.scm +++ b/gnu/packages/python.scm @@ -162,7 +162,10 @@ "Lib/test/test_import.py" "Lib/test/test_shutil.py" "Lib/test/test_socket.py" - "Lib/test/test_subprocess.py")) + "Lib/test/test_subprocess.py" + "Lib/test/test_httplib.py" + "Lib/test/test_ssl.py" + "Lib/test/test_urllib2_localnet.py")) #t)))) (outputs '("out" "tk")) ;tkinter; adds 50 MiB to the closure @@ -355,7 +358,12 @@ data types.") "Lib/test/test_fcntl.py")) #t)))) (arguments (substitute-keyword-arguments (package-arguments python-2) - ((#:tests? _) #t))) + ((#:tests? _) #t) + ((#:phases phases) + `(modify-phases ,phases + (add-before 'build 'set-extratestopts + (lambda _ + (setenv "EXTRATESTOPTS" "--help"))))))) (native-search-paths (list (search-path-specification (variable "PYTHONPATH") --=-=-=--