Vorta fails to start in recent snapshot

Hi all,

since a couple of days I’ve noticed that vorta won’t start anymore, it seems a python dependency problem.

Could someone please help/recommend a workaround? Thanks

Snapshot 20240109

 andrea  ~  vorta
Traceback (most recent call last):
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 631, in _build_master
    ws.require(__requires__)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 968, in require
    needed = self.resolve(parse_requirements(requirements))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 875, in _resolve_dist
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (platformdirs 4.1.0 (/usr/lib/python3.11/site-packages), Requirement.parse('platformdirs<4.0.0,>=2.6.0'), {'vorta'})

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/bin/vorta", line 33, in <module>
    sys.exit(load_entry_point('vorta==0.8.12', 'gui_scripts', 'vorta')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/bin/vorta", line 25, in importlib_load_entry_point
    return next(matches).load()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/importlib/metadata/__init__.py", line 202, in load
    module = import_module(match.group('module'))
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/usr/lib/python3.11/site-packages/vorta/__main__.py", line 9, in <module>
    from vorta.store.connection import init_db
  File "/usr/lib/python3.11/site-packages/vorta/store/connection.py", line 6, in <module>
    from .migrations import run_migrations
  File "/usr/lib/python3.11/site-packages/vorta/store/migrations.py", line 4, in <module>
    from .models import (
  File "/usr/lib/python3.11/site-packages/vorta/store/models.py", line 11, in <module>
    from vorta.utils import slugify
  File "/usr/lib/python3.11/site-packages/vorta/utils.py", line 18, in <module>
    from vorta.borg._compatibility import BorgCompatibility
  File "/usr/lib/python3.11/site-packages/vorta/borg/_compatibility.py", line 1, in <module>
    from pkg_resources import parse_version
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3324, in <module>
    @_call_aside
     ^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3299, in _call_aside
    f(*args, **kwargs)
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 3337, in _initialize_master_working_set
    working_set = WorkingSet._build_master()
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 633, in _build_master
    return cls._build_from_requirements(__requires__)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 646, in _build_from_requirements
    dists = ws.resolve(reqs, Environment())
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 829, in resolve
    dist = self._resolve_dist(
           ^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pkg_resources/__init__.py", line 870, in _resolve_dist
    raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'platformdirs<4.0.0,>=2.6.0' distribution was not found and is required by vorta

Ok I think I got it, that package is too new and violates the <4.0.0 requirement now :frowning:

I guess it’s up to Vorta to be a bit more permissive on the version of this dependency.

 andrea  ~  zypper info python311-platformdirs
Loading repository data...
Reading installed packages...


Information for package python311-platformdirs:
-----------------------------------------------
Repository     : openSUSE-Tumbleweed-Oss
Name           : python311-platformdirs
Version        : 4.1.0-1.1
Arch           : noarch
Vendor         : openSUSE
Installed Size : 167.1 KiB
Installed      : Yes
Status         : up-to-date
Source package : python-platformdirs-4.1.0-1.1.src
Upstream URL   : https://github.com/platformdirs/platformdirs
Summary        : Module for determining appropriate platform-specific dirs
Description    : 
    A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".

EDIT: reported on vorta’s issue tracker here:

@andrea.ippo the openSUSE version needs updating, it’s fixed upstream… I’ll look at branching and submitting… they have also moved to QT-6…

Ok, thanks a lot @malcolmlewis :slight_smile:

Warming up zypper, then :smiley:

@andrea.ippo it’s updated and working here (well starting), do you have an openSUSE Build Service account?
https://build.opensuse.org/package/show/home:malcolmlewis:branches:Archiving:Backup/vorta

I do and will test right away, thanks!

EDIT: ok please help me out @malcolmlewis , I’m not really very experienced with OBS.

As far as I can tell a build for TW (my arch is x86_64) has succeeded today not long ago:

But I can’t find an RPM to download directly, and also zypper doesn’t seem to pull the updated artifact after adding your repo. I must be doing sth wrong, could you kindly assist?

 andrea  ~  105  sudo zypper update 
Error building the cache:
[vorta-test|https://download.opensuse.org/repositories/home:/malcolmlewis:/branches:/Archiving:/Backup/openSUSE_Tumbleweed] Valid metadata not found at specified URL
History:
 - [vorta-test|https://download.opensuse.org/repositories/home:/malcolmlewis:/branches:/Archiving:/Backup/openSUSE_Tumbleweed] Repository type can't be determined.

Warning: Skipping repository 'vorta-test' because of the above error.
Some of the repositories have not been refreshed because of an error.

Thanks

1 Like

@andrea.ippo you need to be logged into the Build Service and click on the “openSUSE _Tumbleweed” link then you can select the download link on the right hand side.

Man I thought it was just a header and clicked the link for x86_64 just below, which are just the build logs.
Fail on my side :smiley:
Thanks!

EDIT: @malcolmlewis installed and run just fine, backup was successful. For me it’s a GO :slight_smile:

Thanks again for your help.

I’ll also close the ticket in vorta’s github, the author kindly offered to backport the more permissive dependency to the 0.8 branch, but at this point I guess it’s not worth to make them spend time on it, right?

@andrea.ippo lets see if my submit request is accepted, but yes I would suggest not worrying about backporting at this point…

https://build.opensuse.org/request/show/1138162

1 Like

There is also a bugreport at openSUSE bugzilla:
https://bugzilla.opensuse.org/show_bug.cgi?id=1218681

1 Like

@hui updated the bug report…

1 Like

Thank you. I got working it by modification of /usr/lib/python3.11/site-packages/vorta-0.8.12-py3.11.egg-info/requires.txt

[:sys_platform != "darwin"]
platformdirs<5.0.0,>=2.6.0

Now waiting for the 0.9.1 via zypper.

I would really like to put a [SOLVED] prefix in the title but I can’t seem to find a way (maybe I’m not allowed to?)

If anyone can, please go ahead. Thanks :slight_smile:

See the forum FAQ:
https://forums.opensuse.org/faq#suggestions

Makes sense, thanks for sharing!

@malcolmlewis is there anything I can do to speed up the approval of your request?
Thanks

@andrea.ippo not really, the Maintainers get notifications it’s there…

1 Like

@andrea.ippo it’s accepted and in Factory, so should be in the next snapshot… enjoy and remember to have fun!

Thanks @malcolmlewis, that’s great!

I will try to keep in mind the fun thingy! :smile:

Cheers!