On 29 June 2017 at 17:44, Ludovic Courtès <l...@gnu.org> wrote:

> Hi Dmitry,
>
> Dmitry Nikolaev <camelthe...@gmail.com> skribis:
>
> > I want to apply Reiser4 patch for my Linux
> >
> > https://reiser4.wiki.kernel.org/index.php/Main_Page
> > https://sourceforge.net/projects/reiser4/files/
> reiser4-for-linux-4.x/reiser4-for-4.11.0.patch.gz
> >
> > But all code examples in guix repository use code like this
> >
> > (patches (search-patches "somepackage-CVE-fix.patch"))
> >
> > which uses patches from /gnu/packages/aux-files
> >
> > What code should I write in package definition to download file, unzip it
> > and apply patch?
>
> You can do:
>
>   (patches (list (origin
>                    (method url-fetch)
>                    (uri …)
>                    (sha256 …))))
>
> There are a few instances of this pattern I think.
>
> I think it won’t handle gzip though.  So perhaps you need something like
> this (untested):
>
>   (patches (list (computed-file "reiser4.patch"
>                                 (let ((compressed (origin …)))
>                                   #~(system
>                                       (string-append #+(file-append gzip
> "/bin/gunzip")
>                                                      " < " #$compressed
>                                                      " > " #$output))))))
>
> Note that you need the (guix gexp) module for this to work.
>

Thanks Ludo. It helps. Here is final code.

                (patches (list (computed-file "reiser4-for-4.11.0.patch"
                                              (let ((compressed (origin
(method url-fetch)

(uri "
https://downloads.sourceforge.net/project/reiser4/reiser4-for-linux-4.x/reiser4-for-4.11.0.patch.gz
")

(sha256 (base32 "1qc421bqassrxv7z5pzsnwsf9d5pz0azm96rykxh02xlrf8ig3hc")))))
                                                #~(system
                                                   (string-append
#+(file-append gzip "/bin/gunzip")
                                                                  " < "
#$compressed
                                                                  " > "
#$output))))))))

I know I should reuse "reiser4-for-4.11.0.patch" as variable, but I still
lack Lisp knowledge.

Camel

Reply via email to