Package: qtbase-opensource-src / 5.15.17+dfsg-1

Metadata

Package Version Patches format
qtbase-opensource-src 5.15.17+dfsg-1 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
mime_globs.diff | (download)

src/corelib/mimetypes/qmimedatabase.cpp | 11 7 + 4 - 0 !
src/corelib/mimetypes/qmimeglobpattern.cpp | 5 4 + 1 - 0 !
2 files changed, 11 insertions(+), 5 deletions(-)

 adjust qmimedatabase implementation
 When multiple globs match, and the result from magic sniffing is
 unrelated to any of those globs, globs have priority and one of them
 should be picked up.
fusion_checkable_qpushbutton.diff | (download)

src/widgets/styles/qfusionstyle.cpp | 8 0 + 8 - 0 !
1 file changed, 8 deletions(-)

 qpushbutton/fusion style: don't ignore qicon::on icon
 The fusion style did ignore the QIcon::On icon because it reset
 State_On to avoid the visual shift of a pressed button.
 But it's not needed to reset this flag - the shift does not happen
 because the fusion style does return 0 as offset for
 PM_ButtonShiftHorizontal/PM_ButtonShiftVertical so no shifting will
 happen.
openssl3.diff | (download)

src/network/ssl/qsslcontext_openssl.cpp | 4 2 + 2 - 0 !
src/network/ssl/qssldiffiehellmanparameters_openssl.cpp | 51 0 + 51 - 0 !
src/network/ssl/qsslsocket_openssl_symbols.cpp | 4 0 + 4 - 0 !
src/network/ssl/qsslsocket_openssl_symbols_p.h | 3 0 + 3 - 0 !
4 files changed, 2 insertions(+), 60 deletions(-)

 upstream fixes to support openssl 3.0
qmenu_set_transient_parent.diff | (download)

src/widgets/widgets/qmenu.cpp | 25 25 + 0 - 0 !
src/widgets/widgets/qmenu_p.h | 1 1 + 0 - 0 !
2 files changed, 26 insertions(+)

 widgets: settransientparent() when a qmenu is a window
 On some platforms, such as X11 and Wayland with some compositors,
 QMenu could be a popup window, which should be set a transient parent
 to get relative position, which is requested by Wayland.
 .
 Added transientParentWindow() for QMenuPrivate like QDialogPrivate.
gnome_wayland.diff | (download)

src/gui/kernel/qguiapplication.cpp | 9 1 + 8 - 0 !
1 file changed, 1 insertion(+), 8 deletions(-)

 use wayland platform plugin on gnome wayland sessions by default
 Qt wayland platform plugin has improved quite a lot and it is now pretty
 much usable on Gnome. It also improves user experience a lot on HiDPI
 displays.
qshapedpixmapwindow_no_tooltip.diff | (download)

src/gui/kernel/qshapedpixmapdndwindow.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 do not set qt::tooltip flag for qshapedpixmapwindow
 This hint is not really needed in the first place and only causes
 problems in some environments.
 .
 For example in KDE, the compositor animates changes in position and size
 for all ToolTip windows. However, this is not wanted here because we use
 this window as a thumbnail for a drag-and-drop operation.
 Before this patch the dragged element would lag significantly behind the
 cursor. Now it works as expected, i.e. the dragged element follows the
 cursor immediately.
sql_odbc_more_unicode_checks.diff | (download)

src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 13 11 + 2 - 0 !
1 file changed, 11 insertions(+), 2 deletions(-)

 sql/odbc: add another check to detect unicode availability in driver
 Since ODBC does not have a direct way finding out if unicode is
 supported by the underlying driver the ODBC plugin does some checks. As
 a last resort a sql statement is executed which returns a string. But
 even this may fail because the select statement has no FROM part which
 is rejected by at least Oracle does not allow. Therefore add another
 query which is correct for Oracle & DB2 as a workaround. The question
 why the first three statements to check for unicode availability fail
 is still open but can't be checked since I've no access to an oracle
 database.
a11y_root.diff | (download)

