unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* [PATCH] enable debug symbols
@ 2017-02-09 19:04 David Craven
  2017-02-09 19:04 ` [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub) David Craven
                   ` (7 more replies)
  0 siblings, 8 replies; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

---
 gnu/packages/base.scm   | 1 +
 gnu/packages/glib.scm   | 3 ++-
 gnu/packages/gnome.scm  | 1 +
 gnu/packages/gtk.scm    | 2 +-
 gnu/packages/webkit.scm | 3 ++-
 5 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index c75e03828..b50dd57cc 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -67,6 +67,7 @@
                (base32
                 "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
     (build-system gnu-build-system)
+    (outputs '("out" "debug"))
     (synopsis "Hello, GNU world: An example GNU package")
     (description
      "GNU Hello prints the message \"Hello, world!\" and then exits.  It
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 83afa38ae..554ca60d0 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -150,7 +150,8 @@ shared NFS home directories.")
    (build-system gnu-build-system)
    (outputs '("out"           ; everything
               "bin"           ; glib-mkenums, gtester, etc.; depends on Python
-              "doc"))         ; 20 MiB of GTK-Doc reference
+              "doc"           ; 20 MiB of GTK-Doc reference
+              "debug"))
    (propagated-inputs
     `(("pcre" ,pcre))) ; in the Requires.private field of glib-2.0.pc
    (inputs
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 955ac610a..5e798713c 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3693,6 +3693,7 @@ work and the interface is well tested.")
               (sha256
                (base32
                 "0skdsma9rmq01703andigmpbdn2rl34y3lqny19a93v1ph3jb9qk"))))
+    (outputs '("out" "debug"))
     (build-system glib-or-gtk-build-system)
     (arguments
      ;; FIXME: tests run under Xvfb, but fail with:
diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 0a291370e..f3b001cef 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -661,7 +661,7 @@ application suites.")
               "0bqpx8825b1fdjmz14wq20zq58gq1yi1p5xjps8l6zqid8hmm9zb"))
             (patches (search-patches "gtk3-respect-GUIX_GTK3_PATH.patch"
                                      "gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch"))))
-   (outputs '("out" "bin" "doc"))
+   (outputs '("out" "bin" "doc" "debug"))
    (propagated-inputs
     `(("at-spi2-atk" ,at-spi2-atk)
       ("atk" ,atk)
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 474232236..a41b5c404 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -61,10 +61,11 @@
               (sha256
                (base32
                 "0v0hkvggxi38cdb3v672qwr0m0y3x2rmnwh8j3q28869li8d9shb"))))
+    (outputs '("out" "debug"))
     (build-system cmake-build-system)
     (arguments
      '(#:tests? #f ; no tests
-       #:build-type "Release" ; turn off debugging symbols to save space
+       #:build-type "Debug" ; turn off debugging symbols to save space
        #:configure-flags (list
                           "-DPORT=GTK"
                           (string-append ; uses lib64 by default
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub).
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-09 23:45   ` Marius Bakke
  2017-02-09 19:04 ` [PATCH] update epiphany David Craven
                   ` (6 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/grub.scm (grub): Add prefix.
---
 gnu/packages/grub.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index c6716a2f6..292d35373 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -24,7 +24,7 @@
   #:use-module (guix download)
   #:use-module (guix packages)
   #:use-module (guix utils)
-  #:use-module ((guix licenses) #:select (gpl3+))
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
   #:use-module (gnu packages flex)
@@ -122,7 +122,7 @@ then goes on to load the rest of the operating system.  As a multiboot
 bootloader, GRUB handles the presence of multiple operating systems installed
 on the same computer; upon booting the computer, the user is presented with a
 menu to select one of the installed operating systems.")
-    (license gpl3+)
+    (license license:gpl3+)
     (properties '((cpe-name . "grub2")))))
 
 (define-public grub-efi
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH] update epiphany
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
  2017-02-09 19:04 ` [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub) David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-10  0:31   ` Mark H Weaver
  2017-02-09 19:04 ` [PATCH] update libdrm David Craven
                   ` (5 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

---
 gnu/packages/gnome.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 955ac610a..e6dd2e306 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3684,7 +3684,7 @@ work and the interface is well tested.")
 (define-public epiphany
   (package
     (name "epiphany")
-    (version "3.22.4")
+    (version "3.22.5")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -3692,7 +3692,7 @@ work and the interface is well tested.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "0skdsma9rmq01703andigmpbdn2rl34y3lqny19a93v1ph3jb9qk"))))
+                "0ib7z8x65gcr6vc6709df1rngcfrp3xn5ywqlrnc2xrsynrhghz9"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      ;; FIXME: tests run under Xvfb, but fail with:
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH] update libdrm
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
  2017-02-09 19:04 ` [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub) David Craven
  2017-02-09 19:04 ` [PATCH] update epiphany David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-09 19:12   ` Marius Bakke
  2017-02-10  0:32   ` Mark H Weaver
  2017-02-09 19:04 ` [PATCH 2/5] gnu: Add seabios David Craven
                   ` (4 subsequent siblings)
  7 siblings, 2 replies; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

---
 gnu/packages/xdisorg.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ee83934ca..42fa0cc1b 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -273,7 +273,7 @@ rasterisation.")
 (define-public libdrm
   (package
     (name "libdrm")
-    (version "2.4.68")
+    (version "2.4.75")
     (source
       (origin
         (method url-fetch)
@@ -283,7 +283,7 @@ rasterisation.")
                ".tar.bz2"))
         (sha256
          (base32
-          "1px91j6imaaq2fy8ksvgldmv0cdz3w379jqiciqvqa99jajxjjsv"))
+          "0kq5hmck0gq7b29fr8jp94njc7jpkpbyws12s63w4b21xw750nid"))
         (patches (search-patches "libdrm-symbol-check.patch"))))
     (build-system gnu-build-system)
     (inputs
@@ -291,6 +291,8 @@ rasterisation.")
         ("libpthread-stubs" ,libpthread-stubs)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:configure-flags '("--enable-install-test-programs")))
     (home-page "http://dri.freedesktop.org/wiki/")
     (synopsis "Direct rendering userspace library")
     (description "The Direct Rendering Infrastructure, also known as the DRI,
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 2/5] gnu: Add seabios.
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
                   ` (2 preceding siblings ...)
  2017-02-09 19:04 ` [PATCH] update libdrm David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-09 23:55   ` Marius Bakke
  2017-02-09 19:04 ` [PATCH 3/5] gnu: Add ovmf David Craven
                   ` (3 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/grub.scm (seabios): New variable.
---
 gnu/packages/grub.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 292d35373..a775e213c 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -33,6 +33,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages python)
   #:use-module (gnu packages qemu)
   #:use-module (gnu packages man)
   #:use-module (gnu packages texinfo)
@@ -150,3 +151,40 @@ menu to select one of the installed operating systems.")
                       (string-append (assoc-ref inputs "efibootmgr")
                                      "/sbin/efibootmgr")))
                    #t)))))))))
