help-guix
[Top][All Lists]
Advanced

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

Re: How do you write a package's deps to a file?


From: Julien Lepiller
Subject: Re: How do you write a package's deps to a file?
Date: Mon, 30 Nov 2020 12:17:30 -0500
User-agent: K-9 Mail for Android

The reason you always get the same data is because you're assigning "name" 
inside the sexp (build-side), but you're using it inside tge unquote 
(host-side), so it refers to the name of the package you're building.

I think you're doing it wrong, because some input names have no corresponding 
package (see source for instance). Why not use the package data directly, like 
guix graph does for instance?

Le 30 novembre 2020 11:25:11 GMT-05:00, "Bonface M. K." 
<bonfacemunyoki@gmail.com> a écrit :
>
>Hi guix! I want to output the deps of a package to
>a writable file. Like say the "hello" world
>package, I'd like to insert a file after, say the
>install phase, so that later I could parse it and
>serve it from a website. Here's a snip of what I
>have:
>
>#+begin_src scheme
>(add-after 'install 'create-dependency-file
>                 (lambda* (#:key inputs outputs #:allow-other-keys)
>                   (call-with-output-file
>                       (string-append
>                        (assoc-ref outputs "out")
>                        "/lib/python3.8/site-packages"
>                        "/wqflask/DEPENDENCIES.txt")
>                     (lambda (port)
>                       (format
>                        port "
>#### System Inputs (generated from Guix)
>|Name | Version | Home Page | Description |
>|-----|---------|-----------|-------------|
>|~a|
>"
>                        (apply
>                         string-append
>                         (map (lambda (input)
>                                (let ((name (car input)))
>                                  (string-append
>                                   "| **" name "** | "
>                                   ,(package-version
>                                   (specification->package name)) " | "
>                                   ,(package-home-page
>                                     (specification->package name))
>                                   " |"
>                                   ,(package-description
>                                     (specification->package name))
>                                   " |\n")))
>                              inputs)))
>                       ))
>                   ))
>#+end_src
>
>That ^^ doesn't seem to work as I'd like it to. The output(truncated)
>looks something like:
>                            
>#+begin_src markdown
>➜  guix git:(master) ✗ cat
>~/opt/python3-genenetwork2/lib/python3.8/site-packages/wqflask/DEPENDENCIES.txt
>
>
> #### System Inputs (generated from Guix)
>|Name | Version | Home Page | Description |
>|-----|---------|-----------|-------------|
>|| **python** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **source** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **javascript-colorbox** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **coreutils** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **git** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **which** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **grep** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **r** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **r-ctl** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **r-qtl** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **r-wgcna** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **redis** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **mariadb** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **gemma** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **gemma-wrapper** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **plink-ng-gn** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **racket-minimal** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **rust-qtlreaper** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **nginx** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **python-twint** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **python-unittest2** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-twitter-post-fetcher** | 3.11-guix-84cbf35 |
>http://genenetwork.org/ |Genenetwork installation sumo. |
>| **javascript-cytoscape** | 3.11-guix-84cbf35 |
>http://genenetwork.org/ |Genenetwork installation sumo. |
>| **javascript-panzoom** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-qtip** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-chroma** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-d3-tip** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-jscolor** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-colorbox** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-jszip** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **js-jstat** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **js-md5** | 3.11-guix-84cbf35 | http://genenetwork.org/ |Genenetwork
>installation sumo. |
>| **js-parsley** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-plotly** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-typeahead** | 3.11-guix-84cbf35 |
>http://genenetwork.org/ |Genenetwork installation sumo. |
>| **js-underscore** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **js-smart-time-ago** | 3.11-guix-84cbf35 | http://genenetwork.org/
>|Genenetwork installation sumo. |
>| **javascript-nouislider** | 3.11-guix-84cbf35 |
>http://genenetwork.org/ |Genenetwork installation sumo. |
>#+end_src
>
>Notice that the version, home page and description
>are repeated across rows. Herein lies my question:
>How would you fetch the details of the inputs(like
>version, home-page, description) etc etc from a
>modifed phase. Do I need to create a closure from
>which I can import the modules like say _(use (gnu
>packages))_. How do I do that if that's the case?
>
>Is it also possible to get the same information in
>a fine grained manner, like say get the
>propagated-inputs instead of getting /all/ inputs?
>
>-- 
>Bonface M. K. <https://www.bonfacemunyoki.com>
>Chief Emacs Bazu / Rieng ya software sare
>Mchochezi of: <https://upbookclub.com> / Twitter: @BonfaceKilz
>GPG Key: D4F09EB110177E03C28E2FE1F5BBAE1E0392253F


reply via email to

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