Subject: guix on foreign distro won't upgrade, stuck on old commits

From: Brian Zwahr <[email-masked]>
Date: Wed, 07 Apr 2021 15:19:54 -0500

Hi! It was suggested I email this in by someone in the IRC channel. I'm 
having an issue where guix always tells me it is "X days old" and that 
I should run guix pull/guix upgrade. However, running these commands 
does not fix the issue.

guix describe shows:

```
$ guix describe
Generation 9	Mar 25 2021 08:36:11	(current)
  guix 3f1b2bd
    repository URL: <https://git.savannah.gnu.org/git/guix.git>
    branch: master
    commit: 3f1b2bd322b6cdba99a43d08e5e8464f7424cbc5
```

Which is, indeed, out of date. IRC folks recommended checking the git 
status, so I did:

```
~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq 
(master) $ git status
On branch master
Your branch is behind 'origin/master' by 474 commits, and can be 
fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean
```

It is, indeed, out of date, but after a guix pull:

```
$ guix pull
Updating channel 'guix' from Git repository at 
'<https://git.savannah.gnu.org/git/guix.git>'...
Building from this channel:
  guix      <https://git.savannah.gnu.org/git/guix.git>	3f1b2bd
Computing Guix derivation for 'x86_64-linux'... |
nothing to be done
```

It doesn't update and still tells me I'm out of date:

```
$ guix upgrade
guix upgrade: warning: Your Guix installation is 13 days old.
guix upgrade: warning: Consider running 'guix pull' followed by
'guix package -u' to get up-to-date packages and security updates.
```

It was suggested that I should run this command:

```
guix pull --commit=02297d3fe680371a4b97b9c1b770932cbdd55615
```

and after doing so, I was then only 1 commit behind instead:

```
~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq 
(master) $ git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be 
fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean
```

However, `guix pull` now gives me a new error about needing to 
downgrade:

```
$ guix pull
Updating channel 'guix' from Git repository at 
'<https://git.savannah.gnu.org/git/guix.git>'...
guix pull: error: aborting update of channel 'guix' to commit 
3f1b2bd322b6cdba99a43d08e5e8464f7424cbc5, which is not a descendant of 
02297d3fe680371a4b97b9c1b770932cbdd55615
hint: Use `--allow-downgrades' to force this downgrade.
```

and for some reason, I'm back to being almost 500 commits behind again:

```
~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq 
(master) $ git status
On branch master
Your branch is behind 'origin/master' by 477 commits, and can be 
fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean
```

even though `guix describe` now seems to be more up-to-date (apr 7 
instead or mar 25)

```
$ guix describe
Generation 10	Apr 07 2021 14:38:16	(current)
  guix 02297d3
    repository URL: <https://git.savannah.gnu.org/git/guix.git>
    commit: 02297d3fe680371a4b97b9c1b770932cbdd55615
```

As a final attempt to solve this, it was suggested that I run `guix 
pull -l 2>&1 | tee pull-generations.log` and email it to this list. I'm 
attaching that file here.

Also, after running that command, I'm back to being only 1 commit 
behind and still get the downgrade error from `guix pull`:

```
~/.cache/guix/checkouts/pjmkglp4t7znuugeurpurzikxq3tnlaywmisyr27shj7apsnalwq 
(master) $ git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be 
fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean
```

```
$ guix pull
Updating channel 'guix' from Git repository at 
'<https://git.savannah.gnu.org/git/guix.git>'...
guix pull: error: aborting update of channel 'guix' to commit 
3f1b2bd322b6cdba99a43d08e5e8464f7424cbc5, which is not a descendant of 
02297d3fe680371a4b97b9c1b770932cbdd55615
hint: Use `--allow-downgrades' to force this downgrade.
```

For now, I'm trying to avoid doing anything else guix-related, so that 
my system is in the same state and can hopefully be diagnosed and fixed.