From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: Custom kernel Date: Sun, 11 Dec 2016 23:10:06 +0100 Message-ID: <87r35eyv5t.fsf@gnu.org> References: <60c00abf5ceeeb6cfe571991f4969c87@mail.teknik.io> <87d1hafkr7.fsf@gnu.org> <87y3zma72y.fsf@netris.org> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:45625) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cGCJx-0007R8-6F for help-guix@gnu.org; Sun, 11 Dec 2016 17:10:14 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cGCJt-0001yA-6X for help-guix@gnu.org; Sun, 11 Dec 2016 17:10:13 -0500 In-Reply-To: <87y3zma72y.fsf@netris.org> (Mark H. Weaver's message of "Sun, 11 Dec 2016 09:11:49 -0500") List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Mark H Weaver Cc: help-guix@gnu.org, Dmitri Anikin Hello! Mark H Weaver skribis: > ludo@gnu.org (Ludovic Court=C3=A8s) writes: > >> "Dmitri Anikin" 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=E2=80=99ll find this: >> >> (define* (kernel-config arch #:key variant) >> "Return the absolute file name of the Linux-Libre build configuratio= n file >> for ARCH and optionally VARIANT, or #f if there is no such configurati= on." >> =E2=80=A6) >> >> (define* (make-linux-libre version hash supported-systems >> #:key >> ;; A function that takes an arch and a vari= ant. >> ;; 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 >> =E2=80=A6)) >> >> and later: >> >> (define-public linux-libre >> (make-linux-libre "4.8.11" >> "04h3n3lw563i4yhxfkxrrwjvafd3af730l1ih9kqv7qwkm0ps= y7r" >> %intel-compatible-systems >> #:configuration-file kernel-config)) >> >> Currently =E2=80=98make-linux-libre=E2=80=99 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=E2=80=99s 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 =E2=80=98make-linux-li= bre=E2=80=99 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 "1n1bhasqih8acag2glwaqsh76avpinvchvwg6g4q1pfm2vs1= 499x") --8<---------------cut here---------------end--------------->8--- But it=E2=80=99s a defect that not really due to =E2=80=98make-linux-libre= =E2=80=99 per se. Thanks, Ludo=E2=80=99.