Package: qtbase-opensource-src / 5.11.3+dfsg1-1+deb10u3

Metadata

Package Version Patches format
qtbase-opensource-src 5.11.3+dfsg1-1+deb10u3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
fix selection rendering.patch | (download)

src/gui/text/qtextlayout.cpp | 14 5 + 9 - 0 !
1 file changed, 5 insertions(+), 9 deletions(-)

 fix selection rendering issues if rounding leads to left-out pixels
 instead of manual qFloor, use the toAlignedRect() function to get the minimal enclosing rectangle
 this will in some cases over-paint one-pixel, which is preferable to under-paint which
 leaves gaps inside painting text lines that can not be fixed by the user of the painting routines
reference_dpi.diff | (download)

src/plugins/platforms/xcb/qxcbscreen.cpp | 6 5 + 1 - 0 !
1 file changed, 5 insertions(+), 1 deletion(-)

 use 128 as a reference dpi for small screens
remove_need_for_glXGetProcAddressARB.patch | (download)

src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp | 38 1 + 37 - 0 !
1 file changed, 1 insertion(+), 37 deletions(-)

 [patch] remove need for glxgetprocaddressarb

We do already require glXGetProcAddress in line 248.

Task-number: QTBUG-71488
mysql_free_results_when_qsqlquery_finished_is_called.patch | (download)

src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 10 10 + 0 - 0 !
1 file changed, 10 insertions(+)

 [patch] mysql: free the results when qsqlquery::finished() is called

Calling mysql_stmt_free_result() frees the results of the last
executed query while keeping the prepared statement valid. This
allows one to keep around prepared QSqlQueries without the overhead
of keeping all the results in memory.

qprintdialog_duplex.diff | (download)

src/printsupport/dialogs/qprintdialog_unix.cpp | 33 27 + 6 - 0 !
1 file changed, 27 insertions(+), 6 deletions(-)

 unix print dialog: properly initialize duplex
cve 2019 18281.diff | (download)

src/gui/text/qtextengine.cpp | 51 32 + 19 - 0 !
1 file changed, 32 insertions(+), 19 deletions(-)

 fix crash when text contains too many directional chars
 In case a text to be layouted contains more than 128 directional characters
 it causes the application to crash.
 .
 The function initScriptAnalysisAndIsolatePairs() collects information of
 RTL/LTR chaaracters into vector "isolatePairs". The size of the vector is
 capped to 128. Later the function generateDirectionalRuns() iterates
 the text again and tries to access items from the previously capped vector
 above the upper bound.
raw_printers.diff | (download)

src/plugins/printsupport/cups/qcupsprintengine.cpp | 6 5 + 1 - 0 !
src/plugins/printsupport/cups/qppdprintdevice.cpp | 19 8 + 11 - 0 !
src/printsupport/dialogs/qpagesetupdialog_unix.cpp | 6 6 + 0 - 0 !
3 files changed, 19 insertions(+), 12 deletions(-)

 cups: support raw printers
 They don't have a ppd but we don't *really* need a ppd to just print.
ensure qtabletevent is not pre accepted.patch | (download)

src/widgets/kernel/qapplication.cpp | 1 1 + 0 - 0 !
src/widgets/kernel/qwidgetwindow.cpp | 1 1 + 0 - 0 !
2 files changed, 2 insertions(+)

 ensure that qtabletevent is not pre-accepted before sending
 In QWidget-world it's normal for input events to have the accepted
 flag false by default, so that it's obvious after visiting a widget
 subclass that does not override a particular handler function that it
 did not handle that event type at all.  For tablet events in
 particular, the contract (to which we've been paying more attention to
 ensure that QTBUG-47007 remains properly fixed) is that if a
 QTabletEvent is not accepted, a mouse event will follow.
 Tablet-unaware applications need to get the same mouse events from a
 Wacom stylus as they would receive from an actual mouse.
 .
 In this case the issue was missing hover events (mouse movements
 in which no mouse button is pressed).  Without those, the enterEvent
 and exitEvent virtuals are also not invoked properly.
repolish_run_on_direct_children.diff | (download)

src/widgets/styles/qstylesheetstyle.cpp | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 qstylesheetstyle::repolish: only run on direct children
 When re-parenting, some widgets change their children. For example
 QLabel, when set to rich text, will not update, until receiving a polish
 call, at which time getting a list of all children recursively and then
 trying to call functions on them will crash, since the children change
 in the middle of this operation.
