Hi Ellis,
Am Samstag, den 06.02.2021, 10:05 +0000 schrieb Ellis Kenyő:
I don't think you're understanding my question.
A number of the dependencies are optional, for example some of the
jinja template commands.
And Guix' policy is – as I've already pointed out – to provide such
optional dependencies as inputs up to a reasonable limit in closure
size.
When this builds, if those packages aren't installed before you
install yadm, the path gets set to `#f`.
That's not how building works. If jinja is *present in the build
environment*, it is available for substitution. This has nothing to do
with packages the user may or may not have installed at that point.
If not, then yeah, you end up with #f. It makes no sense to set up
substitutions for commands, that aren't present in the build
environment.
If you then later install them (one of them for example is a
python module so likely wouldn't be installed through guix), the
path in yadm is still `#f` so it would never find them.
You can and should install python packages through Guix. We here at
Guix Solutions™ do not approve of the need for programming language
specific package managers, especially not multiple ones within the same
project.
Do I have to also package everything it has a soft dependency on?
As long as it can reasonably be expected, that users will want it, yes.
If the soft dependency is indeed completely optional, the software
works perfectly fine without it and few people will be negatively
impacted by a minor feature missing, then it's fine to leave it as-is,
provided that the missing dependency is itself free software. If there
is an optional dependency on non-free software, mentions of that
software should be removed.
Regards,
Leo