l...@gnu.org (Ludovic Courtès) writes:

> "Dmitri Anikin" <ana...@teknik.io> 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.  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.

     Thanks,
       Mark

Reply via email to