CVE 2020 0569.diff | (download)

src/corelib/plugin/qpluginloader.cpp | 1 0 + 1 - 0 !
1 file changed, 1 deletion(-)

 do not load plugin from the $pwd
CVE 2020 0570.diff | (download)

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

 qlibrary/unix: do not attempt to load a library relative to $pwd
 I added the code in commit 5219c37f7c98f37f078fee00fe8ca35d83ff4f5d to
 find libraries in a haswell/ subdir of the main path, but we only need
 to do that transformation if the library is contains at least one
 directory separator. That is, if the user asks to load "lib/foo", then we
 should try "lib/haswell/foo" (often, the path prefix will be absolute).
 .
 When the library name the user requested has no directory separators, we
 let dlopen() do the transformation for us. Testing on Linux confirms
 glibc does so:
 .
 $ LD_DEBUG=libs /lib64/ld-linux-x86-64.so.2 --inhibit-cache ./qml -help |& grep Xcursor
    1972475:     find library=libXcursor.so.1 [0]; searching
    1972475:       trying file=/usr/lib64/haswell/avx512_1/libXcursor.so.1
    1972475:       trying file=/usr/lib64/haswell/libXcursor.so.1
    1972475:       trying file=/usr/lib64/libXcursor.so.1
    1972475:     calling init: /usr/lib64/libXcursor.so.1
    1972475:     calling fini: /usr/lib64/libXcursor.so.1 [0]
gnukfreebsd.diff | (download)

mkspecs/features/qt_functions.prf | 2 2 + 0 - 0 !
mkspecs/gnukfreebsd-g++/qmake.conf | 54 54 + 0 - 0 !
mkspecs/gnukfreebsd-g++/qplatformdefs.h | 84 84 + 0 - 0 !
3 files changed, 140 insertions(+)

 initial gnu/kfreebsd support
 - add a gnukfreebsd-g++ qmake mkspec, mostly copied from the hurd-g++ one
 - properly use LD_LIBRARY_PATH on GNU/* systems
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_breachs.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)

config.tests/unix/futimens/futimens.pro | 1 1 + 0 - 0 !
config.tests/unix/getentropy/getentropy.pro | 1 1 + 0 - 0 !
src/corelib/configure.json | 1 1 + 0 - 0 !
3 files 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
nonlinux_utime.diff | (download)

qmake/library/ioutils.cpp | 2 1 + 1 - 0 !
src/corelib/io/qfilesystemengine_unix.cpp | 2 1 + 1 - 0 !
2 files changed, 2 insertions(+), 2 deletions(-)

 guard utime_now/utime_omit usages
no_arc4random_buf.diff | (download)

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

 do not use arc4random_buf() on gnu/kfreebsd
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
kfreebsd_qstrncpy.diff | (download)

src/network/kernel/qnetworkinterface_unix.cpp | 5 3 + 2 - 0 !
1 file changed, 3 insertions(+), 2 deletions(-)

 use qstrncpy instead of strlcpy which is not available on gnu/kfreebsd
alpha_atimensec.diff | (download)

src/corelib/io/qfilesystemengine_unix.cpp | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 fix ambiguous definition of atime/mtime/ctime on alpha
 One of the implementations is enabled when the stat struct has
 ::st_atim member, another — when it has ::st_atimensec member.
 .
 On alpha, the stat struct has both members, defined as union here:
 https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/alpha/bits/stat.h#l48
 .
 and then used here:
 https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/alpha/bits/stat.h#l92
 .
 This patch forcefully disables the second implementation on alpha.
revert_remove_our_use_of_syscall_for statx.patch | (download)

src/corelib/global/minimum-linux_p.h | 7 1 + 6 - 0 !
src/corelib/io/qfilesystemengine_unix.cpp | 45 42 + 3 - 0 !
2 files changed, 43 insertions(+), 9 deletions(-)

 revert upstream commit that removes use of syscall() and statx(2)
 The commit https://code.qt.io/cgit/qt/qtbase.git/commit/?id=b7887f9b4faad222
 removes the use of the above mentioned syscalls. This makes Qt not able
 to run on current stable servers under a testing/unstable VM.
 .
 This patch should be removed in testing/unstable after Buster gets released.
hurd_missing_include.diff | (download)

mkspecs/hurd-g++/qplatformdefs.h | 1 1 + 0 - 0 !
1 file changed, 1 insertion(+)

 add missing features.h include to hurd-g++ mkspec