unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Attila Lendvai <attila@lendvai.name>
To: "guix-devel@gnu.org" <guix-devel@gnu.org>
Subject: importers and input package lookup
Date: Mon, 20 Dec 2021 21:14:11 +0000	[thread overview]
Message-ID: <FuW4JzMDHtW5MwswUgdcTYQOEM47BZ8_kIz0UBbgx2pPxGDEb4vZKDMb30dWoI8NDnygsL7NfMwcQvlV1z6-HjnZ5k56Zw3XsBXCOAHAoz0=@lendvai.name> (raw)

dear Guixers,

there are two, independent namespaces:
1) the scheme one, and
2) the guix package repository.

when i work on an importer (golang), it skips the packages that are already available in 2), but then it has no clue under what variable name they are stored in 1), and in which scheme module.

should the dependency lists in the package forms be emitted as (specification->package "pkgname@0.1.0") forms?

in the current codebase this emission is done in the shared guix/import/utils.scm, in package-names->package-inputs. if i change this, it'll affect every other importer (BTW, i have converted it to use the new format).

is specification->package fast enough that it all doesn't matter?

a bit of a tangent here, and a higher-level perspective, but... shouldn't the package definition DSL have support for this? then most package descriptions could be using package specifications instead of scheme variables, and 1) could be phased out. or would that be more error prone? maybe with a tool that warns for the equivalent of undefined variable warnings?

background:

the reason i'm facing this is that i'm using the machinery in an idiosyncratic way: i want to have an isolated module where a --recursive --pin-versions of the entire transitive closure of a project is captured. when some package/version is available already in guix, the importer skips it, but then refers to it through a missing variable reference. and if i want to have two of such golang packages (Swarm's bee, and geth) that share many of the dependencies/versions...

i know the arguments why it's considered a bad idea from the perspective of Guix, but then miscompiling the ethereum client can lead to losing money.

- attila
PGP: 5D5F 45C7 DFCD 0A39



             reply	other threads:[~2021-12-20 21:21 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-20 21:14 Attila Lendvai [this message]
2022-01-03 14:40 ` importers and input package lookup Ludovic Courtès
2022-01-03 15:01   ` Jelle Licht

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

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='FuW4JzMDHtW5MwswUgdcTYQOEM47BZ8_kIz0UBbgx2pPxGDEb4vZKDMb30dWoI8NDnygsL7NfMwcQvlV1z6-HjnZ5k56Zw3XsBXCOAHAoz0=@lendvai.name' \
    --to=attila@lendvai.name \
    --cc=guix-devel@gnu.org \
    /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 public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).