Subject: bug#60927: gPodder database version field different when built using --with-latest

From: Csepp <[email-masked]>
Date: Wed, 01 Feb 2023 01:41:57 +0100

Ludovic Courtès <[email-masked]> writes:

> Hi,
>
> Csepp <[email-masked]> skribis:
>
>> So it looks like the hashes are the same and the difference is instead
>> in how it's run.
>> Usually I run it with i3's XDG desktop file based launcher, but when I
>> used the --with-latest transformation I was running it from a guix
>> shell.
>> Maybe it's using the non-canonicalized path to itself as part of the
>> version string.
>
> Note that right now ‘--with-latest’ has no effect because it’s already
> the latest version that’s packaged:
>
> $ guix build gpodder -n
> 4.2 MB would be downloaded:
>   /gnu/store/7jhmy0j4z50vb7051ckl0fkwv60y9aq8-python-pytest-httpserver-1.0.0
>   /gnu/store/rmkakj3hbijzcn8jdicyhh4fcwgw4kjk-xset-1.2.4
>   /gnu/store/almvw06pqf7gj09zkzi37iyzxph7abb2-xdg-utils-1.1.3
>   /gnu/store/zbsg01v7jzryx2ccgaxnm0qzi8b9022h-youtube-dl-2021.12.17
>   /gnu/store/cl22f0z9xggjspqsplf91bkqm35ad6fw-python-flake8-4.0.1
>   /gnu/store/spwqzk6l1r8wx34wlfnw487rc86skzgv-python-pycodestyle-2.8.0
>   /gnu/store/gaqm1cgvbam1jr2x7r6jw5gdrm9hv997-python-mutagen-1.45.1
>   /gnu/store/75h3kapgwpgh6q2dxddgrzbxwb22z9k7-python-xmlschema-1.2.5
>   /gnu/store/ixp9xd4cbs774yh5qkvywmjk1606s8i8-python-pytest-bootstrap-6.2.5
>   /gnu/store/7frqm5ijy66f81hr8i1j6791k84lds9w-python-pytest-6.2.5
>   /gnu/store/rfgdckaa197c4wkzixqqi3lmd6cvv414-python-requests-2.28.1
>   /gnu/store/hz1fv46474jm8d0lbirglx3cvmy8npkl-gpodder-3.11.0
> $ guix build gpodder -n --with-latest=gpodder
> guix build: 3.11.0 is already the latest version of 'gpodder'
> 4.2 MB would be downloaded:
>   /gnu/store/7jhmy0j4z50vb7051ckl0fkwv60y9aq8-python-pytest-httpserver-1.0.0
>   /gnu/store/rmkakj3hbijzcn8jdicyhh4fcwgw4kjk-xset-1.2.4
>   /gnu/store/almvw06pqf7gj09zkzi37iyzxph7abb2-xdg-utils-1.1.3
>   /gnu/store/zbsg01v7jzryx2ccgaxnm0qzi8b9022h-youtube-dl-2021.12.17
>   /gnu/store/cl22f0z9xggjspqsplf91bkqm35ad6fw-python-flake8-4.0.1
>   /gnu/store/spwqzk6l1r8wx34wlfnw487rc86skzgv-python-pycodestyle-2.8.0
>   /gnu/store/gaqm1cgvbam1jr2x7r6jw5gdrm9hv997-python-mutagen-1.45.1
>   /gnu/store/75h3kapgwpgh6q2dxddgrzbxwb22z9k7-python-xmlschema-1.2.5
>   /gnu/store/ixp9xd4cbs774yh5qkvywmjk1606s8i8-python-pytest-bootstrap-6.2.5
>   /gnu/store/7frqm5ijy66f81hr8i1j6791k84lds9w-python-pytest-6.2.5
>   /gnu/store/rfgdckaa197c4wkzixqqi3lmd6cvv414-python-requests-2.28.1
>   /gnu/store/hz1fv46474jm8d0lbirglx3cvmy8npkl-gpodder-3.11.0
> $ guix describe
> Generation 244  Jan 29 2023 23:24:35    (current)
>   guix 4eccb27
>     repository URL: https://git.savannah.gnu.org/git/guix.git
>     branch: master
>     commit: 4eccb27b4c74a9112cbbad722d85558e9565f20b
>
> So as you wrote, the issue you’re seeing probably has nothing to do with
> ‘--with-latest’.
>
> Could you show exactly what command you’re running, what output you’re
> seeing, and what you were expecting?
>
> TIA,
> Ludo’.

This works:
/gnu/store/1k5zcw81xfqlpxx4wfi5idi9pzlziykj-profile/bin/gpodder

This doesn't:
/home/raingloom/.guix-profile/bin/gpodder

The error is this:

```
1675212137.273854 [gpodder.log] ERROR: Uncaught exception: Traceback (most recent call last):
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/gtkui/app.py", line 189, in do_activate
    self.window = gPodder(self, self.bus_name, core.Core(UIConfig, model_class=Model), self.options)
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/gtkui/main.py", line 91, in __init__
    BuilderWidget.__init__(self, None, _builder_expose={'app': app})
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/gtkui/interface/common.py", line 36, in __init__
    GtkBuilderWidget.__init__(self, gpodder.ui_folders, gpodder.textdomain, parent, **kwargs)
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/gtkui/base.py", line 71, in __init__
    self.new()
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/gtkui/main.py", line 185, in new
    self.channels = self.model.get_podcasts()
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/model.py", line 1380, in get_podcasts
    self.children = self.db.load_podcasts(podcast_factory)
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/dbsqlite.py", line 158, in load_podcasts
    cur = self.cursor()
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/dbsqlite.py", line 99, in cursor
    return self.db.cursor()
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/dbsqlite.py", line 90, in db
    schema.upgrade(self._db, self.database_file)
  File "/gnu/store/kchlzn44ykckx7x5ixx3vjsdnwyw9pzj-gpodder-3.10.21/lib/python3.9/site-packages/gpodder/schema.py", line 225, in upgrade
    assert version == CURRENT_VERSION
AssertionError
```

There are further errors but they are caused by the assert not actually
being fatal and gPodder trying to continue after simply logging the
failure.
Ahh, exceptions, the poor person's error monad. :)

It looks like it's trying to upgrade the database, I'm not sure why.