src/platformsupport/linuxaccessibility/bridge.cpp | 8 8 + 0 - 0 !
1 file changed, 8 insertions(+)

 fix accessibility on xcb when running as root
 Accessibility actually works when running applications as root, but we
 would never properly connect, since the enabledChanged signal would be
 emitted from the constructor in this case. So after connecting the
 signal, check the value by hand to make sure not to miss the
 notification.
 .
 Only applications running as root would be affected, because all other
 applications would go through the asynchronous pattern of getting the
 bus address from dbus instead.
dont_use_O_PATH.diff | (download)

src/platformsupport/services/genericunix/qgenericunixservices.cpp | 8 2 + 6 - 0 !
1 file changed, 2 insertions(+), 6 deletions(-)

 openfile portal: do not use o_path fds
 Using O_PATH requires correctly specifying whether the fd is writable or
 not. Stating that the fd is writable without it actually being writable
 results into rejection on xdg-desktop-portal side. Other implementations
 like xdg-open or gtk have also moved away from O_PATH fds so this will
 make a matching implementation and avoid possible rejections from xdp.
fix_qdbusmacros_h.diff | (download)

include/QtDBus/qdbusmacros.h | 6 3 + 3 - 0 !
sync.profile | 2 1 + 1 - 0 !
2 files changed, 4 insertions(+), 4 deletions(-)

 fix capitalization error in auto-generated qdbusmacros.h include
loongarch.diff | (download)

src/corelib/global/archdetect.cpp | 4 4 + 0 - 0 !
src/corelib/global/qglobal.cpp | 31 31 + 0 - 0 !
src/corelib/global/qprocessordetection.h | 14 14 + 0 - 0 !
3 files changed, 49 insertions(+)

 add support for loongarch
CVE 2024 39936.diff | (download)

src/network/access/qhttp2protocolhandler.cpp | 6 3 + 3 - 0 !
src/network/access/qhttpnetworkconnectionchannel.cpp | 48 46 + 2 - 0 !
src/network/access/qhttpnetworkconnectionchannel_p.h | 6 6 + 0 - 0 !
tests/auto/network/access/http2/tst_http2.cpp | 44 44 + 0 - 0 !
4 files changed, 99 insertions(+), 5 deletions(-)

 http2: delay any communication until encrypted() can be responded to
 We have the encrypted() signal that lets users do extra checks on the
 established connection. It is emitted as BlockingQueued, so the HTTP
 thread stalls until it is done emitting. Users can potentially call
 abort() on the QNetworkReply at that point, which is passed as a Queued
 call back to the HTTP thread. That means that any currently queued
 signal emission will be processed before the abort() call is processed.
 .
 In the case of HTTP2 it is a little special since it is multiplexed and
 the code is built to start requests as they are available. This means
 that, while the code worked fine for HTTP1, since one connection only
 has one request, it is not working for HTTP2, since we try to send more
 requests in-between the encrypted() signal and the abort() call.
 .
 This patch changes the code to delay any communication until the
 encrypted() signal has been emitted and processed, for HTTP2 only.
 It's done by adding a few booleans, both to know that we have to return
 early and so we can keep track of what events arose and what we need to
 resume once enough time has passed that any abort() call must have been
 processed.
revert_statusnotifierhost_checking.diff | (download)

src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection.cpp | 10 5 + 5 - 0 !
src/platformsupport/themes/genericunix/dbusmenu/qdbusmenuconnection_p.h | 4 2 + 2 - 0 !
src/platformsupport/themes/genericunix/dbustray/qdbustrayicon.cpp | 7 5 + 2 - 0 !
src/platformsupport/themes/genericunix/qgenericunixthemes.cpp | 2 1 + 1 - 0 !
4 files changed, 13 insertions(+), 10 deletions(-)

 revert "d-bus system tray: properly check whether statusnotifierhost available"
 The original commit was made based on a KDE workaround for
 libdbusmenu-qt crash, but Qt is not using libdbusmenu-qt, Qt is not
 watching for StatusNotifierHost registration and Qt is not capable
 to switch backends on the fly leading to tray support being
 not detected on Plasma Wayland sessions and falling back to the poor
 legacy protocol on X11.
dont_fallback_to_x11_tray_on_non_x11.diff | (download)

