bug-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#53886: guix home not respecting guix pull -C


From: Zacchaeus Scheffer
Subject: bug#53886: guix home not respecting guix pull -C
Date: Wed, 9 Feb 2022 01:40:47 -0500

> Also, did you pull and reconfigure as the same user, with the same
> privileges? Remember that your "view" of Guix (i.e. `guix pull`) is
> per-user.

Everything is done with the same user and same user/system config (other than os host-name field).  I'm sure I didn't accidently run as root or another user

> I'm curious, after you did `guix pull --allow-downgrades -C`, did you
> use `guix show foo` before reconfiguring, in order to check if the pull
> had taken effect?

I did not check, the command completed normally, so I believed.  See (far) below for an example with guix show

Looking at guix package --list-generations, my packages were only modified the one time I ran guix package -i qutebrowser.  After running guix package -i qutebrowser, guix package --export-channels DID have the content passed to guix pull -C PLUS the following comment:
;; Note: these other commits were also used to install some of the packages in this profile:
;;   "97d97d7da1f5b500b2b76210131ca6adff6a1e80"

Looking at guix home list-generations, it looks like the generation has not updated any of the numerous times I guix home reconfigured today after guix pull --allow-downgrades -C'ing an old channels.  However, I was not able to reproduce this behavior, so take it with a grain of salt.

To rule out the possibility that this is an already-solved problem, I tried
guix pull
guix home reconfigure ...
this DID create a new home generation but not package generation.  (Not sure if that is expected.  Please someone tell me if this is abnormal.)  Now
ls -l $(which qutebrowser)
gives the old qutebrowser version but
ls -l $(which chromium)
gives the new chromium version.

I tried editing my home config and adding another package, "minetest".  guix home reconfigure DID download "minetest" after "guix pull" and "guix pull --allow-downgrades -C ..." (diff versions), but always "minetest" is not in my path for even a fresh login shell.

To sumarize:
guix pull --allow-downgrades -C ...
guix home reconfigure ....
- > all package versions up-to-date
- > (no?) new home generation
guix package -i qutebrowser
- > all package versions up-to-date except qutebrowser downgraded
- > created a new package generation
guix pull
guix home reconfigure ...
- > all package versions up-to-date except qutebrowser downgraded
- > created a new home generation
guix pull --allow-downgrades -C ...
guix home reconfigure ....
- > new home generetaion
- > qutebrowser still downgraded
- > chromium upgraded
# add minetest to config
guix home reconfigure ...
- > new home generation
- > minetest installed (not sure what version)
- - > MINETEST NOT IN PATH
- > qutebrowser/chromium unchanged

Looking back, maybe guix home reconfigure has NEVER worked for my packages and I haven't noticed because my most recent package manifest had all the same packages.  My package defs in my home.scm look like:
(home-environment
 (packages
  (map
   specification->package
   (list
    ...
    "minetest"
    "qutebrowser"
    "ungoogled-chromium")))
 (services
  ...))

Now I feel more lost than before.  How could the above in a home reconfigure, after a normal guix pull, not make even a fresh login shell able to launch minetest?...

One last test to show off the weirdness:
guix pull
guix show qutebrowser     - > version 2.4
qutebrowser --version     - > version 2.3
guix home reconfigure ... - > full output below
guix show qutebrowser     - > version 2.4
qutebrowser --version     - > version 2.3

If you made it this far, thanks,
-Zacchaeus


##  BEGIN HOME RECONFIGURE OUTPUT PASTE
/gnu/store/02q0hr0k29wr866b1mrh88qnaixnk3v7-home
Cleaning up symlinks from previous home-environment.

Removing /home/zacchae/.config/fontconfig/fonts.conf... done
Removing /home/zacchae/.config/fontconfig... done
Removing /home/zacchae/.config/zsh/.zshrc... done
Removing /home/zacchae/.config/zsh/.zprofile... done
Removing /home/zacchae/.config/zsh/.zshenv... done
Skipping /home/zacchae/.config/zsh (not an empty directory)... done
Removing /home/zacchae/.config/syncthing/config... done
Skipping /home/zacchae/.config/syncthing (not an empty directory)... done
Removing /home/zacchae/.config/emacs/init.el... done
Skipping /home/zacchae/.config/emacs (not an empty directory)... done
Removing /home/zacchae/.config/kitty/kitty.conf... done
Removing /home/zacchae/.config/kitty... done
Removing /home/zacchae/.config/qutebrowser/config.py... done
Skipping /home/zacchae/.config/qutebrowser (not an empty directory)... done
Removing /home/zacchae/.config/zathura/zathurarc... done
Removing /home/zacchae/.config/zathura... done
Removing /home/zacchae/.config/redshift/redshift.conf... done
Removing /home/zacchae/.config/redshift... done
Skipping /home/zacchae/.config (not an empty directory)... done
Removing /home/zacchae/.ssh/config... done
Skipping /home/zacchae/.ssh (not an empty directory)... done
Removing /home/zacchae/.local/bin/stdinedit... done
Removing /home/zacchae/.local/bin... done
Skipping /home/zacchae/.local (not an empty directory)... done
Removing /home/zacchae/.gitconfig... done
Removing /home/zacchae/.exwm... done
Removing /home/zacchae/.zshenv... done
Removing /home/zacchae/.profile... done
Cleanup finished.

