guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Grafts


From: Mark H Weaver
Subject: Re: Grafts
Date: Tue, 14 Oct 2014 22:15:35 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.94 (gnu/linux)

address@hidden (Ludovic Courtès) writes:

> I pushed ‘wip-grafts’, a branch that implements “grafts.”
>
> 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’ve seen
> lately.
>
> The idea of grafts is to graft the fixed package on any packages users
> may want to install.  So, suppose there’s a libc fix; when installing
> IceCat, you’ll 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.

> ‘wip-grafts’ adds a ‘graft’ field to package records.  In the example
> above, we’d just add a ‘graft’ field to glibc, pointing 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 history, 
> 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]