From: Julien Lepiller <julien@lepiller.eu>
To: help-guix@gnu.org,"Bonface M. K." <bonfacemunyoki@gmail.com>
Cc: Pjotr Prins <pjotr2020@thebird.nl>
Subject: Re: How do you write a package's deps to a file?
Date: Mon, 30 Nov 2020 12:17:30 -0500 [thread overview]
Message-ID: <D5CB7294-94CA-4698-9612-F5609FAE8129@lepiller.eu> (raw)
In-Reply-To: <86mtyyzuag.fsf@gmail.com>
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
next prev parent reply other threads:[~2020-11-30 17:18 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-30 16:25 How do you write a package's deps to a file? Bonface M. K.
2020-11-30 17:17 ` Julien Lepiller [this message]
2020-11-30 23:23 ` zimoun
2020-12-01 9:13 ` Bonface M. K.
2020-12-01 9:59 ` zimoun
2020-12-01 18:04 ` Bonface M. K.
2020-12-01 8:29 ` Bonface M. K.
2020-12-01 7:35 ` Efraim Flashner
2020-12-01 9:15 ` Bonface M. K.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=D5CB7294-94CA-4698-9612-F5609FAE8129@lepiller.eu \
--to=julien@lepiller.eu \
--cc=bonfacemunyoki@gmail.com \
--cc=help-guix@gnu.org \
--cc=pjotr2020@thebird.nl \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.