[Bug 2095535] Re: ubuntu-release-upgrader Qt interface Qt6 incompatibility
Simon Quigley
2095535 at bugs.launchpad.net
Thu Apr 3 04:28:53 UTC 2025
Here are my rough comments from Matrix yesterday to explain why I'm
updating the bug statuses as such:
The key here is, check out all those warnings about missing XDG
environment variables. I can't speak to how GTK does this, but at least
with Qt, to get proper theming and display manager interactions, you
need to pass through environment variables as dictated by the session.
It's outside the scope of this specific bug, but the dance depends on
the flavor. Plasma-based flavors involve a combination of Wayland and
KWin, Lubuntu uses a combination of Xorg and Openbox, but both use SDDM,
and then both have their own individual setup scripts. Anyway, I can at
least get it to start the process with a few GUI windows.
[30 minutes later]
Essentially, here's what I think is happening, and is probably a good
working assumption for the time being... It's an inheritance issue. If
you remove the line explicitly setting the parent, but replace it with a
line just showing it, works just fine. See line 571 of
DistUpgradeViewKDE.py
I then ran into this at the very end:
$ sudo -E ./plucky --frontend DistUpgradeViewKDE
exitMainLoopMidFlight
Upgrading: libc6-dev:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc6-dev:amd64 Depends on libc6:amd64 < 2.40-1ubuntu3.1 -> 2.41-6ubuntu1 @ii umU Ib > (= 2.40-1ubuntu3.1)
Upgrading: libc-dev-bin:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc-dev-bin:amd64 Depends on libc6:amd64 < 2.40-1ubuntu3.1 -> 2.41-6ubuntu1 @ii umU Ib > (< 2.41)
Upgrading: libc-bin:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc-bin:amd64 Depends on libc6:amd64 < 2.40-1ubuntu3.1 -> 2.41-6ubuntu1 @ii umU Ib > (< 2.41)
MarkInstall libc6:amd64 < 2.40-1ubuntu3.1 -> 2.41-6ubuntu1 @ii umU Ib > FU=1
Upgrading locales:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH > due to libc6:amd64
Upgrading libc6-dev:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc6:amd64
Upgrading libc-dev-bin:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc6:amd64
Upgrading libc-bin:amd64 < 2.40-1ubuntu3.1 | 2.41-6ubuntu1 @ii umH Ib > due to libc6:amd64
2025-04-02T01:25:17-05:00 INFO Waiting for automatic snapd restart...
2025-04-02T01:25:18-05:00 INFO Waiting for automatic snapd restart...
2025-04-02T01:25:19-05:00 INFO Waiting for automatic snapd restart...
gtk-common-themes 0.1-81-g442e511 from Canonical✓ refreshed
snapd 2.67.1 from Canonical✓ refreshed
core22 20250210 from Canonical✓ refreshed
firefox 137.0-2 from Mozilla✓ refreshed
firmware-updater 0+git.22198be from Canonical✓ refreshed
gnome-42-2204 0+git.38ea591 from Canonical✓ refreshed
Traceback (most recent call last):
File "/tmp/ubuntu-release-upgrader-sk_u_va9/./plucky", line 8, in <module>
sys.exit(main())
^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeMain.py", line 235, in main
if app.run():
^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeController.py", line 1962, in run
return self.fullUpgrade()
^^^^^^^^^^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeController.py", line 1955, in fullUpgrade
elif self._view.confirmRestart():
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeViewKDE.py", line 869, in confirmRestart
messageBox = QMessageBox(QMessageBox.question, _("Restart required"), _("<b><big>Restart the system to complete the upgrade</big></b>"), QMessageBox.StandardButton.NoButton, self.window_main)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
QMessageBox(parent: Optional[QWidget] = None): argument 1 has unexpected type 'builtin_function_or_method'
QMessageBox(icon: QMessageBox.Icon, title: Optional[str], text: Optional[str], buttons: QMessageBox.StandardButton = QMessageBox.NoButton, parent: Optional[QWidget] = None, flags: Qt.WindowType = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint): argument 1 has unexpected type 'builtin_function_or_method'
Error in sys.excepthook:
Traceback (most recent call last):
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeViewKDE.py", line 662, in _handleException
apport_crash(exctype, excvalue, exctb)
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeApport.py", line 55, in apport_crash
apport_excepthook('/usr/bin/do-release-upgrade', type, value, tb)
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 109, in apport_excepthook
if exc_obj.errno is not None:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/apport/report.py", line 785, in add_proc_info
raise ValueError(f"{self['ExecutablePath']} does not exist")
ValueError: /usr/bin/python3.12 (deleted) does not exist
Original exception was:
Traceback (most recent call last):
File "/tmp/ubuntu-release-upgrader-sk_u_va9/./plucky", line 8, in <module>
sys.exit(main())
^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeMain.py", line 235, in main
if app.run():
^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeController.py", line 1962, in run
return self.fullUpgrade()
^^^^^^^^^^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeController.py", line 1955, in fullUpgrade
elif self._view.confirmRestart():
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/ubuntu-release-upgrader-sk_u_va9/DistUpgrade/DistUpgradeViewKDE.py", line 869, in confirmRestart
messageBox = QMessageBox(QMessageBox.question, _("Restart required"), _("<b><big>Restart the system to complete the upgrade</big></b>"), QMessageBox.StandardButton.NoButton, self.window_main)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: arguments did not match any overloaded call:
QMessageBox(parent: Optional[QWidget] = None): argument 1 has unexpected type 'builtin_function_or_method'
QMessageBox(icon: QMessageBox.Icon, title: Optional[str], text: Optional[str], buttons: QMessageBox.StandardButton = QMessageBox.NoButton, parent: Optional[QWidget] = None, flags: Qt.WindowType = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint): argument 1 has unexpected type 'builtin_function_or_method'
** No longer affects: update-manager-core (Ubuntu)
** No longer affects: update-manager-core (Ubuntu Noble)
** No longer affects: update-manager-core (Ubuntu Oracular)
** No longer affects: update-manager-core (Ubuntu Plucky)
** Changed in: ubuntu-release-upgrader (Ubuntu Noble)
Status: Incomplete => Triaged
** Changed in: ubuntu-release-upgrader (Ubuntu Oracular)
Status: Incomplete => Triaged
** Changed in: ubuntu-release-upgrader (Ubuntu Plucky)
Status: Fix Released => Confirmed
** Changed in: ubuntu-release-upgrader (Ubuntu Plucky)
Status: Confirmed => In Progress
** Changed in: ubuntu-release-upgrader (Ubuntu Noble)
Importance: Undecided => Critical
** Changed in: ubuntu-release-upgrader (Ubuntu Plucky)
Assignee: (unassigned) => Simon Quigley (tsimonq2)
** Changed in: ubuntu-release-upgrader (Ubuntu Noble)
Assignee: (unassigned) => Simon Quigley (tsimonq2)
** Changed in: ubuntu-release-upgrader (Ubuntu Oracular)
Assignee: (unassigned) => Simon Quigley (tsimonq2)
** Changed in: ubuntu-release-upgrader (Ubuntu Oracular)
Importance: Undecided => Critical
** Changed in: ubuntu-release-upgrader (Ubuntu Plucky)
Importance: Undecided => Critical
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to ubuntu-release-upgrader in
Ubuntu.
https://bugs.launchpad.net/bugs/2095535
Title:
ubuntu-release-upgrader Qt interface Qt6 incompatibility
Status in ubuntu-release-upgrader package in Ubuntu:
In Progress
Status in ubuntu-release-upgrader source package in Noble:
Triaged
Status in ubuntu-release-upgrader source package in Oracular:
Triaged
Status in ubuntu-release-upgrader source package in Plucky:
In Progress
Bug description:
[Impact]
Qt-based flavors of Ubuntu are unable to upgrade oracular -> plucky
due to Qt6 incompatibility issues. I have done the legwork and
refactored the code so that it works.
[Test Case]
* From Kubuntu, attempt an upgrade via 'do-release-upgrade -d -m
desktop -f DistUpgradeViewKDE'
Expected: Upgrade interface works.
Actual: Upgrade fails with multiple Qt incompatibilities
* Testing the fix requires 'do-release-upgrade -d' from the terminal,
and saying "no" at the second y/N prompt. From there, navigate to
'/tmp/ubuntu-release-upgrade-{hash}' and add
https://git.launchpad.net/~ubuntu-qt-code/ubuntu-release-
upgrader/plain/DistUpgrade/DistUpgradeViewKDE.py?h=ubuntu/main to the
folder.
* Additionally, add the following dependencies:
- pyqt6-dev-tools
- python3-pyqt6
- python3-pyqt6.qtquick
* Once that's done, from the `/tmp/ubuntu-release-upgrader-{hash}`
directory, run 'sudo -E ./plucky'. The upgrade should function at this
point.
[What could go wrong]
In my testing in a VM, this failed to bring up a progress window, but
also did not fail outright with any errors. That could be the nature
of the VM and the testing, but if that's not the case, then further
refinements may be required.
[Original Bug]
This is likely an issue RE: Qt5 vs Qt6. I have reason to believe the
code is still Qt5 but oracular and higher is Qt6, meaning the code
needs to be refactored.
Terminal output:
$ do-release-upgrade -d -m desktop -f DistUpgradeViewKDE
Checking for a new Ubuntu release
localuser:root being added to access control list
Checking for a new Ubuntu release
kde
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
Failed to create wl_display (No such file or directory)
qt.qpa.plugin: Could not load the Qt platform plugin "wayland" in "" even though it was found.
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
/usr/lib/python3/dist-packages/DistUpgrade/DistUpgradeFetcherCore.py:237: Warning: W:Download is performed unsandboxed as root as file 'plucky.tar.gz.gpg' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
result = fetcher.run()
authenticate 'plucky.tar.gz' against 'plucky.tar.gz.gpg'
extracting 'plucky.tar.gz'
error: XDG_RUNTIME_DIR is invalid or not set in the environment.
Failed to create wl_display (No such file or directory)
qt.qpa.plugin: Could not load the Qt platform plugin "wayland" in "" even though it was found.
can't load DistUpgradeViewKDE (type object 'QTextOption' has no attribute 'NoWrap')
can't load DistUpgradeViewGtk3 (Namespace Vte not available)
can't load DistUpgradeViewKDE (type object 'QTextOption' has no attribute 'NoWrap')
Reading cache
Checking package manager
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Hit http://security.ubuntu.com/ubuntu oracular-security InRelease
Hit http://us.archive.ubuntu.com/ubuntu oracular InRelease
Hit http://us.archive.ubuntu.com/ubuntu oracular-updates InRelease
Hit http://us.archive.ubuntu.com/ubuntu oracular-backports InRelease
Fetched 0 B in 0s (0 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Fetched 0 B in 0s (0 B/s)
Checking for installed snaps
Calculating snap size requirements
Updating repository information
Segmentation fault (core dumped)
ProblemType: Bug
DistroRelease: Ubuntu 24.10
Package: ubuntu-release-upgrader-core 1:24.10.13
ProcVersionSignature: Ubuntu 6.11.0-13.14-generic 6.11.0
Uname: Linux 6.11.0-13-generic x86_64
ApportVersion: 2.30.0-0ubuntu4
Architecture: amd64
CasperMD5CheckResult: pass
CrashDB: ubuntu
CurrentDesktop: KDE
Date: Wed Jan 22 11:15:22 2025
InstallationDate: Installed on 2024-04-11 (287 days ago)
InstallationMedia: Ubuntu-Studio 24.04 LTS "Noble Numbat" - Beta amd64 (20240410.2)
PackageArchitecture: all
SourcePackage: ubuntu-release-upgrader
Symptom: ubuntu-release-upgrader
UpgradeStatus: Upgraded to oracular on 2025-01-22 (0 days ago)
VarLogDistupgradeAptHistorylog:
Start-Date: 2025-01-22 11:13:58
Requested-By: erich (1000)
End-Date: 2025-01-22 11:13:58
VarLogDistupgradeAptlog:
Log time: 2025-01-22 11:13:55.234080
Log time: 2025-01-22 11:13:57.748196
VarLogDistupgradeApttermlog:
Log started: 2025-01-22 11:13:58
Log ended: 2025-01-22 11:13:58
VarLogDistupgradeTermlog:
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ubuntu-release-upgrader/+bug/2095535/+subscriptions
More information about the foundations-bugs
mailing list