Hi,

Am 20.06.23 um 23:02 schrieb Mark Rubin via openSUSE Factory:
Ben Greiner wrote:
For python3-pyside2 you have to wait for the next snapshot: 
https://build.opensuse.org/request/show/1093899
Thanks for the explanation. I probably will wait but am afraid that it won't fix the many other errors not related to python310 I'm getting, like:
 Solution 3: remove lock to allow removal of libQt5DBus5-5.15.9+kde154-1.3.x86_64

You have a lock that you did not mention before. It prevents the update of Qt5. Probably from a Solution selection "keep" for python3-pyside2 before.


I'm sorry, but I don't understand. The first mention 
of python310-qt5-5.15.9-1.5.x86_64 is in the conflict regarding python310-matplotlib-qt5-3.6.3-2.1.x86_64. The full text is:

```
Problem: the installed python310-matplotlib-qt5-3.6.3-2.1.x86_64 requires 'python310-qt5', but this requirement cannot be provided
  deleted providers: python310-qt5-5.15.9-1.5.x86_64
not installable providers: python310-qt5-5.15.9-2.3.x86_64[download.opensuse.org-oss]
 Solution 1: Following actions will be done:
  remove lock to allow removal of python310-matplotlib-qt5-3.6.3-2.1.x86_64
  deinstallation of python310-qt5-5.15.9-1.5.x86_64
  deinstallation of cura-4.13.1-2.3.noarch
 Solution 2: keep obsolete python310-qt5-5.15.9-1.5.x86_64
 Solution 3: remove lock to allow removal of libQt5Core5-5.15.9+kde154-1.3.x86_64

Same. python310-qt5-5.15.9-2.3 requires libQt5Core5 to be updated.
 Solution 4: break python310-matplotlib-qt5-3.6.3-2.1.x86_64 by ignoring some of its dependencies

Choose from above solutions by number or skip, retry or cancel [1/2/3/4/s/r/c/d/?] (c): 2
```

I didn't want solution 1 because I don't want to lose "cura". But again, this was a "--dry-run". If I was doing it with "--dry-run" and kept python310-qt5-5.15.9-1.5.x86_64, would some of the other conflicts resolve themselves?

There is your answer. As of now you can only keep the distribution package for Cura if you stay on the old snapshot. The Cura package system broke apart with the switch to python311:

Cura requires the libraries libArcus and libSavitar. They need to be updated first, because the old versions in the distribution still require obsolete python3-sip < 5 which is not compatible with python311. Cura upstream did switch to more modern tools months ago, but the openSUSE Tumbleweed package did not keep up. I suggest switching to Cura flatpak, appimage or the like.

https://build.opensuse.org/package/show/openSUSE:Factory/cura : Fails because it cannot find `UM` from uranium in the python311 sitelib, the old package still has it in python310
https://build.opensuse.org/package/show/openSUSE:Factory/uranium: Fails to build.
https://build.opensuse.org/package/show/openSUSE:Factory/cura-engine : Unresolvable
https://build.opensuse.org/package/show/openSUSE:Factory/libArcus : Unresolvable
https://build.opensuse.org/package/show/openSUSE:Factory/libSavitar : Unresolvable

Again, what's my best way out of this? I'd prefer not to have to remove a large number of packages, do the "dup", and then reinstall them, but if that's the only solution I guess I'll have to. Or, even worse, get the latest ISO and reinstall Tumbleweed from scratch and then add all my desired packages (hundreds) again.

Remove cura and the likes (as well as python3-pyside2) before the dup. There is no way around it if you want to keep a sane system. Of course you could force keeping stuff, but that does not mean that the software keeps running. Cura won't, because there will be a mixture of python311 and python310.

With a lot of manual intervention, you could reinstall the old packages after the dup. I get this:

# LANG=C zypper in cura
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following 9 recommended packages were automatically selected:
 python310 python310-curses python310-dbm python310-numpy python310-pip python311-geoip2 python311-hiredis python311-pylibmc
 python311-pymemcache

The following 57 NEW packages are going to be installed:
 cura cura-engine libArcus3 libSavitar0 libmemcached11 libmemcachedutil2 libpolyclipping22 libpython3_10-1_0 python3-Arcus
 python3-pynest2d python310 python310-Shapely python310-base python310-cffi python310-cryptography python310-curses python310-dbm
 python310-gobject python310-gobject-Gdk python310-gobject-cairo python310-numpy python310-pip python310-pycairo python310-pycparser
 python310-setuptools python311-Django python311-Flask python311-Shapely python311-Werkzeug python311-amqp python311-asgiref
 python311-bcrypt python311-billiard python311-blinker python311-bottle python311-cached-property python311-celery
 python311-click-didyoumean python311-click-plugins python311-click-repl python311-falcon python311-geoip2 python311-hiredis
 python311-itsdangerous python311-kombu python311-maxminddb python311-pylibmc python311-pymemcache python311-pymongo python311-pyserial
 python311-redis python311-rq python311-sentry-sdk python311-sqlparse python311-starlette python311-vine uranium

57 new packages to install.
Overall download size: 64.8 MiB. Already cached: 0

$ cura
Traceback (most recent call last):
 File "/usr/bin/cura", line 24, in <module>
   from UM.Platform import Platform
ModuleNotFoundError: No module named 'UM'

That is because the shebang has /usr/bin/python3 which is pointing to python3.11 now. Instead do:

$
/usr/bin/python3.10 cura
Traceback (most recent call last):
 File "/usr/bin/cura", line 22, in <module>
   from PyQt5.QtNetwork import QSslConfiguration, QSslSocket
ModuleNotFoundError: No module named 'PyQt5.QtNetwork'


... now install python310-qt5 and everything python310- that is not found.

If you want to go down that route, good luck.


- Ben