From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id ew5CIG8m8GI8DwAAbAwnHQ (envelope-from ) for ; Sun, 07 Aug 2022 22:54:07 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id yNk5H28m8GJOWQAA9RJhRA (envelope-from ) for ; Sun, 07 Aug 2022 22:54:07 +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 1843810CEF for ; Sun, 7 Aug 2022 22:54:07 +0200 (CEST) Received: from localhost ([::1]:33672 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oKnHi-00083q-AG for larch@yhetil.org; Sun, 07 Aug 2022 16:54:06 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48970) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKnHV-00083Z-1U for guix-devel@gnu.org; Sun, 07 Aug 2022 16:53:53 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:60848) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKnHU-0003Pb-LS; Sun, 07 Aug 2022 16:53:52 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-Version:In-Reply-To:Date:References:Subject:To: From; bh=lTY5kVmEZBzATnnUHB1ywWCEhMXhMn+lvQc9knbExhc=; b=k9/cDj1R6HDyKWsVOjLO viVTXrYE3TM96DXSe6Y1zejZyd/CLuDjDi63nLaGf1lQgwNjexyOwDP5SoAvZPq/r0k3LWRExYZ1R uhH9q/lhc1lmbxs7p/P2BcU7jLo5tc1+WOjDkU0KM9xk7q3/x2rJ2p/Ev71TXGtBY+mGYTFjX5SMj hpvEbjZB6a3nvzm/CyU93b454zbPek/8gmAT6yashlsNc+EC2J/qWh3XfAaevfkfETK5OCOvd3WMO S3JwXdFwOkiMflEFx7H5hO/fH3Y6SJbx5dBvi6r/uRI8KQ93W+VQJP2XrRta3QXhxVf5FiHZfhaFH zhdiFPojWUEnUQ==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:53979 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oKnHU-0004xh-8p; Sun, 07 Aug 2022 16:53:52 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Konrad Hinsen Cc: Guix Devel Subject: Re: A real-life test of long-term reproducibility References: X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: =?utf-8?Q?D=C3=A9cadi?= 20 Thermidor an 230 de la =?utf-8?Q?R=C3=A9volution=2C?= jour de =?utf-8?Q?l'=C3=89cluse?= 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: Sun, 07 Aug 2022 22:53:49 +0200 In-Reply-To: (Konrad Hinsen's message of "Thu, 04 Aug 2022 10:43:57 +0200") Message-ID: <87iln3bwrm.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable 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=1659905647; 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: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=lTY5kVmEZBzATnnUHB1ywWCEhMXhMn+lvQc9knbExhc=; b=BoR1nl+9wL3XxM8uL4Q+KCLeMfzTFWdqOo2SLSFMvPW9sFbBtRer+EROC3qWWVmyy0v5n/ BZpSVs0nUmXw8F2qJA6Qwhi7KXZHxwrRIMdH9orVWLcfTh2RkoVmiBzLWsbsFihiJC2v1a 0jh4sUGNHto006iksNVYIbmjJyqzQmOLwu/JwcI6lRw7r54hZVqmMMoJ4tXc8dJAn47kyC xDC40rojRs6s7PJ2BuUYiCyUAHX19VwwVz1QhstN/RLBa3+TY8donvd2Nxj3899XpNYMvU t27cPp49dl9nYSeyDzoNdX7jbH/wC3q9fWwlrv/i8uu0ZrpSjt2OpMDJeKIfsg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1659905647; a=rsa-sha256; cv=none; b=Yri5lG5BPgT7OmL8+qL/OGR1yQvX1qGvO9bRfxjINT4QVBDMSqvbeeloNjhA6r3E3Me9l3 3c6iAxe+P1MUl1rIsOQpQZlutghaEhnruh+JoaiBGOaDPvN1+IvirGjUWAt9ry4zgP8G+x 5iYZITEgRjlgRQCYLMLy4Poo9F5eWpvaGQVobUAD+88kOLSSgEn+EZNny03dgqIAs0hSNy CqVlKPGhA7OU6F0Ws8RYAlaPYr2fMyX3Md8a4EtfWBaveMLcIguyQYQiA0Ra/npiWsX1XW 0oh3GEeWszXEH119k40wfVjKaSnTNZYYvwckiC9gs2SWQJPU4xAHymjXCWRCyw== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="k9/cDj1R"; dmarc=pass (policy=none) header.from=gnu.org; 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: -5.09 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gnu.org header.s=fencepost-gnu-org header.b="k9/cDj1R"; dmarc=pass (policy=none) header.from=gnu.org; 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: 1843810CEF X-Spam-Score: -5.09 X-Migadu-Scanner: scn1.migadu.com X-TUID: XpV1KHRiOXsd Hi Konrad! 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 the 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. :-) We can go back to 1.0.0, and presumably to 0.15.0, but anything older than this is unknown territory. > First attempt: > > $ guix time-machine --commit=3Df250a868d8c687df08559682fa68fb4ea2a1ea6= 9 -- build nmoldyn > Updating channel 'guix' from Git repository at 'https://git.savannah.g= nu.org/git/guix.git'... [...] > ice-9/boot-9.scm:1685:16: In procedure raise-exception: > error: %guix-register-program: unbound variable It=E2=80=99s a variable that used to exist in (guix config) but was removed= long ago (in ea0a06cee2ba05451f94714a4f913db02efbe92c, shortly before 0.15.0.) > I don't understand what is going wrong here, but it may be related to > the fact that the commit I am trying to go back to is older than "guix > time-machine". If that's the explanation, it would help if Guix showed > some clear error message instead of crashing. It could check whether the target commit is in the closure of the v0.15.0 commit, but then that would give special treatment to the existing commit history. Maybe that=E2=80=99s OK though? > Next I tried checking out the source code for commit > f250a868d8c687df08559682fa68fb4ea2a1ea69, and building it from > source. This is a bit tricky because 2018 Guix cannot be built in > today's Guix build environment. For example, today we have Guile 3, but > back then we had Guile 2.2. So I need to do "guix environment guix" in > an older Guix, before the Guile 3 transition, but later than the > introduction of time-machine. I picked one somewhat at random: > > $ guix time-machine --commit=3De2293cbbe0cd20ddeb932e6f5616565ab468c087 > -- environment =E2=80=93pure guix > > Then I did "bootstrap", "configure =E2=80=93localstatedir=3D/var", "make > check". The latter shows 15 failures, some of which look important: > > FAIL: tests/builders.scm > FAIL: tests/derivations.scm > FAIL: tests/packages.scm > FAIL: tests/guix-environment.sh > FAIL: tests/guix-daemon.sh We=E2=80=99d have to check what=E2=80=99s in =E2=80=98test-suite.log=E2=80= =99; it might as well be an environment issue more than a =E2=80=9Creal=E2=80=9D problem. > And indeed I cannot build much with my compiled guix: > > $ ./pre-inst-env guix build nmoldyn > > hangs after a while, running a binary called "test-lock" for hours. IIRC that was a bug in a Gnulib test (bundled in several GNU packages) that would hang on machines with maybe more than 4 cores. (See commit acc2dab7f2f50c9169d6388007c770878eae4a9c for example.) There might be hints on how to work around it in the mailing list archive=E2=80=A6 > Given the time lapse, I suppose there have been incompatible changes in > the build daemon, making the old Guix incompatible with the rather > recent build daemon running on my machine. But is there a way around > this, other than installing an old Guix in a fully isolated VM? > > And if installing the old Guix in a VM is the only solution, what would > be the best way to do that? I can't think of much else than starting > from another distribution (e.g. Debian) and following the installation > instructions. That's already a lot of work, but it's made worse by the > installation instructions being hidden inside the manual of that old > commit, which I cannot easily consult. 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 have = the right versions of dependencies, and it should be reachable with time-machine. I=E2=80=99d be curious to hear how it goes! Besides, I recently added =E2=80=98etc/time-travel-manifest.scm=E2=80=99 an= d added a corresponding jobset at (the jobset is not working well, but that=E2=80=99s because there are sever= al processes concurrently accessing the same cached checkout; we need a trick to work around that=E2=80=A6). I=E2=80=99d like to consolidate this = so we can make sure that traveling back in time (after 0.15.0 or 1.0.0) remains a possibility. Thanks, Ludo=E2=80=99.