From unknown Sat Aug 16 10:45:19 2025 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.509 (Entity 5.509) Content-Type: text/plain; charset=utf-8 From: bug#56441 <56441@debbugs.gnu.org> To: bug#56441 <56441@debbugs.gnu.org> Subject: Status: Time travel doesn't resist profile format changes Reply-To: bug#56441 <56441@debbugs.gnu.org> Date: Sat, 16 Aug 2025 17:45:19 +0000 retitle 56441 Time travel doesn't resist profile format changes reassign 56441 guix submitter 56441 zimoun severity 56441 important thanks From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 12:42:40 2022 Received: (at submit) by debbugs.gnu.org; 7 Jul 2022 16:42:40 +0000 Received: from localhost ([127.0.0.1]:57730 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9UaO-00023r-A2 for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:42:40 -0400 Received: from lists.gnu.org ([209.51.188.17]:45186) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9UaM-00023k-Oa for submit@debbugs.gnu.org; Thu, 07 Jul 2022 12:42:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:52422) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9UaK-0004OJ-Rx for bug-guix@gnu.org; Thu, 07 Jul 2022 12:42:38 -0400 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]:46696) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1o9UaJ-0007uU-3z for bug-guix@gnu.org; Thu, 07 Jul 2022 12:42:36 -0400 Received: by mail-wr1-x42c.google.com with SMTP id v16so15680743wrd.13 for ; Thu, 07 Jul 2022 09:42:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:subject:date:message-id:mime-version; bh=jhBSZKkJhNZnz07c7dW8mwo4VOvgvxGnhFT+iFgMqdg=; b=NJWGy2s76cgeX5EkpQUHFmTDlgEvBb/AJ8a2rETU8+OgPUuZRmd/j+Q71NQCkd+UI2 EPLEDBGFQQgBzeZZumDizVXLhKx2bscIKIT/v2mlySw1UkIoGL5mZNuPKgVDO9mJF53z ziI/706v2yIHt2s+YW2l0xkKLyFGvEtjrMvIB/uxRiKSsMb+VdH2cDFdlPMbERdsu3hz 3NmPw5rRczrFsx8iZCTaG/6/fJhfunHPONN58CMEMeYsvUEXHT9Y3QCb7Vb8gu0/3zck x74jy59GWXuOCna1fKb6OykcLw1Q5KpcGFYeYKD0uD3c87mLdWPL39RvfkYozRCbpR67 Fkrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:mime-version; bh=jhBSZKkJhNZnz07c7dW8mwo4VOvgvxGnhFT+iFgMqdg=; b=3Siy4CwO4GhUQoqXYSIYLoxsEXKk4VqnjjLzKJtLE02xfnIG+r+RAQ/4Z2ZYVb62Th QnS+Tfp4VXT8YJSjXroiqZWfQ26tfKKdNOtSIsQktcc7LhAqwR+xUWAWk3mzfkDE5OyU GCpqUyZ1nIVp7g8Hn/1KOiuZGOMm3RxhTy/SRBrL8wxG6Ex514Yb59fvqYt+XV9Gk0Pd CFMlEMFg82qRfLgNkUnopVCB5GtixiSx/g6j+Lm3KF+jxsbp8e9uR8c2+dDOsGoviHYE 7EhU2o4v6iYwP+xtf5C+14g7yDsKlbVXJAEZqBIsSPu5tlkjBfV1mMBJenYebc11EvHZ /MPA== X-Gm-Message-State: AJIora8nhS3oetVfi0YAHrLiJwtpcAQktb5bC8IR9JZoNb8wyJgVBJP/ hof3Dzae4eqcTHmhA+0JcprkF7BDnrxlz/ta X-Google-Smtp-Source: AGRyM1veG2QwccmbiDJMHwZtna7J20KrzYG7UJBgN2qnF7iAvfI7ySNqB49AQ2Ejdo21Y+hv9Rqo4w== X-Received: by 2002:adf:dd0d:0:b0:21d:666b:298e with SMTP id a13-20020adfdd0d000000b0021d666b298emr25010611wrm.412.1657212152729; Thu, 07 Jul 2022 09:42:32 -0700 (PDT) Received: from lili ([2a01:e0a:59b:9120:65d2:2476:f637:db1e]) by smtp.gmail.com with ESMTPSA id q20-20020a7bce94000000b0039c4b518df4sm36101763wmj.5.2022.07.07.09.42.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 07 Jul 2022 09:42:32 -0700 (PDT) From: zimoun To: bug-guix@gnu.org Subject: guix time-machine broken by profiles speed-up X-Debbugs-CC: Ricardo Wurmus , Ludovic =?utf-8?Q?Court?= =?utf-8?Q?=C3=A8s?= Date: Thu, 07 Jul 2022 18:42:28 +0200 Message-ID: <867d4oq3gr.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=zimon.toutoune@gmail.com; helo=mail-wr1-x42c.google.com 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_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) 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 (--) Hi, Bug#55499 [1] is fixed by 4ff12d1de7cd617b791996ee7ca1240660b4c20e. However, because the manifest version is going from 3 to 4 with new fields, the new Guix cannot builds the old Guix. Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e is not able to go to its parent 9b8c442b254b82196fe2492142b3c3bbbd891a1b. --8<---------------cut here---------------start------------->8--- $ git rev-parse 4ff12d1de7^ 9b8c442b254b82196fe2492142b3c3bbbd891a1b $ guix time-machine --commit=4ff12d1de7 -- time-machine --commit=9b8c442b25 -- help Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.org/git/guix.git'... Computing Guix derivation for 'x86_64-linux'... \ The following derivation will be built: /gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv building package cache... |builder for `/gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv' failed to produce output path `/gnu/store/axqgrls563slnp76x60dqlv7sdwcm2ly-guix-package-cache' build of /gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv failed View build log at '/var/log/guix/drvs/19/nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv.gz'. cannot build derivation `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv': 1 dependencies couldn't be built guix time-machine: error: build of `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv' failed --8<---------------cut here---------------end--------------->8--- 1: Cheers, simon From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 13:43:18 2022 Received: (at 56441) by debbugs.gnu.org; 7 Jul 2022 17:43:18 +0000 Received: from localhost ([127.0.0.1]:57783 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9VX4-0003bp-HP for submit@debbugs.gnu.org; Thu, 07 Jul 2022 13:43:18 -0400 Received: from sender4-of-o50.zoho.com ([136.143.188.50]:21062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9VX2-0003bg-5W for 56441@debbugs.gnu.org; Thu, 07 Jul 2022 13:43:16 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1657215786; cv=none; d=zohomail.com; s=zohoarc; b=gwPEzDOUuHsyjLUfM8CY5fq+iYlN4aKrjOltaEolttsu9XHX0S9l6/hxamO+SYDlPnc3+DXSpKrg8OXKc4N7Ci16B1MulDrU6NKUHDBGeNc8Y1n3o3duZQ2jMQhLNxTaN62+/CydibDZ0Axc7gOQ6xDYnsl3P9oJg/hh0zeJkoQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657215786; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=OjhJnCrIAusEyxvfbn5i+ovho0xWnK/UwTKHacS9Rxs=; b=jUrqbksrnI62N2fQOAxEeE9TFr76fsZGiUd7E3TSdCFMfQ+aDhAE/AN8w0fA/UarzOtULQTsuikk5cSq3zxQEXhlWBFHlXyVutDZjsiL770mDUU/G6Kh9Uz5GBi4noDE1RNEbPQWEdDaqlhUGB4WZHEKavGztM5YdXyphuG5UMY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1657215786; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To; bh=OjhJnCrIAusEyxvfbn5i+ovho0xWnK/UwTKHacS9Rxs=; b=g5p1slDH4ttkyHLbvRz+ILc5WXQVvcLLWF6F3xk84ow4mjDEqEW+4UutQIgynLq+ Njjsea+0DhhcB8xq5yTxl5Upv5e13rsGfKcoaskRcS+Tm5GZHcSJyqmitaZ2astI7Ta 13yiH3jbnusdDp8Y0Di3PqVL1mF1EZMaoRRyBXAs= Received: from localhost (209-110-142-46.pool.kielnet.net [46.142.110.209]) by mx.zohomail.com with SMTPS id 1657215781009731.4169955453525; Thu, 7 Jul 2022 10:43:01 -0700 (PDT) References: <867d4oq3gr.fsf@gmail.com> User-agent: mu4e 1.6.11; emacs 28.1 From: Ricardo Wurmus To: zimoun Subject: Re: bug#56441: guix time-machine broken by profiles speed-up Date: Thu, 07 Jul 2022 19:29:58 +0200 In-reply-to: <867d4oq3gr.fsf@gmail.com> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Message-ID: <87wncozun2.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56441 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , 56441@debbugs.gnu.org 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 (-) zimoun writes: > Bug#55499 [1] is fixed by 4ff12d1de7cd617b791996ee7ca1240660b4c20e. > However, because the manifest version is going from 3 to 4 with new > fields, the new Guix cannot builds the old Guix. > > Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e is not able to go to its > parent 9b8c442b254b82196fe2492142b3c3bbbd891a1b. > > $ git rev-parse 4ff12d1de7^ > 9b8c442b254b82196fe2492142b3c3bbbd891a1b > > $ guix time-machine --commit=3D4ff12d1de7 -- time-machine --commit=3D9b8c= 442b25 -- help > Updating channel 'guix' from Git repository at 'https://git.savannah.gnu.= org/git/guix.git'... > Computing Guix derivation for 'x86_64-linux'... \ > The following derivation will be built: > /gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv > > building package cache... > |builder for `/gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-ca= che.drv' failed to produce output path `/gnu/store/axqgrls563slnp76x60dqlv7= sdwcm2ly-guix-package-cache' > build of /gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.d= rv failed > View build log at '/var/log/guix/drvs/19/nk2x26s0dp68r7d36ifbg0ck0q3xps-g= uix-package-cache.drv.gz'. > cannot build derivation `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-prof= ile.drv': 1 dependencies couldn't be built > guix time-machine: error: build of `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryq= v4m3ds-profile.drv' failed IIUC the problem here is that PACKAGE-CACHE-FILE, a profile hook running inside an inferior (=3D with an older Guix), is operating on a manifest that uses the new version 4 format. That manifest was built with the *current* version of Guix that understands the version 4 format. PACKAGE-CACHE-FILE uses GEXP->DERIVATION-IN-INFERIOR and the inferior is a PROFILE that=E2=80=99s made from a given MANIFEST value. That PROFILE is *not* built inside the inferior, so it doesn=E2=80=99t use the old manifest format. The cache generation is happening in /gnu/store/17v5781w8kl1snp826jl6z40z5lbbw1y-inferior-script.scm.drv, which = =E2=80=94 as the name indicates =E2=80=94 is run inside the inferior, i.e. the older Guix. --=20 Ricardo From debbugs-submit-bounces@debbugs.gnu.org Thu Jul 07 14:00:20 2022 Received: (at 56441) by debbugs.gnu.org; 7 Jul 2022 18:00:20 +0000 Received: from localhost ([127.0.0.1]:57805 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9VnY-0004MI-7I for submit@debbugs.gnu.org; Thu, 07 Jul 2022 14:00:20 -0400 Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21101) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9VnU-0004IB-Fv for 56441@debbugs.gnu.org; Thu, 07 Jul 2022 14:00:17 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1657216802; cv=none; d=zohomail.com; s=zohoarc; b=cpXxNCnSUMg9eYAZ9r6KYvxaZjtY48+wyq1RRqppf2f5gt5AxnpiWPslMF5Pk6gwXem/IuDX658755uFZG12rFy1qdzegqBLCc6IHGAhptBVC2LdOjfrQoW/SOzP7jqTfWD7fjMzZ471BaRLvpLEQdUp6+hNf1zteqMtSZVxNKk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657216802; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=o9afiHWjVfPPWNtKh5ka9zMnrXh5V1PDC2RHHQYMf5A=; b=Ql/rAguWlL8AfGon/ADV8RuA+yaoG7nZU9vAfByL7e8BiXjkjSKmmsvWMVCY6u5uYRY1U08W0IP5OU7b6h4aoTeVskffc+4ENdkoEMaOLk0fJHhCX13/HEGR/7KppKEIJn0uQBdLEAdPc4oYy7CCtklFT3VoJ/aBdzu6lAoBFVM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1657216802; s=zoho; d=elephly.net; i=rekado@elephly.net; h=References:From:From:To:To:Cc:Cc:Subject:Subject:Date:Date:In-reply-to:Message-ID:MIME-Version:Content-Type:Content-Transfer-Encoding:Message-Id:Reply-To; bh=o9afiHWjVfPPWNtKh5ka9zMnrXh5V1PDC2RHHQYMf5A=; b=AuX8cWnkwO+oqMX8ycfth0iC8qzjqnBNC9X9ZKY/Vmf1bR8Lp+cmnQg8OeAgmPwF ZR6UAwqOpzaioFsQi+6qG5RZdO9npA68DVK1LCucobJkG44Hx9/zIR7x0fDNCUdyD0x saA1mxYRw9u8d0/+embiL9JP1BlAdRdkpCyqdjVg= Received: from localhost (209-110-142-46.pool.kielnet.net [46.142.110.209]) by mx.zohomail.com with SMTPS id 1657216800247516.1385741564662; Thu, 7 Jul 2022 11:00:00 -0700 (PDT) References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> User-agent: mu4e 1.6.11; emacs 28.1 From: Ricardo Wurmus To: zimoun Subject: Re: bug#56441: guix time-machine broken by profiles speed-up Date: Thu, 07 Jul 2022 19:52:52 +0200 In-reply-to: <87wncozun2.fsf@elephly.net> X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Message-ID: <87sfncztuq.fsf@elephly.net> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-ZohoMailClient: External X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56441 Cc: Ludovic =?utf-8?Q?Court=C3=A8s?= , 56441@debbugs.gnu.org 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 (-) Ricardo Wurmus writes: > zimoun writes: > >> Bug#55499 [1] is fixed by 4ff12d1de7cd617b791996ee7ca1240660b4c20e. >> However, because the manifest version is going from 3 to 4 with new >> fields, the new Guix cannot builds the old Guix. >> >> Commit 4ff12d1de7cd617b791996ee7ca1240660b4c20e is not able to go to its >> parent 9b8c442b254b82196fe2492142b3c3bbbd891a1b. >> >> $ git rev-parse 4ff12d1de7^ >> 9b8c442b254b82196fe2492142b3c3bbbd891a1b >> >> $ guix time-machine --commit=3D4ff12d1de7 -- time-machine --commit=3D9b8= c442b25 -- help >> Updating channel 'guix' from Git repository at 'https://git.savannah.gnu= .org/git/guix.git'... >> Computing Guix derivation for 'x86_64-linux'... \ >> The following derivation will be built: >> /gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-profile.drv >> >> building package cache... >> |builder for >> `/gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.drv' >> failed to produce output path >> `/gnu/store/axqgrls563slnp76x60dqlv7sdwcm2ly-guix-package-cache' >> build of /gnu/store/19nk2x26s0dp68r7d36ifbg0ck0q3xps-guix-package-cache.= drv failed >> View build log at '/var/log/guix/drvs/19/nk2x26s0dp68r7d36ifbg0ck0q3xps-= guix-package-cache.drv.gz'. >> cannot build derivation `/gnu/store/r5qk23fibxn5ryd2k7b8qkbryqv4m3ds-pro= file.drv': 1 dependencies couldn't be built >> guix time-machine: error: build of `/gnu/store/r5qk23fibxn5ryd2k7b8qkbry= qv4m3ds-profile.drv' failed > > IIUC the problem here is that PACKAGE-CACHE-FILE, a profile hook running > inside an inferior (=3D with an older Guix), is operating on a manifest > that uses the new version 4 format. That manifest was built with the > *current* version of Guix that understands the version 4 format. > > PACKAGE-CACHE-FILE uses GEXP->DERIVATION-IN-INFERIOR and the inferior is > a PROFILE that=E2=80=99s made from a given MANIFEST value. That PROFILE = is > *not* built inside the inferior, so it doesn=E2=80=99t use the old manife= st > format. > > The cache generation is happening in > /gnu/store/17v5781w8kl1snp826jl6z40z5lbbw1y-inferior-script.scm.drv, whic= h =E2=80=94 as the name indicates =E2=80=94 is > run inside the inferior, i.e. the older Guix. It=E2=80=99s worse than that: an older Guix living in a new profile (i.e a profile with a version 4 manifest) cannot describe itself, because it cannot read the manifest. I took the same profile that was generated by the time machine and contains the old Guix. Here=E2=80=99s the manifest: --8<---------------cut here---------------start------------->8--- $ head /gnu/store/mwbgfyl0zzipyac1lbgss2gcji67fp4s-profile/manifest ;; This file was automatically generated and is for internal use only. ;; It cannot be passed to the '--manifest' option. ;; Run 'guix package --export-manifest' if you want to export a file ;; suitable for '--manifest'. (manifest (version 4) (packages (("guix" "9b8c442" --8<---------------cut here---------------end--------------->8--- And then: --8<---------------cut here---------------start------------->8--- $ /gnu/store/mwbgfyl0zzipyac1lbgss2gcji67fp4s-profile/bin/guix describe guix describe: error: unsupported manifest format --8<---------------cut here---------------end--------------->8--- This old Guix lives in a new profile. We must prevent this. But how? How about this: Build Guix with only the 'guix channel (no any other custom channels allowed), and then build the channel=E2=80=99s profile (with all requested channels) inside an inferior of that plain Guix. Since the inferior Guix can only build profiles that it supports the resulting *profile* will be compatible with the same Guix (and any additional channels). --=20 Ricardo From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 04:52:59 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 08:52:59 +0000 Received: from localhost ([127.0.0.1]:58765 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jjO-0000oH-OS for submit@debbugs.gnu.org; Fri, 08 Jul 2022 04:52:59 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45666) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jjM-0000no-B7 for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 04:52:57 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40400) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jjD-0003W1-FX; Fri, 08 Jul 2022 04:52:49 -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=g7JK0kCdFrhIT6q910qcxTerQzT7V74GTOk2Xdq/KAY=; b=cOD2ba2HBAY7lOhWg6Iv U4eJ207aWVfuj0m8IUHWsK4an8+0yps+RdciMYdizyXoLmknoiC0lle1XuOPSPnA6P4hgCzJmtSid NJkDv7Omyp+VZjHnOyA21NAC8LukGvVt5gi+pO9eLh26nf1ubf+QYRwSwyv+7IfXc0kdmi9K2iEbO K4mABNVHOs3whP7NnuaBxLgVBhRmtTGD00nHv7SUuiO/9pY1a4D5Ovnu55s0wBiuDt3t/ANpp3W6V AJVDqBJ23utYtOl5n3TfbMTzyMKuRQf8Sd3hmLsO43ifeB12XIz+rVQg+d9ZTRLGc4SN8dR6slAO4 o1UCFTe7ixz9cg==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=46894 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jjB-0004u5-KJ; Fri, 08 Jul 2022 04:52:46 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Ricardo Wurmus Subject: Re: bug#56441: guix time-machine broken by profiles speed-up References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> <87sfncztuq.fsf@elephly.net> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: =?utf-8?Q?D=C3=A9cadi?= 20 Messidor an 230 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Parc 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: Fri, 08 Jul 2022 10:52:43 +0200 In-Reply-To: <87sfncztuq.fsf@elephly.net> (Ricardo Wurmus's message of "Thu, 07 Jul 2022 19:52:52 +0200") Message-ID: <87fsjcx9yc.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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441 Cc: 56441@debbugs.gnu.org, zimoun 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, Ricardo Wurmus skribis: > It=E2=80=99s worse than that: an older Guix living in a new profile (i.e a > profile with a version 4 manifest) cannot describe itself, because it > cannot read the manifest. Argh. [...] > This old Guix lives in a new profile. We must prevent this. But how? > > How about this: > > Build Guix with only the 'guix channel (no any other custom channels > allowed), and then build the channel=E2=80=99s profile (with all requested > channels) inside an inferior of that plain Guix. Since the inferior > Guix can only build profiles that it supports the resulting *profile* > will be compatible with the same Guix (and any additional channels). Another option (thinking out loud): =E2=80=A2 in =E2=80=98package-cache-file=E2=80=99, unconditionally genera= te a v3 profile (we could add a =E2=80=98version=E2=80=99 field to etc.); =E2=80=A2 likewise in =E2=80=98channel-instances->derivation=E2=80=99. Problem: it doesn=E2=80=99t address the case where you install the =E2=80= =98guix=E2=80=99 package in a regular profile (I think?). Other option: run the whole =E2=80=98profile-derivation=E2=80=99 call of =E2=80=98channel-instances->derivation=E2=80=99 in the inferior, instead of= just =E2=80=98package-cache-file=E2=80=99. Needs more thought=E2=80=A6 Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 04:53:24 2022 Received: (at control) by debbugs.gnu.org; 8 Jul 2022 08:53:24 +0000 Received: from localhost ([127.0.0.1]:58770 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jjo-0000q8-5o for submit@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45734) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jjm-0000pb-21 for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40402) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jjg-0003ZQ-P3 for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:16 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:Subject:From:To:Date:in-reply-to: references; bh=zuOmtlLHHap7GIviUWGk6z8FhpGamqfHjH2ZxITYTCo=; b=kqAHuBKxsS4caA okJDyA0cOipnDroc9nfDEgDVJ+xc0BtGz7a0q9UAbBDTu/cnPgRFthRHGAxOkqCy3zJLa6eUSCyUe YROo5m1R21S4fVP1JSb5DRAvYddx2tqmxHkucajpHZXix6ng6AfD88WdNVTI32cJliUKcSJZeSAp3 STIsPg0/ygHiQpnb9TVY2CPgFkjFve7aAArwUuZnTP0//RLTqx/5G+lRwWLGvfnGQBwBUD8GUuWur 51By4OGHCA0IrTqnngZkM8jD9aoSQgP/CuZWomMDHrIy4GuiFY2Q+c+WaWAcx4GDVKJTc6sinNc++ loP0ihCy3a5HE0BjwUgg==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=39080 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jjg-0004xQ-Be for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:16 -0400 Date: Fri, 08 Jul 2022 10:53:15 +0200 Message-Id: <87edywx9xg.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #56441 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control 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 (---) severity 56441 important quit From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 04:53:51 2022 Received: (at control) by debbugs.gnu.org; 8 Jul 2022 08:53:52 +0000 Received: from localhost ([127.0.0.1]:58779 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jkF-0000rR-O0 for submit@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:51 -0400 Received: from eggs.gnu.org ([209.51.188.92]:45756) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9jkE-0000r6-FR for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:50 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:40408) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jk9-0003at-5Z for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:45 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org; s=fencepost-gnu-org; h=MIME-version:Subject:From:To:Date:in-reply-to: references; bh=0y90r6upkCd7qt5Ue7oQiKv3RYKbNrtoXiCWsmLQBoQ=; b=CwRGLJITqRx721 oJM6rVsKf/9h3XwDa6dE2h+lCdVtY8k0bQRTthaemnkSz6L/ubFrwi9t94jLCcKCokn8B6qZoLmeo OQ1d+WndyE89CW30KH5J8+reZv2HP8ZPMmAgisgjyyXq+Rezsav24azWi7N5E04pAkqIsD+ds80Ol CUMlItzZj7H9Lra6fJmZTU+ObTmJIiIsep17XgrsIXZlSuST2KYKkDf5SyT5j/liluI+a925IXRQL mH2FUZx/YW+GpZabCynpY0n2iO6tGvtiDzypKD3T0SCD8deczH6PADPEQ8EOKN2FOeGTDCD0LVQlj UIdjQhdQ4psUR/Lke3Mw==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=50916 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9jk8-0004xw-N3 for control@debbugs.gnu.org; Fri, 08 Jul 2022 04:53:44 -0400 Date: Fri, 08 Jul 2022 10:53:43 +0200 Message-Id: <87czegx9wo.fsf@gnu.org> To: control@debbugs.gnu.org From: =?utf-8?Q?Ludovic_Court=C3=A8s?= Subject: control message for bug #56441 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control 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 (---) retitle 56441 Time travel doesn't resist profile format changes quit From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 06:36:48 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 10:36:48 +0000 Received: from localhost ([127.0.0.1]:58929 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9lLr-00085e-Fx for submit@debbugs.gnu.org; Fri, 08 Jul 2022 06:36:48 -0400 Received: from eggs.gnu.org ([209.51.188.92]:39968) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9lLp-00085F-3N for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 06:36:45 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:52984) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9lLj-0000qG-KS; Fri, 08 Jul 2022 06:36:39 -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=yeY5En7qp2r0sYiE2RHW5mFwQSSaS6jXRA99DhxqHA8=; b=fuquK8nwCZjM+0I8cPv9 +5buKGyFFjWlDzuMyp6oEOb+Oefkg3yUoGq4ZdLdcApcTZm6PnVyJJ/RyBhPzzSPgUmFRw32MKabH CLBCh1/hmzULL5xNFM9nT/dXdPn9FGH4ZEsLs7M6MbfzRFXGj3cqjzsabmf06ry31wbm/11Vw0sII mMP6IARbOTxJvNeOD1uDrju+qKR1g2+4XnRl0Se73/9Hhr0/SIhc+F5mGl9ykDVyz4B5s5ZOHWloz D0r8dVjYoO4SoIVEdBVcq1OcmPSnwRjttq4236n4Ic6EeW830YquHJJBcvPOSFhCjVYQp6wKfxIl/ zMrwZBnC0K7q9g==; Received: from [2001:660:6102:320:e120:2c8f:8909:cdfe] (port=58168 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9lLj-00017O-4K; Fri, 08 Jul 2022 06:36:39 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Ricardo Wurmus Subject: Re: bug#56441: guix time-machine broken by profiles speed-up References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> <87sfncztuq.fsf@elephly.net> <87fsjcx9yc.fsf@gnu.org> Date: Fri, 08 Jul 2022 12:36:36 +0200 In-Reply-To: <87fsjcx9yc.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 08 Jul 2022 10:52:43 +0200") Message-ID: <87zghjx557.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.1 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441 Cc: 56441@debbugs.gnu.org, zimoun 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, Ludovic Court=C3=A8s skribis: > Another option (thinking out loud): > > =E2=80=A2 in =E2=80=98package-cache-file=E2=80=99, unconditionally gene= rate a v3 profile (we > could add a =E2=80=98version=E2=80=99 field to etc.); > > =E2=80=A2 likewise in =E2=80=98channel-instances->derivation=E2=80=99. The patches below do that. As discussed on IRC, it=E2=80=99s not pretty but it=E2=80=99s pragmatic. Tested with: ./pre-inst-env guix time-machine \ --commit=3D85a5110de79f4fe9fd822ede3915654ee699d6c5 -- describe How does that sound? > Problem: it doesn=E2=80=99t address the case where you install the =E2=80= =98guix=E2=80=99 > package in a regular profile (I think?). I haven=E2=80=99t yet checked whether this is the case. Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0001-profiles-Support-the-creation-of-profiles-with-versi.patch Content-Transfer-Encoding: quoted-printable >From e1d7117cb4f81f4f590ff9c9a8fe14797cc210f1 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Ludovic=3D20Court=3DC3=3DA8s?=3D Date: Fri, 8 Jul 2022 12:26:50 +0200 Subject: [PATCH 1/2] profiles: Support the creation of profiles with versio= n 3 manifests. * guix/profiles.scm (%manifest-format-version): New variable. (manifest->gexp): Add optional 'format-version' parameter. [optional, entry->gexp]: Honor it. (profile-derivation): Add #:format-version parameter and honor it. ()[format-version]: New field. (profile-compiler): Honor it. * guix/build/profiles.scm (manifest-sexp->inputs+search-paths): Support both versions 3 and 4. Remove unused 'properties' variable. * tests/profiles.scm ("profile-derivation format version 3"): New test. --- guix/build/profiles.scm | 6 +++--- guix/profiles.scm | 48 ++++++++++++++++++++++++++++++----------- tests/profiles.scm | 28 ++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 16 deletions(-) diff --git a/guix/build/profiles.scm b/guix/build/profiles.scm index 2ab76bde74..0c92f222b4 100644 --- a/guix/build/profiles.scm +++ b/guix/build/profiles.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2015, 2017, 2018, 2019, 2020, 2021 Ludovic Court=C3= =A8s +;;; Copyright =C2=A9 2015, 2017-2022 Ludovic Court=C3=A8s ;;; ;;; This file is part of GNU Guix. ;;; @@ -162,7 +162,7 @@ (define-syntax let-fields (begin body ...)))) =20 (match manifest ;this must match 'manifest->g= exp' - (('manifest ('version 4) + (('manifest ('version (or 3 4)) ('packages (entries ...))) (let loop ((entries entries) (inputs '()) @@ -170,7 +170,7 @@ (define-syntax let-fields (match entries (((name version output item fields ...) . rest) (let ((paths search-paths)) - (let-fields fields (propagated-inputs search-paths properties) + (let-fields fields (propagated-inputs search-paths) (loop (append rest propagated-inputs) ;breadth-first travers= al (cons item inputs) (append search-paths paths))))) diff --git a/guix/profiles.scm b/guix/profiles.scm index a21cc432dc..d1dfa13e98 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -452,12 +452,23 @@ (define (inferior->entry) packages) manifest-entry=3D?))) =20 -(define (manifest->gexp manifest) - "Return a representation of MANIFEST as a gexp." +(define %manifest-format-version + ;; The current manifest format version. + 4) + +(define* (manifest->gexp manifest #:optional + (format-version %manifest-format-version)) + "Return a representation in FORMAT-VERSION of MANIFEST as a gexp." (define (optional name value) - (if (null? value) - #~() - #~((#$name #$value)))) + (match format-version + (4 + (if (null? value) + #~() + #~((#$name #$value)))) + (3 + (match name + ('properties #~((#$name #$@value))) + (_ #~((#$name #$value))))))) =20 (define (entry->gexp entry) ;; Maintain in state monad a vhash of visited entries, indexed by their @@ -467,10 +478,11 @@ (define (entry->gexp entry) ;; the presence of propagated inputs, where we could otherwise end up ;; repeating large trees. (mlet %state-monad ((visited (current-state))) - (if (match (vhash-assq (manifest-entry-item entry) visited) - ((_ . previous-entry) - (manifest-entry=3D? previous-entry entry)) - (#f #f)) + (if (and (=3D format-version 4) + (match (vhash-assq (manifest-entry-item entry) visited) + ((_ . previous-entry) + (manifest-entry=3D? previous-entry entry)) + (#f #f))) (return #~(repeated #$(manifest-entry-name entry) #$(manifest-entry-version entry) (ungexp (manifest-entry-item entry) @@ -500,9 +512,14 @@ (define (entry->gexp entry) search-paths)) #$@(optional 'properties properties)))))))))) =20 + (unless (memq format-version '(3 4)) + (raise (formatted-message + (G_ "cannot emit manifests formatted as version ~a") + format-version))) + (match manifest (($ (entries ...)) - #~(manifest (version 4) + #~(manifest (version #$format-version) (packages #$(run-with-state (mapm %state-monad entry->gexp entries) vlist-null)))))) @@ -1883,6 +1900,7 @@ (define* (profile-derivation manifest (allow-unsupported-packages? #f) (allow-collisions? #f) (relative-symlinks? #f) + (format-version %manifest-format-version) system target) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned = by @@ -1968,7 +1986,7 @@ (define builder =20 #+(if locales? set-utf8-locale #t) =20 - (build-profile #$output '#$(manifest->gexp manifest) + (build-profile #$output '#$(manifest->gexp manifest format-ver= sion) #:extra-inputs '#$extra-inputs #:symlink #$(if relative-symlinks? #~symlink-relative @@ -2007,19 +2025,23 @@ (define-record-type* profile make-profile (allow-collisions? profile-allow-collisions? ;Boolean (default #f)) (relative-symlinks? profile-relative-symlinks? ;Boolean - (default #f))) + (default #f)) + (format-version profile-format-version ;integer + (default %manifest-format-version))) =20 (define-gexp-compiler (profile-compiler (profile ) system target) "Compile PROFILE to a derivation." (match profile (($ name manifest hooks - locales? allow-collisions? relative-symlinks?) + locales? allow-collisions? relative-symlinks? + format-version) (profile-derivation manifest #:name name #:hooks hooks #:locales? locales? #:allow-collisions? allow-collisions? #:relative-symlinks? relative-symlinks? + #:format-version format-version #:system system #:target target)))) =20 (define* (profile-search-paths profile diff --git a/tests/profiles.scm b/tests/profiles.scm index f002dfc5e4..7bed946bf3 100644 --- a/tests/profiles.scm +++ b/tests/profiles.scm @@ -286,6 +286,34 @@ (define transform1 (string=3D? (dirname (readlink bindir)) (derivation->output-path guile)))))) =20 +(test-assertm "profile-derivation format version 3" + ;; Make sure we can create and read a version 3 manifest. + (mlet* %store-monad + ((entry -> (package->manifest-entry %bootstrap-guile + #:properties '((answer . 42))= )) + (manifest -> (manifest (list entry))) + (drv1 (profile-derivation manifest + #:format-version 3 ;old version + #:hooks '() + #:locales? #f)) + (drv2 (profile-derivation manifest + #:hooks '() + #:locales? #f)) + (profile1 -> (derivation->output-path drv1)) + (profile2 -> (derivation->output-path drv2)) + (_ (built-derivations (list drv1 drv2)))) + (return (let ((manifest1 (profile-manifest profile1)) + (manifest2 (profile-manifest profile2))) + (match (manifest-entries manifest1) + ((entry1) + (match (manifest-entries manifest2) + ((entry2) + (and (manifest-entry=3D? entry1 entry2) + (equal? (manifest-entry-properties entry1) + '((answer . 42))) + (equal? (manifest-entry-properties entry2) + '((answer . 42)))))))))))) + (test-assertm "profile-derivation, ordering & collisions" ;; ENTRY1 and ENTRY2 both provide 'bin/guile'--a collision. Make sure ;; ENTRY1 "wins" over ENTRY2. See . base-commit: 33179b180a5b02b730b4b37369ccf48204597940 --=20 2.36.1 --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline; filename=0002-channels-Emit-version-3-profiles.patch Content-Transfer-Encoding: quoted-printable >From d404ef913482c6a9c692bad2142cf7202ebc1cc4 Mon Sep 17 00:00:00 2001 From: =3D?UTF-8?q?Ludovic=3D20Court=3DC3=3DA8s?=3D Date: Fri, 8 Jul 2022 12:31:25 +0200 Subject: [PATCH 2/2] channels: Emit version 3 profiles. Fixes . Reported by zimoun . * guix/channels.scm (package-cache-file): Add 'format-version' field to PROFILE. (channel-instances->derivation): Pass #:format-version to 'profile-derivation'. --- guix/channels.scm | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index ce1a60436f..689b30e0eb 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright =C2=A9 2018, 2019, 2020, 2021 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2018-2022 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2018 Ricardo Wurmus ;;; Copyright =C2=A9 2019 Jan (janneke) Nieuwenhuizen ;;; Copyright =C2=A9 2021 Brice Waegeneire @@ -896,7 +896,12 @@ (define (instance->entry instance drv) (define (package-cache-file manifest) "Build a package cache file for the instance in MANIFEST. This is meant= to be used as a profile hook." - (let ((profile (profile (content manifest) (hooks '())))) + ;; Note: Emit a profile in format version 3, which was introduced in 2017 + ;; and is readable by Guix since before version 1.0. This ensures that = the + ;; Guix in MANIFEST is able to read the manifest file created for its own + ;; profile below. See . + (let ((profile (profile (content manifest) (hooks '()) + (format-version 3)))) (define build #~(begin (use-modules (gnu packages)) @@ -937,8 +942,12 @@ (define (channel-instances->derivation instances) "Return the derivation of the profile containing INSTANCES, a list of channel instances." (mlet %store-monad ((manifest (channel-instances->manifest instances))) + ;; Emit a profile in format version so that, if INSTANCES denotes an o= ld + ;; Guix, it can still read that profile, for instance for the purposes= of + ;; 'guix describe'. (profile-derivation manifest - #:hooks %channel-profile-hooks))) + #:hooks %channel-profile-hooks + #:format-version 3))) =20 (define latest-channel-instances* (store-lift latest-channel-instances)) --=20 2.36.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 06:50:00 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 10:50:00 +0000 Received: from localhost ([127.0.0.1]:58965 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9lYd-0000JL-Q8 for submit@debbugs.gnu.org; Fri, 08 Jul 2022 06:50:00 -0400 Received: from sender4-of-o51.zoho.com ([136.143.188.51]:21127) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9lYZ-0000J2-0C for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 06:49:58 -0400 ARC-Seal: i=1; a=rsa-sha256; t=1657277391; cv=none; d=zohomail.com; s=zohoarc; b=Mu7ICJbqoRcfeWZYjKXwScREThbirHqxedyYr1NIcpbbcdrwvGpwBCzjCnY+d77v4wqwE5H+WHaLl4YJnzn54R/Jy6iNvnXsk6J3nHzt0XZEvgPZPeZdmbadUDqKvW6R96CVlYJPLFJ/8QoyaQpMCnrYYZnWTX/JrAsYb/TujLc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1657277391; h=Content-Type:Date:From:MIME-Version:Message-ID:Subject:To; bh=1SNlLwqaRDJHv9GiJHSKa8X/f3vZuwG6uv5TuvFVxbQ=; b=CQ73JoTMLvzjsjymyjITrz0WzsjQ5UqFkpmwSVE9rwIH28vz2j8sJpJy6LiJvK/UIdZd38yhnw4RGW92S3FzhCf9ljD1OUtNsGcajFX86dHp9+PU6RJX+TwfFwVcOon9WUuCPqBLUT5MEi6p+n52kaPjH8iGeGJM+Z57FMBQcRc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=elephly.net; spf=pass smtp.mailfrom=rekado@elephly.net; dmarc=pass header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1657277391; s=zoho; d=elephly.net; i=rekado@elephly.net; h=From:From:To:To:Subject:Subject:Date:Date:Message-ID:MIME-Version:Content-Type:Message-Id:Reply-To:Cc; bh=1SNlLwqaRDJHv9GiJHSKa8X/f3vZuwG6uv5TuvFVxbQ=; b=CC9ram/5PA6DkIO9p+5Z+OXYHPMnzWA4oSzd0uAvIyh+W4DV/rJs2ZLG0K816vMF AUxauPHezAZHxCzAfB07UzruSQqSQhPhjQvqGjSR06yf52ZJ8iWtAjOwXmton+kZ8OG vxPCQok2TnAyvcrAuzJOoDfdL6xA3Rb3jEFJYMiY= Received: from localhost (209-110-142-46.pool.kielnet.net [46.142.110.209]) by mx.zohomail.com with SMTPS id 1657277388693550.0392393534541; Fri, 8 Jul 2022 03:49:48 -0700 (PDT) User-agent: mu4e 1.6.11; emacs 28.1 From: Ricardo Wurmus To: 56441@debbugs.gnu.org Subject: Time travel doesn't resist profile format changes Date: Fri, 08 Jul 2022 12:46:47 +0200 X-URL: https://elephly.net X-PGP-Key: https://elephly.net/rekado.pubkey X-PGP-Fingerprint: BCA6 89B6 3655 3801 C3C6 2150 197A 5888 235F ACAC Message-ID: <87fsjbzxo5.fsf@elephly.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-ZohoMailClient: External X-Zoho-Virus-Status: 1 X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56441 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 Attached is a patch that attempts to build the manifest in an inferior. This fails because manifest->gexp returns a gexp that we can=E2=80=99t get = out of the inferior to pass to build-profile. So even more of the surrounding code would have to be evaluated in the inferior. @Ludo: your patch looks good to me. It=E2=80=99s a pragmatic, minimally invasive fix, so thumbs up emoji from me! Thank you! --=20 Ricardo --=-=-= Content-Type: text/x-patch Content-Disposition: inline; filename=0001-channel-stuff.patch >From da3eaeea0d0082138284720dce60f6bdfc796f2b Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Fri, 8 Jul 2022 08:40:27 +0200 Subject: [PATCH] channel stuff --- guix/channels.scm | 17 ++++++++-- guix/profiles.scm | 81 +++++++++++++++++++++++++++++++++++------------ 2 files changed, 75 insertions(+), 23 deletions(-) diff --git a/guix/channels.scm b/guix/channels.scm index ce1a60436f..45fba89685 100644 --- a/guix/channels.scm +++ b/guix/channels.scm @@ -896,6 +896,7 @@ (define (instance->entry instance drv) (define (package-cache-file manifest) "Build a package cache file for the instance in MANIFEST. This is meant to be used as a profile hook." + (pk 'package-cache-file manifest) (let ((profile (profile (content manifest) (hooks '())))) (define build #~(begin @@ -918,7 +919,12 @@ (define build (mkdir #$output)))) (gexp->derivation-in-inferior "guix-package-cache" build - profile + (pk 'guixx (manifest-entry-item + (manifest-lookup + manifest + (manifest-pattern + (name "guix"))))) + ;profile ;; If the Guix in PROFILE is too old and ;; lacks 'guix repl', don't build the cache @@ -936,8 +942,15 @@ (define %channel-profile-hooks (define (channel-instances->derivation instances) "Return the derivation of the profile containing INSTANCES, a list of channel instances." - (mlet %store-monad ((manifest (channel-instances->manifest instances))) + (mlet* %store-monad ((manifest (channel-instances->manifest instances)) + (drv -> (manifest-entry-item + (manifest-lookup + manifest + (manifest-pattern + (name "guix"))))) + (built (built-derivations (list drv)))) (profile-derivation manifest + #:inferior-guix (derivation->output-path drv) #:hooks %channel-profile-hooks))) (define latest-channel-instances* diff --git a/guix/profiles.scm b/guix/profiles.scm index 701852ae98..2d482cf91a 100644 --- a/guix/profiles.scm +++ b/guix/profiles.scm @@ -38,6 +38,10 @@ (define-module (guix profiles) #:use-module (guix records) #:use-module (guix packages) #:use-module (guix derivations) + #:autoload (guix inferior) (gexp->derivation-in-inferior + open-inferior + close-inferior + inferior-eval) #:use-module (guix search-paths) #:use-module (guix gexp) #:use-module (guix modules) @@ -1946,6 +1950,7 @@ (define* (profile-derivation manifest (allow-unsupported-packages? #f) (allow-collisions? #f) (relative-symlinks? #f) + (inferior-guix #f) system target) "Return a derivation that builds a profile (aka. 'user environment') with the given MANIFEST. The profile includes additional derivations returned by @@ -2013,6 +2018,33 @@ (define set-utf8-locale (package-version glibc-utf8-locales)))) (setlocale LC_ALL "en_US.utf8"))) + (define (manifest-gexp) + (pk 'man-gexp + (if inferior-guix + (let* ((inferior (open-inferior inferior-guix)) + (result + ;; TODO: this doesn't work because we can't lift the + ;; gexp out of the inferior. + (inferior-eval `(begin + (use-modules (guix profiles) + (guix derivations)) + ((@@ (guix profiles) manifest->gexp) + (manifest + (list + ,@(map (lambda (entry) + `(manifest-entry + (name ,(manifest-entry-name entry)) + (version ,(manifest-entry-version entry)) + (output ,(manifest-entry-output entry)) + (item (read-derivation-from-file + ,(derivation-file-name + (manifest-entry-item entry)))))) + (manifest-entries manifest)))))) + inferior))) + (close-inferior inferior) + result) + (manifest->gexp manifest)))) + (define builder (with-imported-modules '((guix build profiles) (guix build union) @@ -2031,32 +2063,39 @@ (define builder #+(if locales? set-utf8-locale #t) - (build-profile #$output '#$(manifest->gexp manifest) + (build-profile #$output '#$(manifest-gexp) #:extra-inputs '#$extra-inputs #:symlink #$(if relative-symlinks? #~symlink-relative #~symlink))))) - (gexp->derivation name builder - #:system system - #:target target - - ;; Don't complain about _IO* on Guile 2.2. - #:env-vars '(("GUILE_WARN_DEPRECATED" . "no")) - - ;; Not worth offloading. - #:local-build? #t - - ;; Disable substitution because it would trigger a - ;; connection to the substitute server, which is likely - ;; to have no substitute to offer. - #:substitutable? #f - - #:properties `((type . profile) - (profile - (count - . ,(length - (manifest-entries manifest)))))))) + (let ((proc (if inferior-guix + (lambda args + (apply gexp->derivation-in-inferior + name builder (pk 'inf inferior-guix) + args)) + (lambda args + (apply gexp->derivation + name builder args))))) + (proc #:system system + #:target target + + ;; Don't complain about _IO* on Guile 2.2. + #:env-vars '(("GUILE_WARN_DEPRECATED" . "no")) + + ;; Not worth offloading. + #:local-build? #t + + ;; Disable substitution because it would trigger a + ;; connection to the substitute server, which is likely + ;; to have no substitute to offer. + #:substitutable? #f + + #:properties `((type . profile) + (profile + (count + . ,(length + (manifest-entries manifest))))))))) ;; Declarative profile. (define-record-type* profile make-profile -- 2.36.1 --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 10:34:20 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 14:34:20 +0000 Received: from localhost ([127.0.0.1]:32959 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9p3j-00065N-Qd for submit@debbugs.gnu.org; Fri, 08 Jul 2022 10:34:20 -0400 Received: from mail-wr1-f44.google.com ([209.85.221.44]:36854) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9p3h-000659-Qk for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 10:34:18 -0400 Received: by mail-wr1-f44.google.com with SMTP id o4so30826938wrh.3 for <56441@debbugs.gnu.org>; Fri, 08 Jul 2022 07:34:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-transfer-encoding; bh=7ppGH4EMF/qgpYbFc84pFydAwH8/H/RAZXOBbGI5Y6U=; b=ksS1zV6RsMfZK88yyS/BKiy+cHFrqr5447uyeXkdJ1xG18+wZ6Bzk1ZEe98mbh1MzC tFqAFBewFBn2pZj2FQrtdxIF807VBnsq37aoeGD8y2tx50OVngYsi7TaTLMjFDLPY/GU nEy9oxbpJ8G/iz0/FxaX9xMl/bkHnoRbOAyJBAxmpSIHFo3GuoEkZy2wNsOxuhULeyjc YnU0pNF8WHPOTY9i6y0abFgUxeNOjY3yq6/XAvZlasm85Gz5F5Uragk06uiKpVzmGpXo mKW7BJwrfbwYUdDjuNaXz2WXE5Y6Kyq7i57Xw7rw2dikC4kfFTF0As9XMQz23o9ZWuO3 gUSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:references:date:in-reply-to :message-id:user-agent:mime-version:content-transfer-encoding; bh=7ppGH4EMF/qgpYbFc84pFydAwH8/H/RAZXOBbGI5Y6U=; b=YnbVWxwz5+rKoFH7JycDc03D2wvN3ipCK7uffnULqlEZkSWQeKeEyZtWvdqZ9RHJm6 S+SViLQZftsN7RqhT9aBX5db2v+T6O9p7IM+RUGeYXEFbDkwC/01hxjQD03folhQeKRp p5nbW8bO+rm+77jJicOgZU305FimwqaDQmOxwr6pGhPGAl/6ycvb7xkYgDtBr43OcUxI zBu29IVqejzNNQMafIPDSB+GrMxhQ4xjYLIW8GhK+zOTmROgLGKppcYsY8xGMk0REPQ9 fmKZzQhfu9FhzJ8txA5lyC1/2RVxQaomzPr+GiansV6vlJ2y5TqqFq+RYSToJQKjyniB aLeg== X-Gm-Message-State: AJIora81gCpGRy1hcl6JWgaIbCODfKBwrZUSRM+0UzH9WVHZjtoIIs8A ExO1kOfpJ/nhwDfBP7MgF/UwHDbKEB0= X-Google-Smtp-Source: AGRyM1tSb7xJkgYvz9RITDXEqYHOkhkV9X9XnpbAQZKQsybD4c2g2aujmvfZRdj5HnltbT0yg//21w== X-Received: by 2002:a5d:5444:0:b0:21d:6497:3210 with SMTP id w4-20020a5d5444000000b0021d64973210mr3605996wrv.587.1657290851833; Fri, 08 Jul 2022 07:34:11 -0700 (PDT) Received: from pfiuh07 ([193.48.40.241]) by smtp.gmail.com with ESMTPSA id q13-20020adff50d000000b0021d64a11727sm16438533wro.49.2022.07.08.07.34.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Jul 2022 07:34:11 -0700 (PDT) From: zimoun To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: bug#56441: Time travel doesn't resist profile format changes References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> <87sfncztuq.fsf@elephly.net> <87fsjcx9yc.fsf@gnu.org> <87zghjx557.fsf@gnu.org> Date: Fri, 08 Jul 2022 16:34:06 +0200 In-Reply-To: <87zghjx557.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 08 Jul 2022 12:36:36 +0200") Message-ID: <875yk7brmp.fsf_-_@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 56441 Cc: Ricardo Wurmus , 56441@debbugs.gnu.org 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 (-) Hi, On ven., 08 juil. 2022 at 12:36, Ludovic Court=C3=A8s wrote: > Hi, > > Ludovic Court=C3=A8s skribis: > >> Another option (thinking out loud): >> >> =E2=80=A2 in =E2=80=98package-cache-file=E2=80=99, unconditionally gen= erate a v3 profile (we >> could add a =E2=80=98version=E2=80=99 field to etc.); >> >> =E2=80=A2 likewise in =E2=80=98channel-instances->derivation=E2=80=99. > > The patches below do that. As discussed on IRC, it=E2=80=99s not pretty = but > it=E2=80=99s pragmatic. > > Tested with: > > ./pre-inst-env guix time-machine \ > --commit=3D85a5110de79f4fe9fd822ede3915654ee699d6c5 -- describe > > How does that sound? It sounds good! Here a check from v1.3 to v0.16. --8<---------------cut here---------------start------------->8--- $ for ci in a0178d34f582b50e9bdbb0403943129ae5b560ff \ a099685659b4bfa6b3218f84953cbb7ff9e88063 \ d62c9b2671be55ae0305bebfda17b595f33797f2 \ d68de958b60426798ed62797ff7c96c327a672ac \ 6298c3ffd9654d3231a6f25390b056483e8f407c \ 4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c; do ./pre-inst-env guix time-machine --commit=3D$ci -- describe done guix a0178d3 repository URL: https://git.savannah.gnu.org/git/guix.git commit: a0178d34f582b50e9bdbb0403943129ae5b560ff guix a099685 repository URL: https://git.savannah.gnu.org/git/guix.git commit: a099685659b4bfa6b3218f84953cbb7ff9e88063 guile: warning: failed to install locale guix d62c9b2 repository URL: https://git.savannah.gnu.org/git/guix.git commit: d62c9b2671be55ae0305bebfda17b595f33797f2 guile: warning: failed to install locale guix d68de95 repository URL: https://git.savannah.gnu.org/git/guix.git commit: d68de958b60426798ed62797ff7c96c327a672ac guile: warning: failed to install locale guix 6298c3f repository URL: https://git.savannah.gnu.org/git/guix.git commit: 6298c3ffd9654d3231a6f25390b056483e8f407c guile: warning: failed to install locale hint: Consider installing the `glibc-utf8-locales' or `glibc-locales' packa= ge and defining `GUIX_LOCPATH', along these lines: guix package -i glibc-utf8-locales export GUIX_LOCPATH=3D"$HOME/.guix-profile/lib/locale" See the "Application Setup" section in the manual, for more info. guix 4a0b87f repository URL: https://git.savannah.gnu.org/git/guix.git commit: 4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c --8<---------------cut here---------------end--------------->8--- Cheers, simon From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 12:13:37 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 16:13:37 +0000 Received: from localhost ([127.0.0.1]:33077 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9qbp-0002K9-DK for submit@debbugs.gnu.org; Fri, 08 Jul 2022 12:13:37 -0400 Received: from eggs.gnu.org ([209.51.188.92]:36868) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9qbm-0002Jr-7z for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 12:13:35 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44920) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9qbf-0006sa-MM; Fri, 08 Jul 2022 12:13:28 -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=WNIXv8QrtRyXk48YaZGZ5Rs4W2vijMPUcl7pPlJxHa4=; b=HWYepqJhPi8XX+UeddON EYW81JKymOUyLUc0asuV3i7FBCHEhVJugpOPRoQ00TnP+TMZsmSmTYNeR2kck8e8EXRZBusB1+85M rkW5C/krFbZY6Dj4ax0Y3XVNtLhDPAi8rUhyekbuEd9JZSOnQJia4is/9Uoxtl8vc3mMCvUy2/E4D dvdIcDXK8bJCu8weyzNf+HgoPB2KR/mJIOgaNK7IXVXgzjSzVeLLJu1pVJrDpWeviLnNWIo9ZMzDW STKQwq6Sxa0vFBCIb3i4fCoqVks5PxabsWdEpQjutFw62AtkSECOPYViezYZ+BwSUEZZ6sTNiWiVs vFzfgSa3Bkmwyw==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:50428 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9qbf-0007Ph-8g; Fri, 08 Jul 2022 12:13:27 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zimoun Subject: Re: bug#56441: Time travel doesn't resist profile format changes References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> <87sfncztuq.fsf@elephly.net> <87fsjcx9yc.fsf@gnu.org> <87zghjx557.fsf@gnu.org> <875yk7brmp.fsf_-_@gmail.com> X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: =?utf-8?Q?D=C3=A9cadi?= 20 Messidor an 230 de la =?utf-8?Q?R=C3=A9volution=2C?= jour du Parc 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: Fri, 08 Jul 2022 18:13:25 +0200 In-Reply-To: <875yk7brmp.fsf_-_@gmail.com> (zimoun's message of "Fri, 08 Jul 2022 16:34:06 +0200") Message-ID: <877d4ntwey.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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441 Cc: Ricardo Wurmus , 56441@debbugs.gnu.org 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 (---) Hello, zimoun skribis: > It sounds good! Here a check from v1.3 to v0.16. > > $ for ci in a0178d34f582b50e9bdbb0403943129ae5b560ff \ > a099685659b4bfa6b3218f84953cbb7ff9e88063 \ > d62c9b2671be55ae0305bebfda17b595f33797f2 \ > d68de958b60426798ed62797ff7c96c327a672ac \ > 6298c3ffd9654d3231a6f25390b056483e8f407c \ > 4a0b87f0ec5b6c2dcf82b372dd20ca7ea6acdd9c; > do > ./pre-inst-env guix time-machine --commit=3D$ci -- describe > done That=E2=80=99s a great test, thanks for checking! I would really like us to run that kind of test automatically. It=E2=80=99s expensive, requires network access, Git repo access, etc., so I=E2=80=99m n= ot sure it=E2=80=99s suitable for =E2=80=9Cmake check=E2=80=9D. But we need t= o think about it. I=E2=80=99ll commit either tonight or on Monday. Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 16:42:24 2022 Received: (at 56441) by debbugs.gnu.org; 8 Jul 2022 20:42:24 +0000 Received: from localhost ([127.0.0.1]:33232 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9unv-0004ek-VZ for submit@debbugs.gnu.org; Fri, 08 Jul 2022 16:42:24 -0400 Received: from eggs.gnu.org ([209.51.188.92]:33862) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9unu-0004eY-8g for 56441@debbugs.gnu.org; Fri, 08 Jul 2022 16:42:22 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50470) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9uno-0005um-HA; Fri, 08 Jul 2022 16:42:16 -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=WlARbJyBHZ9FsZDIcTUkgJI0j8Svd0it98cvh8B59W4=; b=LeRa4Hxsr4X+IcrqzPNz SXVEqBGs/yHDaLClXwv0GOgHKBPMXzwVJkuyTcrqERe366Y21FcqdS6AzZFERbLVmfLC274+p3xas NCghZA3CfqSVnlMyLYx8Z2ZGgoc5mP+L9+D0GOv4ZX4GrghLW6v7aIRCUT/1azgcxIc1ibAnE4JB8 IjtXhYUcE7Cgks1326eGh4TlT+yA/jlEOLzJJoF0Ff0PnI7+/coBEYe0FTIPtd+zSA22TLNXEu2G8 8sn8QuQ5guOQY3bqeysdRyRAsu+WELER6E7grde2f2XHUlVn3M7sVCebv3IB4WVwz3sAj6DOueRJi /a+E9vCCsev+OA==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:50677 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9uno-0007NA-5R; Fri, 08 Jul 2022 16:42:16 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Ricardo Wurmus Subject: Re: bug#56441: guix time-machine broken by profiles speed-up References: <867d4oq3gr.fsf@gmail.com> <87fsjbzxo5.fsf@elephly.net> Date: Fri, 08 Jul 2022 22:42:13 +0200 In-Reply-To: <87fsjbzxo5.fsf@elephly.net> (Ricardo Wurmus's message of "Fri, 08 Jul 2022 12:46:47 +0200") Message-ID: <871quvtjyy.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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441 Cc: 56441@debbugs.gnu.org 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 (---) Ricardo Wurmus skribis: > Attached is a patch that attempts to build the manifest in an inferior. > This fails because manifest->gexp returns a gexp that we can=E2=80=99t ge= t out > of the inferior to pass to build-profile. Thanks for sharing! This sounded like the =E2=80=9Cright=E2=80=9D approach= , but there=E2=80=99s a part that made me feel uneasy about it: > + (define (manifest-gexp) > + (pk 'man-gexp > + (if inferior-guix > + (let* ((inferior (open-inferior inferior-guix)) > + (result > + ;; TODO: this doesn't work because we can't lift t= he > + ;; gexp out of the inferior. > + (inferior-eval `(begin > + (use-modules (guix profiles) > + (guix derivations)) > + ((@@ (guix profiles) manifest->g= exp) > + (manifest > + (list > + ,@(map (lambda (entry) > + `(manifest-entry > + (name ,(manifest-= entry-name entry)) > + (version ,(manife= st-entry-version entry)) > + (output ,(manifes= t-entry-output entry)) > + (item (read-deriv= ation-from-file > + ,(derivati= on-file-name > + (manifes= t-entry-item entry)))))) > + (manifest-entries mani= fest)))))) Here we have to rely on a larger part of the API: a subset of (guix profiles) and (guix derivations). Conversely, in (guix channels), the only assumption made about the API implemented by the other Guix (which might be older or might be newer) is the =E2=80=98generate-package-cache=E2=80=99 procedure. It=E2=80=99s a = small requirement, so potentially easier to satisfy in future versions for a long time. When dealing with these time travel issues, I feel we have difficult choices to make. It=E2=80=99s a bit of an unusual requirement that we have. Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Fri Jul 08 18:01:23 2022 Received: (at 56441-done) by debbugs.gnu.org; 8 Jul 2022 22:01:23 +0000 Received: from localhost ([127.0.0.1]:33361 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9w2N-0006jk-AU for submit@debbugs.gnu.org; Fri, 08 Jul 2022 18:01:23 -0400 Received: from eggs.gnu.org ([209.51.188.92]:48296) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1o9w2L-0006jY-Jl for 56441-done@debbugs.gnu.org; Fri, 08 Jul 2022 18:01:21 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:54560) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9w2G-0004fg-6O; Fri, 08 Jul 2022 18:01:16 -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=6+n8dLdVcrunAaICWGjqXYEJMBazcIEt5NKI8e099y0=; b=j//H6TfxzGIs3zKZ95Kb HG2VRXJCoE8PqHqYIepL5jWQdihV7qc51rYqATzQkwMMinDPO/IrhezhPY9373Gzh1qMd2Te8Lo+m 8ESw5P0WCNQz30shMcgAofpU2kze2uIy60kh4uoWttULESZz0xmD3nho3kuIB5Tk3lOQ2otWCIWNI L/cdaqnbRfvM9cOfKxQll+6x3VhAerN/8r4N9qDDYBqNM6wk816GuoDB+f3INInj67gZdiBiS7LP9 IsLOJ1pM9fPYUdNYipJY0cgcBzvLFR6RwfDYmQtBbWOISZouXSDFYjQsorZ+isdwsJKvKVC899xem 638/cGCAzyucyw==; Received: from 91-160-117-201.subs.proxad.net ([91.160.117.201]:49622 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9w2F-0005bR-LE; Fri, 08 Jul 2022 18:01:16 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Ricardo Wurmus Subject: Re: bug#56441: guix time-machine broken by profiles speed-up References: <867d4oq3gr.fsf@gmail.com> <87wncozun2.fsf@elephly.net> <87sfncztuq.fsf@elephly.net> <87fsjcx9yc.fsf@gnu.org> <87zghjx557.fsf@gnu.org> Date: Sat, 09 Jul 2022 00:01:14 +0200 In-Reply-To: <87zghjx557.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Fri, 08 Jul 2022 12:36:36 +0200") Message-ID: <87zghjqn6d.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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441-done Cc: zimoun , 56441-done@debbugs.gnu.org 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 (---) Ludovic Court=C3=A8s skribis: > The patches below do that. As discussed on IRC, it=E2=80=99s not pretty = but > it=E2=80=99s pragmatic. Pushed! e80f0cda96 etc: Add 'time-travel-manifest.scm'. c9fbd40785 channels: Emit version 3 profiles. 89e2288751 profiles: Support the creation of profiles with version 3 mani= fests. The last commit was inspired by zimoun=E2=80=99s test. I plan to add a =E2=80=98time-travel=E2=80=99 jobset on ci.guix. Thank you zimoun & Ricardo! Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Jul 11 04:27:44 2022 Received: (at 56441) by debbugs.gnu.org; 11 Jul 2022 08:27:44 +0000 Received: from localhost ([127.0.0.1]:38215 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAolb-0006vB-QT for submit@debbugs.gnu.org; Mon, 11 Jul 2022 04:27:43 -0400 Received: from eggs.gnu.org ([209.51.188.92]:35114) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oAolZ-0006ut-L0 for 56441@debbugs.gnu.org; Mon, 11 Jul 2022 04:27:42 -0400 Received: from fencepost.gnu.org ([2001:470:142:3::e]:50082) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oAolU-0004F0-DF; Mon, 11 Jul 2022 04:27:36 -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=I3UMRbmR8HZjHo3fP7t1nmM41r9MKHwF1gZbUgejYa8=; b=AOqYUU1JHLtj7OM8uDXO r5E3HA4wNb0uYWTiuHx0NO9BRghHU2XfvJ5ONWEgbCfcnKKOSjrzwGNRJw5uUuTy5EO+KzPl1KaDc kEvj51iGTuNA8cW//7NxDBb2gJWwRRfBCWG42qf3Qigjqed2vbh/Hdyq6HYcNuumsYI+x4HnAr9E+ YBVgnjxuCeVtHvKKN4b1Z6bypjSWvKC+b3gkEYM6y5oylofgod+UQHMrb18np1zrZmEOHpP7Y0BK6 4Ls818moMCRMmz67iBe/0MZNzlyF5O1Vchfl6TIVQu23fSETeoDx8IcRTPysfTPEP4kk7A8rDFzTH 5HJvTL4Dyp1rpQ==; Received: from [193.50.110.235] (port=47792 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oAolU-0007Jq-0X; Mon, 11 Jul 2022 04:27:36 -0400 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: zimoun , 56441@debbugs.gnu.org Subject: Re: bug#56441: guix time-machine broken by profiles speed-up References: <87zghjqn6d.fsf@gnu.org> <867d4oq3gr.fsf@gmail.com> Date: Mon, 11 Jul 2022 10:27:34 +0200 In-Reply-To: (GNU bug Tracking System's message of "Fri, 08 Jul 2022 22:02:02 +0000") Message-ID: <87zghgnjex.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-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 56441 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! > e80f0cda96 etc: Add 'time-travel-manifest.scm'. > c9fbd40785 channels: Emit version 3 profiles. > 89e2288751 profiles: Support the creation of profiles with version 3 ma= nifests. And here=E2=80=99s the CI job: https://ci.guix.gnu.org/jobset/time-travel OK, it=E2=80=99s currently broken, but it should be unbroken by commit 5d0437ea8ce0147b47b9df866fa2413b48f71a1a (I=E2=80=99ve set it to run every = 12 hours at most, so we=E2=80=99ll have to check.) Ludo=E2=80=99. From unknown Sat Aug 16 10:45:19 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 08 Aug 2022 11:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator