Subject: bug#73599: packages from store paths don't propagate propagated-inputs

From: MSavoritias <[email-masked]>
Date: Thu, 3 Oct 2024 11:07:04 +0300

MSavoritias kirjoitti 3.10.2024 klo 10.39:
>
>
> Tobias Geerinckx-Rice kirjoitti 2.10.2024 klo 21.22:
>> Hi [explicitly CC'ing Ludo', I hope that's OK],
>>
>> I don't think
>>
>>    guix install $(guix build foo)
>>
>> is, or is expected to be, a supported way to install packages?  Packages have more metadata attached to them than store items.  I don't think that propagation is recorded in the Nix database.  Nor do I think it should be just to support this hack.
>
> It actually is mentioned explicitly in the manual. 
> https://guix.gnu.org/manual/devel/en/html_node/Invoking-guix-package.html
>
> from the link above:
>
> Alternatively, a package can directly specify a store file name such 
> as /gnu/store/...-guile-3.0.7, as produced by, e.g., |guix build|.
>
> Sometimes packages have /propagated inputs/: these are dependencies 
> that automatically get installed along with the required package (see 
> |propagated-inputs| in |package| objects 
> <https://guix.gnu.org/manual/devel/en/html_node/package-Reference.html#package_002dpropagated_002dinputs>, 
> for information about propagated inputs in package definitions).
>
>
> There was an investigation yesterday at the xmpp room and that is how 
> we discovered that the documentation has a bug. If we do not want to 
> support it then this is just a documentation bug.
>
> Personally i could go either way. I already updated the project 
> documentation I have to reflect not to do this 
> https://codeberg.org/Guix_Bechamel/collective/wiki/Updating-Packages#testing-the-package-at-runtime
>
> MSavoritias
>

Sorry for the second reply just wanted to add some additional things here.

 > Packages have more metadata attached to them than store items.

I was very surprised to discover this yesterday when somebody pointed it 
out. The manual does not mention this in the store section. Is this 
because what you want is a nar that is retrieved only when doing guix 
export/import? at least that is my guess doing a search for metadata in 
the guix manual.

Aside from that as a separate issue of concern

it was mentioned that the Gnu Guix channel has solved this by doing the 
whole pre-inst-env architecture thing but i found little documentation 
to go on in the manual aside from "keeping things separate". There is 
also no mention of why it is needed, why these tools where picked, how 
the architecture is arranged and interacts or what each tool actually 
does. I tried to read the source files but there is not enough comments 
to go on. I assume it is expected to know pathing, unix, autotools, bash 
scripting among others but that is not mentioned and shouldn't be needed 
imo.

Some clarifications of this would be nice but as I said these are out of 
scope of this bug report probably.

Also some guide on the Guix manual by hopefully more knowledgeable 
people on how you are supposed to test packages at runtime would be 
nice. The guide only mentions to build packages but that doesn't make 
sure that packages actually work. namely:

- po4a in the gnu channel of guix is atm broken. It misses gettext at 
runtime.

- gajim doesn't show emojis

MSavoritias