unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Linux kernel
@ 2016-09-08 22:45 David Craven
  2016-09-09  1:36 ` Leo Famulari
  2016-09-09 22:26 ` Linux kernel Ludovic Courtès
  0 siblings, 2 replies; 40+ messages in thread
From: David Craven @ 2016-09-08 22:45 UTC (permalink / raw)
  To: Ludovic Courtès, guix-devel

I reworked the patches for the linux-libre package and made some other
improvements that make customizing the linux-libre package easier. I
tested that everything builds and that there wasn't any breakage on
x86_64, but testing the arm kernel on real hardware is a wip. Is it
easier if I push a branch? They're 17 small patches.

86fb6ee gnu: Add linux-libre-beagle-bone-black.
70d7e6d gnu: Add linux-libre-multi-v7.
8073e6e gnu: make-linux-libre: Add supported-systems option.
6be1f44 gnu: linux-libre: Use kmod.
dd9be2e gnu: make-linux-libre: Add zImage to output.
c4772da gnu: linux-libre: Add extra-version option.
089b957 gnu: linux-libre: Add make-linux-libre-source.
5508f0d gnu: Add u-boot-beagle-bone-black.
db2fc94 gnu: dtc: Remove patch-paths phase.
01c8d0a gnu: linux-libre: Add additional-configuration to make-linux-libre.
9ccf388 gnu: linux-libre: Use make-linux-libre.
86126ae gnu: linux-libre: Add support for cross-compilation.
2ef150b gnu: linux-libre: Move kernel configuration to configure phase.
4737e87 gnu: linux-libre: Apply %boot-logo patch in origin.
c55b169 gnu: linux-libre: Use system->architecture.
c456362 gnu: linux-libre: Use modify-phases.
95fe35a gnu: module-init-tools: Prevent line wrapping.

The interesting parts are shown here:

(define* (make-linux-libre version source supported-systems
                           #:key
                           (extra-version #f)
                           (configuration-file #f)
                           (defconfig "defconfig")
                           (additional-configuration
                            %default-additional-kernel-configuration))
  (package
    (name (if extra-version
              (string-append "linux-libre-" extra-version)
              "linux-libre"))


(define-public linux-libre
  (let* ((version "4.7.2")
         (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85")
         (conf (kernel-config
                (or (%current-target-system)
                    (%current-system))
                #:variant (version-major+minor version))))
    (make-linux-libre version
                      (make-linux-libre-source version hash)
                      '("x86_64-linux" "i686-linux")
                      #:configuration-file conf)))

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

* Re: Linux kernel
  2016-09-08 22:45 Linux kernel David Craven
@ 2016-09-09  1:36 ` Leo Famulari
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
  2016-09-09 22:26 ` Linux kernel Ludovic Courtès
  1 sibling, 1 reply; 40+ messages in thread
From: Leo Famulari @ 2016-09-09  1:36 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

On Fri, Sep 09, 2016 at 12:45:13AM +0200, David Craven wrote:
> I reworked the patches for the linux-libre package and made some other
> improvements that make customizing the linux-libre package easier. I
> tested that everything builds and that there wasn't any breakage on
> x86_64, but testing the arm kernel on real hardware is a wip. Is it
> easier if I push a branch? They're 17 small patches.
> 
> 86fb6ee gnu: Add linux-libre-beagle-bone-black.
> 70d7e6d gnu: Add linux-libre-multi-v7.
> 8073e6e gnu: make-linux-libre: Add supported-systems option.
> 6be1f44 gnu: linux-libre: Use kmod.
> dd9be2e gnu: make-linux-libre: Add zImage to output.
> c4772da gnu: linux-libre: Add extra-version option.
> 089b957 gnu: linux-libre: Add make-linux-libre-source.
> 5508f0d gnu: Add u-boot-beagle-bone-black.
> db2fc94 gnu: dtc: Remove patch-paths phase.
> 01c8d0a gnu: linux-libre: Add additional-configuration to make-linux-libre.
> 9ccf388 gnu: linux-libre: Use make-linux-libre.
> 86126ae gnu: linux-libre: Add support for cross-compilation.
> 2ef150b gnu: linux-libre: Move kernel configuration to configure phase.
> 4737e87 gnu: linux-libre: Apply %boot-logo patch in origin.
> c55b169 gnu: linux-libre: Use system->architecture.
> c456362 gnu: linux-libre: Use modify-phases.
> 95fe35a gnu: module-init-tools: Prevent line wrapping.

Cool! Can you send the patches?

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

* [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping.
  2016-09-09  1:36 ` Leo Famulari
@ 2016-09-09 12:34   ` David Craven
  2016-09-09 12:34     ` [PATCH 02/17] gnu: linux-libre: Use modify-phases David Craven
                       ` (15 more replies)
  0 siblings, 16 replies; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (module-init-tools): Break line.
---
 gnu/packages/linux.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 030e35e..260017b 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -174,8 +174,8 @@
     (source (origin
              (method url-fetch)
              (uri (string-append
-                   "mirror://kernel.org/linux/utils/kernel/module-init-tools/module-init-tools-"
-                   version ".tar.bz2"))
+                   "mirror://kernel.org/linux/utils/kernel/module-init-tools/"
+                   "module-init-tools-" version ".tar.bz2"))
              (sha256
               (base32
                "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"))
-- 
2.9.0

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

* [PATCH 02/17] gnu: linux-libre: Use modify-phases.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-09 12:34     ` [PATCH 03/17] gnu: linux-libre: Use system->architecture David Craven
                       ` (14 subsequent siblings)
  15 siblings, 0 replies; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre): Use modify-phases.
---
 gnu/packages/linux.scm | 80 ++++++++++++++++++++++++--------------------------
 1 file changed, 39 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 260017b..e19712f 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -258,9 +258,41 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
     (search-path %load-path file)))
 
 (define-public linux-libre
-  (let* ((version "4.7.2")
-         (build-phase
-          '(lambda* (#:key system inputs #:allow-other-keys #:rest args)
+  (package
+    (name "linux-libre")
+    (version "4.7.2")
+    (source (origin
+              (method url-fetch)
+              (uri (linux-libre-urls version))
+              (sha256
+               (base32
+                "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))))
+    (build-system gnu-build-system)
+    (supported-systems '("x86_64-linux" "i686-linux"))
+    (native-inputs
+     `(("perl" ,perl)
+       ("bc" ,bc)
+       ("openssl" ,openssl)
+       ("module-init-tools" ,module-init-tools)
+       ("patch/freedo+gnu" ,%boot-logo-patch)
+
+       ,@(let ((conf (kernel-config
+                      (or (%current-target-system)
+                          (%current-system))
+                      #:variant (version-major+minor version))))
+           (if conf
+               `(("kconfig" ,conf))
+               '()))))
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-1)
+                  (ice-9 match))
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'build
+           (lambda* (#:key system inputs #:allow-other-keys #:rest args)
              ;; Avoid introducing timestamps
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
@@ -310,8 +342,8 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                ;; Call the default `build' phase so `-j' is correctly
                ;; passed.
                (apply build #:make-flags "all" args))))
-         (install-phase
-          `(lambda* (#:key inputs outputs #:allow-other-keys)
+         (replace 'install
+           (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out    (assoc-ref outputs "out"))
                     (moddir (string-append out "/lib/modules"))
                     (mit    (assoc-ref inputs "module-init-tools")))
@@ -328,47 +360,13 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                                (string-append "INSTALL_MOD_PATH=" out)
                                "INSTALL_MOD_STRIP=1"
                                "modules_install"))))))
-   (package
-    (name "linux-libre")
-    (version version)
-    (source (origin
-             (method url-fetch)
-             (uri (linux-libre-urls version))
-             (sha256
-              (base32
-               "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))))
-    (build-system gnu-build-system)
-    (supported-systems '("x86_64-linux" "i686-linux"))
-    (native-inputs `(("perl" ,perl)
-                     ("bc" ,bc)
-                     ("openssl" ,openssl)
-                     ("module-init-tools" ,module-init-tools)
-                     ("patch/freedo+gnu" ,%boot-logo-patch)
-
-                     ,@(let ((conf (kernel-config
-                                    (or (%current-target-system)
-                                        (%current-system))
-                                    #:variant (version-major+minor version))))
-                         (if conf
-                             `(("kconfig" ,conf))
-                             '()))))
-    (arguments
-     `(#:modules ((guix build gnu-build-system)
-                  (guix build utils)
-                  (srfi srfi-1)
-                  (ice-9 match))
-       #:phases (alist-replace
-                 'build ,build-phase
-                 (alist-replace
-                  'install ,install-phase
-                  (alist-delete 'configure %standard-phases)))
        #:tests? #f))
+    (home-page "http://www.gnu.org/software/linux-libre/")
     (synopsis "100% free redistribution of a cleaned Linux kernel")
     (description
      "GNU Linux-Libre is a free (as in freedom) variant of the Linux kernel.
 It has been modified to remove all non-free binary blobs.")
-    (license license:gpl2)
-    (home-page "http://www.gnu.org/software/linux-libre/"))))
+    (license license:gpl2)))
 
 (define-public linux-libre-4.4
   (package
-- 
2.9.0

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

* [PATCH 03/17] gnu: linux-libre: Use system->architecture.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
  2016-09-09 12:34     ` [PATCH 02/17] gnu: linux-libre: Use modify-phases David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-09 12:34     ` [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin David Craven
                       ` (13 subsequent siblings)
  15 siblings, 0 replies; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre): Use system->architecture.
---
 gnu/packages/linux.scm | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index e19712f..1544811 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -292,7 +292,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
        (modify-phases %standard-phases
          (delete 'configure)
          (replace 'build
-           (lambda* (#:key system inputs #:allow-other-keys #:rest args)
+           (lambda* (#:key inputs #:allow-other-keys #:rest args)
              ;; Avoid introducing timestamps
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
@@ -301,12 +301,12 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (system* "patch" "-p1" "--force"
                       "-i" (assoc-ref inputs "patch/freedo+gnu"))
 
-             (let ((arch (car (string-split system #\-))))
-               (setenv "ARCH"
-                       (cond ((string=? arch "i686") "i386")
-                             ((string=? arch "mips64el") "mips")
-                             (else arch)))
-               (format #t "`ARCH' set to `~a'~%" (getenv "ARCH")))
+             (let ((arch ,(system->linux-architecture
+                           (or (%current-target-system)
+                               (%current-system)))))
+               (setenv "ARCH" arch))
+
+             (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
 
              (let ((build  (assoc-ref %standard-phases 'build))
                    (config (assoc-ref inputs "kconfig")))
-- 
2.9.0

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

* [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
  2016-09-09 12:34     ` [PATCH 02/17] gnu: linux-libre: Use modify-phases David Craven
  2016-09-09 12:34     ` [PATCH 03/17] gnu: linux-libre: Use system->architecture David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 20:57       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase David Craven
                       ` (12 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre)[origin]: Apply %boot-logo patch
  in origin.
---
 gnu/packages/linux.scm | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 1544811..369a232 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -266,7 +266,8 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
               (uri (linux-libre-urls version))
               (sha256
                (base32
-                "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))))
+                "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
+              (patches (origin-patches %boot-logo-patch))))
     (build-system gnu-build-system)
     (supported-systems '("x86_64-linux" "i686-linux"))
     (native-inputs
@@ -274,7 +275,6 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
        ("bc" ,bc)
        ("openssl" ,openssl)
        ("module-init-tools" ,module-init-tools)
-       ("patch/freedo+gnu" ,%boot-logo-patch)
 
        ,@(let ((conf (kernel-config
                       (or (%current-target-system)
@@ -297,10 +297,6 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
 
-             ;; Apply the neat patch.
-             (system* "patch" "-p1" "--force"
-                      "-i" (assoc-ref inputs "patch/freedo+gnu"))
-
              (let ((arch ,(system->linux-architecture
                            (or (%current-target-system)
                                (%current-system)))))
-- 
2.9.0

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

* [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (2 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 20:57       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation David Craven
                       ` (11 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre)[arguments]: Add configure phase.
---
 gnu/packages/linux.scm | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 369a232..436f3d3 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -290,9 +290,8 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                   (ice-9 match))
        #:phases
        (modify-phases %standard-phases
-         (delete 'configure)
-         (replace 'build
-           (lambda* (#:key inputs #:allow-other-keys #:rest args)
+         (replace 'configure
+           (lambda* (#:key inputs #:allow-other-keys)
              ;; Avoid introducing timestamps
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
@@ -333,11 +332,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                           port)
                  (close-port port))
 
-               (zero? (system* "make" "oldconfig"))
-
-               ;; Call the default `build' phase so `-j' is correctly
-               ;; passed.
-               (apply build #:make-flags "all" args))))
+               (zero? (system* "make" "oldconfig")))))
          (replace 'install
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out    (assoc-ref outputs "out"))
-- 
2.9.0

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

* [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (3 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 20:58       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 07/17] gnu: linux-libre: Use make-linux-libre David Craven
                       ` (10 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre): Add support for
  cross-compilation.
---
 gnu/packages/linux.scm | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 436f3d3..ce714c6 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -291,17 +291,21 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
-           (lambda* (#:key inputs #:allow-other-keys)
+           (lambda* (#:key inputs native-inputs target #:allow-other-keys)
              ;; Avoid introducing timestamps
              (setenv "KCONFIG_NOTIMESTAMP" "1")
              (setenv "KBUILD_BUILD_TIMESTAMP" (getenv "SOURCE_DATE_EPOCH"))
 
+             ;; Set ARCH and CROSS_COMPILE
              (let ((arch ,(system->linux-architecture
                            (or (%current-target-system)
                                (%current-system)))))
-               (setenv "ARCH" arch))
+               (setenv "ARCH" arch)
+               (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
 
-             (format #t "`ARCH' set to `~a'~%" (getenv "ARCH"))
+               (when target
+                 (setenv "CROSS_COMPILE" (string-append target "-"))
+                 (format #t "`CROSS_COMPILE' set to `~a'~%" (getenv "CROSS_COMPILE"))))
 
              (let ((build  (assoc-ref %standard-phases 'build))
                    (config (assoc-ref inputs "kconfig")))
@@ -334,10 +338,10 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
 
                (zero? (system* "make" "oldconfig")))))
          (replace 'install
-           (lambda* (#:key inputs outputs #:allow-other-keys)
+           (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
              (let* ((out    (assoc-ref outputs "out"))
                     (moddir (string-append out "/lib/modules"))
-                    (mit    (assoc-ref inputs "module-init-tools")))
+                    (mit    (assoc-ref (or native-inputs inputs) "module-init-tools")))
                (mkdir-p moddir)
                (for-each (lambda (file)
                            (copy-file file
-- 
2.9.0

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

* [PATCH 07/17] gnu: linux-libre: Use make-linux-libre.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (4 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:07       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter David Craven
                       ` (9 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre, linux-libre-4.4,
  linux-libre-4.1): Use make-linux-libre.
  (make-linux-libre): New variable.
---
 gnu/packages/linux.scm | 78 ++++++++++++++++++++++----------------------------
 1 file changed, 34 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ce714c6..ab20f6e 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -257,16 +257,17 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (file (string-append "gnu/packages/" name)))
     (search-path %load-path file)))
 
-(define-public linux-libre
+(define* (make-linux-libre version hash
+                           #:key
+                           (configuration-file #f)
+                           (defconfig "defconfig"))
   (package
     (name "linux-libre")
-    (version "4.7.2")
+    (version version)
     (source (origin
               (method url-fetch)
               (uri (linux-libre-urls version))
-              (sha256
-               (base32
-                "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
+              (sha256 (base32 hash))
               (patches (origin-patches %boot-logo-patch))))
     (build-system gnu-build-system)
     (supported-systems '("x86_64-linux" "i686-linux"))
@@ -275,14 +276,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
        ("bc" ,bc)
        ("openssl" ,openssl)
        ("module-init-tools" ,module-init-tools)
-
-       ,@(let ((conf (kernel-config
-                      (or (%current-target-system)
-                          (%current-system))
-                      #:variant (version-major+minor version))))
-           (if conf
-               `(("kconfig" ,conf))
-               '()))))
+       ,@(if configuration-file `(("kconfig" ,configuration-file)) '())))
     (arguments
      `(#:modules ((guix build gnu-build-system)
                   (guix build utils)
@@ -316,7 +310,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                    (begin
                      (copy-file config ".config")
                      (chmod ".config" #o666))
-                   (system* "make" "defconfig"))
+                   (system* "make" ,defconfig))
 
                ;; Appending works even when the option wasn't in the
                ;; file.  The last one prevails if duplicated.
@@ -363,39 +357,35 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
 It has been modified to remove all non-free binary blobs.")
     (license license:gpl2)))
 
+(define-public linux-libre
+  (let* ((version "4.7.2")
+         (conf (kernel-config
+                (or (%current-target-system)
+                    (%current-system))
+                #:variant (version-major+minor version))))
+    (make-linux-libre version
+                      "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"
+                      #:configuration-file conf)))
+
 (define-public linux-libre-4.4
-  (package
-    (inherit linux-libre)
-    (version "4.4.19")
-    (source (origin
-              (method url-fetch)
-              (uri (linux-libre-urls version))
-              (sha256
-               (base32
-                "0nddjs7prmb0g7g3w2k4qfyq02a9szm5nvsgflxcaarbq1slibb5"))))
-    (native-inputs
-     (let ((conf (kernel-config (or (%current-target-system)
-                                    (%current-system))
-                                #:variant "4.4")))
-       `(,@(alist-delete "kconfig" (package-native-inputs linux-libre))
-         ("kconfig" ,conf))))))
+  (let* ((version "4.4.19")
+         (conf (kernel-config
+                (or (%current-target-system)
+                    (%current-system))
+                #:variant (version-major+minor version))))
+    (make-linux-libre version
+                      "0nddjs7prmb0g7g3w2k4qfyq02a9szm5nvsgflxcaarbq1slibb5"
+                      #:configuration-file conf)))
 
 (define-public linux-libre-4.1
-  (package
-    (inherit linux-libre)
-    (version "4.1.31")
-    (source (origin
-              (method url-fetch)
-              (uri (linux-libre-urls version))
-              (sha256
-               (base32
-                "0grffah921k136w1qwcswxv6m810s8q54nr2rk7kyqka3a1b81yw"))))
-    (native-inputs
-     (let ((conf (kernel-config (or (%current-target-system)
-                                    (%current-system))
-                                #:variant "4.1")))
-       `(,@(alist-delete "kconfig" (package-native-inputs linux-libre))
-         ("kconfig" ,conf))))))
+  (let* ((version "4.1.31")
+         (conf (kernel-config
+                (or (%current-target-system)
+                    (%current-system))
+                #:variant (version-major+minor version))))
+    (make-linux-libre version
+                      "0grffah921k136w1qwcswxv6m810s8q54nr2rk7kyqka3a1b81yw"
+                      #:configuration-file conf)))
 
 \f
 ;;;
-- 
2.9.0

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

* [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (5 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 07/17] gnu: linux-libre: Use make-linux-libre David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:13       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 09/17] gnu: dtc: Remove patch-paths phase David Craven
                       ` (8 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre): Use
  %default-additional-kernel-configuration.
  (%default-additional-kernel-configuration): New variable.
---
 gnu/packages/linux.scm | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ab20f6e..f629045 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -257,10 +257,26 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
              (file (string-append "gnu/packages/" name)))
     (search-path %load-path file)))
 
+(define %default-additional-kernel-configuration
+  (string-append "CONFIG_NET_9P=m\n"
+                 "CONFIG_NET_9P_VIRTIO=m\n"
+                 "CONFIG_VIRTIO_BLK=m\n"
+                 "CONFIG_VIRTIO_NET=m\n"
+                 ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
+                 "CONFIG_DEVPTS_MULTIPLE_INSTANCES=y\n"
+                 "CONFIG_VIRTIO_PCI=m\n"
+                 "CONFIG_VIRTIO_BALLOON=m\n"
+                 "CONFIG_VIRTIO_MMIO=m\n"
+                 "CONFIG_FUSE_FS=m\n"
+                 "CONFIG_CIFS=m\n"
+                 "CONFIG_9P_FS=m\n"))
+
 (define* (make-linux-libre version hash
                            #:key
                            (configuration-file #f)
-                           (defconfig "defconfig"))
+                           (defconfig "defconfig")
+                           (additional-configuration
+                            %default-additional-kernel-configuration))
   (package
     (name "linux-libre")
     (version version)
@@ -315,19 +331,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                ;; Appending works even when the option wasn't in the
                ;; file.  The last one prevails if duplicated.
                (let ((port (open-file ".config" "a")))
-                 (display (string-append "CONFIG_NET_9P=m\n"
-                                         "CONFIG_NET_9P_VIRTIO=m\n"
-                                         "CONFIG_VIRTIO_BLK=m\n"
-                                         "CONFIG_VIRTIO_NET=m\n"
-                                         ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
-                                         "CONFIG_DEVPTS_MULTIPLE_INSTANCES=y\n"
-                                         "CONFIG_VIRTIO_PCI=m\n"
-                                         "CONFIG_VIRTIO_BALLOON=m\n"
-                                         "CONFIG_VIRTIO_MMIO=m\n"
-                                         "CONFIG_FUSE_FS=m\n"
-                                         "CONFIG_CIFS=m\n"
-                                         "CONFIG_9P_FS=m\n")
-                          port)
+                 (display ,additional-configuration port)
                  (close-port port))
 
                (zero? (system* "make" "oldconfig")))))
-- 
2.9.0

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

* [PATCH 09/17] gnu: dtc: Remove patch-paths phase.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (6 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:14       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 10/17] gnu: Add u-boot-beagle-bone-black David Craven
                       ` (7 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

From: Danny Milosavljevic <dannym@scratchpost.org>

* gnu/packages/u-boot.scm (dtc)[arguments]: Remove patch-paths phase.
  [configure-flags]: Add INSTALL.

Signed-off-by: David Craven <david@craven.ch>
---
 gnu/packages/u-boot.scm | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
index e9a4b90..7949d8a 100644
--- a/gnu/packages/u-boot.scm
+++ b/gnu/packages/u-boot.scm
@@ -47,15 +47,11 @@
        ("flex" ,flex)))
     (arguments
      `(#:make-flags
-       (list "CC=gcc" (string-append "PREFIX=" (assoc-ref %outputs "out")))
+       (list "CC=gcc"
+             (string-append "PREFIX=" (assoc-ref %outputs "out"))
+             "INSTALL=install")
        #:phases
        (modify-phases %standard-phases
-         (add-after 'unpack 'patch-paths
-           (lambda _
-             (substitute* "Makefile"
-               (("/usr/bin/install") "install"))
-             (substitute* "Makefile"
-               (("PREFIX = \\$\\(HOME\\)") ""))))
          (delete 'configure))))
     (home-page "https://www.devicetree.org")
     (synopsis "Compiles device tree source files")
-- 
2.9.0

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

* [PATCH 10/17] gnu: Add u-boot-beagle-bone-black.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (7 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 09/17] gnu: dtc: Remove patch-paths phase David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:16       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 11/17] gnu: Add make-linux-libre-source David Craven
                       ` (6 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/u-boot.scm (u-boot-beagle-bone-black): New variable.
---
 gnu/packages/u-boot.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/u-boot.scm b/gnu/packages/u-boot.scm
index 7949d8a..0423163 100644
--- a/gnu/packages/u-boot.scm
+++ b/gnu/packages/u-boot.scm
@@ -131,3 +131,6 @@ also initializes the boards (RAM etc).")
 
 (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"))
-- 
2.9.0

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

* [PATCH 11/17] gnu: Add make-linux-libre-source.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (8 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 10/17] gnu: Add u-boot-beagle-bone-black David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:21       ` Ludovic Courtès
  2016-09-11 21:23       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter David Craven
                       ` (5 subsequent siblings)
  15 siblings, 2 replies; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux-libre.scm (make-linux-libre-source): New variable.
  (linux-libre, linux-libre-4.4, linux-libre-4.1): Use
  make-linux-libre-source.
  (linux-libre-urls): Remove.
---
 gnu/packages/linux.scm | 60 +++++++++++++++++++++++++-------------------------
 1 file changed, 30 insertions(+), 30 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f629045..6771bd2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -92,21 +92,24 @@
           ((string-prefix? "aarch64" arch) "arm64")
           (else arch))))
 
-(define (linux-libre-urls version)
-  "Return a list of URLs for Linux-Libre VERSION."
-  (list (string-append
-         "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
-         version "-gnu/linux-libre-" version "-gnu.tar.xz")
-
-        ;; XXX: Work around <http://bugs.gnu.org/14851>.
-        (string-append
-         "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
-         version "-gnu.tar.xz")
-
-        ;; Maybe this URL will become valid eventually.
-        (string-append
-         "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
-         version "-gnu.tar.xz")))
+(define-public (make-linux-libre-source version hash)
+  (origin
+    (method url-fetch)
+    (uri (list (string-append
+                "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
+                version "-gnu/linux-libre-" version "-gnu.tar.xz")
+
+               ;; XXX: Work around <http://bugs.gnu.org/14851>.
+               (string-append
+                "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
+                version "-gnu.tar.xz")
+
+               ;; Maybe this URL will become valid eventually.
+               (string-append
+                "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
+                version "-gnu.tar.xz")))
+    (sha256 (base32 hash))
+    (patches (origin-patches %boot-logo-patch))))
 
 (define-public linux-libre-headers
   (let* ((version "4.1.18")
@@ -142,12 +145,10 @@
    (package
     (name "linux-libre-headers")
     (version version)
-    (source (origin
-             (method url-fetch)
-             (uri (linux-libre-urls version))
-             (sha256
-              (base32
-               "1bddh2rg645lavhjkk9z75vflba5y0g73z2fjwgbfrj5jb44x9i7"))))
+    (source
+     (make-linux-libre-source
+      version
+      "1bddh2rg645lavhjkk9z75vflba5y0g73z2fjwgbfrj5jb44x9i7"))
     (build-system gnu-build-system)
     (native-inputs `(("perl" ,perl)))
     (arguments
@@ -271,7 +272,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                  "CONFIG_CIFS=m\n"
                  "CONFIG_9P_FS=m\n"))
 
-(define* (make-linux-libre version hash
+(define* (make-linux-libre version source
                            #:key
                            (configuration-file #f)
                            (defconfig "defconfig")
@@ -280,11 +281,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
   (package
     (name "linux-libre")
     (version version)
-    (source (origin
-              (method url-fetch)
-              (uri (linux-libre-urls version))
-              (sha256 (base32 hash))
-              (patches (origin-patches %boot-logo-patch))))
+    (source source)
     (build-system gnu-build-system)
     (supported-systems '("x86_64-linux" "i686-linux"))
     (native-inputs
@@ -363,32 +360,35 @@ It has been modified to remove all non-free binary blobs.")
 
 (define-public linux-libre
   (let* ((version "4.7.2")
+         (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85")
          (conf (kernel-config
                 (or (%current-target-system)
                     (%current-system))
                 #:variant (version-major+minor version))))
     (make-linux-libre version
-                      "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"
+                      (make-linux-libre-source version hash)
                       #:configuration-file conf)))
 
 (define-public linux-libre-4.4
   (let* ((version "4.4.19")
+         (hash "0nddjs7prmb0g7g3w2k4qfyq02a9szm5nvsgflxcaarbq1slibb5")
          (conf (kernel-config
                 (or (%current-target-system)
                     (%current-system))
                 #:variant (version-major+minor version))))
     (make-linux-libre version
-                      "0nddjs7prmb0g7g3w2k4qfyq02a9szm5nvsgflxcaarbq1slibb5"
+                      (make-linux-libre-source version hash)
                       #:configuration-file conf)))
 
 (define-public linux-libre-4.1
   (let* ((version "4.1.31")
+         (hash "0grffah921k136w1qwcswxv6m810s8q54nr2rk7kyqka3a1b81yw")
          (conf (kernel-config
                 (or (%current-target-system)
                     (%current-system))
                 #:variant (version-major+minor version))))
     (make-linux-libre version
-                      "0grffah921k136w1qwcswxv6m810s8q54nr2rk7kyqka3a1b81yw"
+                      (make-linux-libre-source version hash)
                       #:configuration-file conf)))
 
 \f
-- 
2.9.0

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

* [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (9 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 11/17] gnu: Add make-linux-libre-source David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:32       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 13/17] gnu: make-linux-libre: Add zImage to output David Craven
                       ` (4 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (make-linux-libre): Add extra-version option.
---
 gnu/packages/linux.scm | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 6771bd2..f2e6887 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -274,12 +274,15 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
 
 (define* (make-linux-libre version source
                            #:key
+                           (extra-version #f)
                            (configuration-file #f)
                            (defconfig "defconfig")
                            (additional-configuration
                             %default-additional-kernel-configuration))
   (package
-    (name "linux-libre")
+    (name (if extra-version
+              (string-append "linux-libre-" extra-version)
+              "linux-libre"))
     (version version)
     (source source)
     (build-system gnu-build-system)
@@ -314,6 +317,8 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                  (setenv "CROSS_COMPILE" (string-append target "-"))
                  (format #t "`CROSS_COMPILE' set to `~a'~%" (getenv "CROSS_COMPILE"))))
 
+             (setenv "EXTRA_VERSION" ,extra-version)
+
              (let ((build  (assoc-ref %standard-phases 'build))
                    (config (assoc-ref inputs "kconfig")))
 
-- 
2.9.0

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

* [PATCH 13/17] gnu: make-linux-libre: Add zImage to output.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (10 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:24       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 14/17] gnu: linux-libre: Use kmod David Craven
                       ` (3 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (make-linux-libre): Add zImage to output.
---
 gnu/packages/linux.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index f2e6887..37bdbf4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -346,7 +346,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                (for-each (lambda (file)
                            (copy-file file
                                       (string-append out "/" (basename file))))
-                         (find-files "." "^(bzImage|vmlinuz|System\\.map)$"))
+                         (find-files "." "^(bzImage|zImage|vmlinuz|System\\.map)$"))
                (copy-file ".config" (string-append out "/config"))
                (zero? (system* "make"
                                (string-append "DEPMOD=" mit "/sbin/depmod")
-- 
2.9.0

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

* [PATCH 14/17] gnu: linux-libre: Use kmod.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (11 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 13/17] gnu: make-linux-libre: Add zImage to output David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:25       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter David Craven
                       ` (2 subsequent siblings)
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (make-linux-libre): Use kmod.
---
 gnu/packages/linux.scm | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 37bdbf4..62870a4 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -291,7 +291,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
      `(("perl" ,perl)
        ("bc" ,bc)
        ("openssl" ,openssl)
-       ("module-init-tools" ,module-init-tools)
+       ("kmod" ,kmod)
        ,@(if configuration-file `(("kconfig" ,configuration-file)) '())))
     (arguments
      `(#:modules ((guix build gnu-build-system)
@@ -341,7 +341,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
            (lambda* (#:key inputs native-inputs outputs #:allow-other-keys)
              (let* ((out    (assoc-ref outputs "out"))
                     (moddir (string-append out "/lib/modules"))
-                    (mit    (assoc-ref (or native-inputs inputs) "module-init-tools")))
+                    (kmod    (assoc-ref (or native-inputs inputs) "kmod")))
                (mkdir-p moddir)
                (for-each (lambda (file)
                            (copy-file file
@@ -349,7 +349,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                          (find-files "." "^(bzImage|zImage|vmlinuz|System\\.map)$"))
                (copy-file ".config" (string-append out "/config"))
                (zero? (system* "make"
-                               (string-append "DEPMOD=" mit "/sbin/depmod")
+                               (string-append "DEPMOD=" kmod "/bin/depmod")
                                (string-append "MODULE_DIR=" moddir)
                                (string-append "INSTALL_PATH=" out)
                                (string-append "INSTALL_MOD_PATH=" out)
-- 
2.9.0

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

* [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (12 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 14/17] gnu: linux-libre: Use kmod David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:28       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 16/17] gnu: Add linux-libre-multi-v7 David Craven
  2016-09-09 12:34     ` [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black David Craven
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (make-linux-libre): Add supported-systems
  parameter.
---
 gnu/packages/linux.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 62870a4..384b674 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -272,7 +272,7 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
                  "CONFIG_CIFS=m\n"
                  "CONFIG_9P_FS=m\n"))
 
-(define* (make-linux-libre version source
+(define* (make-linux-libre version source supported-systems
                            #:key
                            (extra-version #f)
                            (configuration-file #f)
@@ -285,8 +285,8 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
               "linux-libre"))
     (version version)
     (source source)
+    (supported-systems supported-systems)
     (build-system gnu-build-system)
-    (supported-systems '("x86_64-linux" "i686-linux"))
     (native-inputs
      `(("perl" ,perl)
        ("bc" ,bc)
@@ -372,6 +372,7 @@ It has been modified to remove all non-free binary blobs.")
                 #:variant (version-major+minor version))))
     (make-linux-libre version
                       (make-linux-libre-source version hash)
+                      '("x86_64-linux" "i686-linux")
                       #:configuration-file conf)))
 
 (define-public linux-libre-4.4
@@ -383,6 +384,7 @@ It has been modified to remove all non-free binary blobs.")
                 #:variant (version-major+minor version))))
     (make-linux-libre version
                       (make-linux-libre-source version hash)
+                      '("x86_64-linux" "i686-linux")
                       #:configuration-file conf)))
 
 (define-public linux-libre-4.1
@@ -394,6 +396,7 @@ It has been modified to remove all non-free binary blobs.")
                 #:variant (version-major+minor version))))
     (make-linux-libre version
                       (make-linux-libre-source version hash)
+                      '("x86_64-linux" "i686-linux")
                       #:configuration-file conf)))
 
 \f
-- 
2.9.0

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

* [PATCH 16/17] gnu: Add linux-libre-multi-v7.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (13 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-09 14:31       ` Vincent Legoll
  2016-09-11 21:30       ` Ludovic Courtès
  2016-09-09 12:34     ` [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black David Craven
  15 siblings, 2 replies; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre-multi-v7): New variable.
---
 gnu/packages/linux.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 384b674..2eadae2 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -399,6 +399,15 @@ It has been modified to remove all non-free binary blobs.")
                       '("x86_64-linux" "i686-linux")
                       #:configuration-file conf)))
 
+(define-public linux-libre-multi-v7
+  (let ((version "4.7.2")
+        (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
+    (make-linux-libre version
+                      (make-linux-libre-source version hash)
+                      '("armhf-linux")
+                      #:defconfig "multi_v7_defconfig"
+                      #:extra-version "multi-v7")))
+
 \f
 ;;;
 ;;; Pluggable authentication modules (PAM).
-- 
2.9.0

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

* [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black.
  2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
                       ` (14 preceding siblings ...)
  2016-09-09 12:34     ` [PATCH 16/17] gnu: Add linux-libre-multi-v7 David Craven
@ 2016-09-09 12:34     ` David Craven
  2016-09-11 21:33       ` Ludovic Courtès
  15 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 12:34 UTC (permalink / raw)
  To: guix-devel

* gnu/packages/linux.scm (linux-libre-beagle-bone-black): New variable.
---
 gnu/packages/linux.scm | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 2eadae2..2320a08 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -408,6 +408,15 @@ It has been modified to remove all non-free binary blobs.")
                       #:defconfig "multi_v7_defconfig"
                       #:extra-version "multi-v7")))
 
+(define-public linux-libre-beagle-bone-black
+  (let ((version "4.7.2")
+        (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
+    (make-linux-libre version
+                      (make-linux-libre-source version hash)
+                      '("armhf-linux")
+                      #:defconfig "omap2plus_defconfig"
+                      #:extra-version "beagle-bone-black")))
+
 \f
 ;;;
 ;;; Pluggable authentication modules (PAM).
-- 
2.9.0

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

* Re: [PATCH 16/17] gnu: Add linux-libre-multi-v7.
  2016-09-09 12:34     ` [PATCH 16/17] gnu: Add linux-libre-multi-v7 David Craven
@ 2016-09-09 14:31       ` Vincent Legoll
  2016-09-11 21:30       ` Ludovic Courtès
  1 sibling, 0 replies; 40+ messages in thread
From: Vincent Legoll @ 2016-09-09 14:31 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

Hello

On Fri, Sep 9, 2016 at 2:34 PM, David Craven <david@craven.ch> wrote:
> * gnu/packages/linux.scm (linux-libre-multi-v7): New variable.

Nitpick, multi-v7 is not really telling, why not adding at least "arm"
in the name ?

-- 
Vincent Legoll

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

* Re: Linux kernel
  2016-09-08 22:45 Linux kernel David Craven
  2016-09-09  1:36 ` Leo Famulari
@ 2016-09-09 22:26 ` Ludovic Courtès
  2016-09-09 22:48   ` David Craven
  1 sibling, 1 reply; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-09 22:26 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> I reworked the patches for the linux-libre package and made some other
> improvements that make customizing the linux-libre package easier. I
> tested that everything builds and that there wasn't any breakage on
> x86_64, but testing the arm kernel on real hardware is a wip. Is it
> easier if I push a branch? They're 17 small patches.
>
> 86fb6ee gnu: Add linux-libre-beagle-bone-black.
> 70d7e6d gnu: Add linux-libre-multi-v7.
> 8073e6e gnu: make-linux-libre: Add supported-systems option.
> 6be1f44 gnu: linux-libre: Use kmod.
> dd9be2e gnu: make-linux-libre: Add zImage to output.
> c4772da gnu: linux-libre: Add extra-version option.
> 089b957 gnu: linux-libre: Add make-linux-libre-source.
> 5508f0d gnu: Add u-boot-beagle-bone-black.
> db2fc94 gnu: dtc: Remove patch-paths phase.
> 01c8d0a gnu: linux-libre: Add additional-configuration to make-linux-libre.
> 9ccf388 gnu: linux-libre: Use make-linux-libre.
> 86126ae gnu: linux-libre: Add support for cross-compilation.
> 2ef150b gnu: linux-libre: Move kernel configuration to configure phase.
> 4737e87 gnu: linux-libre: Apply %boot-logo patch in origin.
> c55b169 gnu: linux-libre: Use system->architecture.
> c456362 gnu: linux-libre: Use modify-phases.
> 95fe35a gnu: module-init-tools: Prevent line wrapping.

Seems we already discussed some of these, no?

Anyway, I’m fine with you sending the remaining patches with ‘git
send-email’; it makes it easier to comment on the code for me.

> The interesting parts are shown here:
>
> (define* (make-linux-libre version source supported-systems
>                            #:key
>                            (extra-version #f)
>                            (configuration-file #f)
>                            (defconfig "defconfig")
>                            (additional-configuration
>                             %default-additional-kernel-configuration))
>   (package
>     (name (if extra-version
>               (string-append "linux-libre-" extra-version)
>               "linux-libre"))
>
>
> (define-public linux-libre
>   (let* ((version "4.7.2")
>          (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85")
                 ^

Nitpick: Use ‘base32’ here, rather than in the callee (that way, base32
parsing happens at compile time and errors are detected early.)

Ludo’.

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

* Re: Linux kernel
  2016-09-09 22:26 ` Linux kernel Ludovic Courtès
@ 2016-09-09 22:48   ` David Craven
  2016-09-10 12:57     ` Ludovic Courtès
  0 siblings, 1 reply; 40+ messages in thread
From: David Craven @ 2016-09-09 22:48 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

> Seems we already discussed some of these, no?

Ah yes, I missed this, sorry - No need to comment on this patch again:

>> Important note: (%current-target-system) returns a GNU triplet such as
>> “arm-linux-gnueabihf”, whereas (%current-system) returns a “system type”
>> such as “armhf-linux”.

>> In practice it works here, and ‘linux-libre-headers’ already does that,
>> so this patch is OK (can go to master).

>> However, we should augment the docstring of ‘system->linux-architecture’
>> to clarify that it accepts both a triplet and a system string.  Could
>> you do that?

> Anyway, I’m fine with you sending the remaining patches with ‘git
> send-email’; it makes it easier to comment on the code for me.

Done.

> Nitpick: Use ‘base32’ here, rather than in the callee (that way, base32
> parsing happens at compile time and errors are detected early.)

Good to know, I wondered why we always need sha256 and base32 :-)

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

* Re: Linux kernel
  2016-09-09 22:48   ` David Craven
@ 2016-09-10 12:57     ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-10 12:57 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

>> Nitpick: Use ‘base32’ here, rather than in the callee (that way, base32
>> parsing happens at compile time and errors are detected early.)
>
> Good to know, I wondered why we always need sha256 and base32 :-)

To illustrate:

--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> ,use(guix)
scheme@(guile-user)> ,expand (base32 "1s8krs3y2n6pzav7ic59dz41alqalphv7vww4138ag30wh0fpvwl")
$3 = #vu8(148 239 235 0 228 96 60 133 70 32 156 239 179 225 165 10 83 21 200 111 169 176 120 182 250 215 88 225 135 206 19 233)
--8<---------------cut here---------------end--------------->8---

Ludo'.

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

* Re: [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin.
  2016-09-09 12:34     ` [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin David Craven
@ 2016-09-11 20:57       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 20:57 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre)[origin]: Apply %boot-logo patch
>   in origin.

OK!

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

* Re: [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase.
  2016-09-09 12:34     ` [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase David Craven
@ 2016-09-11 20:57       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 20:57 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre)[arguments]: Add configure phase.

Makes sense, OK!

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

* Re: [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation.
  2016-09-09 12:34     ` [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation David Craven
@ 2016-09-11 20:58       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 20:58 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre): Add support for
>   cross-compilation.

[...]

> +               (when target
> +                 (setenv "CROSS_COMPILE" (string-append target "-"))
> +                 (format #t "`CROSS_COMPILE' set to `~a'~%" (getenv "CROSS_COMPILE"))))

[...]

> +                    (mit    (assoc-ref (or native-inputs inputs) "module-init-tools")))

Please keep lines below 80 columns.

Otherwise OK!

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

* Re: [PATCH 07/17] gnu: linux-libre: Use make-linux-libre.
  2016-09-09 12:34     ` [PATCH 07/17] gnu: linux-libre: Use make-linux-libre David Craven
@ 2016-09-11 21:07       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:07 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre, linux-libre-4.4,
>   linux-libre-4.1): Use make-linux-libre.
>   (make-linux-libre): New variable.

[...]

> +(define-public linux-libre
> +  (let* ((version "4.7.2")
> +         (conf (kernel-config
> +                (or (%current-target-system)
> +                    (%current-system))
> +                #:variant (version-major+minor version))))

I just realized that this won’t do what we want.

The expression (or (%current-target-system) (%current-system)) is
evaluated at the top-level—i.e., when (gnu packages linux) is loaded.
At that time, (%current-system) holds its default value and
(%current-target-system) is #f.  IOW, even if you do:

  guix build -s foo linux-libre

or:

  guix build --target=bar linux-libre

you always end up with the x86_64-linux kernel config (if you’re on
x86_64-linux).

Conversely, when we write:

  (package
    ;; …
    (inputs `(("conf" ,(kernel-config
                         (or (%current-target-system) …))))))

things work as expected because the ‘inputs’ field is “thunked”
(lazy-evaluated) specifically for this purpose.

A solution would be to pass a procedure instead of a config:

  (define* (make-linux-libre version hash
                             #:key
                             (configuration-file #f)
                             (defconfig "defconfig"))
    (package
      (name "linux-libre")
      (version version)
      (source (origin
                (method url-fetch)
                (uri (linux-libre-urls version))
                (sha256 (base32 hash))
                (patches (origin-patches %boot-logo-patch))))
      (build-system gnu-build-system)
      (supported-systems '("x86_64-linux" "i686-linux"))
      (inputs
       `(("bc" ,bc)
         ;; …
         ;; Call ‘configuration-file’ and pass it the right system type.
         ,@(if configuration-file
               `(("kconfig" ,(configuration-file
                              (or (%current-target-system) …))))
               '())))

   (define variant1
      (make-linux-libre v h
                        #:configuration-file (lambda (system)
                                               …)))

Makes sense?

HTH!

Ludo’.

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

* Re: [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter.
  2016-09-09 12:34     ` [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter David Craven
@ 2016-09-11 21:13       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:13 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre): Use
>   %default-additional-kernel-configuration.
>   (%default-additional-kernel-configuration): New variable.
> ---
>  gnu/packages/linux.scm | 32 ++++++++++++++++++--------------
>  1 file changed, 18 insertions(+), 14 deletions(-)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index ab20f6e..f629045 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -257,10 +257,26 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
>               (file (string-append "gnu/packages/" name)))
>      (search-path %load-path file)))
>  
> +(define %default-additional-kernel-configuration
> +  (string-append "CONFIG_NET_9P=m\n"
> +                 "CONFIG_NET_9P_VIRTIO=m\n"
> +                 "CONFIG_VIRTIO_BLK=m\n"
> +                 "CONFIG_VIRTIO_NET=m\n"
> +                 ;; https://lists.gnu.org/archive/html/guix-devel/2014-04/msg00039.html
> +                 "CONFIG_DEVPTS_MULTIPLE_INSTANCES=y\n"
> +                 "CONFIG_VIRTIO_PCI=m\n"
> +                 "CONFIG_VIRTIO_BALLOON=m\n"
> +                 "CONFIG_VIRTIO_MMIO=m\n"
> +                 "CONFIG_FUSE_FS=m\n"
> +                 "CONFIG_CIFS=m\n"
> +                 "CONFIG_9P_FS=m\n"))
> +
>  (define* (make-linux-libre version hash
>                             #:key
>                             (configuration-file #f)
> -                           (defconfig "defconfig"))
> +                           (defconfig "defconfig")
> +                           (additional-configuration
> +                            %default-additional-kernel-configuration))

Why not, but from the rest of the patch it’s not clear if it’s actually
used, is it?

If we take that route, I would suggest a more idiomatic approach, like:

  (define %default-extra-linux-options
    `(("CONFIG_NET_9P" . m)
      ("CONFIG_SOMETHING" . #f)
      ("CONFIG_SOMETHING_ELSE" . #t)))

This alist could be turned into a string that can be appended to the
config:

  (string-join (string-map (match-lambda
                             ((option . 'm)
                              (string-append option "=m"))
                             ((option . #t)
                              (string-append option "=y"))
                             ((option . #f)
                              (string-append option "=n")))
                            options)
               "\n")

WDYT?

Ludo’.

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

* Re: [PATCH 09/17] gnu: dtc: Remove patch-paths phase.
  2016-09-09 12:34     ` [PATCH 09/17] gnu: dtc: Remove patch-paths phase David Craven
@ 2016-09-11 21:14       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:14 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> From: Danny Milosavljevic <dannym@scratchpost.org>
>
> * gnu/packages/u-boot.scm (dtc)[arguments]: Remove patch-paths phase.
>   [configure-flags]: Add INSTALL.
>
> Signed-off-by: David Craven <david@craven.ch>

OK!

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

* Re: [PATCH 10/17] gnu: Add u-boot-beagle-bone-black.
  2016-09-09 12:34     ` [PATCH 10/17] gnu: Add u-boot-beagle-bone-black David Craven
@ 2016-09-11 21:16       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:16 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/u-boot.scm (u-boot-beagle-bone-black): New variable.

OK if it builds fine!

We’ll probably have to set a restrictive ‘supported-systems’ on those
packages because we probably don’t support any source/target
cross-compilation combination (for instance, it’s not possible to
cross-build from i686 to mips64el IIRC.)

Ludo’.

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

* Re: [PATCH 11/17] gnu: Add make-linux-libre-source.
  2016-09-09 12:34     ` [PATCH 11/17] gnu: Add make-linux-libre-source David Craven
@ 2016-09-11 21:21       ` Ludovic Courtès
  2016-09-11 21:23       ` Ludovic Courtès
  1 sibling, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:21 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux-libre.scm (make-linux-libre-source): New variable.
>   (linux-libre, linux-libre-4.4, linux-libre-4.1): Use
>   make-linux-libre-source.
>   (linux-libre-urls): Remove.

[...]

> -(define (linux-libre-urls version)
> -  "Return a list of URLs for Linux-Libre VERSION."

I would keep it…

> +(define-public (make-linux-libre-source version hash)
> +  (origin
> +    (method url-fetch)
> +    (uri (list (string-append
> +                "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
> +                version "-gnu/linux-libre-" version "-gnu.tar.xz")
> +
> +               ;; XXX: Work around <http://bugs.gnu.org/14851>.
> +               (string-append
> +                "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
> +                version "-gnu.tar.xz")
> +
> +               ;; Maybe this URL will become valid eventually.
> +               (string-append
> +                "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
> +                version "-gnu.tar.xz")))
> +    (sha256 (base32 hash))
> +    (patches (origin-patches %boot-logo-patch))))

… and make it a macro instead (and drop ‘make-’):

  (define-syntax-rule (linux-libre-source version hash)
    (origin
      ;; …
      (sha256 (base32 hash))))

Since it’s a macro, we’d still have the compile-time behavior of
‘base32’ that we discussed earlier.

WDYT?

Ludo’.

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

* Re: [PATCH 11/17] gnu: Add make-linux-libre-source.
  2016-09-09 12:34     ` [PATCH 11/17] gnu: Add make-linux-libre-source David Craven
  2016-09-11 21:21       ` Ludovic Courtès
@ 2016-09-11 21:23       ` Ludovic Courtès
  1 sibling, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:23 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux-libre.scm (make-linux-libre-source): New variable.
>   (linux-libre, linux-libre-4.4, linux-libre-4.1): Use
>   make-linux-libre-source.
>   (linux-libre-urls): Remove.

[...]

> -(define (linux-libre-urls version)
> -  "Return a list of URLs for Linux-Libre VERSION."

I would keep it…

> +(define-public (make-linux-libre-source version hash)
> +  (origin
> +    (method url-fetch)
> +    (uri (list (string-append
> +                "http://linux-libre.fsfla.org/pub/linux-libre/releases/"
> +                version "-gnu/linux-libre-" version "-gnu.tar.xz")
> +
> +               ;; XXX: Work around <http://bugs.gnu.org/14851>.
> +               (string-append
> +                "ftp://alpha.gnu.org/gnu/guix/mirror/linux-libre-"
> +                version "-gnu.tar.xz")
> +
> +               ;; Maybe this URL will become valid eventually.
> +               (string-append
> +                "mirror://gnu/linux-libre/" version "-gnu/linux-libre-"
> +                version "-gnu.tar.xz")))
> +    (sha256 (base32 hash))
> +    (patches (origin-patches %boot-logo-patch))))

… and make it a macro instead (and drop ‘make-’):

  (define-syntax-rule (linux-libre-source version hash)
    (origin
      ;; …
      (uris (linux-libre-urls version))
      (sha256 (base32 hash))))

Since it’s a macro, we’d still have the compile-time behavior of
‘base32’ that we discussed earlier.

WDYT?

Ludo’.

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

* Re: [PATCH 13/17] gnu: make-linux-libre: Add zImage to output.
  2016-09-09 12:34     ` [PATCH 13/17] gnu: make-linux-libre: Add zImage to output David Craven
@ 2016-09-11 21:24       ` Ludovic Courtès
  2016-09-12  6:59         ` Danny Milosavljevic
  0 siblings, 1 reply; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:24 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (make-linux-libre): Add zImage to output.

I suppose “zImage” is for ARM, right?

LGTM, thanks!

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

* Re: [PATCH 14/17] gnu: linux-libre: Use kmod.
  2016-09-09 12:34     ` [PATCH 14/17] gnu: linux-libre: Use kmod David Craven
@ 2016-09-11 21:25       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:25 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (make-linux-libre): Use kmod.

OK!

I don’t think there was any good reason to use module-init-tools here;
that was 3.5 years ago already…

Ludo’.

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

* Re: [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter.
  2016-09-09 12:34     ` [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter David Craven
@ 2016-09-11 21:28       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:28 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (make-linux-libre): Add supported-systems
>   parameter.

OK.

>      (make-linux-libre version
>                        (make-linux-libre-source version hash)
> +                      '("x86_64-linux" "i686-linux")

Maybe we should:

  (define %intel-compatible-systems
    '("x86_64-linux" "i686-linux"))

and use that everywhere?

Ludo’.

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

* Re: [PATCH 16/17] gnu: Add linux-libre-multi-v7.
  2016-09-09 12:34     ` [PATCH 16/17] gnu: Add linux-libre-multi-v7 David Craven
  2016-09-09 14:31       ` Vincent Legoll
@ 2016-09-11 21:30       ` Ludovic Courtès
  1 sibling, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:30 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre-multi-v7): New variable.
> ---
>  gnu/packages/linux.scm | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 384b674..2eadae2 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -399,6 +399,15 @@ It has been modified to remove all non-free binary blobs.")
>                        '("x86_64-linux" "i686-linux")
>                        #:configuration-file conf)))
>  
> +(define-public linux-libre-multi-v7
> +  (let ((version "4.7.2")
> +        (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
> +    (make-linux-libre version
> +                      (make-linux-libre-source version hash)
> +                      '("armhf-linux")
> +                      #:defconfig "multi_v7_defconfig"
> +                      #:extra-version "multi-v7")))

OK, but like Vincent, I find the name a little unclear.  Maybe
“armv7-multisomething”, but what would that “something” be?  :-)

Also, maybe ‘make-linux-libre’ should have default values for the
version and source, so that we don’t have to upgrade several variants
when a new 4.7.x release comes out?

Ludo’.

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

* Re: [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter.
  2016-09-09 12:34     ` [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter David Craven
@ 2016-09-11 21:32       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:32 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (make-linux-libre): Add extra-version option.
> ---
>  gnu/packages/linux.scm | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 6771bd2..f2e6887 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -274,12 +274,15 @@ for SYSTEM and optionally VARIANT, or #f if there is no such configuration."
>  
>  (define* (make-linux-libre version source
>                             #:key
> +                           (extra-version #f)
>                             (configuration-file #f)
>                             (defconfig "defconfig")
>                             (additional-configuration
>                              %default-additional-kernel-configuration))
>    (package
> -    (name "linux-libre")
> +    (name (if extra-version
> +              (string-append "linux-libre-" extra-version)
> +              "linux-libre"))

s/extra-version/variant/, since it’s not something that goes to the
‘version’ field.  WDYT?

Otherwise OK.

Ludo’.

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

* Re: [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black.
  2016-09-09 12:34     ` [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black David Craven
@ 2016-09-11 21:33       ` Ludovic Courtès
  0 siblings, 0 replies; 40+ messages in thread
From: Ludovic Courtès @ 2016-09-11 21:33 UTC (permalink / raw)
  To: David Craven; +Cc: guix-devel

David Craven <david@craven.ch> skribis:

> * gnu/packages/linux.scm (linux-libre-beagle-bone-black): New variable.
> ---
>  gnu/packages/linux.scm | 9 +++++++++
>  1 file changed, 9 insertions(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 2eadae2..2320a08 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -408,6 +408,15 @@ It has been modified to remove all non-free binary blobs.")
>                        #:defconfig "multi_v7_defconfig"
>                        #:extra-version "multi-v7")))
>  
> +(define-public linux-libre-beagle-bone-black
> +  (let ((version "4.7.2")
> +        (hash "1rp09y2hv0hvdybm2n2im9717kzxmklpgzs8k1bmdfzqxyg8cb85"))
> +    (make-linux-libre version
> +                      (make-linux-libre-source version hash)
> +                      '("armhf-linux")
> +                      #:defconfig "omap2plus_defconfig"
> +                      #:extra-version "beagle-bone-black")))

Apart from the duplicate version/hash, that LGTM!

Did you have a chance to boot the resulting kernel on a Beagle Bone
Black?

Thank you for getting us closer to GuixSD on ARM!

Ludo’.

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

* Re: [PATCH 13/17] gnu: make-linux-libre: Add zImage to output.
  2016-09-11 21:24       ` Ludovic Courtès
@ 2016-09-12  6:59         ` Danny Milosavljevic
  2016-09-12  7:46           ` David Craven
  0 siblings, 1 reply; 40+ messages in thread
From: Danny Milosavljevic @ 2016-09-12  6:59 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-devel

> I suppose “zImage” is for ARM, right?

Yes. Newer U-Boot support booting from zImage (using command "bootz" on the U-Boot prompt).

(Older U-Boot needed a special "uImage" which had beeen created by a tool "mkimage" which contain loader (target) information (using command "bootm" on the U-Boot prompt))

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

* Re: [PATCH 13/17] gnu: make-linux-libre: Add zImage to output.
  2016-09-12  6:59         ` Danny Milosavljevic
@ 2016-09-12  7:46           ` David Craven
  0 siblings, 0 replies; 40+ messages in thread
From: David Craven @ 2016-09-12  7:46 UTC (permalink / raw)
  To: guix-devel

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

Yes. Newer U-Boot support booting from zImage (using command "bootz" on the
U-Boot prompt).

Nixos specifies a kernel target, is this necessary or are all arm kernels
using zImage now?

[-- Attachment #2: Type: text/html, Size: 228 bytes --]

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

end of thread, other threads:[~2016-09-12  7:47 UTC | newest]

Thread overview: 40+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-08 22:45 Linux kernel David Craven
2016-09-09  1:36 ` Leo Famulari
2016-09-09 12:34   ` [PATCH 01/17] gnu: module-init-tools: Prevent line wrapping David Craven
2016-09-09 12:34     ` [PATCH 02/17] gnu: linux-libre: Use modify-phases David Craven
2016-09-09 12:34     ` [PATCH 03/17] gnu: linux-libre: Use system->architecture David Craven
2016-09-09 12:34     ` [PATCH 04/17] gnu: linux-libre: Apply %boot-logo patch in origin David Craven
2016-09-11 20:57       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 05/17] gnu: linux-libre: Move kernel configuration to configure phase David Craven
2016-09-11 20:57       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 06/17] gnu: linux-libre: Add support for cross-compilation David Craven
2016-09-11 20:58       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 07/17] gnu: linux-libre: Use make-linux-libre David Craven
2016-09-11 21:07       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 08/17] gnu: make-linux-libre: Add additional-configuration parameter David Craven
2016-09-11 21:13       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 09/17] gnu: dtc: Remove patch-paths phase David Craven
2016-09-11 21:14       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 10/17] gnu: Add u-boot-beagle-bone-black David Craven
2016-09-11 21:16       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 11/17] gnu: Add make-linux-libre-source David Craven
2016-09-11 21:21       ` Ludovic Courtès
2016-09-11 21:23       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 12/17] gnu: make-linux-libre: Add extra-version parameter David Craven
2016-09-11 21:32       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 13/17] gnu: make-linux-libre: Add zImage to output David Craven
2016-09-11 21:24       ` Ludovic Courtès
2016-09-12  6:59         ` Danny Milosavljevic
2016-09-12  7:46           ` David Craven
2016-09-09 12:34     ` [PATCH 14/17] gnu: linux-libre: Use kmod David Craven
2016-09-11 21:25       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 15/17] gnu: make-linux-libre: Add supported-systems parameter David Craven
2016-09-11 21:28       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 16/17] gnu: Add linux-libre-multi-v7 David Craven
2016-09-09 14:31       ` Vincent Legoll
2016-09-11 21:30       ` Ludovic Courtès
2016-09-09 12:34     ` [PATCH 17/17] gnu: Add linux-libre-beagle-bone-black David Craven
2016-09-11 21:33       ` Ludovic Courtès
2016-09-09 22:26 ` Linux kernel Ludovic Courtès
2016-09-09 22:48   ` David Craven
2016-09-10 12:57     ` Ludovic Courtès

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).