New symlinks to home-environment will be created soon.
All conflicting files will go to /home/zacchae/1644387797-guix-home-legacy-configs-backup.

Skipping   /home/zacchae/.config (directory already exists)... done
Creating   /home/zacchae/.config/fontconfig... done
Symlinking /home/zacchae/.config/fontconfig/fonts.conf -> /gnu/store/3hd0w1mcm3zg7gy3ifgvdf8w1n77khnm-fonts.conf... done
Skipping   /home/zacchae/.config/zsh (directory already exists)... done
Symlinking /home/zacchae/.config/zsh/.zshrc -> /gnu/store/hyvqqy8i6ibi72xc5361p08qjibnwfk4-zshrc... done
Symlinking /home/zacchae/.config/zsh/.zprofile -> /gnu/store/jgz1ykacgqwkjbwagd301nj4y9ygdi9m-zprofile... done
Symlinking /home/zacchae/.config/zsh/.zshenv -> /gnu/store/251xg38dsqifyw3dzwzpvl28vi7c8wd6-zshenv... done
Skipping   /home/zacchae/.config/syncthing (directory already exists)... done
Symlinking /home/zacchae/.config/syncthing/config -> /gnu/store/7svbwjb0ixzjz2kllk6fxc8737aavd35-syncthing-config.xml... done
Skipping   /home/zacchae/.config/emacs (directory already exists)... done
Symlinking /home/zacchae/.config/emacs/init.el -> /gnu/store/7p09csma6wk8bcanqm8wrra0v4yw496y-emacs-config... done
Creating   /home/zacchae/.config/kitty... done
Symlinking /home/zacchae/.config/kitty/kitty.conf -> /gnu/store/pmnr4ivcviwyi2h2yrx1rg8gf0rjs0ay-kitty.conf... done
Skipping   /home/zacchae/.config/qutebrowser (directory already exists)... done
Symlinking /home/zacchae/.config/qutebrowser/config.py -> /gnu/store/c50z8wfsc4k1m0h7k3sbv0xsndh7bw6j-qutebrowser-config... done
Creating   /home/zacchae/.config/zathura... done
Symlinking /home/zacchae/.config/zathura/zathurarc -> /gnu/store/kdi0gfbz5gcq2ay32yv89amvhbd5r3wg-zathura-config... done
Creating   /home/zacchae/.config/redshift... done
Symlinking /home/zacchae/.config/redshift/redshift.conf -> /gnu/store/p1y1xfxf63pjn1dsd92vwp1xbrcsh7wn-redshift-config... done
Skipping   /home/zacchae/.ssh (directory already exists)... done
Symlinking /home/zacchae/.ssh/config -> /gnu/store/519n9v56q5qnhwrb3yj8dh87lwspqlrb-ssh-config... done
Skipping   /home/zacchae/.local (directory already exists)... done
Creating   /home/zacchae/.local/bin... done
Symlinking /home/zacchae/.local/bin/stdinedit -> /gnu/store/3rx8zb8phkr8a88sg5v8pd33qxn62zyh-stdinedit... done
Symlinking /home/zacchae/.gitconfig -> /gnu/store/ci21256g0sys1a0gpwlrvakgazwbh5kb-git-config... done
Symlinking /home/zacchae/.exwm -> /gnu/store/z43zay3w80cp0bnwdd1pi5j4zxay75mp-exwm-init... done
Symlinking /home/zacchae/.zshenv -> /gnu/store/j1558r4rqn5nlj3caxs62jcs7rb2j4x4-auxiliary-zshenv... done
Symlinking /home/zacchae/.profile -> /gnu/store/rnf1g1a1lywvy3lw4h8ywfs9i8f35fiq-shell-profile... done
 done
Finished updating symlinks.

Loading /gnu/store/2z8k6n538446fm0r5byk81kcv3khgkkn-shepherd.conf.
Starting services...

Comparing /gnu/store/02q0hr0k29wr866b1mrh88qnaixnk3v7-home/profile/share/fonts and
          /gnu/store/02q0hr0k29wr866b1mrh88qnaixnk3v7-home/profile/share/fonts... done (same)
Evaluating on-change gexps.

On-change gexps evaluation finished.
## END RECONFIGURE PASTE

On Tue, Feb 8, 2022 at 8:06 PM Leo Famulari <leo@famulari.name> wrote:
On Tue, Feb 08, 2022 at 06:57:14PM -0500, Zacchaeus Scheffer wrote:
> Hi Guix!
>
> I came across some weird behavior with guix home.  I wanted to recreate a
> working home environment from one machine on another (because I need a
> working qutebrowser install :3).  I did this by doing "guix pull
> --allow-downgrades -C" on my non-working computer using a channels file on
> the working one generated with "guix package --export-channels".  However,
> when I did "guix home reconfigure ...", old versions of packages were NOT
> installed.  I was able to downgrade the desired package with "guix package
> -i" (only that package was downgraded).

I'm curious, after you did `guix pull --allow-downgrades -C`, did you
use `guix show foo` before reconfiguring, in order to check if the pull
had taken effect?

Also, did you pull and reconfigure as the same user, with the same
privileges? Remember that your "view" of Guix (i.e. `guix pull`) is
per-user.

> My understanding is that "guix home reconfigure" SHOULD behave like "guix
> package --manifest", and install all packages in the most recent guix pull.

That's my understanding as well.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]