Pan Xie <xie...@skyguard.com.cn> skribis: > Hello > > I find this interesting thing but I don't have an explanation. When query the > "references" of my Gnu Store item "sbcl", it shows that sbcl references > bash-mininal, as the following output shows: > > # guix gc --references /gnu/store/sbbp9nvslqcf3bmcnz5wgxf2qpsi757 > /gnu/store/6ncav55lbk5kqvwwflrzcr41hp5jbq0c-gcc-11.3.0-lib > /gnu/store/ln6hxqjvz6m9gdd9s97pivlqck7hzs99-glibc-2.35 > /gnu/store/mzx7j93w5szyzrgnql8dqhqdgjh6si02-mpfr-4.2.0 > /gnu/store/nl194qnq5lhjxpfwcs15xqihnfqif335-zstd-1.5.2-lib > /gnu/store/sbbp9nvslqcf3bmcnz5wgxf2qpsi757i-sbcl-2.3.7 > /gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16 > /gnu/store/ybadavwz1z9kmxanqy3siw38lnkwnkrp-gmp-6.2.1 > > However when I look into sbcl's package definition, there is no bash-minimal > as > its input. I can use guix graph find a path from sbcl to bash-minimal: > > # guix graph --path sbcl bash-minimal > sbcl@2.3.7 > texlive-updmap.cfg@66594 > texlive-scheme-basic@66594 > texlive-collection-basic@66594 > texlive-bin@20230313 > cairo@1.16.0 > bash-minimal@5.1.16 > > bash-minimal is indeed one of cairo's package input. However cairo also has > inputs like ghostscript and libspectre, which sbcl does not reference. > > "guix size sbcl" also reports bash-minimal is part of sbcl package, and "guix > pack sbcl" will include bash-minimal in its final tarball. > > So the question is, which part of sbcl's package definition tells Guix it need > to add bash-minimal as part of sbcl? Is there a practical method to figure > that > out?
Hi. It looks like there are some contrib libraries of sbcl that need a shell, which is why the bash-minimal available in the build environment is referenced by some files in the sbcl package. I guess we should list bash-minimal explicitly in the inputs... --8<---------------cut here---------------start------------->8--- $ grep -R bash-minimal $(guix build sbcl) grep: /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/lib/sbcl/contrib/sb-executable.fasl: binary file matches grep: /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/lib/sbcl/contrib/asdf.fasl: binary file matches grep: /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/lib/sbcl/contrib/sb-aclrepl.fasl: binary file matches grep: /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/lib/sbcl/contrib/uiop.fasl: binary file matches /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/asdf/pull-asdf.sh:#!/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh -e /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/asdf/asdf.lisp: #+os-unix (string `("/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" "-c" ,command)) /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/asdf/asdf.lisp: #+os-unix ,@'(ext:run-program "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" :arguments `("-c" ,%command)) /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/asdf/uiop.lisp: #+os-unix (string `("/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" "-c" ,command)) /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/asdf/uiop.lisp: #+os-unix ,@'(ext:run-program "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" :arguments `("-c" ,%command)) /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/sb-aclrepl/repl.lisp: (sb-ext:run-program "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" (list "-c" string-arg) /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/sb-executable/sb-executable.lisp: "#!/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh -- /gnu/store/yqqjrhap1jp0aqs5p7xs5j13z0nza1zj-sbcl-2.3.7/share/sbcl/contrib/sb-posix/posix-tests.lisp: (stat-2 (sb-posix:stat "/gnu/store/v9p25q9l5nnaixkhpap5rnymmwbhf9rp-bash-minimal-5.1.16/bin/sh" --8<---------------cut here---------------end--------------->8---
signature.asc
Description: PGP signature