[Bug 1970057] Re: Qt6 QLibraryInfo returns wrong paths

Launchpad Bug Tracker 1970057 at bugs.launchpad.net
Wed Jan 4 13:32:24 UTC 2023


This bug was fixed in the package qt6-base - 6.2.4+dfsg-2ubuntu1.1

---------------
qt6-base (6.2.4+dfsg-2ubuntu1.1) jammy; urgency=medium

  * Make QLibraryInfo tolerant of symbolic links in loader search path
    (LP: #1970057).

 -- Steven Trabert <tsteven4 at gmail.com>  Mon, 02 May 2022 13:21:10 -0600

** Changed in: qt6-base (Ubuntu Jammy)
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Sponsors Team, which is subscribed to a duplicate bug report (1995967).
https://bugs.launchpad.net/bugs/1970057

Title:
  Qt6 QLibraryInfo returns wrong paths

Status in Stellarium:
  New
Status in qt6-base package in Ubuntu:
  Fix Released
Status in qt6-base source package in Jammy:
  Fix Released

Bug description:
  [Impact]

  1. QLibraryInfo can return non-existent paths.
  2. This results in Qt6 QWebEngine being unusable.

  [Test Plan]

  1. Check the output of qtdiag from qt6-tools-dev-tools, and verify the paths exist.
  a) Run "qtdiag --no-vulkan --no-rhi --no-gl | grep Path"
  b) verify that the paths actually exist, in particular DataPath: /share/qt6 does not exist on jammy.

  2. Build the Qt supplied simplebrowser example, and verify it launches without error
  a) apt-get source libqt6webenginecore6
  b) cd qt6-webengine-6.2.4+dfsg/examples/webenginewidgets/simplebrowser
  c) mkdir bld
  d) cd bld
  e) cmake -DCMAKE_BUILD_TYPE=Release ..
  f) cmake --build .
  g) ./simplebrowser
  An example of output from a failure is attached as faillog.txt. In particular note the failure to find resources at /share:
    Qt WebEngine resources not found at /share/qt6/resources. Trying parent directory...
    Qt WebEngine resources not found at /share/qt6. Trying application directory...
  and the resulting segmentation fault:
    Segmentation fault (core dumped)

  [Where problems could occur]

  The change in 6.2.4+dfsg-8 restores the configuration settings that
  were used to build qtbase-opensource-src (5.14.2+dfsg-3) through
  qtbase-opensource-src (5.15.3+dfsg-2). The setting was lost on the
  transition from the Qt5 qmake build to the Qt6 cmake build.

  The change causes QLibraryInfo to use paths known at build time
  instead of trying to dynamically establish the paths. This will fail
  if the package is relocated to a different location from that which it
  is build for. Since the package isn't relocatable this shouldn't be a
  problem.

  [Other Info]

  The change is currently in The Kinetic Kudu.

  [Original Description]

  The qtdiag program can be used to find the paths returned by
  QLibraryInfo:

  qtdiag --no-vulkan --no-rhi --no-gl

  In this output on jammy (22.04) with qt6-base-dev (6.2.4+dfsg-2ubuntu1) I see:
  Library info:
    PrefixPath: /
    DocumentationPath: /share/qt6/doc
    HeadersPath: /include/x86_64-linux-gnu/qt6
    LibrariesPath: /lib/x86_64-linux-gnu
    LibraryExecutablesPath: /lib/qt6/libexec
    BinariesPath: /lib/qt6/bin
    PluginsPath: /lib/x86_64-linux-gnu/qt6/plugins
    QmlImportsPath: /lib/x86_64-linux-gnu/qt6/qml
    ArchDataPath: /lib/x86_64-linux-gnu/qt6
    DataPath: /share/qt6
    TranslationsPath: /share/qt6/translations
    ExamplesPath: /lib/x86_64-linux-gnu/qt6/examples
    TestsPath: /tests
    SettingsPath: /etc/xdg

  This is problematic.  For example, the DataPath /share/qt6 does not
  exist.  This can lead to various failures.  For example a Qt
  application using the Qt WebEngine might report:

  Qt WebEngine resources not found at /share/qt6/resources. Trying parent directory...
  Qt WebEngine resources not found at /share/qt6. Trying application directory...
  Qt WebEngine resources not found at /app/gpsbabel/gui/GPSBabelFE. Trying fallback directory... The application MAY NOT work.
  Path override failed for key base::DIR_QT_LIBRARY_DATA and path '/home/tsteven4/.GPSBabel'
  Installed Qt WebEngine locales directory not found at location /share/qt6/translations/qtwebengine_locales. Trying application directory...
  Qt WebEngine locales directory not found at location /app/gpsbabel/gui/GPSBabelFE/qtwebengine_locales. Trying fallback directory... Translations MAY NOT not be correct.
  Path override failed for key ui::DIR_LOCALES and path '/home/tsteven4/.GPSBabel'
  [0423/194717.040426:ERROR:resource_bundle.cc(911)] Failed to load /home/tsteven4/.GPSBabel/qtwebengine_resources_100p.pak
  Some features may not be available.
  [0423/194717.041440:ERROR:resource_bundle.cc(911)] Failed to load /home/tsteven4/.GPSBabel/qtwebengine_resources_200p.pak
  Some features may not be available.
  [0423/194717.041481:ERROR:resource_bundle.cc(911)] Failed to load /home/tsteven4/.GPSBabel/qtwebengine_resources.pak
  Some features may not be available.
  [0423/194717.042243:WARNING:resource_bundle_qt.cpp(119)] locale_file_path.empty() for locale
  [3004:3004:0423/194717.389096:ERROR:extension_system_qt.cpp(121)] Failed to parse extension manifest.
  Segmentation fault (core dumped)

  I note that qtdiag reports the correct paths on debian sid and
  qt6-base-dev (6.2.4+dfsg-4):

  Library info:
    PrefixPath: /usr
    DocumentationPath: /usr/share/qt6/doc
    HeadersPath: /usr/include/x86_64-linux-gnu/qt6
    LibrariesPath: /usr/lib/x86_64-linux-gnu
    LibraryExecutablesPath: /usr/lib/qt6/libexec
    BinariesPath: /usr/lib/qt6/bin
    PluginsPath: /usr/lib/x86_64-linux-gnu/qt6/plugins
    QmlImportsPath: /usr/lib/x86_64-linux-gnu/qt6/qml
    ArchDataPath: /usr/lib/x86_64-linux-gnu/qt6
    DataPath: /usr/share/qt6
    TranslationsPath: /usr/share/qt6/translations
    ExamplesPath: /usr/lib/x86_64-linux-gnu/qt6/examples
    TestsPath: /usr/tests
    SettingsPath: /etc/xdg

  It is not clear to me if this is because of the difference in package
  versions, or some issue with ubuntu packaging.

  ProblemType: Bug
  DistroRelease: Ubuntu 22.04
  Package: libqt6core6 6.2.4+dfsg-2ubuntu1
  ProcVersionSignature: Ubuntu 5.13.0-40.45~20.04.1-generic 5.13.19
  Uname: Linux 5.13.0-40-generic x86_64
  ApportVersion: 2.20.11-0ubuntu82
  Architecture: amd64
  CasperMD5CheckResult: unknown
  Date: Sat Apr 23 19:40:12 2022
  ProcEnviron:
   TERM=xterm
   PATH=(custom, no user)
   LANG=en_US.UTF-8
  SourcePackage: qt6-base
  UpgradeStatus: No upgrade log present (probably fresh install)

To manage notifications about this bug go to:
https://bugs.launchpad.net/stellarium/+bug/1970057/+subscriptions




More information about the Ubuntu-sponsors mailing list