On 30-07-2022 08:59, Artyom V. Poptsov wrote: >> ... as you have observed, things work even when they aren't propagated >> (at least for qtbase etc., ngspice and octave have not yet been >> tested). > I usually put into "propagated-inputs" packages that provide some binary > that the current package use in the runtime. > > So do you mean that I should rely only on "inputs" package property, and > the inputs will be propagated anyway if they're in use by the package? > Yes to the first (at least in this case, propagation is sometimes hard to avoid), no to the second. Propagation happens only for propagated-inputs; however, if they are 'in use' by the package by ending up in the references, then the GC won't remove the store items. The GC and propagation are independent mechanisms. > Less experimentally, the propagated- in propagated-inputs means only > that: propagation -- the dependencies are still installed even if they > aren't propagated, because the substitute* inserts a reference so the > GC knows to not delete it, the only difference is that the dependency > isn't automatically put in the profile when not propagating. Here, I meant with 'installed' = entry in /gnu/store is downloaded or built and kept, not 'added to ~/.guix-profile or equivalent' -- the latter is propagation. > So the next time Qucs-S run it gets the paths from the configuration > file. > > I changed the substitutions so Qucs-S will ignore the paths to Octave > and NGSpice from the configuration and will always use the paths > provided by Guix. Also any custom paths to Octave and NGSpice will be > overwritten in the config when the application exits. > > That is sub-optimal in my view as we're messing up with the application > configuration logic and if a user wants to change those paths he or she > will be able to remove the config and set the paths in the startup > configuration dialogue, but the settings will have no effect; that will > be a bit confusing. > > Yet at least Qucs-S will always use the right Octave/NGSpice path from > GNU Guix. > > What do you think? > > Here's the patch. It's not ideal that the ngspice cannot be overridden in the configuration, but OTOH we have --with-input. I think it's acceptable, though if there are any users that would like to override in the configuration, we might need to propagate it again and remove the substitute* -- or better, though more work: patch qucs-s to use the configuration when explicitly set by the user and don't write /gnu/store/... inside it automatically, with /gnu/store/... as a fallback when it is not set. Greetings, Maxime.