The mecanism depends a bit on the build system but for C programs, it's embeded at build-time in its RPATH. For applications, there are wrappers (https://guix.gnu.org/manual/devel/en/html_node/Build-Utilities.html#Wrappers).

So in general, packages use environment variables to find the absolute paths of their dependencies in the store?

In a package definition, are those dependency paths always set using wrap-program? Are search-paths, native-search-paths, and setenv also used to set those environment variables or are those used for something else?

Otherwise, we have to propagate run-time dependencies.

So how else can packages propagate run-time dependencies besides environment variables?

Reply via email to