Hi, On Mon, 4 Jan 2021 at 18:29, Phil <[email protected]> wrote:
> > Could you share how you generated the profile ’my-profile’? > > Yes - the issue here appears to be the inclusion of a package from a > private channel in the manifest. > > If I create a manifest only using Guix packages - everything looks OK - eg: > > ubuntu@test-image:~/guix-manifests$ cat test-manifest.scm > (packages->manifest > (list (specification->package "[email protected]"))) [...] > ubuntu@test-image:~/guix-manifests$ guix package -m test-manifest.scm -p > ~/guix-profiles/test-profile [...] > ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile > -l > \Generation 1 Jan 04 2021 17:00:58\ (current) > python 3.8.2 As I explained in the previous email, even if both are profiles, they are not the same. Basically, "guix pull" is for "~/.config/guix/current" which is somehow special. Therefore, I do not know what you want to achieve with "guix pull -p ~/guix-profiles/test-profile -l". Maybe, what you want is instead: ""guix package -p ~/guix-profiles/test-profile -l". Otherwise, could you explain which result you are expecting whatever the command to use? > But if I now also add a package from my private channel to the manifest: > > ubuntu@test-image:~/guix-manifests$ cat test-manifest-2.scm > (packages->manifest > (list (specification->package "[email protected]") > (@ (py-test-pkg) py-test-pkg-develop))) This looks weird to me. For example, I have 2 channels: --8<---------------cut here---------------start------------->8--- $ guix describe Generation 99 Jan 05 2021 16:56:39 (current) guix-science cf87b05 repository URL: https://github.com/guix-science/guix-science.git branch: master commit: cf87b0501c4a38b96edf41025a27bf1cb91f521a guix 957f0c4 repository URL: https://git.savannah.gnu.org/git/guix.git branch: master commit: 957f0c40327ce00f53db22737e3775ce616ac258 --8<---------------cut here---------------end--------------->8--- and let consider this package from the extra channel: --8<---------------cut here---------------start------------->8--- $ guix show python-nose-exclude | recsel -p location location: guix-science/packages/jupyter.scm:71:2 --8<---------------cut here---------------end--------------->8--- then my manifest.scm file contains: --8<---------------cut here---------------start------------->8--- $ cat /tmp/my-manifest.scm (specifications->manifest (list "python" "python-nose-exclude")) --8<---------------cut here---------------end--------------->8--- and "guix package -m /tmp/my-manifest.scm -p /tmp/test-profile" does the job --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 (current) python-nose-exclude 0.5.0 out /gnu/store/...-python-nose-exclude-0.5.0 python 3.8.2 out /gnu/store/...-python-3.8.2 --8<---------------cut here---------------end--------------->8--- And even "guix pull -p /tmp/test-profile -l" works. Now, I replace the manifest to only contain the package hello. --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 Generation 2 Jan 05 2021 17:05:29 (current) + hello 2.10 out /gnu/store/a462kby1q51ndvxdv3b6p0rsixxrgx1h-hello-2.10 - python 3.8.2 out /gnu/store/9h5pjxj879y9rzy04m1v9835l4fblw95-python-3.8.2 - python-nose-exclude 0.5.0 out /gnu/store/k3n4qxakw4rjjg81sfkaxcgln5xhaj3r-python-nose-exclude-0.5.0 --8<---------------cut here---------------end--------------->8--- Then, I re-use the 2 pythons packages, re-upgrade the profile and then: --8<---------------cut here---------------start------------->8--- $ guix pull -p /tmp/test-profile -l Generation 1 Jan 05 2021 16:58:40 python-nose-exclude 0.5.0 python 3.8.2 Generation 2 Jan 05 2021 17:05:29 hello 2.10 Generation 3 Jan 05 2021 16:58:40 (current) python-nose-exclude 0.5.0 python 3.8.2 --8<---------------cut here---------------end--------------->8--- > ubuntu@test-image:~/guix-manifests$ guix pull -p ~/guix-profiles/test-profile > -l Even if I am not sure to understand what you want to do, I am not able to reproduce. With /tmp/my-manifest-{1,2}.scm containing: --8<---------------cut here---------------start------------->8--- (specifications->manifest (list "python")) --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- (specifications->manifest (list "python" "python-nose-exclude")) --8<---------------cut here---------------end--------------->8--- I get: --8<---------------cut here---------------start------------->8--- $ guix package -p /tmp/foo -m /tmp/my-manifest-1.scm The following package will be installed: python 3.8.2 $ guix package -p /tmp/foo -m /tmp/my-manifest-2.scm The following packages will be installed: python 3.8.2 python-nose-exclude 0.5.0 $ guix pull -p /tmp/foo -l Generation 1 Jan 05 2021 17:47:34 python 3.8.2 Generation 2 Jan 05 2021 17:58:22 (current) python-nose-exclude 0.5.0 python 3.8.2 --8<---------------cut here---------------end--------------->8--- All the best, simon
