Hello! Mark H Weaver <m...@netris.org> skribis:
> 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. 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’.