From mboxrd@z Thu Jan 1 00:00:00 1970 From: YOANN P Subject: RE: ~/.guix-profile/manifest usage with "guix package -m [manifest]" / "guix pack -m [manifest]" etc.. Date: Mon, 1 Oct 2018 22:40:09 +0000 Message-ID: References: <87h8ic36ix.fsf@gnu.org>, Mime-Version: 1.0 Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:39941) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1g76rZ-0001zK-5e for guix-devel@gnu.org; Mon, 01 Oct 2018 18:40:28 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1g76rV-0004z6-W2 for guix-devel@gnu.org; Mon, 01 Oct 2018 18:40:25 -0400 In-Reply-To: Content-Language: fr-FR 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+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: George Clemmer , =?Windows-1252?Q?Ludovic_Court=E8s?= Cc: "guix-devel@gnu.org" >De : George Clemmer =0A= >=0A= >>Ludovic Court=E8s writes:=0A= >=0A= >> Hello,=0A= >>=0A= >> YOANN P skribis:=0A= >>=0A= >>> I was thinking than "~/.guix-profile/manifest" was a valid manifest fil= e due to his name, but it seems not that is the case from the error i've go= t=0A= >>>=0A= >>> https://pastebin.com/Z7h2t5mL=0A= >>>=0A= >>> After some search , i've finally understand that the instantiated profi= le couldn't be used as source profile for "guix package -m" etc... due to t= he same words despite use case and is a bit confusing=0A= >>=0A= >> I agree it=92s a bit confusing. =A0The manual does make it clear that -m= =0A= >> expects source code that evaluates to a manifest object, though.=0A= >>=0A= >>> https://gnunet.org/bot/log/guix/2016-05-27#T1040380=0A= >>>=0A= >>> It will be really convenient to only have the instantiate profile to ea= sily maintain it in a vcs system.=0A= >>>=0A= >>> Despite what ludo said in 2016 on IRC, i didn't see those options yet.= =0A= >>> Did i missed them ?=0A= >>> If not implemented yet, any news about this feature ? :)=0A= >>=0A= >> No news I=92m afraid :-) but I=92ve opened an issue so we keep track of = it:=0A= >>=0A= >> =A0 https://issues.guix.info/issue/32844=0A= =0A= Hi George,=0A= =0A= >Hi Ludo=92,=0A= >=0A= >Your bug doesn't capture some other manifest issues ...=0A= >=0A= >"~/.guix-profile/manifest" and 'guix package --manifest=3DFILE' use the=0A= >same term/filename for markedly different things and the doc is silent=0A= >on the distinction. While "~/.guix-profile/manifest" may be internal to=0A= >Guix, users will inevitably trip across it and be confused (as YOANN did= =0A= >here, and I did a year ago).=0A= >=0A= >We might avoid confusion and make documentation easier by renaming one=0A= >of these. Consider ...=0A= >=0A= >We are using "~/.guix-profile/manifest" in a way that is consistent with= =0A= >a common use, e.g., shipping manifest, which specifies information not=0A= >in the associated order and at a level of detail that can only be=0A= >determined at shipment (e.g. serial number).=0A= >=0A= >Our use of manifest in 'guix package --manifest=3DFILE' is rather less=0A= >intuitive. In fact this FILE is more like an order than a manifest,=0A= >IMO. As the doc says, [the manifest] 'FILE must return a =93manifest=94=0A= >object, which is roughly a list of packages'. If we were to rename this=0A= >a "package-list" or "package-spec", this would be more intuitive and=0A= >self-explanatory (at least to me, an English speaker), and make the doc=0A= >easier to write/understand.=0A= >=0A= >YOANN hit an error when trying to do 'guix package -m=0A= >~/.guix-profile/manifest'. Why would one want to do this? Maybe to=0A= >(re)produce a configuration previously reached by a series of 'guix=0A= >package -i' operations?=0A= >=0A= =0A= Exactly that use case.=0A= As said, i'm looking a way to have "a snapshot" of my profile to versioning= it and be able to reproduce the exact same environnement associated if nee= ded.=0A= This way we could easily share the exact same environnement in dev, desktop= case etc...=0A= =0A= I don't know the utility of the instantiate manifest and the relations with= it, but more precisly, this is how i had imaginated the instantiate manife= st file at first and now how i would like to see / use it :=0A= =0A= - Keep the informations who can only be determined at shipment=0A= - All the informations necessary to build the environneent are there too an= d would override on the fly the .scm system definitions for the pakages lis= t inside the profile. This way if the Guix system scm files was updated, gu= ix would be always able to build the profile.=0A= =0A= I don't know the implications of this feature, but Guix definilty need it i= f it didn't already exist :)=0A= =0A= >In most situations, rather than a "~/.guix-profile/manifest" file, one=0A= >wants to use a 'guix package --manifest=3DFILE', since this is more=0A= >durable over time and easier to maintain (e.g. in SCC).=0A= >=0A= =0A= and please, even be able to read it from /dev/stdin.=0A= it seems not available at now and is one of the last things i'm missing to = be able to install a manifest through SSH.=0A= My use case is to be able to install a profile on a rootless computer throu= gh SSH if needed.=0A= I am today able to install some packages on a computer without root access = and without guix installed in this way :=0A= =0A= ssh guixpack@XXX.XXX.XXX.XXX -- '-R -S /opt/bin=3D/bin -S /etc=3Detc hello'= | tar -xzf -=0A= =0A= cloud_init.sh (debian stretch) : https://gist.github.com/rockandska/52d1a76= b87e1e7bd6ce137c4ddab4b11=0A= =0A= and what i would like to achieve is to be able to pipe a manifest from the = rootless computer to the remote Guix server like this :=0A= =0A= /tmp $ cat local_manifest | ssh guixpack@XXX.XXX.XXX.XXX -- '-R -m /dev/std= in -S /opt/bin=3D/bin -S /etc=3Detc hello' | tar -xzf -=0A= =0A= Not sure about the security as is,not sure if it is the best way to do it t= oo, but i had fun to test it and i would like to test it as an "anonymous" = service for fun too ^^=0A= =0A= >So, IMO, it would be useful to have something like ...=0A= >=0A= >guix package --manifest-from-profile -p ~/.guix-profile > FILE=0A= >=0A= >... which returns a "minimally specified" FILE that allows 'guix package= =0A= >--manifest=3DFILE' to reproduce "~/.guix-profile".=0A= >=0A= >- George=0A= =0A= Yoann=