Hi Tomas,

Thanks for your reply!

> I think the relevant part is whether some certificate package is installed 
> (via
> propagated inputs) or not.  If I explicitly add nss-certs to the command 
> above,
> it starts to work:

Sorry, I forgot to add that I always have nss-certs among my packages
when I try this symlink. Otherwise I get an error message as well.

> Could you please share some examples where you get no error, but it has no
> effect?  Maybe they really are bugs (and should be reported).

Here is my most recent experiment:

$ guix time-machine --url=https://codeberg.org/khinsen/guix.git 
--commit=615023ddc9407f27ec7c04060fb520a4cbb3b03f  --disable-authentication -- 
pack -S /etc/ssl=etc/ssl -S /etc/protocols=etc/protocols --format=squashfs 
--save-provenance snakemake bash git git-annex coreutils wget python nss-certs 
net-base
guix time-machine: warning: channel authentication disabled
guix pack: warning: ambiguous package specification `python'
guix pack: warning: choosing python@3.10.7 from gnu/packages/python.scm:610:2
/gnu/store/psq0bqcsnbk7p5w1m2771mlilyikicp6-snakemake-bash-git-git-annex-coreutils-squashfs-pack.gz.squashfs

$ singularity exec 
/gnu/store/psq0bqcsnbk7p5w1m2771mlilyikicp6-snakemake-bash-git-git-annex-coreutils-squashfs-pack.gz.squashfs
 bash
WARNING: passwd file doesn't exist in container, not updating
WARNING: group file doesn't exist in container, not updating
Singularity> ls /etc
hosts  localtime  resolv.conf
Singularity> exit

Neither /etc/ssl nor /etc/protocols are present in the container.

On the other hand, the same packages exported for Docker:

$ guix time-machine --url=https://codeberg.org/khinsen/guix.git 
--commit=615023ddc9407f27ec7c04060fb520a4cbb3b03f  --disable-authentication -- 
pack -S /etc/ssl=etc/ssl -S /etc/protocols=etc/protocols --format=docker 
--save-provenance snakemake bash git git-annex coreutils wget python nss-certs 
net-base
guix time-machine: warning: channel authentication disabled
guix pack: warning: ambiguous package specification `python'
guix pack: warning: choosing python@3.10.7 from gnu/packages/python.scm:432:2
/gnu/store/90ylyh60vvi2inqg9i8wlcfbv8m2px89-snakemake-bash-git-git-annex-coreutils-docker-pack.tar.gz

$ docker load -i 
/gnu/store/90ylyh60vvi2inqg9i8wlcfbv8m2px89-snakemake-bash-git-git-annex-coreutils-docker-pack.tar.gz
Loaded image: snakemake-bash-git-git-annex-coreutils:latest

$ docker run -it snakemake-bash-git-git-annex-coreutils:latest bash
bash-5.1# ls /etc
ls /etc
hostname  hosts  mtab  protocols  resolv.conf  ssl

Both links are present.

Finally, "guix shell" now works (I hadn't tried for a few months):

$ guix time-machine --url=https://codeberg.org/khinsen/guix.git 
--commit=615023ddc9407f27ec7c04060fb520a4cbb3b03f  --disable-authentication -- 
shell -C -N -S /etc/ssl=etc/ssl -S /etc/protocols=etc/protocols snakemake bash 
git git-annex coreutils wget python nss-certs net-base
guix time-machine: warning: channel authentication disabled
guix shell: warning: ambiguous package specification `python'
guix shell: warning: choosing python@3.10.7 from gnu/packages/python.scm:432:2
[env]$ ls /etc
group  hosts  nsswitch.conf  passwd  protocols  resolv.conf  services  ssl

For this example, the only failure is for "pack –format=squashfs".
But the very same command line applied to a different commit (a few
weeks earlier) worked fine.

In case you wonder why I use a personal fork of Guix: For Singularity
export to be usable, I need a patch that is on core-updates
(https://git.savannah.gnu.org/cgit/guix.git/commit/?h=core-updates&id=d8875d76555faf1a11f6838312bfe4b7f6121d2c).
 In
the meantime, I added a graft version of this patch to my personal fork.

Finally, I cleaned up the output of the above commands by removing the
usual messages from the build process, keeping only the messages that
are specific to my example.

Cheers,
  Konrad.

Reply via email to