[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’.
Re: Custom kernel, Dmitri Anikin, 2016/12/05