Subject: [BUG] Multiple Packages Failing to Build

From: Christopher Rodriguez <[email-masked]>
Date: Tue, 21 Dec 2021 16:38:56 -0500

Ah, I see. That makes sense.

However, I don't think we need to necessarily use all of 'beets' inputs 
as inputs for 'beets-bandcamp', because it will build fine with just the 
inputs listed. I know it isn't DRY, but it seems like the most efficient 
way to define the package might be to simply define the packages it is 
expecting to see, and only those packages: That way, should someone 
install 'beets' and then 'beets-bandcamp' at a later time, they don't 
need to download unused inputs (like, for instance, 'python-rarfile').

That said, I suppose at least 'beets' needs to be a propagated-input for 
'beets-bandcamp', because IIUC the main difference between the 
propagated-inputs and inputs is that inputs are used only at build time 
(like 'BuildRequires' in RPM), whereas propagated-inputs are pulled in 
as installed dependencies (like 'Requires' in RPM). 'beets' would need 
to be a propagated-input because 'beets-bandcamp' is a plugin for 
'beets', and requires 'beets' to function as expected. Is that correct?

If so, I am unsure why the other originally propagated-inputs were 
listed as such when they weren't needed for beets to function. I just 
built beets-bandcamp with everything listed as a propagated-input in my 
patch moved to an input, and it built fine. Is there a way I could 
install that built version to test it, to ensure none of the inputs need 
to be propagated-inputs (aside from 'beets')?

Please let me know if I'm way off base here; I'm very new to packaging 
in GNU/Guix! (And thank You for the help while I learn!)

As for the GUIX_PYTHONPATH and GUIX_BEETSPATH idea, I would love to 
implement something like that here, but I am running against my 
inexperience here, and was unable to find useful docs on defining PATHs 
or 'wrap-program' (I haven't looked exhaustively yet, but only have so 
much time in the day to do so, unfortunately).

Could You point me to some resources to explain the mechanisms involved 
in defining PATHs, or on the 'wrap-program' function? I am more than 
willing to learn.

Sorry if I'm asking a lot of questions; I'm excited to be a part of this 
project!