[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Symlinks in "guix pack" and "guix shell"
|
From: |
Konrad Hinsen |
|
Subject: |
Re: Symlinks in "guix pack" and "guix shell" |
|
Date: |
Mon, 29 Jan 2024 14:23:24 +0100 |
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.