src/platformsupport/themes/genericunix/qgenericunixthemes.cpp | 24 13 + 11 - 0 !
1 file changed, 13 insertions(+), 11 deletions(-)

 don't fallback to x11 tray backend on non-x11
 This allows to have system tray support on the fly on Wayland at least
 where only QDBusTrayIcon is possible and no need to fallback to
 QSystemTrayIconSys
check_dbus_tray_availability_every_time.diff | (download)

src/platformsupport/themes/genericunix/qgenericunixthemes.cpp | 13 4 + 9 - 0 !
1 file changed, 4 insertions(+), 9 deletions(-)

 check d-bus tray availability every time
 It could appear in runtime, this allows applications to watch for it
 themselves and re-create QSystemTrayIcon as needed.
a11y_null_checks.diff | (download)

src/platformsupport/linuxaccessibility/atspiadaptor.cpp | 37 26 + 11 - 0 !
1 file changed, 26 insertions(+), 11 deletions(-)

 a11y atspi: add null checks in table iface methods
 Add null checks to cover the cases where QAccessibleTableInterface::cellAt
 returns nullptr (which happens e.g. when called with invalid indices via
 AT-SPI) or where the cell object doesn't implement the
 QAccessibleTableCellInterface, which would previously result in crashes.
 .
 Cherry-picked into 5.15 as it fixes a crash in popular accessibility client
 software. Conflict resolution: remove C++17'isms (`if` with initializer).
no_htmlinfo_example.diff | (download)

examples/xml/xml.pro | 3 1 + 2 - 0 !
1 file changed, 1 insertion(+), 2 deletions(-)

 disable htmlinfo example which contains non-free files
remove_privacy_breaches.diff | (download)

doc/global/template/scripts/main.js | 5 0 + 5 - 0 !
1 file changed, 5 deletions(-)

 remove non-used privacy-breach code
 This code makes Lintian unhappy. But we are really not using it, it only
 gets inserted when building the online doc.
 Anyways the best way to calm down Lintian is to simply remove it.
link_fbclient.diff | (download)

src/plugins/sqldrivers/configure.json | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 build ibase sql plugin against firebird
gnukfreebsd_linker_warnings.diff | (download)

src/corelib/configure.json | 3 3 + 0 - 0 !
1 file changed, 3 insertions(+)

 catch linker warnings in some config tests
 Without this, qmake wrongly thinks that the tests succeed, for example:
 .
 ./config.tests/unix/futimens/futimens.cpp:44: warning: futimens is not implemented and will always fail
 test config.corelib.tests.futimens succeeded
armv4.diff | (download)

src/corelib/global/qprocessordetection.h | 5 5 + 0 - 0 !
1 file changed, 5 insertions(+)

 support armv4 architecture, needed for armel builds
qdoc_default_incdirs.diff | (download)

mkspecs/features/qt_docs.prf | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 pass default include directories to qdoc
path_max.diff | (download)

src/corelib/io/qfilesystemengine_unix.cpp | 4 4 + 0 - 0 !
1 file changed, 4 insertions(+)

 avoid unconditional path_max usage
 Use a "safe" size in case PATH_MAX is not defined; in the end, this should not
 be used, as a allocating realpath() will be used instead.
qstorageinfo_linux.diff | (download)

src/corelib/io/qstorageinfo_unix.cpp | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 limit linux-only code with q_os_linux
 The QStorageInfo/QStorageIterator implementation used for Linux is used also
 on Hurd, as it uses an interface provided by GNU libc.
 QStorageIterator::device() tries to use PATH_MAX (unavailable on the Hurd)
 to lookup a /dev/block/ path, which exists on Linux only; hence, perform that
 check within a Q_OS_LINUX block.
cross_build_mysql.diff | (download)

src/plugins/sqldrivers/configure.json | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 call pkgconfig in order to be able to cross build qtbase with mysql.
 Qt's build system calls mysql_config... which won't work in a cross build
 environment like Debian's, as it will throw an exec format error.
 .
 In order to solve this call pkgconfig and use mysqlclient.pc.
cast_types_for_egl_x11_test.diff | (download)

src/gui/configure.json | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 properly cast types for libglvnd 1.3.4
containsTLDEntry.diff | (download)

src/corelib/io/qtldurl.cpp | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 fix containstldentry crash when there are three or more chunks
 tldChunks[N] contains total size of chunks from 0 to N, not just the Nth one.