From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark H Weaver Subject: Re: Grafts Date: Tue, 14 Oct 2014 22:15:35 -0400 Message-ID: <87zjcyulh4.fsf@netris.org> References: <87a950igwi.fsf@gnu.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]:38271) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XeE7r-0007xV-3q for guix-devel@gnu.org; Tue, 14 Oct 2014 22:15:48 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XeE7k-0002Ei-I9 for guix-devel@gnu.org; Tue, 14 Oct 2014 22:15:43 -0400 In-Reply-To: <87a950igwi.fsf@gnu.org> ("Ludovic \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\= \=\?utf-8\?Q\?s\?\= message of "Mon, 13 Oct 2014 09:10:37 +0200") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Ludovic =?utf-8?Q?Court=C3=A8s?= Cc: Guix-devel ludo@gnu.org (Ludovic Court=C3=A8s) writes: > I pushed =E2=80=98wip-grafts=E2=80=99, a branch that implements =E2=80=9C= grafts.=E2=80=9D > > Normally security updates deep in the DAG, such as an update of Bash or > libc, cause a rebuild of everything, which can some time, as we=E2=80=99v= e seen > lately. > > The idea of grafts is to graft the fixed package on any packages users > may want to install. So, suppose there=E2=80=99s a libc fix; when instal= ling > IceCat, you=E2=80=99ll just be starting from the (pre-built) IceCat, and = an > additional derivation will patch the files in it to replace references > to the old libc with references to the fixed libc (in practice this only > works if the file name of the old and fixed libc have the same length.) Thanks for working on this! I think it will be quite important. > =E2=80=98wip-grafts=E2=80=99 adds a =E2=80=98graft=E2=80=99 field to pack= age records. In the example > above, we=E2=80=99d just add a =E2=80=98graft=E2=80=99 field to glibc, po= inting to the fixed > glibc, and the graft would just be automagically applied. The branch > has an example of that with Bash: > > --- a/gnu/packages/bash.scm > +++ b/gnu/packages/bash.scm > @@ -185,7 +185,13 @@ allows command-line editing, unlimited command histo= ry, shell functions and > aliases, and job control while still allowing most sh scripts to be run > without modification.") > (license gpl3+) > - (home-page "http://www.gnu.org/software/bash/")))) > + (home-page "http://www.gnu.org/software/bash/") > + (graft bash-fixed)))) > + > +(define bash-fixed ;FIXME: Use something = real. > + (package (inherit bash) > + (version "4.3.42") > + (graft #f))) If you want a real example, upstream bash is at 4.3.30, whereas we only have 4.3.27. Thanks! Mark