From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id OKrAB7BI517cdQAA0tVLHw (envelope-from ) for ; Mon, 15 Jun 2020 10:08:48 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id 6FZyA7BI514hTAAAbx9fmQ (envelope-from ) for ; Mon, 15 Jun 2020 10:08:48 +0000 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 C44209404D4 for ; Mon, 15 Jun 2020 10:08:47 +0000 (UTC) Received: from localhost ([::1]:52226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jkm2o-0003mX-Ld for larch@yhetil.org; Mon, 15 Jun 2020 06:08:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46502) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jkm2g-0003mQ-7f for guix-devel@gnu.org; Mon, 15 Jun 2020 06:08:38 -0400 Received: from m42-5.mailgun.net ([69.72.42.5]:47762) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jkm2e-0002Ul-Bz for guix-devel@gnu.org; Mon, 15 Jun 2020 06:08:37 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.wilsonb.com; q=dns/txt; s=krs; t=1592215715; h=Content-Type: MIME-Version: Message-Id: In-Reply-To: References: Subject: From: Cc: To: Date: Sender; bh=eeo5E0ME0a2DrT5ONRZSZuVFM9/SDY2qrq5NBwNqZGA=; b=kOnD16w7KSuASRkSFQ3CIV29fSLhg9UMWVKyhl8nbxnZxxI07Ur0zVvV8JcatH2n2D+j5DQR 9coFm1kElWkMPm/SHaTPVvlO9/mb4/fj9oix6sxXRNqk9j013aukNtAselXFygvkocf+XVcf 55TU9FjthHXDhtml5fqNSZQOs3VSrbrJg36/TVFzM8Cyd0uYZKNk/9M4mJTP+6E9cQQ3ULj9 HkOVxokPXYkeHEL8VeIwXsnLFUzKrcegHayiKapLQjYQYSvprD9WoVr8ovrBq2Cm3xjh4YXT MLv1yjarurt+VQRttTlPVsv01YHI6VVDQhLo6R/wvDIUYkGuz7mIcw== X-Mailgun-Sending-Ip: 69.72.42.5 X-Mailgun-Sid: WyIyNWJlMSIsICJndWl4LWRldmVsQGdudS5vcmciLCAiMDg1NDdhIl0= Received: from wilsonb.com (wilsonb.com [104.199.203.42]) by smtp-out-n02.prod.us-west-2.postgun.com with SMTP id 5ee748a06bebe35deb9fd9a8 (version=TLS1.3, cipher=TLS_AES_128_GCM_SHA256); Mon, 15 Jun 2020 10:08:32 GMT Received: from localhost (KD111239196168.au-net.ne.jp [111.239.196.168]) by wilsonb.com (Postfix) with ESMTPSA id 601AFA29BC; Mon, 15 Jun 2020 10:08:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wilsonb.com; s=201703; t=1592215710; bh=eeo5E0ME0a2DrT5ONRZSZuVFM9/SDY2qrq5NBwNqZGA=; h=Date:To:Cc:From:Subject:References:In-Reply-To:From; b=T1yHiY/xHfJW6aawo0wFpwfsDmy7puMnEskryX3fWVMkn2y8B54onKhGWS6/Y8qbe zSSSLoxHgCjsjdajrj03TSUfGS0IyMLMbUavjDgXQIVTIavm8naaIG5WgPmfQa+h5Y VsUnQ6oj+s6QWPSggRPbz5G9XMllLtD00G/sssk0Q3KDuqrXx2u7cRGhX6We24Ofe+ Ua5Bhgfb5MAYa1WCqxJTAwMmCBR9cOtM6jBFfnXihaeyKgkPIQ5u97xshDAkAveeRe vs1IovuWdlb6pZX9PnYxZEdNj5ROECSx9bOUt8ZsBTCUqJqiplsvkVlEtVodQXrjEa 3IyVVftpNssyQCci2YsmFnmViegZkRvq+Pu7PM7Wv0hy1P/Mn+f+4fFMElykfJVM0e 1BC0zlfXJFm1+sqXDyE61CJvS4JpqdE16WFN1q3BgxHQUXx5Cgnpz/TMV1ae5SSlHH D1dE4KhDVojtedTVTS103UZ2dVplwqdMYuQlcDpueUz2JzQFlKALVABqv6sL8PcTlG dO3BOBCupvvaqPzMgxjUMrDnmGYObK6q+a6kaxEF6UoksYn+8UoH/kvfg3jZw5V9dp LddDeF/dyXmxYGoE33HYgsZIUhKkS/4GKa4hzsMjIyv6/G7hCniXylwgzRrfk38sf7 P8MoJz3lWtAVa8XtnG2BNx9g= Date: Mon, 15 Jun 2020 19:08:18 +0900 To: zimoun Cc: guix-devel@gnu.org From: elaexuotee@wilsonb.com Subject: Re: Using --manfistest with /manifest files References: <338KGSFKQGP1E.23382XUCMS8T3@wilsonb.com> <86mu549322.fsf@gmail.com> In-Reply-To: <86mu549322.fsf@gmail.com> Message-Id: <3IMA7W1L0NQCB.3GCC1X0HBIALO@wilsonb.com> User-Agent: mblaze/0.7 MIME-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="----_=_1f7120bf0f910e7738add8ee_=_" Received-SPF: pass client-ip=69.72.42.5; envelope-from=bounce+ec9951.08547a-guix-devel=gnu.org@mg.wilsonb.com; helo=m42-5.mailgun.net X-detected-operating-system: by eggs.gnu.org: First seen = 2020/06/15 06:08:34 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -30 X-Spam_score: -3.1 X-Spam_bar: --- X-Spam_report: (-3.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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H2=-1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.23 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-Scanner: scn0 Authentication-Results: aspmx1.migadu.com; dkim=fail (rsa verify failed) header.d=mg.wilsonb.com header.s=krs header.b=kOnD16w7; dkim=pass header.d=wilsonb.com header.s=201703 header.b=T1yHiY/x; dmarc=pass (policy=quarantine) header.from=wilsonb.com; spf=pass (aspmx1.migadu.com: domain of guix-devel-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-devel-bounces@gnu.org X-Spam-Score: -3.81 X-TUID: I1WW7Edn7/yG This is a multipart message in MIME format. ------_=_1f7120bf0f910e7738add8ee_=_ MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_5d26088f44fa7d39163a7b2b_=_" This is a multipart message in MIME format. ------_=_5d26088f44fa7d39163a7b2b_=_ Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable > It is more "complicated" than that. The detailed explanations are in > the mega thread. :-) In short and from my understanding, going from > "/manifest" to "-m manifest.scm" cannot be done in the general > case because two concepts -- imperative vs declarative -- are not well > aligned. Pragmatically, it means that the result could be more than > often unpractical with too much inferiors. Well, only an > "approximation" could be exported. I went ahead and read through the threads that Pierre shared in a different= reply. For posterity and to collect my own thoughts, let me see if I can distill the discussion so far: The goal is to enable a profile to generate itself by reifying it into some= collection of code and data. Given such a tool, two places of use are propo= sed: 1) Implicitly, upon profile generation, outputting new files under /etc, or= 2) Explicitly via a command like `guix package --export'. It turns out that `guix system reconfigure' does some (most?) of this by generating `/gnu/store/-provenance' and `/gnu/store/-channels.s= cm' along with the profile itself. Naively, a profile is just a sum of outputs; however, there are subtleties:= a) Provenance and inferiors For reproducibility, channel and revision information must be stored. This is alreading in profile/manifest, however, so we already have the necessary infrastracture in this regard. b) The family of `--with-*' options to `guix package' means that provenance= data itself is insufficient. Worse, `--expression' means that the collec= tion of outputs might be specified with *arbitrary code*. That said, the sum of provenance and command-line invocation should be sufficient, no? If so, an extreme proof-of-concept reification could simply= be a bash script, something akin to the following: #!/bin/env bash guix time-machine -C /channels.scm -- \ guix package -p [ ...] c) Profile reifications need to be forward-compatible, meaning that future revisions of guix should produce the same profile as current/older ones given a reification. This, of course, shows why the bash script idea is untenable, but with a mo= re reasonable Guile implementation, storing version information in the way of `/manifest' neatly solves this issue. Am I missing any major points? Almost surely there are minor ones I am overlooking. Here are some of my questions: Theorem: Given provenance data (e.g. a `channels.scm' file) and a command l= ine invocation, profiles generation is deterministic. Note that by "command line invocation" I am including any external files it= s options reference as well. Is this true at least mostly? Ludo mentions something about the "possibilit= y of multiple provenances" which I fail to grok. What is going on here? Does thi= s introduce a source of non-determinism for users building profiles? I.e. giv= en the right bash script, can a user reliably reproduce a given profile? If the answer to the final question above is no, then that seems like a muc= h larger problem. However, if the answer is yes, then I would naively expect profile reification to be mostly a matter of collecting together all the sources of input that define a profile. Does forward-compatibility make thi= s less straightforward than I am thinking? What else am I missing? > Sorry I am too lazy to search, but I think I remember that at the time > Pierre sent -- probably in the mega thread :-) -- a small script to > extract relevant information from /manifest; the preliminary > for '--export-manifest'. :-) Perhaps you are thinking of Pierre's script here? https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00154.html Cheers, ------_=_5d26088f44fa7d39163a7b2b_=_-- ------_=_1f7120bf0f910e7738add8ee_=_ Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYIADUWIQQ7FdZn/PDWvxE6cmR2pStZ7i7CgQUCXudIjBccZWxhZXh1b3Rl ZUB3aWxzb25iLmNvbQAKCRB2pStZ7i7Cgb9gAP9KkHIBH1tG2oE/5TYxYtaLtr/6 NCkL2dr7GTS+YRu7TQEArBqk6r7WyY9L/57gnIdUhSJ375P851C0Zqo4YOVn+gg= =92Wa -----END PGP SIGNATURE----- ------_=_1f7120bf0f910e7738add8ee_=_--