[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