Tobias Geerinckx-Rice <tobias.geerinckx.r...@gmail.com> writes: > Hmm, > > On 16 February 2016 at 17:22, Tobias Geerinckx-Rice > <tobias.geerinckx.r...@gmail.com> wrote: >> >> /nix/store/k5m7fb4r3p71mkvaxgqh242aq8kr6h6s-guile-2.0.11/bin/guile: >> symbol lookup error: >> /gnu/store/rdi8195mysf340rm54xqjmxpl1qjq1wb-nettle-3.2/lib/libhogweed.so.4: >> undefined symbol: __gmpz_limbs_read >> >> :-/ > > My guix checkout was littered with hard-coded paths to Nix's Guile: > > nix/scripts/list-runtime-roots:#!/nix/store/...-guile-2.0.11/bin/guile -ds > scripts/guix:#!/nix/store/...-guile-2.0.11/bin/guile --no-auto-compile > > config.status:S["GUILE_CONFIG"]="/nix/store/...-guile-2.0.11/bin/guile-config" > config.status:S["GUILE"]="/nix/store/...-guile-2.0.11/bin/guile" > > Running > > guix$ find -type f -exec sed > 's@/nix/store/k5m7fb4r3p71mkvaxgqh242aq8kr6h6s-guile-2.0.11@/gnu/store/b44k6wx7nxn0kh2kchlazgas2ybc576v-guile-2.0.11@g' > -i {} \; > > ‘solved’ that. Is this normal? Should't that have been bootstrapped out?
These paths are recorded at configure time. The “./configure” script checks for the full paths of dependencies and substitutes the placeholders in the sources. The error at the very top shows that your Guile (which happens to be in Nix) is broken. Maybe it is broken because of your environment. It doesn’t seem normal for a binary in Nix to load a library in the Guix store. (Do you have LD_LIBRARY_PATH set, or something similar that could mess with where libraries are loaded from?) Instead of using “find” and “sed” it would have been sufficient to rerun “./configure” in a suitable environment containing Guile and the other dependencies. ~~ Ricardo