From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Paul Schmidt Subject: Re: proposal: (define (find-guix-packages list-of-names) ... ) Date: Fri, 20 Nov 2015 19:21:51 +0100 Message-ID: <20151120192151.4317281d@gmx.net> References: <56444BFC.70800@gmx.net> <87pozbroes.fsf@gnu.org> <5648F83C.8010302@gmx.net> <87ziye6qrb.fsf@gnu.org> <564A2F11.3000602@gmx.net> <877flhbtg7.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/JfrNJga6B6LikKh=D.PnCEO" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:59706) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZzqK1-0005Y1-NS for guix-devel@gnu.org; Fri, 20 Nov 2015 13:22:10 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZzqJy-0006C8-Hk for guix-devel@gnu.org; Fri, 20 Nov 2015 13:22:09 -0500 In-Reply-To: <877flhbtg7.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?B?Q291cnTDqHM=?= Cc: guix-devel@gnu.org --MP_/JfrNJga6B6LikKh=D.PnCEO Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline On Mon, 16 Nov 2015 21:06:00 +0100 ludo@gnu.org (Ludovic Court=C3=A8s) wrote: > Sure. I think we would need a new section for (gnu packages), maybe > =E2=80=9CDistribution API=E2=80=9D under =E2=80=9CGNU Distribution=E2=80= =9D? It would describe > =E2=80=98fold-packages=E2=80=99, =E2=80=98specification->package=E2=80=99= , and so on. Let's start smaller :) [I'm still fighting with emacs - I gave it many=20 chances over the years, but we'll never find true happy puppies' love - and a few other things...] --snip diff --git a/doc/guix.texi b/doc/guix.texi index 3b6955c..32bedd7 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -5482,6 +5482,25 @@ above, such as @code{host-name} and @code{bootloader= }, are mandatory. Others, such as @code{packages} and @code{services}, can be omitted, in which case they get a default value. =20 +The attentive reader might have noticed that the @code{tcpdump} package +is defined in the @code{gnu packages admin} module. While it is generally +encouraged to install packages in users' profiles it might be +necessary to install a few more packages in the base system. Maintaining +the list of used modules (and figuring out which are the correct +ones) can become a burden and error prone. But the system configuration +is a lisp program, so we can make use of the power of lisp to automate +this task. The @code{gnu packages} module provides the +@code{specification->package} procedure which can help us here: + +@lisp + ;; Globally-installed packages. + (packages + (append + (map (specification->package + `("tcpdump" "emacs" "htop" "tmux"))) + %base-packages)) +@end lisp + @vindex %base-packages The @code{packages} field lists packages that will be globally visible on the system, for all user --snip --MP_/JfrNJga6B6LikKh=D.PnCEO Content-Type: application/octet-stream; name=guix.texi.diff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=guix.texi.diff ZGlmZiAtLWdpdCBhL2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4IDNiNjk1NWMu LjMyYmVkZDcgMTAwNjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIvZG9jL2d1aXgudGV4aQpA QCAtNTQ4Miw2ICs1NDgyLDI1IEBAIGFib3ZlLCBzdWNoIGFzIEBjb2Rle2hvc3QtbmFtZX0gYW5k IEBjb2Rle2Jvb3Rsb2FkZXJ9LCBhcmUgbWFuZGF0b3J5LgogT3RoZXJzLCBzdWNoIGFzIEBjb2Rl e3BhY2thZ2VzfSBhbmQgQGNvZGV7c2VydmljZXN9LCBjYW4gYmUgb21pdHRlZCwgaW4KIHdoaWNo IGNhc2UgdGhleSBnZXQgYSBkZWZhdWx0IHZhbHVlLgogCitUaGUgYXR0ZW50aXZlIHJlYWRlciBt aWdodCBoYXZlIG5vdGljZWQgdGhhdCB0aGUgQGNvZGV7dGNwZHVtcH0gcGFja2FnZQoraXMgZGVm aW5lZCBpbiB0aGUgQGNvZGV7Z251IHBhY2thZ2VzIGFkbWlufSBtb2R1bGUuIFdoaWxlIGl0IGlz IGdlbmVyYWxseQorZW5jb3VyYWdlZCB0byBpbnN0YWxsIHBhY2thZ2VzIGluIHVzZXJzJyBwcm9m aWxlcyBpdCBtaWdodCBiZQorbmVjZXNzYXJ5IHRvIGluc3RhbGwgYSBmZXcgbW9yZSBwYWNrYWdl cyBpbiB0aGUgYmFzZSBzeXN0ZW0uIE1haW50YWluaW5nCit0aGUgbGlzdCBvZiB1c2VkIG1vZHVs ZXMgKGFuZCBmaWd1cmluZyBvdXQgd2hpY2ggYXJlIHRoZSBjb3JyZWN0CitvbmVzKSBjYW4gYmVj b21lIGEgYnVyZGVuIGFuZCBlcnJvciBwcm9uZS4gQnV0IHRoZSBzeXN0ZW0gY29uZmlndXJhdGlv bgoraXMgYSBsaXNwIHByb2dyYW0sIHNvIHdlIGNhbiBtYWtlIHVzZSBvZiB0aGUgcG93ZXIgb2Yg bGlzcCB0byBhdXRvbWF0ZQordGhpcyB0YXNrLiBUaGUgQGNvZGV7Z251IHBhY2thZ2VzfSBtb2R1 bGUgcHJvdmlkZXMgdGhlCitAY29kZXtzcGVjaWZpY2F0aW9uLT5wYWNrYWdlfSBwcm9jZWR1cmUg d2hpY2ggY2FuIGhlbHAgdXMgaGVyZToKKworQGxpc3AKKyAgOzsgR2xvYmFsbHktaW5zdGFsbGVk IHBhY2thZ2VzLgorICAocGFja2FnZXMKKyAgICAgKGFwcGVuZAorICAgICAgICAobWFwIChzcGVj aWZpY2F0aW9uLT5wYWNrYWdlCisgICAgICAgICAgICAgICAgYCgidGNwZHVtcCIgImVtYWNzIiAi aHRvcCIgInRtdXgiKSkpCisgICAgICAgICViYXNlLXBhY2thZ2VzKSkKK0BlbmQgbGlzcAorCiBA dmluZGV4ICViYXNlLXBhY2thZ2VzCiBUaGUgQGNvZGV7cGFja2FnZXN9IGZpZWxkIGxpc3RzCiBw YWNrYWdlcyB0aGF0IHdpbGwgYmUgZ2xvYmFsbHkgdmlzaWJsZSBvbiB0aGUgc3lzdGVtLCBmb3Ig YWxsIHVzZXIK --MP_/JfrNJga6B6LikKh=D.PnCEO--