unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Package Argument #:asd-systems Missing & Guix Provides
@ 2022-11-16 20:55 Charles
  2022-11-18 14:19 ` Guillaume Le Vaillant
  0 siblings, 1 reply; 3+ messages in thread
From: Charles @ 2022-11-16 20:55 UTC (permalink / raw)
  To: Guix Devel

Hello Guix Developers.

More specifically, the #:asd-systems package-argument is missing from lisp libraries using the asdf-build-system/source (packages like cl-alexandria). I understand that it is removed on line 205 of guix/build-system/asdf.scm along with other package-arguments.

(strip-keyword-arguments
 '(#:tests? #:lisp #:asd-systems #:asd-test-systems #:asd-operation)
 (package-arguments pkg))

The reason is clear: asdf-build-system/source doesn't actually build anyting, so it doesn't need any build arguments. Would it hurt to leave the package-arguments there even though they are unused?

Full Context:

I am trying to make a guix-provides script that would take some artifact (name of asd-system) as input and give the packages that create those artifacts.
Examples:

Find by asdf-system
$ guix provides --asdf-system com.inuoe.jzon
sbcl-jzon
ecl-jzon
cl-jzon

Find by binary. I think it will take significant changes to get this one to work.
$ guix provides as
binutils

I'm working on the --asdf-system version as a proof of concept because I like lisp, and it seems doable with minimal changes. The one problem I'm running into is not having access to the #:asd-systems package argument for packages with asdf-build-system/source. I agin ask: Would it be possible to leave the package-arguments (at least the #:asd-systems) in tact for asdf-build-system/source packages?


- Charles




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Package Argument #:asd-systems Missing & Guix Provides
  2022-11-16 20:55 Package Argument #:asd-systems Missing & Guix Provides Charles
@ 2022-11-18 14:19 ` Guillaume Le Vaillant
  2022-11-18 16:38   ` Charles
  0 siblings, 1 reply; 3+ messages in thread
From: Guillaume Le Vaillant @ 2022-11-18 14:19 UTC (permalink / raw)
  To: Charles; +Cc: guix-devel

[-- Attachment #1: Type: text/plain, Size: 1388 bytes --]

Charles <Charles.b.jackson@proton.me> skribis:

> Hello Guix Developers.
>
> [...]
>
> Full Context:
>
> I am trying to make a guix-provides script that would take some artifact (name of asd-system) as input and give the packages that create those artifacts.
> Examples:
>
> Find by asdf-system
> $ guix provides --asdf-system com.inuoe.jzon
> sbcl-jzon
> ecl-jzon
> cl-jzon
>
> Find by binary. I think it will take significant changes to get this one to work.
> $ guix provides as
> binutils
>
> I'm working on the --asdf-system version as a proof of concept because I like
> lisp, and it seems doable with minimal changes. The one problem I'm running
> into is not having access to the #:asd-systems package argument for packages
> with asdf-build-system/source. I agin ask: Would it be possible to leave the
> package-arguments (at least the #:asd-systems) in tact for
> asdf-build-system/source packages?

Hi,

I don't think you can rely on the 'asd-systems' argument of a package
definitions to have an accurate description of ASDF systems contained in
this package.

For example, a system "xxx" could depend on "xxx/a" and "xxx/b". The
package definition for sbcl-xxx will usually only have "xxx" in
'asd-systems'. The "xxx/a" and "xxx/b" systems will get compiled
automatically by ASDF as they are depencencies of the "xxx" system, but
they won't appear in the 'asd-systems' list.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 247 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Package Argument #:asd-systems Missing & Guix Provides
  2022-11-18 14:19 ` Guillaume Le Vaillant
@ 2022-11-18 16:38   ` Charles
  0 siblings, 0 replies; 3+ messages in thread
From: Charles @ 2022-11-18 16:38 UTC (permalink / raw)
  To: Guillaume Le Vaillant; +Cc: guix-devel

> The "xxx/a" and "xxx/b" systems will get compiled
> automatically by ASDF as they are depencencies of the "xxx" system, but
> they won't appear in the 'asd-systems' list.
I forgot about that. Perhaps it would work to assume that everything before the first slash is the base system. 
Thus:
$ guix provides --asdf-system xxx/a
sbcl-xxx
ecl-xxx
cl-xxx

Also for completeness: guix package with asdf-build-system and no #:asd-systems get the system name from the package-name. I have already accounted for this.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2022-11-18 16:39 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-16 20:55 Package Argument #:asd-systems Missing & Guix Provides Charles
2022-11-18 14:19 ` Guillaume Le Vaillant
2022-11-18 16:38   ` Charles

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).