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 mNgmGHoo7F7lOQAA0tVLHw (envelope-from ) for ; Fri, 19 Jun 2020 02:52:42 +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 oFLlE3oo7F5gfAAAbx9fmQ (envelope-from ) for ; Fri, 19 Jun 2020 02:52:42 +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 9768D940655 for ; Fri, 19 Jun 2020 02:52:41 +0000 (UTC) Received: from localhost ([::1]:37022 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jm78y-0007ic-E3 for larch@yhetil.org; Thu, 18 Jun 2020 22:52:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:49598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jm78o-0007hz-Cx for guix-devel@gnu.org; Thu, 18 Jun 2020 22:52:30 -0400 Received: from m42-5.mailgun.net ([69.72.42.5]:14173) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jm78h-0008Fv-5m for guix-devel@gnu.org; Thu, 18 Jun 2020 22:52:30 -0400 DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=mg.wilsonb.com; q=dns/txt; s=krs; t=1592535147; h=Content-Type: MIME-Version: Message-Id: In-Reply-To: References: Subject: From: Cc: To: Date: Sender; bh=ST9kVb71F+UNWM2Ino34XFEXidgUJ6yT7MaJcFwF9xg=; b=NVMZpNvlN1yYL/g8K+d3P3vc4pAY0Xe9Ow0YRePHUlj2HqwsTJuUWbPiR5q23Qkg+R1wW696 dTgkt7r3XB3VhgHhOIdzqY3nSFxU/OwIVeY6VSyKqz+fNUYkZ6nrbgS/Rsq254+KZFSqrcdB 1m+8NT9wQUBQmslUfj9F3LAf4MhPp4Alse8ZgymgI93V/7QVXYfvqiP1jqlTkmFuSryZluuZ Dm1JxgcHOBRBSrXdsTzeAdXylPhc1pHPNx/gWLIoWdTiWmUkLjvOsMx6eG3AaH9MojOqHjoW n8nL1WcISBwYwDCxjmoAk6Ux1v23i8aITP3D1oKfoxes1pxwLn5aGA== 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-n15.prod.us-west-2.postgun.com with SMTP id 5eec28605866879c76969f82 (version=TLS1.3, cipher=TLS_AES_128_GCM_SHA256); Fri, 19 Jun 2020 02:52:16 GMT Received: from localhost (KD111239198099.au-net.ne.jp [111.239.198.99]) by wilsonb.com (Postfix) with ESMTPSA id C3818A2C18; Fri, 19 Jun 2020 02:52:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=wilsonb.com; s=201703; t=1592535134; bh=ST9kVb71F+UNWM2Ino34XFEXidgUJ6yT7MaJcFwF9xg=; h=Date:To:Cc:From:Subject:References:In-Reply-To:From; b=tq/Wwa3DlrAWnRyR5ryr90Wl0KxkkPPq6Jt0pfpJYO0vS8eZ0PPIRBOndQV5zKUKB v8nBQp6iwJz6FWpcLoTidoD3T9oC3jFk69w41+rPQeJpqfebcn4xIVyZj6YU9Xz2SY VtGi5QG19hG60yeY2fOycFqPpC1PNZteNgJ7dcAQxEGNlc0dk54IklR2+R2z5SEgV8 HONsL3qduG1tn7VJDO7zpdHv4gUnx8HPXNHlFB6WIZ5xoCBMEjyFXNf63V91XwzVUi LvYcdjSIbK+cXzg1BDAbaTHhxFbfcmp2Kr2+NBHxUGU8RBCFjBZ+cLDPK6b3YRKVA5 fMt1/7YJvWXHmuPedYaWsngqzBuqxE+AUywEjLcNLSselRpiMRRDjtOamQZlqitiHj gamIyOzr6yu3JojUWcYa+FWHQfb1xWYMiKApa9TwURHWlOKpqvZph09nTeywVblFmn HDS1BAPPaiWs2l68h2xPuejG5F6XCylFzVvqqn97u0/O1FpuIGBckYJ/WYZTECpRA4 7C8BzwE99BhhIP3PWTsltdH5w1Q0gmsH1Ra+XHhoBxvTL8nLAvnz+2rnQOfb8ivhLo nQY//tm5pPo/Na94q7HD/v7m09lp47kdM69FczjqmpuV+1wYoAD1NfY2EXj5BwiLSl F8fE3eXCnY1TXqyE04NVJhV4= Date: Fri, 19 Jun 2020 11:52:10 +0900 To: zimoun Cc: Ludovic =?UTF-8?Q?Court=C3=A8s?= , Pierre Neidhardt , guix-devel@gnu.org From: elaexuotee@wilsonb.com Subject: Re: how to "guix pack" a profile? References: <338KGSFKQGP1E.23382XUCMS8T3@wilsonb.com> <87v9juwvn0.fsf@gnu.org> <87d062ne8a.fsf@ambrevar.xyz> <87y2opu0ue.fsf@gnu.org> <86lfko92fj.fsf@gmail.com> <871rmfwdfp.fsf@gnu.org> <2AU8F0YU6YV9A.3KVDEJ754D654@wilsonb.com> <86sgevqg8q.fsf@gmail.com> <268B906X3RZH5.3NHG3ABUCOVPN@wilsonb.com> <861rmexgwf.fsf@gmail.com> <35VODTGT3A8OP.2ZYCBD56EYVPN@wilsonb.com> <861rmcvssb.fsf@gmail.com> In-Reply-To: <861rmcvssb.fsf@gmail.com> Message-Id: <35IQNXNGMD4MQ.2U3WRPXMLCVVA@wilsonb.com> User-Agent: mblaze/0.7 MIME-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"; boundary="----_=_64756b5540a32757742fd301_=_" 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/18 22:52:22 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=NVMZpNvl; dkim=pass header.d=wilsonb.com header.s=201703 header.b=tq/Wwa3D; 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: -2.81 X-TUID: SjoaQcDuzpg3 This is a multipart message in MIME format. ------_=_64756b5540a32757742fd301_=_ MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_10aefd6f63ea2fe771235a1e_=_" This is a multipart message in MIME format. ------_=_10aefd6f63ea2fe771235a1e_=_ Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Ludo, Pierre, would you mind commenting? Starting to doubt my sanity here. > Well, from my understanding, any profile point to /gnu/store/-profi= le. Exactly. This is something we both know. I feel like we are not communicati= ng well with each other. You emphasize that declarative package management with "manifest.scm" is th= e way to go. I agree but wanted to point out that $ guix package -m manifest.scm produces a different /gnu/store/-profile, depending on when it's run = (or more precisely, depending on which channel commits guix resolves for the invocation). You know that, of course, but the point I try to make is that "manifest.scm= " and "channels.scm" are *not enough* to uniquely determine a specific /gnu/store/-profile. We need to separate out the concepts of "declara= tive profile management" and "deterministic profile regeneration." What Pierre (and others?) initially proposed---what I am re-proposing---is = that we put a blob of Guile into the profiles that is capable of uniquely and completely generating the profile where it resides. > For which use case? The examples I gave in my previous email... I am not sure what's getting miscommunicated here. > Well, let say there is a profile which could be a mess and I only see > two usages currently uncovered: >=20 > 1. create an environment based on this profile; either to temporarily > extend it (which is AFAIK already more or less covered), either to > isolate it, > 2. pack it for sharing with your colleague. Sure, about the only new feature now would be to guix pack an existing prof= ile. However, it's not too hard to think of potential uses or features users may= want in the future: 1. Composable profiles, 2. Sharing "light" profiles buy sending only the "recipe.scm" instead of an= entire container. 3. guix archive --manifest 4. guix profile --manifest-from-recipe /recipe.scm The last one there is intended to be the tool for "migrate from imperative = to declarative" user profile management, starting from a given profile. > What you describe here is exactly what Pierre and other have proposed. > And the work-to-do is to prototype the format of what you called > "recipe.scm", which means equivalently in the previous emails change the > format of /manifest. I agree. However, in previous emails I have tried to make a rebuttal to Lud= o's argument than the best we can do is *approximate* a manifest.scm. See https://lists.gnu.org/archive/html/guix-devel/2020-02/msg00098.html: >>> (Ludo) >>> As far as faithfulness is concerned, we should also keep in mind that w= e >>> don=E2=80=99t always have all the information needed to reconstruct wha= t=E2=80=99s in a >>> profile. For example, we lack information about the package >>> transformation options that were used (if any), >> >> (Pierre) >> Like `--with-input'? >> I didn't think of this. Can't we extend the format then to include all >> transformation options, with future-proof provisions? > > (Ludo) > We could store package transformations as manifest entry properties. > > However, that=E2=80=99ll be an approximation: the exact implementation of= > =E2=80=98--with-input=E2=80=99, for instance, can vary over time. However, with `time-machine' and a given `guix environment' or `guix profil= e' invocation, we are able to deterministically resolve a /gnu/store/-profile, no? Better yet, this is in a future-proof way, n= o? If that is so, then why not canonify this profile recipe in guile code inst= ead of what is needed now: guile + bash? What am I missing here? Just to be clear, I would be more than thrilled with a --from-profile optio= n to `guix pack'. However, I am trying to make a case that "first class profiles= " is both feasible and may pay back more in maintenance cost than it consumes= =2E ------_=_10aefd6f63ea2fe771235a1e_=_-- ------_=_64756b5540a32757742fd301_=_ Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iI0EABYIADUWIQQ7FdZn/PDWvxE6cmR2pStZ7i7CgQUCXuwoUBccZWxhZXh1b3Rl ZUB3aWxzb25iLmNvbQAKCRB2pStZ7i7CgasHAP4kfp/O2sFIHTLNWbfU2Whn8N6+ o0RNkNU4x9+SJnWmkwD9Hv5YvKgreLZMfZ2qDSnKJHS95eEJMMe1TncFmcBskgI= =ttvP -----END PGP SIGNATURE----- ------_=_64756b5540a32757742fd301_=_--