From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?B?5a6L5paH5q2m?= Subject: Re: Reproducible profiles Date: Sat, 16 May 2015 19:35:18 +0800 Message-ID: <87a8x4dabt.fsf@gmail.com> References: <87pp62iqmn.fsf@fsf.org> <87egmgu609.fsf@gnu.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]:55741) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YtaMd-0006gz-3u for guix-devel@gnu.org; Sat, 16 May 2015 07:34:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YtaMc-0000P4-69 for guix-devel@gnu.org; Sat, 16 May 2015 07:34:43 -0400 In-Reply-To: <87egmgu609.fsf@gnu.org> 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: Ludovic =?utf-8?Q?Court=C3=A8s?= , David Thompson Cc: guix-devel@gnu.org Ludovic Court=C3=A8s writes: > David Thompson skribis: > >> Lately I've been wanting to version control the list of packages that I >> install in my user profile so that I can sync it amongst many machines. >> So, I took a stab at adding a new '--apply' option to 'guix package' >> that reads in a package list from a Scheme file and creates a new >> generation of the profile with only those packages are installed. >> Here's an example configuration: >> >> (use-modules (gnu)) >> (use-package-modules base less guile emacs admin ruby mail pumpio ma= n) >>=20=20=20=20=20 >> (list ruby >> coreutils >> less >> man-db >> notmuch >> guile-2.0 >> emacs >> dmd >> offlineimap >> pumpa) > > Yes, that sounds very useful. > > As usual though, there=E2=80=99s the issue of multiple-output packages. = The > above snippet is nice, but doesn=E2=80=99t allow you to specify a particu= lar > output of a package. > > 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. > > WDYT? > +1 for return 'manifest', in a same way as 'operating-system'. And how about use specification instead of package, so I can: (manifest (map package-specification->manifest-entry '("emacs" "font-adobe-source-han-sans:cn")))