~ruther/guix-local

4f62d8d6c74d1d9cec049cb5e22452b8d78655f5 — Ludovic Courtès 12 years ago 78ed003
gnu: Allow a plain list of packages in 'operating-system'.

* gnu/system.scm (union): Allow (PACKAGE OUTPUT), (PACKAGE), and
  PACKAGE.
  (<operating-system>)[packages]: Make the default a list of package?
  objects.
* gnu/system/vm.scm (%demo-operating-system): Likewise.  Add a few
  packages.
2 files changed, 29 insertions(+), 22 deletions(-)

M gnu/system.scm
M gnu/system/vm.scm
M gnu/system.scm => gnu/system.scm +10 -8
@@ 78,12 78,14 @@
                          (members '("guest"))))))

  (packages operating-system-packages             ; list of (PACKAGE OUTPUT...)
            (default `(("coreutils" ,coreutils)
                       ("grep" ,grep)
                       ("guile" ,guile)
                       ("bash" ,bash)
                       ("dmd" ,(@ (gnu packages dmd) dmd))
                       ("guix" ,guix))))
            (default (list coreutils              ; or just PACKAGE
                           grep
                           sed
                           findutils
                           guile
                           bash
                           (@ (gnu packages dmd) dmd)
                           guix)))

  (timezone operating-system-timezone)            ; string
  (locale   operating-system-locale)              ; string


@@ 134,11 136,11 @@ input tuples."
  (mlet %store-monad
      ((inputs (sequence %store-monad
                         (map (match-lambda
                               ((name (? package? p))
                               ((or ((? package? p)) (? package? p))
                                (mlet %store-monad
                                    ((drv (package->derivation p system)))
                                  (return `(,name ,drv))))
                               ((name (? package? p) output)
                               (((? package? p) output)
                                (mlet %store-monad
                                    ((drv (package->derivation p system)))
                                  (return `(,name ,drv ,output))))

M gnu/system/vm.scm => gnu/system/vm.scm +19 -14
@@ 25,9 25,11 @@
  #:use-module ((gnu packages base)
                #:select (%final-inputs
                          guile-final gcc-final glibc-final
                          ld-wrapper binutils-final
                          coreutils findutils grep sed))
  #:use-module (gnu packages guile)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages less)
  #:use-module (gnu packages qemu)
  #:use-module (gnu packages parted)
  #:use-module (gnu packages zile)


@@ 416,20 418,23 @@ such as /etc files."
                 (uid 1000) (gid 100)
                 (comment "Guest of GNU")
                 (home-directory "/home/guest"))))
   (packages `(("coreutils" ,coreutils)
               ("bash" ,bash)
               ("guile" ,guile-2.0)
               ("dmd" ,dmd)
               ("gcc" ,gcc-final)
               ("libc" ,glibc-final)
               ("inetutils" ,inetutils)
               ("findutils" ,findutils)
               ("grep" ,grep)
               ("sed" ,sed)
               ("procps" ,procps)
               ("psmisc" ,psmisc)
               ("zile" ,zile)
               ("guix" ,guix)))))
   (packages (list coreutils
                   bash
                   guile-2.0
                   dmd
                   gcc-final
                   ld-wrapper                    ; must come before BINUTILS
                   binutils-final
                   glibc-final
                   inetutils
                   findutils
                   grep
                   sed
                   procps
                   psmisc
                   zile
                   less
                   guix))))

(define* (system-qemu-image #:optional (os %demo-operating-system))
  "Return the derivation of a QEMU image of the GNU system."