guix-patches
[Top][All Lists]
Advanced

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

[bug#62036] [PATCH] guix: packages: Consider 'patches' by 'package-direc


From: Simon Tournier
Subject: [bug#62036] [PATCH] guix: packages: Consider 'patches' by 'package-direct-sources'.
Date: Fri, 10 Mar 2023 12:33:06 +0100

Hi Josselin,

On jeu., 09 mars 2023 at 20:43, Josselin Poiret via Guix-patches via 
<guix-patches@gnu.org> wrote:

>> +    (append
>> +     (list source)
>> +     (filter origin? (origin-patches source))))
>
> * cough * (cons source (filter ...)) * cough *

Ahah!  Somehow I removed from my mental toolbox cons, car and cdr
because I am spending too much time explaining to non-lispers. :-)

Thanks for showing me the light. ;-)


> Other than that, LGTM!  Tests worked fine on my end.  No idea what this
> is used for though :p

For instance, it can be used to list all the ’origin’ of a package.
Consider the package ’tensorflow’, it reads,

--8<---------------cut here---------------start------------->8---
    (native-inputs
[...]
       ;; The commit hashes and URLs for third-party source code are taken
       ;; from "tensorflow/workspace.bzl".
       ("boringssl-src"
        ,(let ((commit "ee7aa02")
               (revision "1"))
           (origin
             (method git-fetch)
             (uri (git-reference
                   (url "https://boringssl.googlesource.com/boringssl";)
--8<---------------cut here---------------end--------------->8---

where some inputs are not packages but just ’origin’.  Therefore, the
procedure allows to get all the ’origin’, the one from the field
’origin’ and also the ones from inputs.

--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,use(gnu packages machine-learning)
scheme@(guix-user)> ,pp (map origin-uri (package-direct-sources tensorflow))
$1 = (#<<git-reference> url: "https://github.com/tensorflow/tensorflow"; commit: 
"v1.9.0" recursive?: #f>
 #<<git-reference> url: "https://boringssl.googlesource.com/boringssl"; commit: 
"ee7aa02" recursive?: #f>
[...]
--8<---------------cut here---------------end--------------->8---

For some packages as ’ntp’, the patches are also a list of ’origin’,

--8<---------------cut here---------------start------------->8---
     (origin
       (method url-fetch)
       (uri (list (string-append
                   "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-";
[...]
       ;; Add an upstream patch to fix build with GCC 10.  Taken from
       ;; <https://bugs.ntp.org/show_bug.cgi?id=3688>.
       (patches (list (origin
                        (method url-fetch)
                        (uri 
"https://bugs.ntp.org/attachment.cgi?id=1760&action=diff&context=patch&collapsed=&headers=1&format=raw";)
[...]
--8<---------------cut here---------------end--------------->8---

and the patch allows to also extract them:

--8<---------------cut here---------------start------------->8---
scheme@(guix-user)> ,use(gnu packages ntp)
scheme@(guix-user)> ,pp (map origin-uri (package-direct-sources ntp))
$2 = 
(("https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-4.2.8p15.tar.gz";
  "http://archive.ntp.org/ntp4/ntp-4.2/ntp-4.2.8p15.tar.gz";)
 
"https://bugs.ntp.org/attachment.cgi?id=1760&action=diff&context=patch&collapsed=&headers=1&format=raw";
 
"https://bugs.ntp.org/attachment.cgi?id=1814&action=diff&collapsed=&headers=1&format=raw";)
--8<---------------cut here---------------end--------------->8---


This way it improves the coverage with Software Heritage.  All the
source code (origin) is extracted and feed some SWH loader.  The code is
there:

https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/hydra/build-package-metadata.scm#n58

Cheers,
simon





reply via email to

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