help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Custom kernel


From: Ludovic Courtès
Subject: Re: Custom kernel
Date: Sun, 11 Dec 2016 23:10:06 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Hello!

Mark H Weaver <address@hidden> skribis:

> address@hidden (Ludovic Courtès) writes:
>
>> "Dmitri Anikin" <address@hidden> skribis:
>>
>>> Is it possible to pass custom patches and kernel config file to be used for 
>>> linux-libre package?
>>
>> It is possible, yes.
>>
>> If you look at (gnu packages linux), you’ll find this:
>>
>>   (define* (kernel-config arch #:key variant)
>>     "Return the absolute file name of the Linux-Libre build configuration 
>> file
>>   for ARCH and optionally VARIANT, or #f if there is no such configuration."
>>      …)
>>
>>   (define* (make-linux-libre version hash supported-systems
>>                              #:key
>>                              ;; A function that takes an arch and a variant.
>>                              ;; See kernel-config for an example.
>>                              (extra-version #f)
>>                              (configuration-file #f)
>>                              (defconfig "defconfig")
>>                              (extra-options %default-extra-linux-options)
>>                              (patches (list %boot-logo-patch)))
>>     (package
>>       …))
>>
>> and later:
>>
>>   (define-public linux-libre
>>     (make-linux-libre "4.8.11"
>>                       "04h3n3lw563i4yhxfkxrrwjvafd3af730l1ih9kqv7qwkm0psy7r"
>>                       %intel-compatible-systems
>>                       #:configuration-file kernel-config))
>>
>> Currently ‘make-linux-libre’ is not public, but we could probably make
>> it public (David, WDYT?).  In the meantime, in your own module, you can
>> do:
>>
>>   (define make-linux-libre
>>     ;; It’s private but I wanna use it anyway!
>>     (@@ (gnu packages linux) make-linux-libre))
>
> I think we should avoid exporting 'make-linux-libre' in its current
> form.

Makes sense.

> Although it was an improvement in some ways over what we had
> previously, I've found it to be an inadequate interface in many
> respects, and in my opinion it needs to be redesigned.  I don't have
> time to make a case now, but in practice it leads to redundancy.  For
> example, when I recently added security fixes to linux-libre, I needed
> to add the patches in two separate places, and every time I update the
> version, I need to update two places as well.

Looking at 6b2921c3acf2cc808128af97784929365f8582af, it seems that
patches lead to modifications in only one place (the ‘make-linux-libre’
call site), no?

There seems to be redundancy here though:

--8<---------------cut here---------------start------------->8---
;; Avoid rebuilding kernel variants when there is a minor version bump.
(define %linux-libre-version "4.8.13")
(define %linux-libre-hash 
"1n1bhasqih8acag2glwaqsh76avpinvchvwg6g4q1pfm2vs1499x")
--8<---------------cut here---------------end--------------->8---

But it’s a defect that not really due to ‘make-linux-libre’ per se.

Thanks,
Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]