Re: Finding Dependencies at Run Time

2022-07-16 Thread Thiago Jung Bauermann
Hello Peter, Peter Polidoro writes: >> Remember the difference between inputs and propagated inputs: they're >> the same, but when you create a profile, inputs are not part of the >> profile (so they need a direct store reference, such as RPATH or a >> wrapper), whereas propagated inputs are

Re: Finding Dependencies at Run Time

2022-07-14 Thread Peter Polidoro
Remember the difference between inputs and propagated inputs: they're the same, but when you create a profile, inputs are not part of the profile (so they need a direct store reference, such as RPATH or a wrapper), whereas propagated inputs are part of the profile, so an environment variable

Re: Finding Dependencies at Run Time

2022-07-14 Thread zimoun
Hi, (I am an avid Emacs user but to be honest I barely use Info manuals. Even after many attempts to use them, I find the Info interface counter-intuitive. Initially, I thought it was because I do not have the habits and I forced myself to exclusively use it. The conclusions are: 1. it is

Re: Finding Dependencies at Run Time

2022-07-14 Thread Ricardo Wurmus
"Philip McGrath" writes: > On Thu, Jul 14, 2022, at 4:25 AM, Ricardo Wurmus wrote: >> Peter Polidoro writes: >> >>> Your explanations are very helpful, thank you, and your links made me >>> realize that devel version of the manual has lots of information that >>> I could not find in the

Re: Finding Dependencies at Run Time

2022-07-14 Thread Philip McGrath
On Thu, Jul 14, 2022, at 4:25 AM, Ricardo Wurmus wrote: > Peter Polidoro writes: > >> Your explanations are very helpful, thank you, and your links made me >> realize that devel version of the manual has lots of information that >> I could not find in the stable version of the manual. > > We

Re: Finding Dependencies at Run Time

2022-07-14 Thread Ricardo Wurmus
Peter Polidoro writes: > Your explanations are very helpful, thank you, and your links made me > realize that devel version of the manual has lots of information that > I could not find in the stable version of the manual. We recommend using the manual that comes with Guix, because it matches

Re: Finding Dependencies at Run Time

2022-07-13 Thread Julien Lepiller
My explanation must not have been clear. You can read more on search-paths at https://guix.gnu.org/manual/devel/en/html_node/Search-Paths.html#Search-Paths Basically, it's a declaration on packages that specify which path-like environment variables they honor. When building an

Re: Finding Dependencies at Run Time

2022-07-13 Thread Peter Polidoro
Your explanations are very helpful, thank you, and your links made me realize that devel version of the manual has lots of information that I could not find in the stable version of the manual. During the build, search-paths and native-search-paths are used to set up environment variables.

Re: Finding Dependencies at Run Time

2022-07-13 Thread Julien Lepiller
Maybe the general case is C programs rather than wrappers. During the build, search-paths and native-search-paths are used to set up environment variables. If you use --keep-failed and interrupt a build you'l find them in /tmp/guix-build-…/environment-variables. For C programs, LIBRARY_PATH is

Re: Finding Dependencies at Run Time

2022-07-13 Thread Peter Polidoro
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

Re: Finding Dependencies at Run Time

2022-07-13 Thread Julien Lepiller
The information is all in the package. You can see for instance store paths that are embedded form a store path with: guix gc --references /gnu/store/… 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

Finding Dependencies at Run Time

2022-07-13 Thread Peter Polidoro
I apologize for a very basic question, but I could not find where this is documented. If a paper or manual page describes this I would be happy to read it. How, in general, does code in a Guix package find its dependency packages at run time? Does it potentially work differently for each