From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Reproducible profiles Date: Sun, 17 May 2015 22:22:06 +0200 Message-ID: <877fs7j6oh.fsf@gnu.org> References: <87pp62iqmn.fsf@fsf.org> <87egmgu609.fsf@gnu.org> <87zj5380v4.fsf@fsf.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:43124) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yu54e-0006xi-NF for guix-devel@gnu.org; Sun, 17 May 2015 16:22:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Yu54b-0006QB-Em for guix-devel@gnu.org; Sun, 17 May 2015 16:22:12 -0400 Received: from hera.aquilenet.fr ([2a01:474::1]:34918) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yu54a-0006Pt-Oo for guix-devel@gnu.org; Sun, 17 May 2015 16:22:09 -0400 In-Reply-To: <87zj5380v4.fsf@fsf.org> (David Thompson's message of "Sun, 17 May 2015 15:23:11 -0400") 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-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: David Thompson Cc: guix-devel@gnu.org David Thompson skribis: > Ludovic Court=C3=A8s writes: [...] >> What about instead requiring people to return a manifest: >> >> (use-modules (guix profiles)) >> (use-package-modules base emacs guile) >> >> (manifest (cons (package->manifest-entry gcc-toolchain "debug") >> (map package->entry >> (list gcc-toolchain emacs guile-2.0)))) >> >> That means we=E2=80=99ll have to document (guix profiles). >> >> It=E2=80=99s more verbose than what you suggest, though. If you insist = ;-), we >> could allow a list of packages instead of a manifest, though I=E2=80=99d= prefer >> not to do that. > > Expecting a manifest always sounds good. How about adding a convenience > procedure for the (map package->entry ...) pattern since I think it will > be the most common thing users will want to do? > > (packages->manifest (list guile-2.0 guile-opengl guile-sdl)) > > It could even support using other outputs like in that other example I > gave: > > (packages->manifest > (list guile-2.0 > guile-opengl > guile-sdl > `(,gcc-toolchain "debug")) Sounds good to me. (FWIW I=E2=80=99m not fond of the `(,gcc-toolchain "debug") notation that we also use in packages, but it has the advantage of being concise.) >>> Below is a naive patch that does the job, but is unideal because it >>> doesn't do some nice things like display the diff between generations >>> before building. >> >> For that you would need a procedure to infer the manifest transaction: >> >> (manifests->transaction m1 m2) >> ;; returns a >> >> and then that could be passed to =E2=80=98show-manifest-transaction=E2= =80=99. >> >> However, I=E2=80=99m not sure it=E2=80=99s very useful. Perhaps it woul= d be enough to >> write =E2=80=9Cinstalling new manifest from foo.scm with 42 entries.=E2= =80=9D >> WDYT? > > Okay, I'll do that instead. I would be interested in seeing what has > changed when I apply a new manifest, but it's probably not worth the > effort right now. Yeah. And note that this can always be done from the wonderful guix.el (info "(guix) Emacs List Buffer"). Thanks, Ludo=E2=80=99.