+
+(define-public seabios
+  (package
+    (name "seabios")
+    (version "1.10.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://code.coreboot.org/p/seabios/downloads/get/"
+                                  "seabios-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1jyjl719drnl1v0gf0l5q6qjjmkyqcqkka6s28dfdi0yqsxdsqsh"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("python-2" ,python-2)))
+    (arguments
+     `(#:tests? #f ; No check target.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((gcc (assoc-ref inputs "gcc")))
+               (setenv "CC" (string-append gcc "/bin/gcc")))
+             #t))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (fmw (string-append out "/share/firmware")))
+               (mkdir-p fmw)
+               (copy-file "out/bios.bin" (string-append fmw "/bios.bin"))))))))
+    (home-page "https://www.seabios.org/SeaBIOS")
+    (synopsis "x86 BIOS implementation")
+    (description "SeaBIOS is an open source implementation of a 16bit x86 BIOS.
+SeaBIOS can run in an emulator or it can run natively on X86 hardware with the
+use of coreboot.")
+    ;; Dual licensed.
+    (license (list license:gpl3+ license:lgpl3+))))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 3/5] gnu: Add ovmf.
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
                   ` (3 preceding siblings ...)
  2017-02-09 19:04 ` [PATCH 2/5] gnu: Add seabios David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-10  0:15   ` Marius Bakke
  2017-02-09 19:04 ` [PATCH 4/5] gnu: Add syslinux David Craven
                   ` (2 subsequent siblings)
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/grub.scm (ovmf): New variable.
---
 gnu/packages/grub.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index a775e213c..4da01ceb9 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -22,11 +22,14 @@
 
 (define-module (gnu packages grub)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages bison)
@@ -188,3 +191,82 @@ SeaBIOS can run in an emulator or it can run natively on X86 hardware with the
 use of coreboot.")
     ;; Dual licensed.
     (license (list license:gpl3+ license:lgpl3+))))
+
+;; OVMF is part of the edk2 source tree.
+(define edk2-commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
+(define edk2-version (git-version "20170116" "1" edk2-commit))
+(define edk2-origin
+  (origin
+    (method git-fetch)
+    (uri (git-reference
+          (url "https://github.com/tianocore/edk2")
+          (commit edk2-commit)))
+    (file-name (git-file-name "edk2" edk2-version))
+    (sha256
+     (base32
+      "1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm948b"))))
+
+(define-public ovmf
+  (package
+    (name "ovmf")
+    (version edk2-version)
+    (source edk2-origin)
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("acpica" ,acpica)
+       ("nasm" ,nasm)
+       ("python-2" ,python-2)
+       ("util-linux" ,util-linux)))
+    (arguments
+     `(#:tests? #f ; No check target.
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda _
+             (let* ((cwd (getcwd))
+                    (tools (string-append cwd "/BaseTools"))
+                    (bin (string-append tools "/BinWrappers/PosixLike")))
+               (setenv "WORKSPACE" cwd)
+               (setenv "EDK_TOOLS_PATH" tools)
+               (setenv "PATH" (string-append (getenv "PATH") ":" bin))
+               (system* "bash" "edksetup.sh" "BaseTools")
+               (substitute* "Conf/target.txt"
+                 (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
+                 (("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n")
+                 (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
+                  (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
+                          (number->string (parallel-job-count)))))
+               ;; Build build support.
+               (setenv "BUILD_CC" "gcc")
+               (zero? (system* "make" "-C" (string-append tools "/Source/C"))))))
+         (add-after 'build 'build-ia32
+           (lambda _
+             (substitute* "Conf/target.txt"
+               (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n")
+               (("^ACTIVE_PLATFORM[ ]*=.*$")
+                "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n"))
+             (zero? (system* "build"))))
+         (add-after 'build 'build-x64
+           (lambda _
+             (substitute* "Conf/target.txt"
+               (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n")
+               (("^ACTIVE_PLATFORM[ ]*=.*$")
+                "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n"))
+             (zero? (system* "build"))))
+         (delete 'build)
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (fmw (string-append out "/share/firmware")))
+               (mkdir-p fmw)
+               (copy-file "Build/OvmfIa32/RELEASE_GCC49/FV/OVMF.fd"
+                          (string-append fmw "/ovmf_ia32.bin"))
+               (copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd"
+                          (string-append fmw "/ovmf_x64.bin")))
+             #t)))))
+    (supported-systems '("x86_64-linux" "i686-linux"))
+    (home-page "http://www.tianocore.org")
+    (synopsis "UEFI firmware for QEMU")
+    (description "OVMF is an EDK II based project to enable UEFI support for
+Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
+    (license license:expat)))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 4/5] gnu: Add syslinux.
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
                   ` (4 preceding siblings ...)
  2017-02-09 19:04 ` [PATCH 3/5] gnu: Add ovmf David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-10  1:18   ` Marius Bakke
  2017-02-09 19:04 ` [PATCH 5/5] gnu: Move (gnu packages grub) and (gnu packages u-boot) ... to (gnu packages bootloaders) David Craven
  2017-02-09 19:07 ` [PATCH] enable debug symbols David Craven
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/grub.scm (syslinux): New variable.
---
 gnu/packages/grub.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 54 insertions(+)

diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
index 4da01ceb9..2e692a100 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/grub.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qemu)
   #:use-module (gnu packages man)
@@ -270,3 +271,56 @@ use of coreboot.")
     (description "OVMF is an EDK II based project to enable UEFI support for
 Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
     (license license:expat)))
+
+(define-public syslinux
+  (let ((commit "bb41e935cc83c6242de24d2271e067d76af3585c"))
+    (package
+      (name "syslinux")
+      (version (git-version "6.04-pre" "1" commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/geneC/syslinux")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))))
+      (build-system gnu-build-system)
+      (native-inputs
+       `(("nasm" ,nasm)
+         ("perl" ,perl)
+         ("python-2" ,python-2)))
+      (inputs
+       `(("libuuid" ,util-linux)))
+      (arguments
+       `(#:tests? #f
+         #:test-target "unittest"
+         #:parallel-build? #f
+         #:make-flags
+         (list (string-append "BINDIR=" %output "/bin")
+               (string-append "SBINDIR=" %output "/sbin")
+               (string-append "LIBDIR=" %output "/lib")
+               (string-append "INCDIR=" %output "/include")
+               (string-append "DATADIR=" %output "/share")
+               (string-append "MANDIR=" %output "/share/man")
+               "PERL=perl"
+               "bios")
+         #:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'patch-files
+             (lambda _
+               (substitute* (find-files "." "Makefile.*|ppmtolss16")
+                 (("/bin/pwd") (which "pwd"))
+                 (("/bin/echo") (which "echo"))
+                 (("/usr/bin/perl") (which "perl")))
+               #t))
+           (delete 'configure)
+           (add-before 'build 'set-permissions
+             (lambda _
+               ;; Is read only because it's checked out with git.
+               (zero? (system* "chmod" "a+w" "utils/isohybrid.in")))))))
+      (home-page "http://www.syslinux.org")
+      (synopsis "Lightweight Linux bootloader")
+      (description "Syslinux is a lightweight Linux bootloader.")
+      (license license:gpl2+))))
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH 5/5] gnu: Move (gnu packages grub) and (gnu packages u-boot) ... to (gnu packages bootloaders).
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
                   ` (5 preceding siblings ...)
  2017-02-09 19:04 ` [PATCH 4/5] gnu: Add syslinux David Craven
@ 2017-02-09 19:04 ` David Craven
  2017-02-09 19:07 ` [PATCH] enable debug symbols David Craven
  7 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-09 19:04 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/grub.scm: Rename to bootloaders.scm.
* gnu/packages/u-boot.scm: Move to bootloaders.scm.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add bootloaders.scm, remove grub.scm and
  u-boot.scm;
* gnu/system/grub.scm: Update import.
* gnu/system/install.scm: Update import.
* gnu/system/vm.scm: Update import.
---
 gnu/local.mk                               |   3 +-
 gnu/packages/{grub.scm => bootloaders.scm} | 137 +++++++++++++++++++++++++---
 gnu/packages/u-boot.scm                    | 138 -----------------------------
 gnu/system/grub.scm                        |   4 +-
 gnu/system/install.scm                     |   2 +-
 gnu/system/vm.scm                          |   2 +-
 6 files changed, 131 insertions(+), 155 deletions(-)
 rename gnu/packages/{grub.scm => bootloaders.scm} (73%)
 delete mode 100644 gnu/packages/u-boot.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 63ce3af71..2d3d71187 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -64,6 +64,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/bittorrent.scm			\
   %D%/packages/bison.scm			\
   %D%/packages/boost.scm			\
+  %D%/packages/bootloaders.scm			\
   %D%/packages/bootstrap.scm			\
   %D%/packages/busybox.scm			\
   %D%/packages/c.scm				\
@@ -170,7 +171,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/graphics.scm			\
   %D%/packages/graphviz.scm			\
   %D%/packages/groff.scm			\
-  %D%/packages/grub.scm				\
   %D%/packages/gsasl.scm			\
   %D%/packages/gstreamer.scm			\
   %D%/packages/gtk.scm				\
@@ -373,7 +373,6 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/unrtf.scm			\
   %D%/packages/upnp.scm				\
   %D%/packages/uucp.scm				\
-  %D%/packages/u-boot.scm			\
   %D%/packages/valgrind.scm			\
   %D%/packages/version-control.scm		\
   %D%/packages/video.scm			\
diff --git a/gnu/packages/grub.scm b/gnu/packages/bootloaders.scm
similarity index 73%
rename from gnu/packages/grub.scm
rename to gnu/packages/bootloaders.scm
index 2e692a100..59151fdbc 100644
--- a/gnu/packages/grub.scm
+++ b/gnu/packages/bootloaders.scm
@@ -4,6 +4,8 @@
 ;;; Copyright © 2015 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;; Copyright © 2016, 2017 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2016, 2017 Danny Milosavljevic <dannym@scratchpost.org>
+;;; Copyright © 2016, 2017 David Craven <david@craven.ch>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,29 +22,34 @@
 ;;; You should have received a copy of the GNU General Public License
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-(define-module (gnu packages grub)
-  #:use-module (guix download)
-  #:use-module (guix git-download)
-  #:use-module (guix packages)
-  #:use-module (guix utils)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (guix build-system gnu)
+(define-module (gnu packages bootloaders)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module ((gnu packages algebra) #:select (bc))
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages bison)
-  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages cdrom)
+  #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages disk)
+  #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages python)
   #:use-module (gnu packages qemu)
-  #:use-module (gnu packages man)
   #:use-module (gnu packages texinfo)
-  #:use-module (gnu packages ncurses)
-  #:use-module (gnu packages cdrom))
+  #:use-module (guix build-system gnu)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils))
+
 
 (define unifont
   ;; GNU Unifont, <http://gnu.org/s/unifont>.
@@ -324,3 +331,111 @@ Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
       (synopsis "Lightweight Linux bootloader")
       (description "Syslinux is a lightweight Linux bootloader.")
       (license license:gpl2+))))
+
+(define-public dtc
+  (package
+    (name "dtc")
+    (version "1.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "https://www.kernel.org/pub/software/utils/dtc/"
+                    "dtc-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)))
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "INSTALL=install")
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure))))
+    (home-page "https://www.devicetree.org")
+    (synopsis "Compiles device tree source files")
+    (description "@command{dtc} compiles
+@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
+tree binary files.  These are board description files used by Linux and BSD.")
+    (license license:gpl2+)))
+
+(define u-boot
+  (package
+    (name "u-boot")
+    (version "2017.01")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "ftp://ftp.denx.de/pub/u-boot/"
+                    "u-boot-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "1wpc51jm3zyibgcr78jng2yksqvrya76bxgsr4pcyjrsz5sm2hkc"))))
+    (native-inputs
+     `(("bc" ,bc)
+       ("dtc" ,dtc)
+       ("python-2" ,python-2)))
+    (build-system  gnu-build-system)
+    (home-page "http://www.denx.de/wiki/U-Boot/")
+    (synopsis "ARM bootloader")
+    (description "U-Boot is a bootloader used mostly for ARM boards. It
+also initializes the boards (RAM etc).")
+    (license license:gpl2+)))
+
+(define (make-u-boot-package board triplet)
+  "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
+  (package
+    (inherit u-boot)
+    (name (string-append "u-boot-" (string-downcase board)))
+    (native-inputs
+     `(("cross-gcc" ,(cross-gcc triplet))
+       ("cross-binutils" ,(cross-binutils triplet))
+       ,@(package-native-inputs u-boot)))
+    (arguments
+     `(#:modules ((ice-9 ftw) (guix build utils) (guix build gnu-build-system))
+       #:test-target "test"
+       #:make-flags
+       (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs make-flags #:allow-other-keys)
+             (let ((config-name (string-append ,board "_defconfig")))
+               (if (file-exists? (string-append "configs/" config-name))
+                   (zero? (apply system* "make" `(,@make-flags ,config-name)))
+                   (begin
+                     (display "Invalid board name. Valid board names are:")
+                     (let ((suffix-len (string-length "_defconfig")))
+                       (scandir "configs"
+                                (lambda (file-name)
+                                  (when (string-suffix? "_defconfig" file-name)
+                                    (format #t
+                                            "- ~A\n"
+                                            (string-drop-right file-name
+                                                               suffix-len))))))
+                     #f)))))
+         (replace 'install
+           (lambda* (#:key outputs make-flags #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (libexec (string-append out "/libexec"))
+                    (uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
+               (mkdir-p libexec)
+               (for-each
+                (lambda (file)
+                  (let ((target-file (string-append libexec "/" file)))
+                    (mkdir-p (dirname target-file))
+                    (copy-file file target-file)))
+                uboot-files)))))))))
+
+(define-public u-boot-vexpress
+  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
+
+(define-public u-boot-malta
+  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
+
+(define-public u-boot-beagle-bone-black
+  (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
deleted file mode 100644
index bcfe059ee..000000000
--- a/gnu/packages/u-boot.scm
+++ /dev/null
@@ -1,138 +0,0 @@
-;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
-;;; Copyright © 2016 David Craven <david@craven.ch>
-;;;
-;;; This file is part of GNU Guix.
-;;;
-;;; GNU Guix is free software; you can redistribute it and/or modify it
-;;; under the terms of the GNU General Public License as published by
-;;; the Free Software Foundation; either version 3 of the License, or (at
-;;; your option) any later version.
-;;;
-;;; GNU Guix is distributed in the hope that it will be useful, but
-;;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;;; GNU General Public License for more details.
-;;;
-;;; You should have received a copy of the GNU General Public License
-;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
-
-(define-module (gnu packages u-boot)
-  #:use-module (guix build-system gnu)
-  #:use-module (guix download)
-  #:use-module (guix packages)
-  #:use-module ((guix licenses) #:prefix license:)
-  #:use-module (gnu packages)
-  #:use-module ((gnu packages algebra) #:select (bc))
-  #:use-module (gnu packages bison)
-  #:use-module (gnu packages cross-base)
-  #:use-module (gnu packages flex)
-  #:use-module (gnu packages python))
-
-(define-public dtc
-  (package
-    (name "dtc")
-    (version "1.4.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://www.kernel.org/pub/software/utils/dtc/"
-                    "dtc-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1b7si8niyca4wxbfah3qw4p4wli81mc1qwfhaswvrfqahklnwi8k"))))
-    (build-system gnu-build-system)
-    (native-inputs
-     `(("bison" ,bison)
-       ("flex" ,flex)))
-    (arguments
-     `(#:make-flags
-       (list "CC=gcc"
-             (string-append "PREFIX=" (assoc-ref %outputs "out"))
-             "INSTALL=install")
-       #:phases
-       (modify-phases %standard-phases
-         (delete 'configure))))
-    (home-page "https://www.devicetree.org")
-    (synopsis "Compiles device tree source files")
-    (description "@command{dtc} compiles
-@uref{http://elinux.org/Device_Tree_Usage, device tree source files} to device
-tree binary files.  These are board description files used by Linux and BSD.")
-    (license license:gpl2+)))
-
-(define u-boot
-  (package
-    (name "u-boot")
-    (version "2017.01")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "ftp://ftp.denx.de/pub/u-boot/"
-                    "u-boot-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1wpc51jm3zyibgcr78jng2yksqvrya76bxgsr4pcyjrsz5sm2hkc"))))
-    (native-inputs
-     `(("bc" ,bc)
-       ("dtc" ,dtc)
-       ("python-2" ,python-2)))
-    (build-system  gnu-build-system)
-    (home-page "http://www.denx.de/wiki/U-Boot/")
-    (synopsis "ARM bootloader")
-    (description "U-Boot is a bootloader used mostly for ARM boards. It
-also initializes the boards (RAM etc).")
-    (license license:gpl2+)))
-
-(define (make-u-boot-package board triplet)
-  "Returns a u-boot package for BOARD cross-compiled for TRIPLET."
-  (package
-    (inherit u-boot)
-    (name (string-append "u-boot-" (string-downcase board)))
-    (native-inputs
-     `(("cross-gcc" ,(cross-gcc triplet))
-       ("cross-binutils" ,(cross-binutils triplet))
-       ,@(package-native-inputs u-boot)))
-    (arguments
-     `(#:modules ((ice-9 ftw) (guix build utils) (guix build gnu-build-system))
-       #:test-target "test"
-       #:make-flags
-       (list "HOSTCC=gcc" (string-append "CROSS_COMPILE=" ,triplet "-"))
-       #:phases
-       (modify-phases %standard-phases
-         (replace 'configure
-           (lambda* (#:key outputs make-flags #:allow-other-keys)
-             (let ((config-name (string-append ,board "_defconfig")))
-               (if (file-exists? (string-append "configs/" config-name))
-                   (zero? (apply system* "make" `(,@make-flags ,config-name)))
-                   (begin
-                     (display "Invalid board name. Valid board names are:")
-                     (let ((suffix-len (string-length "_defconfig")))
-                       (scandir "configs"
-                                (lambda (file-name)
-                                  (when (string-suffix? "_defconfig" file-name)
-                                    (format #t
-                                            "- ~A\n"
-                                            (string-drop-right file-name
-                                                               suffix-len))))))
-                     #f)))))
-         (replace 'install
-           (lambda* (#:key outputs make-flags #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (libexec (string-append out "/libexec"))
-                    (uboot-files (find-files "." ".*\\.(bin|efi|spl)$")))
-               (mkdir-p libexec)
-               (for-each
-                (lambda (file)
-                  (let ((target-file (string-append libexec "/" file)))
-                    (mkdir-p (dirname target-file))
-                    (copy-file file target-file)))
-                uboot-files)))))))))
-
-(define-public u-boot-vexpress
-  (make-u-boot-package "vexpress_ca9x4" "arm-linux-gnueabihf"))
-
-(define-public u-boot-malta
-  (make-u-boot-package "malta" "mips64el-linux-gnuabi64"))
-
-(define-public u-boot-beagle-bone-black
-  (make-u-boot-package "am335x_boneblack" "arm-linux-gnueabihf"))
diff --git a/gnu/system/grub.scm b/gnu/system/grub.scm
index 7df7d4615..b18b8be6d 100644
--- a/gnu/system/grub.scm
+++ b/gnu/system/grub.scm
@@ -27,7 +27,7 @@
   #:use-module (guix download)
   #:use-module (gnu artwork)
   #:use-module (gnu system file-systems)
-  #:autoload   (gnu packages grub) (grub)
+  #:autoload   (gnu packages bootloaders) (grub)
   #:autoload   (gnu packages compression) (gzip)
   #:autoload   (gnu packages gtk) (guile-cairo guile-rsvg)
   #:use-module (ice-9 match)
@@ -108,7 +108,7 @@ denoting a file name."
   grub-configuration make-grub-configuration
   grub-configuration?
   (grub            grub-configuration-grub           ; package
-                   (default (@ (gnu packages grub) grub)))
+                   (default (@ (gnu packages bootloaders) grub)))
   (device          grub-configuration-device)        ; string
   (menu-entries    grub-configuration-menu-entries   ; list
                    (default '()))
diff --git a/gnu/system/install.scm b/gnu/system/install.scm
index ad234fd9c..d4e620610 100644
--- a/gnu/system/install.scm
+++ b/gnu/system/install.scm
@@ -32,7 +32,7 @@
   #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages disk)
-  #:use-module (gnu packages grub)
+  #:use-module (gnu packages bootloaders)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages nvi)
diff --git a/gnu/system/vm.scm b/gnu/system/vm.scm
index 1e680b85a..17483f613 100644
--- a/gnu/system/vm.scm
+++ b/gnu/system/vm.scm
@@ -38,7 +38,7 @@
   #:use-module (gnu packages qemu)
   #:use-module (gnu packages disk)
   #:use-module (gnu packages zile)
-  #:use-module (gnu packages grub)
+  #:use-module (gnu packages bootloaders)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages package-management)
   #:use-module ((gnu packages make-bootstrap)
-- 
2.11.0

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH] enable debug symbols
  2017-02-09 19:04 [PATCH] enable debug symbols David Craven
                   ` (6 preceding siblings ...)
  2017-02-09 19:04 ` [PATCH 5/5] gnu: Move (gnu packages grub) and (gnu packages u-boot) ... to (gnu packages bootloaders) David Craven
@ 2017-02-09 19:07 ` David Craven
  2017-02-09 19:23   ` Marius Bakke
  7 siblings, 1 reply; 22+ messages in thread
From: David Craven @ 2017-02-09 19:07 UTC (permalink / raw)
  To: guix-devel

Ups, sry these patches aren't ment for the ML. Also please ignore the
libdrm and epiphany patches!

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] update libdrm
  2017-02-09 19:04 ` [PATCH] update libdrm David Craven
@ 2017-02-09 19:12   ` Marius Bakke
  2017-02-09 19:32     ` David Craven
  2017-02-10  0:32   ` Mark H Weaver
  1 sibling, 1 reply; 22+ messages in thread
From: Marius Bakke @ 2017-02-09 19:12 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 1250 bytes --]

David Craven <david@craven.ch> writes:

> ---
>  gnu/packages/xdisorg.scm | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
> index ee83934ca..42fa0cc1b 100644
> --- a/gnu/packages/xdisorg.scm
> +++ b/gnu/packages/xdisorg.scm
> @@ -273,7 +273,7 @@ rasterisation.")
>  (define-public libdrm
>    (package
>      (name "libdrm")
> -    (version "2.4.68")
> +    (version "2.4.75")
>      (source
>        (origin
>          (method url-fetch)
> @@ -283,7 +283,7 @@ rasterisation.")
>                 ".tar.bz2"))
>          (sha256
>           (base32
> -          "1px91j6imaaq2fy8ksvgldmv0cdz3w379jqiciqvqa99jajxjjsv"))
> +          "0kq5hmck0gq7b29fr8jp94njc7jpkpbyws12s63w4b21xw750nid"))
>          (patches (search-patches "libdrm-symbol-check.patch"))))
>      (build-system gnu-build-system)
>      (inputs

This is already in 'staging' since updating libdrm causes 677 rebuilds.

> @@ -291,6 +291,8 @@ rasterisation.")
>          ("libpthread-stubs" ,libpthread-stubs)))
>      (native-inputs
>         `(("pkg-config" ,pkg-config)))
> +    (arguments
> +     `(#:configure-flags '("--enable-install-test-programs")))

...but this is not. What does this flag do?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] enable debug symbols
  2017-02-09 19:07 ` [PATCH] enable debug symbols David Craven
@ 2017-02-09 19:23   ` Marius Bakke
  2017-02-09 19:29     ` David Craven
  0 siblings, 1 reply; 22+ messages in thread
From: Marius Bakke @ 2017-02-09 19:23 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 194 bytes --]

David Craven <david@craven.ch> writes:

> Ups, sry these patches aren't ment for the ML.

Too late :) Are these packages working? I would really like to have
SeaBIOS, OVMF and syslinux in Guix!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] enable debug symbols
  2017-02-09 19:23   ` Marius Bakke
@ 2017-02-09 19:29     ` David Craven
  0 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-09 19:29 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

> Too late :) Are these packages working? I would really like to have
> SeaBIOS, OVMF and syslinux in Guix!

Those are for the ML, the other three are accidents :)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] update libdrm
  2017-02-09 19:12   ` Marius Bakke
@ 2017-02-09 19:32     ` David Craven
  0 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-09 19:32 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

> ...but this is not. What does this flag do?

Enables some test programs... Like xrandr for kms.

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub).
  2017-02-09 19:04 ` [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub) David Craven
@ 2017-02-09 23:45   ` Marius Bakke
  0 siblings, 0 replies; 22+ messages in thread
From: Marius Bakke @ 2017-02-09 23:45 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 93 bytes --]

David Craven <david@craven.ch> writes:

> * gnu/packages/grub.scm (grub): Add prefix.

LGTM.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 2/5] gnu: Add seabios.
  2017-02-09 19:04 ` [PATCH 2/5] gnu: Add seabios David Craven
@ 2017-02-09 23:55   ` Marius Bakke
  0 siblings, 0 replies; 22+ messages in thread
From: Marius Bakke @ 2017-02-09 23:55 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 2850 bytes --]

David Craven <david@craven.ch> writes:

> * gnu/packages/grub.scm (seabios): New variable.

I would place this in "firmware.scm".

> ---
>  gnu/packages/grub.scm | 38 ++++++++++++++++++++++++++++++++++++++
>  1 file changed, 38 insertions(+)
>
> diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
> index 292d35373..a775e213c 100644
> --- a/gnu/packages/grub.scm
> +++ b/gnu/packages/grub.scm
> @@ -33,6 +33,7 @@
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages linux)
> +  #:use-module (gnu packages python)
>    #:use-module (gnu packages qemu)
>    #:use-module (gnu packages man)
>    #:use-module (gnu packages texinfo)
> @@ -150,3 +151,40 @@ menu to select one of the installed operating systems.")
>                        (string-append (assoc-ref inputs "efibootmgr")
>                                       "/sbin/efibootmgr")))
>                     #t)))))))))
> +
> +(define-public seabios
> +  (package
> +    (name "seabios")
> +    (version "1.10.1")
> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://code.coreboot.org/p/seabios/downloads/get/"
> +                                  "seabios-" version ".tar.gz"))
> +              (sha256
> +               (base32
> +                "1jyjl719drnl1v0gf0l5q6qjjmkyqcqkka6s28dfdi0yqsxdsqsh"))))
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("python-2" ,python-2)))
> +    (arguments
> +     `(#:tests? #f ; No check target.
> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'configure
> +           (lambda* (#:key inputs #:allow-other-keys)
> +             (let ((gcc (assoc-ref inputs "gcc")))
> +               (setenv "CC" (string-append gcc "/bin/gcc")))

Does it need the full path, or would simply "gcc" be enough here?

> +             #t))
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (fmw (string-append out "/share/firmware")))
> +               (mkdir-p fmw)
> +               (copy-file "out/bios.bin" (string-append fmw "/bios.bin"

                  #t))))))))

> +    (home-page "https://www.seabios.org/SeaBIOS")
> +    (synopsis "x86 BIOS implementation")
> +    (description "SeaBIOS is an open source implementation of a 16bit x86 BIOS.
> +SeaBIOS can run in an emulator or it can run natively on X86 hardware with the
> +use of coreboot.")
> +    ;; Dual licensed.
> +    (license (list license:gpl3+ license:lgpl3+))))

The Debian copyright file for this package mentions two other licenses
in use. They should probably be listed too. Otherwise LGTM.

Thank you!

> -- 
> 2.11.0

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/5] gnu: Add ovmf.
  2017-02-09 19:04 ` [PATCH 3/5] gnu: Add ovmf David Craven
@ 2017-02-10  0:15   ` Marius Bakke
  2017-02-10 13:18     ` David Craven
  0 siblings, 1 reply; 22+ messages in thread
From: Marius Bakke @ 2017-02-10  0:15 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 5150 bytes --]

David Craven <david@craven.ch> writes:

> * gnu/packages/grub.scm (ovmf): New variable.

I would place this too in firmware.scm.

> ---
>  gnu/packages/grub.scm | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 82 insertions(+)
>
> diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
> index a775e213c..4da01ceb9 100644
> --- a/gnu/packages/grub.scm
> +++ b/gnu/packages/grub.scm
> @@ -22,11 +22,14 @@
>  
>  (define-module (gnu packages grub)
>    #:use-module (guix download)
> +  #:use-module (guix git-download)
>    #:use-module (guix packages)
>    #:use-module (guix utils)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix build-system gnu)
>    #:use-module (gnu packages)
> +  #:use-module (gnu packages admin)
> +  #:use-module (gnu packages assembly)
>    #:use-module (gnu packages flex)
>    #:use-module (gnu packages disk)
>    #:use-module (gnu packages bison)
> @@ -188,3 +191,82 @@ SeaBIOS can run in an emulator or it can run natively on X86 hardware with the
>  use of coreboot.")
>      ;; Dual licensed.
>      (license (list license:gpl3+ license:lgpl3+))))
> +
> +;; OVMF is part of the edk2 source tree.
> +(define edk2-commit "13a50a6fe1dcfa6600c38456ee24e0f9ecf51b5f")
> +(define edk2-version (git-version "20170116" "1" edk2-commit))
> +(define edk2-origin
> +  (origin
> +    (method git-fetch)
> +    (uri (git-reference
> +          (url "https://github.com/tianocore/edk2")
> +          (commit edk2-commit)))
> +    (file-name (git-file-name "edk2" edk2-version))
> +    (sha256
> +     (base32
> +      "1gy2332kdqk8bjzpcsripx10896rbvgl0ic7r344kmpiwdgm948b"))))
> +
> +(define-public ovmf
> +  (package
> +    (name "ovmf")
> +    (version edk2-version)
> +    (source edk2-origin)
> +    (build-system gnu-build-system)
> +    (native-inputs
> +     `(("acpica" ,acpica)
> +       ("nasm" ,nasm)
> +       ("python-2" ,python-2)
> +       ("util-linux" ,util-linux)))
> +    (arguments
> +     `(#:tests? #f ; No check target.
> +       #:phases
> +       (modify-phases %standard-phases
> +         (replace 'configure
> +           (lambda _
> +             (let* ((cwd (getcwd))
> +                    (tools (string-append cwd "/BaseTools"))
> +                    (bin (string-append tools "/BinWrappers/PosixLike")))
> +               (setenv "WORKSPACE" cwd)
> +               (setenv "EDK_TOOLS_PATH" tools)
> +               (setenv "PATH" (string-append (getenv "PATH") ":" bin))
> +               (system* "bash" "edksetup.sh" "BaseTools")
> +               (substitute* "Conf/target.txt"
> +                 (("^TARGET[ ]*=.*$") "TARGET = RELEASE\n")
> +                 (("^TOOL_CHAIN_TAG[ ]*=.*$") "TOOL_CHAIN_TAG = GCC49\n")
> +                 (("^MAX_CONCURRENT_THREAD_NUMBER[ ]*=.*$")
> +                  (format #f "MAX_CONCURRENT_THREAD_NUMBER = ~a~%"
> +                          (number->string (parallel-job-count)))))
> +               ;; Build build support.
> +               (setenv "BUILD_CC" "gcc")
> +               (zero? (system* "make" "-C" (string-append tools "/Source/C"))))))
> +         (add-after 'build 'build-ia32

I would simply (replace 'build ...) here, instead of deleting it and
using add-after.

> +           (lambda _
> +             (substitute* "Conf/target.txt"
> +               (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = IA32\n")
> +               (("^ACTIVE_PLATFORM[ ]*=.*$")
> +                "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgIa32.dsc\n"))
> +             (zero? (system* "build"))))
> +         (add-after 'build 'build-x64
> +           (lambda _
> +             (substitute* "Conf/target.txt"
> +               (("^TARGET_ARCH[ ]*=.*$") "TARGET_ARCH = X64\n")
> +               (("^ACTIVE_PLATFORM[ ]*=.*$")
> +                "ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc\n"))
> +             (zero? (system* "build"))))
> +         (delete 'build)
> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (fmw (string-append out "/share/firmware")))
> +               (mkdir-p fmw)
> +               (copy-file "Build/OvmfIa32/RELEASE_GCC49/FV/OVMF.fd"
> +                          (string-append fmw "/ovmf_ia32.bin"))
> +               (copy-file "Build/OvmfX64/RELEASE_GCC49/FV/OVMF.fd"
> +                          (string-append fmw "/ovmf_x64.bin")))
> +             #t)))))
> +    (supported-systems '("x86_64-linux" "i686-linux"))

Is it not possible to build this firmware on (not for) other archs?

> +    (home-page "http://www.tianocore.org")
> +    (synopsis "UEFI firmware for QEMU")
> +    (description "OVMF is an EDK II based project to enable UEFI support for
> +Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
> +    (license license:expat)))

There appears to also be a good number of bsd-{2,3,4} licensed files in
this distribution. I've tested both this and seabios with qemu, great
work! :-)

> -- 
> 2.11.0

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] update epiphany
  2017-02-09 19:04 ` [PATCH] update epiphany David Craven
@ 2017-02-10  0:31   ` Mark H Weaver
  0 siblings, 0 replies; 22+ messages in thread
From: Mark H Weaver @ 2017-02-10  0:31 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> writes:

> ---
>  gnu/packages/gnome.scm | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

This lacks a proper commit log, but in any case...

> -    (version "3.22.4")
> +    (version "3.22.5")

I already updated epiphany to 3.22.6 on Monday.

     Thanks,
       Mark

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] update libdrm
  2017-02-09 19:04 ` [PATCH] update libdrm David Craven
  2017-02-09 19:12   ` Marius Bakke
@ 2017-02-10  0:32   ` Mark H Weaver
  2017-02-10 12:29     ` David Craven
  1 sibling, 1 reply; 22+ messages in thread
From: Mark H Weaver @ 2017-02-10  0:32 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> writes:

> ---
>  gnu/packages/xdisorg.scm | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)

This also lacks a proper commit log.

    Mark

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/5] gnu: Add syslinux.
  2017-02-09 19:04 ` [PATCH 4/5] gnu: Add syslinux David Craven
@ 2017-02-10  1:18   ` Marius Bakke
  2017-02-10 14:24     ` David Craven
  0 siblings, 1 reply; 22+ messages in thread
From: Marius Bakke @ 2017-02-10  1:18 UTC (permalink / raw)
  To: David Craven, guix-devel

[-- Attachment #1: Type: text/plain, Size: 4355 bytes --]

David Craven <david@craven.ch> writes:

> * gnu/packages/grub.scm (syslinux): New variable.
> ---
>  gnu/packages/grub.scm | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 54 insertions(+)
>
> diff --git a/gnu/packages/grub.scm b/gnu/packages/grub.scm
> index 4da01ceb9..2e692a100 100644
> --- a/gnu/packages/grub.scm
> +++ b/gnu/packages/grub.scm
> @@ -36,6 +36,7 @@
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages linux)
> +  #:use-module (gnu packages perl)
>    #:use-module (gnu packages python)
>    #:use-module (gnu packages qemu)
>    #:use-module (gnu packages man)
> @@ -270,3 +271,56 @@ use of coreboot.")
>      (description "OVMF is an EDK II based project to enable UEFI support for
>  Virtual Machines.  OVMF contains a sample UEFI firmware for QEMU and KVM.")
>      (license license:expat)))
> +
> +(define-public syslinux
> +  (let ((commit "bb41e935cc83c6242de24d2271e067d76af3585c"))
> +    (package
> +      (name "syslinux")
> +      (version (git-version "6.04-pre" "1" commit))

I think the most common convention is to use the latest upstream
release, and adding revisions on top of it. But no strong opinion.

I tried packaging 6.03 a while back and it was very difficult. Most if
the problems seems to be solved here, so thanks for doing this.

> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/geneC/syslinux")
> +                      (commit commit)))
> +                (file-name (git-file-name name version))
> +                (sha256
> +                 (base32
> +                  "0k8dvafd6410kqxf3kyr4y8jzmpmrih6wbjqg6gklak7945yflrc"))))
> +      (build-system gnu-build-system)
> +      (native-inputs
> +       `(("nasm" ,nasm)
> +         ("perl" ,perl)
> +         ("python-2" ,python-2)))
> +      (inputs
> +       `(("libuuid" ,util-linux)))
> +      (arguments
> +       `(#:tests? #f
> +         #:test-target "unittest"

This is unfortunate. The "unittest" target is applied recursively, and
fails with "no such target" in one of the folders.

However, I was able to successfully run the tests by calling the
"unittest" target "manually" for some reason, like so:

           (replace 'check
             (lambda _
               (setenv "CC" "gcc")
               (substitute* "tests/unittest/include/unittest/unittest.h"
                 ;; Don't look up headers under /usr.
                 (("/usr/include/") ""))
               (zero? (system* "make" "unittest"))))

> +         #:parallel-build? #f
> +         #:make-flags
> +         (list (string-append "BINDIR=" %output "/bin")
> +               (string-append "SBINDIR=" %output "/sbin")
> +               (string-append "LIBDIR=" %output "/lib")
> +               (string-append "INCDIR=" %output "/include")
> +               (string-append "DATADIR=" %output "/share")
> +               (string-append "MANDIR=" %output "/share/man")
> +               "PERL=perl"
> +               "bios")
> +         #:phases
> +         (modify-phases %standard-phases
> +           (add-after 'unpack 'patch-files
> +             (lambda _
> +               (substitute* (find-files "." "Makefile.*|ppmtolss16")
> +                 (("/bin/pwd") (which "pwd"))
> +                 (("/bin/echo") (which "echo"))
> +                 (("/usr/bin/perl") (which "perl")))
> +               #t))
> +           (delete 'configure)
> +           (add-before 'build 'set-permissions
> +             (lambda _
> +               ;; Is read only because it's checked out with git.
> +               (zero? (system* "chmod" "a+w" "utils/isohybrid.in")))))))
> +      (home-page "http://www.syslinux.org")
> +      (synopsis "Lightweight Linux bootloader")
> +      (description "Syslinux is a lightweight Linux bootloader.")
> +      (license license:gpl2+))))

This software bundles some third-party code in the "com32" folder.
libpng@1.2, zlib, and others. Their licenses should be mentioned
here. Preferably they would be scrubbed from the source in favor of
system versions, but that looks to be difficult.

Otherwise this LGTM. Thank you!

> -- 
> 2.11.0

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH] update libdrm
  2017-02-10  0:32   ` Mark H Weaver
@ 2017-02-10 12:29     ` David Craven
  0 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-10 12:29 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guix-devel

> This also lacks a proper commit log.

Yep, sry this was an accident. I had some patches in my guix directory
already, so when I did git send-email *.patch it sent them all...

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 3/5] gnu: Add ovmf.
  2017-02-10  0:15   ` Marius Bakke
@ 2017-02-10 13:18     ` David Craven
  0 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-10 13:18 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

> I would simply (replace 'build ...) here, instead of deleting it and
> using add-after.

I think it's a good idea to use small phases. This way it makes it
easier to extend or modify packages with
(package (inherit)). It also doesn't require an ugly (and build-this
build-that).

> Is it not possible to build this firmware on (not for) other archs?

That would require cross-compiling. Adding supported-systems doesn't
preclude someone from running
the build manually with --target=... but it avoids build failures in
cuirass/hydra.

> There appears to also be a good number of bsd-{2,3,4} licensed files in
> this distribution.

I'll add these then...

> I've tested both this and seabios with qemu, great work! :-)

Thanks :-)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH 4/5] gnu: Add syslinux.
  2017-02-10  1:18   ` Marius Bakke
@ 2017-02-10 14:24     ` David Craven
  0 siblings, 0 replies; 22+ messages in thread
From: David Craven @ 2017-02-10 14:24 UTC (permalink / raw)
  To: Marius Bakke; +Cc: guix-devel

> I think the most common convention is to use the latest upstream
> release, and adding revisions on top of it. But no strong opinion.

> I tried packaging 6.03 a while back and it was very difficult. Most if
> the problems seems to be solved here, so thanks for doing this.

In general I agree, but I found 6.03 to be hard to package. Maybe I could
try again now that something is building, but I expect that it would need
additional patches. And 6.03 is very old.

> This is unfortunate. The "unittest" target is applied recursively, and
> fails with "no such target" in one of the folders.
>
> However, I was able to successfully run the tests by calling the
> "unittest" target "manually" for some reason, like so:

Thank you! This works well.

> This software bundles some third-party code in the "com32" folder.
> libpng@1.2, zlib, and others. Their licenses should be mentioned
> here. Preferably they would be scrubbed from the source in favor of
> system versions, but that looks to be difficult.

Done.

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2017-02-10 14:24 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-09 19:04 [PATCH] enable debug symbols David Craven
2017-02-09 19:04 ` [PATCH 1/5] gnu: Use 'license:' prefix in (gnu packages grub) David Craven
2017-02-09 23:45   ` Marius Bakke
2017-02-09 19:04 ` [PATCH] update epiphany David Craven
2017-02-10  0:31   ` Mark H Weaver
2017-02-09 19:04 ` [PATCH] update libdrm David Craven
2017-02-09 19:12   ` Marius Bakke
2017-02-09 19:32     ` David Craven
2017-02-10  0:32   ` Mark H Weaver
2017-02-10 12:29     ` David Craven
2017-02-09 19:04 ` [PATCH 2/5] gnu: Add seabios David Craven
2017-02-09 23:55   ` Marius Bakke
2017-02-09 19:04 ` [PATCH 3/5] gnu: Add ovmf David Craven
2017-02-10  0:15   ` Marius Bakke
2017-02-10 13:18     ` David Craven
2017-02-09 19:04 ` [PATCH 4/5] gnu: Add syslinux David Craven
2017-02-10  1:18   ` Marius Bakke
2017-02-10 14:24     ` David Craven
2017-02-09 19:04 ` [PATCH 5/5] gnu: Move (gnu packages grub) and (gnu packages u-boot) ... to (gnu packages bootloaders) David Craven
2017-02-09 19:07 ` [PATCH] enable debug symbols David Craven
2017-02-09 19:23   ` Marius Bakke
2017-02-09 19:29     ` David Craven

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).