diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2022-02-24 05:50:40 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-02-24 22:59:46 +0100 |
commit | 9b8196890bdc3ba4a478f0e9d2d16dd98ee7c826 (patch) | |
tree | 12c545b4c1c32f22dbc567560c7b6ee7066a50aa /source | |
parent | cd1ecf258bacc64f59cb86fc762c0e97ed06611c (diff) | |
download | current-9b8196890bdc3ba4a478f0e9d2d16dd98ee7c826.tar.gz current-9b8196890bdc3ba4a478f0e9d2d16dd98ee7c826.tar.xz |
Thu Feb 24 05:50:40 UTC 202220220224055040
a/aaa_libraries-15.1-x86_64-1.txz: Upgraded.
Upgraded: libnsl-2.35.so, libexpat.so.1.8.6, libglib-2.0.so.0.7000.4,
libgmodule-2.0.so.0.7000.4, libgthread-2.0.so.0.7000.4.
Added: libicudata.so.69.1, libicui18n.so.69.1, libicuio.so.69.1,
libicutest.so.69.1, libicutu.so.69.1, libicuuc.so.69.1.
a/kernel-generic-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-huge-5.16.11-x86_64-1.txz: Upgraded.
a/kernel-modules-5.16.11-x86_64-1.txz: Upgraded.
a/xfsprogs-5.13.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
ap/sqlite-3.38.0-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
d/kernel-headers-5.16.11-x86-1.txz: Upgraded.
k/kernel-source-5.16.11-noarch-1.txz: Upgraded.
kde/bluedevil-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-grub-5.24.2-x86_64-1.txz: Upgraded.
kde/breeze-gtk-5.24.2-x86_64-1.txz: Upgraded.
kde/drkonqi-5.24.2-x86_64-1.txz: Upgraded.
kde/kactivitymanagerd-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-cli-tools-5.24.2-x86_64-1.txz: Upgraded.
kde/kde-gtk-config-5.24.2-x86_64-1.txz: Upgraded.
kde/kdecoration-5.24.2-x86_64-1.txz: Upgraded.
kde/kdeplasma-addons-5.24.2-x86_64-1.txz: Upgraded.
kde/kgamma5-5.24.2-x86_64-1.txz: Upgraded.
kde/khotkeys-5.24.2-x86_64-1.txz: Upgraded.
kde/kinfocenter-5.24.2-x86_64-1.txz: Upgraded.
kde/kmenuedit-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/kscreenlocker-5.24.2-x86_64-1.txz: Upgraded.
kde/ksshaskpass-5.24.2-x86_64-1.txz: Upgraded.
kde/ksystemstats-5.24.2-x86_64-1.txz: Upgraded.
kde/kwallet-pam-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/kwayland-server-5.24.2-x86_64-1.txz: Upgraded.
kde/kwin-5.24.2-x86_64-1.txz: Upgraded.
kde/kwrited-5.24.2-x86_64-1.txz: Upgraded.
kde/layer-shell-qt-5.24.2-x86_64-1.txz: Upgraded.
kde/libkscreen-5.24.2-x86_64-1.txz: Upgraded.
kde/libksysguard-5.24.2-x86_64-1.txz: Upgraded.
kde/milou-5.24.2-x86_64-1.txz: Upgraded.
kde/okteta-0.26.7-x86_64-1.txz: Upgraded.
kde/oxygen-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-browser-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-desktop-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-disks-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-firewall-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-integration-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-nm-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-pa-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-sdk-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-systemmonitor-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-vault-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-5.24.2-x86_64-1.txz: Upgraded.
kde/plasma-workspace-wallpapers-5.24.2-x86_64-1.txz: Upgraded.
kde/polkit-kde-agent-1-5.24.2-x86_64-1.txz: Upgraded.
kde/powerdevil-5.24.2-x86_64-1.txz: Upgraded.
kde/qqc2-breeze-style-5.24.2-x86_64-1.txz: Upgraded.
kde/sddm-kcm-5.24.2-x86_64-1.txz: Upgraded.
kde/systemsettings-5.24.2-x86_64-1.txz: Upgraded.
kde/xdg-desktop-portal-kde-5.24.2-x86_64-1.txz: Upgraded.
l/babl-0.1.90-x86_64-1.txz: Upgraded.
l/boost-1.78.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/gegl-0.4.36-x86_64-1.txz: Upgraded.
l/harfbuzz-3.4.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/icu4c-70.1-x86_64-1.txz: Upgraded.
Shared library .so-version bump.
l/libical-3.0.14-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libqalculate-4.0.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/libvisio-0.1.7-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/qt5-5.15.3_20220222_08720135-x86_64-1.txz: Upgraded.
Compiled against icu4c-70.1.
Thanks to Heinz Wiesinger for updating the fetch_sources.sh script to make
sure that the QtWebEngine version matches the rest of Qt, which got the
latest git pull compiling again.
l/qt5-webkit-5.212.0_alpha4-x86_64-8.txz: Rebuilt.
Recompiled against icu4c-70.1.
l/vte-0.66.2-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/dovecot-2.3.18-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/php-7.4.28-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/postfix-3.7.0-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/samba-4.15.5-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
n/tin-2.6.1-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
t/texlive-2021.210418-x86_64-3.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php80/php80-8.0.16-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
extra/php81/php81-8.1.3-x86_64-2.txz: Rebuilt.
Recompiled against icu4c-70.1.
isolinux/initrd.img: Rebuilt.
kernels/*: Upgraded.
usb-and-pxe-installers/usbboot.img: Rebuilt.
Diffstat (limited to 'source')
29 files changed, 35 insertions, 796 deletions
diff --git a/source/a/aaa_libraries/aaa_libraries.SlackBuild b/source/a/aaa_libraries/aaa_libraries.SlackBuild index 5203eb1d1..16f1bc438 100755 --- a/source/a/aaa_libraries/aaa_libraries.SlackBuild +++ b/source/a/aaa_libraries/aaa_libraries.SlackBuild @@ -22,8 +22,8 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=aaa_libraries -VERSION=${VERSION:-15.0} -BUILD=${BUILD:-19} +VERSION=${VERSION:-15.1} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/a/aaa_libraries/symlinks-to-tracked-libs-tmp.d/icu4c b/source/a/aaa_libraries/symlinks-to-tracked-libs-tmp.d/icu4c new file mode 100644 index 000000000..e96d497d3 --- /dev/null +++ b/source/a/aaa_libraries/symlinks-to-tracked-libs-tmp.d/icu4c @@ -0,0 +1,7 @@ +# We'll keep these around for a little while... probably remove on 2022-03-22 or thereabouts +/usr/lib/libicudata.so.69 +/usr/lib/libicui18n.so.69 +/usr/lib/libicuio.so.69 +/usr/lib/libicutest.so.69 +/usr/lib/libicutu.so.69 +/usr/lib/libicuuc.so.69 diff --git a/source/a/xfsprogs/xfsprogs.SlackBuild b/source/a/xfsprogs/xfsprogs.SlackBuild index fe5d5e8f9..1fbf978d3 100755 --- a/source/a/xfsprogs/xfsprogs.SlackBuild +++ b/source/a/xfsprogs/xfsprogs.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=xfsprogs VERSION=${VERSION:-$(echo xfsprogs-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/k/kernel-configs/config-generic-5.16.10 b/source/k/kernel-configs/config-generic-5.16.11 index 0431ba259..ab46b2f3a 100644 --- a/source/k/kernel-configs/config-generic-5.16.10 +++ b/source/k/kernel-configs/config-generic-5.16.11 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3628,7 +3628,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/k/kernel-configs/config-generic-5.16.10.x64 b/source/k/kernel-configs/config-generic-5.16.11.x64 index 8dc635932..8ab147440 100644 --- a/source/k/kernel-configs/config-generic-5.16.10.x64 +++ b/source/k/kernel-configs/config-generic-5.16.11.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3681,7 +3681,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/k/kernel-configs/config-generic-smp-5.16.10-smp b/source/k/kernel-configs/config-generic-smp-5.16.11-smp index fc93614b7..8ddf636b7 100644 --- a/source/k/kernel-configs/config-generic-smp-5.16.10-smp +++ b/source/k/kernel-configs/config-generic-smp-5.16.11-smp @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3675,7 +3675,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/k/kernel-configs/config-huge-5.16.10 b/source/k/kernel-configs/config-huge-5.16.11 index 1875421db..a78e04a27 100644 --- a/source/k/kernel-configs/config-huge-5.16.10 +++ b/source/k/kernel-configs/config-huge-5.16.11 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3628,7 +3628,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/k/kernel-configs/config-huge-5.16.10.x64 b/source/k/kernel-configs/config-huge-5.16.11.x64 index 3fb6eb401..474919d9b 100644 --- a/source/k/kernel-configs/config-huge-5.16.10.x64 +++ b/source/k/kernel-configs/config-huge-5.16.11.x64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3681,7 +3681,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/k/kernel-configs/config-huge-smp-5.16.10-smp b/source/k/kernel-configs/config-huge-smp-5.16.11-smp index dc0f2002c..c0409c633 100644 --- a/source/k/kernel-configs/config-huge-smp-5.16.10-smp +++ b/source/k/kernel-configs/config-huge-smp-5.16.11-smp @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.10 Kernel Configuration +# Linux/x86 5.16.11 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -3675,7 +3675,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options diff --git a/source/kde/kde/build/okteta b/source/kde/kde/build/okteta index 0cfbf0888..d00491fd7 100644 --- a/source/kde/kde/build/okteta +++ b/source/kde/kde/build/okteta @@ -1 +1 @@ -2 +1 diff --git a/source/l/boost/boost.SlackBuild b/source/l/boost/boost.SlackBuild index 8329ba15d..27e7f36b6 100755 --- a/source/l/boost/boost.SlackBuild +++ b/source/l/boost/boost.SlackBuild @@ -30,7 +30,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=boost VERSION=${VERSION:-$(echo $PKGNAM_*.tar.?z | rev | cut -f 3- -d . | rev | cut -f 2- -d _)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} PKG_VERSION=$(echo $VERSION | tr _ .) # Leave this alone NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/gegl/gegl.SlackBuild b/source/l/gegl/gegl.SlackBuild index 3f037bd23..673123432 100755 --- a/source/l/gegl/gegl.SlackBuild +++ b/source/l/gegl/gegl.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=gegl VERSION=${VERSION:-$(echo gegl-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/harfbuzz/harfbuzz.SlackBuild b/source/l/harfbuzz/harfbuzz.SlackBuild index c8e417151..f8dd78279 100755 --- a/source/l/harfbuzz/harfbuzz.SlackBuild +++ b/source/l/harfbuzz/harfbuzz.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=harfbuzz VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/libical/libical.SlackBuild b/source/l/libical/libical.SlackBuild index 3dff49df5..f8e67a2d1 100755 --- a/source/l/libical/libical.SlackBuild +++ b/source/l/libical/libical.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libical VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/libqalculate/libqalculate.SlackBuild b/source/l/libqalculate/libqalculate.SlackBuild index 82062ea8a..f06cb4de0 100755 --- a/source/l/libqalculate/libqalculate.SlackBuild +++ b/source/l/libqalculate/libqalculate.SlackBuild @@ -25,7 +25,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libqalculate VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/libvisio/libvisio.SlackBuild b/source/l/libvisio/libvisio.SlackBuild index d37a341a5..f098e8b07 100755 --- a/source/l/libvisio/libvisio.SlackBuild +++ b/source/l/libvisio/libvisio.SlackBuild @@ -27,7 +27,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=libvisio VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z* | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/l/qt5-webkit/qt5-webkit.SlackBuild b/source/l/qt5-webkit/qt5-webkit.SlackBuild index 6bdd1d890..5f2a4b2e7 100755 --- a/source/l/qt5-webkit/qt5-webkit.SlackBuild +++ b/source/l/qt5-webkit/qt5-webkit.SlackBuild @@ -28,7 +28,7 @@ PKGNAM=qt5-webkit SRCNAM=qtwebkit SRCVER=${SRCVER:-5.212.0-alpha4} VERSION=$(echo $SRCVER | tr - _) -BUILD=${BUILD:-7} +BUILD=${BUILD:-8} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/l/qt5/fetch_sources.sh b/source/l/qt5/fetch_sources.sh index 7a17f8885..4859cf30a 100755 --- a/source/l/qt5/fetch_sources.sh +++ b/source/l/qt5/fetch_sources.sh @@ -30,6 +30,9 @@ cd qt5 git checkout kde/5.15 ./init-repository + # Sync qtwebengine version with the rest of qt5 + sed -i -E "s/5.15.(.*)/5.15.3/" qtwebengine/.qmake.conf + for i in $(find . -type d -name "qt*" -maxdepth 1); do cd $i ../qtbase/bin/syncqt.pl -version $BRANCH diff --git a/source/l/qt5/patches/24.diff b/source/l/qt5/patches/24.diff deleted file mode 100644 index 5921881b7..000000000 --- a/source/l/qt5/patches/24.diff +++ /dev/null @@ -1,585 +0,0 @@ -diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp -index ea344c61c3a4643f7c725a6287f20d742b210d24..a7ce280a5df538917758e50ba8d2ee117378d546 100644 ---- a/src/client/qwaylanddisplay.cpp -+++ b/src/client/qwaylanddisplay.cpp -@@ -85,10 +85,203 @@ - - #include <errno.h> - -+#include <tuple> // for std::tie -+ -+static void checkWaylandError(struct wl_display *display) -+{ -+ int ecode = wl_display_get_error(display); -+ if ((ecode == EPIPE || ecode == ECONNRESET)) { -+ // special case this to provide a nicer error -+ qWarning("The Wayland connection broke. Did the Wayland compositor die?"); -+ } else { -+ qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode)); -+ } -+ _exit(1); -+} -+ - QT_BEGIN_NAMESPACE - - namespace QtWaylandClient { - -+class EventThread : public QThread -+{ -+ Q_OBJECT -+public: -+ enum OperatingMode { -+ EmitToDispatch, // Emit the signal, allow dispatching in a differnt thread. -+ SelfDispatch, // Dispatch the events inside this thread. -+ }; -+ -+ EventThread(struct wl_display * wl, struct wl_event_queue * ev_queue, -+ OperatingMode mode) -+ : m_fd(wl_display_get_fd(wl)) -+ , m_pipefd{ -1, -1 } -+ , m_wldisplay(wl) -+ , m_wlevqueue(ev_queue) -+ , m_mode(mode) -+ , m_reading(true) -+ , m_quitting(false) -+ { -+ setObjectName(QStringLiteral("WaylandEventThread")); -+ } -+ -+ void readAndDispatchEvents() -+ { -+ /* -+ * Dispatch pending events and flush the requests at least once. If the event thread -+ * is not reading, try to call _prepare_read() to allow the event thread to poll(). -+ * If that fails, re-try dispatch & flush again until _prepare_read() is successful. -+ * -+ * This allow any call to readAndDispatchEvents() to start event thread's polling, -+ * not only the one issued from event thread's waitForReading(), which means functions -+ * called from dispatch_pending() can safely spin an event loop. -+ */ -+ for (;;) { -+ if (dispatchQueuePending() < 0) { -+ checkWaylandError(m_wldisplay); -+ return; -+ } -+ -+ wl_display_flush(m_wldisplay); -+ -+ // We have to check if event thread is reading every time we dispatch -+ // something, as that may recursively call this function. -+ if (m_reading.loadAcquire()) -+ break; -+ -+ if (prepareReadQueue() == 0) { -+ QMutexLocker l(&m_mutex); -+ m_reading.storeRelease(true); -+ m_cond.wakeOne(); -+ break; -+ } -+ } -+ } -+ -+ void stop() -+ { -+ // We have to both write to the pipe and set the flag, as the thread may be -+ // either in the poll() or waiting for _prepare_read(). -+ if (m_pipefd[1] != -1 && write(m_pipefd[1], "\0", 1) == -1) -+ qWarning("Failed to write to the pipe: %s.", strerror(errno)); -+ -+ { -+ QMutexLocker l(&m_mutex); -+ m_quitting = true; -+ m_cond.wakeOne(); -+ } -+ -+ wait(); -+ } -+ -+Q_SIGNALS: -+ void needReadAndDispatch(); -+ -+protected: -+ void run() override -+ { -+ // we use this pipe to make the loop exit otherwise if we simply used a flag on the loop condition, if stop() gets -+ // called while poll() is blocking the thread will never quit since there are no wayland messages coming anymore. -+ struct Pipe -+ { -+ Pipe(int *fds) -+ : fds(fds) -+ { -+ if (qt_safe_pipe(fds) != 0) -+ qWarning("Pipe creation failed. Quitting may hang."); -+ } -+ ~Pipe() -+ { -+ if (fds[0] != -1) { -+ close(fds[0]); -+ close(fds[1]); -+ } -+ } -+ -+ int *fds; -+ } pipe(m_pipefd); -+ -+ // Make the main thread call wl_prepare_read(), dispatch the pending messages and flush the -+ // outbound ones. Wait until it's done before proceeding, unless we're told to quit. -+ while (waitForReading()) { -+ pollfd fds[2] = { { m_fd, POLLIN, 0 }, { m_pipefd[0], POLLIN, 0 } }; -+ poll(fds, 2, -1); -+ -+ if (fds[1].revents & POLLIN) { -+ // we don't really care to read the byte that was written here since we're closing down -+ wl_display_cancel_read(m_wldisplay); -+ break; -+ } -+ -+ if (fds[0].revents & POLLIN) -+ wl_display_read_events(m_wldisplay); -+ // The polll was succesfull and the event thread did the wl_display_read_events(). On the next iteration of the loop -+ // the event sent to the main thread will cause it to dispatch the messages just read, unless the loop exits in which -+ // case we don't care anymore about them. -+ else -+ wl_display_cancel_read(m_wldisplay); -+ } -+ } -+ -+private: -+ bool waitForReading() -+ { -+ Q_ASSERT(QThread::currentThread() == this); -+ -+ m_reading.storeRelease(false); -+ -+ if (m_mode == SelfDispatch) { -+ readAndDispatchEvents(); -+ } else { -+ Q_EMIT needReadAndDispatch(); -+ -+ QMutexLocker lock(&m_mutex); -+ // m_reading might be set from our emit or some other invocation of -+ // readAndDispatchEvents(). -+ while (!m_reading.loadRelaxed() && !m_quitting) -+ m_cond.wait(&m_mutex); -+ } -+ -+ return !m_quitting; -+ } -+ -+ int dispatchQueuePending() -+ { -+ if (m_wlevqueue) -+ return wl_display_dispatch_queue_pending(m_wldisplay, m_wlevqueue); -+ else -+ return wl_display_dispatch_pending(m_wldisplay); -+ } -+ -+ int prepareReadQueue() -+ { -+ if (m_wlevqueue) -+ return wl_display_prepare_read_queue(m_wldisplay, m_wlevqueue); -+ else -+ return wl_display_prepare_read(m_wldisplay); -+ } -+ -+ int m_fd; -+ int m_pipefd[2]; -+ wl_display *m_wldisplay; -+ wl_event_queue *m_wlevqueue; -+ OperatingMode m_mode; -+ -+ /* Concurrency note when operating in EmitToDispatch mode: -+ * m_reading is set to false inside event thread's waitForReading(), and is -+ * set to true inside main thread's readAndDispatchEvents(). -+ * The lock is not taken when setting m_reading to false, as the main thread -+ * is not actively waiting for it to turn false. However, the lock is taken -+ * inside readAndDispatchEvents() before setting m_reading to true, -+ * as the event thread is actively waiting for it under the wait condition. -+ */ -+ -+ QAtomicInteger<bool> m_reading; -+ bool m_quitting; -+ QMutex m_mutex; -+ QWaitCondition m_cond; -+}; -+ - Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland"); // for general (uncategorized) Wayland platform logging - - struct wl_surface *QWaylandDisplay::createSurface(void *handle) -@@ -158,17 +351,16 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration) - if (!mXkbContext) - qCWarning(lcQpaWayland, "failed to create xkb context"); - #endif -- -- forceRoundTrip(); -- -- if (!mWaitingScreens.isEmpty()) { -- // Give wl_output.done and zxdg_output_v1.done events a chance to arrive -- forceRoundTrip(); -- } - } - - QWaylandDisplay::~QWaylandDisplay(void) - { -+ if (m_eventThread) -+ m_eventThread->stop(); -+ -+ if (m_frameEventQueueThread) -+ m_frameEventQueueThread->stop(); -+ - if (mSyncCallback) - wl_callback_destroy(mSyncCallback); - -@@ -189,6 +381,18 @@ QWaylandDisplay::~QWaylandDisplay(void) - wl_display_disconnect(mDisplay); - } - -+// Steps which is called just after constructor. This separates registry_global() out of the constructor -+// so that factory functions in integration can be overridden. -+void QWaylandDisplay::initialize() -+{ -+ forceRoundTrip(); -+ -+ if (!mWaitingScreens.isEmpty()) { -+ // Give wl_output.done and zxdg_output_v1.done events a chance to arrive -+ forceRoundTrip(); -+ } -+} -+ - void QWaylandDisplay::ensureScreen() - { - if (!mScreens.empty() || mPlaceholderScreen) -@@ -203,98 +407,37 @@ void QWaylandDisplay::ensureScreen() - - void QWaylandDisplay::checkError() const - { -- int ecode = wl_display_get_error(mDisplay); -- if ((ecode == EPIPE || ecode == ECONNRESET)) { -- // special case this to provide a nicer error -- qWarning("The Wayland connection broke. Did the Wayland compositor die?"); -- } else { -- qWarning("The Wayland connection experienced a fatal error: %s", strerror(ecode)); -- } -- _exit(1); -+ checkWaylandError(mDisplay); - } - -+// Called in main thread, either from queued signal or directly. - void QWaylandDisplay::flushRequests() - { -- if (wl_display_prepare_read(mDisplay) == 0) { -- wl_display_read_events(mDisplay); -- } -- -- if (wl_display_dispatch_pending(mDisplay) < 0) -- checkError(); -- -- { -- QReadLocker locker(&m_frameQueueLock); -- for (const FrameQueue &q : mExternalQueues) { -- QMutexLocker locker(q.mutex); -- while (wl_display_prepare_read_queue(mDisplay, q.queue) != 0) -- wl_display_dispatch_queue_pending(mDisplay, q.queue); -- wl_display_read_events(mDisplay); -- wl_display_dispatch_queue_pending(mDisplay, q.queue); -- } -- } -- -- wl_display_flush(mDisplay); --} -- --void QWaylandDisplay::blockingReadEvents() --{ -- if (wl_display_dispatch(mDisplay) < 0) -- checkError(); --} -- --void QWaylandDisplay::destroyFrameQueue(const QWaylandDisplay::FrameQueue &q) --{ -- QWriteLocker locker(&m_frameQueueLock); -- auto it = std::find_if(mExternalQueues.begin(), -- mExternalQueues.end(), -- [&q] (const QWaylandDisplay::FrameQueue &other){ return other.queue == q.queue; }); -- Q_ASSERT(it != mExternalQueues.end()); -- mExternalQueues.erase(it); -- if (q.queue != nullptr) -- wl_event_queue_destroy(q.queue); -- delete q.mutex; -+ m_eventThread->readAndDispatchEvents(); - } - --QWaylandDisplay::FrameQueue QWaylandDisplay::createFrameQueue() -+// We have to wait until we have an eventDispatcher before creating the eventThread, -+// otherwise forceRoundTrip() may block inside _events_read() because eventThread is -+// polling. -+void QWaylandDisplay::initEventThread() - { -- QWriteLocker locker(&m_frameQueueLock); -- FrameQueue q{createEventQueue()}; -- mExternalQueues.append(q); -- return q; --} -+ m_eventThread.reset( -+ new EventThread(mDisplay, /* default queue */ nullptr, EventThread::EmitToDispatch)); -+ connect(m_eventThread.get(), &EventThread::needReadAndDispatch, this, -+ &QWaylandDisplay::flushRequests, Qt::QueuedConnection); -+ m_eventThread->start(); - --wl_event_queue *QWaylandDisplay::createEventQueue() --{ -- return wl_display_create_queue(mDisplay); -+ // wl_display_disconnect() free this. -+ m_frameEventQueue = wl_display_create_queue(mDisplay); -+ m_frameEventQueueThread.reset( -+ new EventThread(mDisplay, m_frameEventQueue, EventThread::SelfDispatch)); -+ m_frameEventQueueThread->start(); - } - --void QWaylandDisplay::dispatchQueueWhile(wl_event_queue *queue, std::function<bool ()> condition, int timeout) -+void QWaylandDisplay::blockingReadEvents() - { -- if (!condition()) -- return; -- -- QElapsedTimer timer; -- timer.start(); -- struct pollfd pFd = qt_make_pollfd(wl_display_get_fd(mDisplay), POLLIN); -- while (timeout == -1 || timer.elapsed() < timeout) { -- while (wl_display_prepare_read_queue(mDisplay, queue) != 0) -- wl_display_dispatch_queue_pending(mDisplay, queue); -- -- wl_display_flush(mDisplay); -- -- const int remaining = qMax(timeout - timer.elapsed(), 0ll); -- const int pollTimeout = timeout == -1 ? -1 : remaining; -- if (qt_poll_msecs(&pFd, 1, pollTimeout) > 0) -- wl_display_read_events(mDisplay); -- else -- wl_display_cancel_read(mDisplay); -- -- if (wl_display_dispatch_queue_pending(mDisplay, queue) < 0) -- checkError(); -- -- if (!condition()) -- break; -- } -+ if (wl_display_dispatch(mDisplay) < 0) -+ checkWaylandError(mDisplay); - } - - QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const -@@ -669,4 +812,6 @@ QWaylandCursorTheme *QWaylandDisplay::loadCursorTheme(const QString &name, int p - - } // namespace QtWaylandClient - -+#include "qwaylanddisplay.moc" -+ - QT_END_NAMESPACE -diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h -index 09a1736a267d2816873667e9f1ecb4f4892f0ed0..42bc661d3064d770aa9fde8bd62ecdbbc89732a2 100644 ---- a/src/client/qwaylanddisplay_p.h -+++ b/src/client/qwaylanddisplay_p.h -@@ -109,6 +109,7 @@ class QWaylandSurface; - class QWaylandShellIntegration; - class QWaylandCursor; - class QWaylandCursorTheme; -+class EventThread; - - typedef void (*RegistryListener)(void *data, - struct wl_registry *registry, -@@ -120,15 +121,11 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandDisplay : public QObject, public QtWayland - Q_OBJECT - - public: -- struct FrameQueue { -- FrameQueue(wl_event_queue *q = nullptr) : queue(q), mutex(new QMutex) {} -- wl_event_queue *queue; -- QMutex *mutex; -- }; -- - QWaylandDisplay(QWaylandIntegration *waylandIntegration); - ~QWaylandDisplay(void) override; - -+ void initialize(); -+ - #if QT_CONFIG(xkbcommon) - struct xkb_context *xkbContext() const { return mXkbContext.get(); } - #endif -@@ -210,12 +207,11 @@ public: - void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice); - void handleWindowDestroyed(QWaylandWindow *window); - -- wl_event_queue *createEventQueue(); -- FrameQueue createFrameQueue(); -- void destroyFrameQueue(const FrameQueue &q); -- void dispatchQueueWhile(wl_event_queue *queue, std::function<bool()> condition, int timeout = -1); -+ wl_event_queue *frameEventQueue() { return m_frameEventQueue; }; - - bool isKeyboardAvailable() const; -+ -+ void initEventThread(); - public slots: - void blockingReadEvents(); - void flushRequests(); -@@ -238,6 +234,9 @@ private: - }; - - struct wl_display *mDisplay = nullptr; -+ QScopedPointer<EventThread> m_eventThread; -+ wl_event_queue *m_frameEventQueue = nullptr; -+ QScopedPointer<EventThread> m_frameEventQueueThread; - QtWayland::wl_compositor mCompositor; - QScopedPointer<QWaylandShm> mShm; - QList<QWaylandScreen *> mWaitingScreens; -@@ -274,11 +273,9 @@ private: - QWaylandInputDevice *mLastInputDevice = nullptr; - QPointer<QWaylandWindow> mLastInputWindow; - QPointer<QWaylandWindow> mLastKeyboardFocus; -- QVector<QWaylandWindow *> mActiveWindows; -- QVector<FrameQueue> mExternalQueues; -+ QList<QWaylandWindow *> mActiveWindows; - struct wl_callback *mSyncCallback = nullptr; - static const wl_callback_listener syncCallbackListener; -- QReadWriteLock m_frameQueueLock; - - bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull(); - -diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp -index e5e7dd42c9b0145f4c9852f7e15dcc83106c321d..3b876047293887d17eeb28819c7386ded9e1f131 100644 ---- a/src/client/qwaylandintegration.cpp -+++ b/src/client/qwaylandintegration.cpp -@@ -192,14 +192,18 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const - - void QWaylandIntegration::initialize() - { -+ mDisplay->initEventThread(); -+ -+ // Call after eventDispatcher is fully connected, for QWaylandDisplay::forceRoundTrip() -+ mDisplay->initialize(); -+ -+ // But the aboutToBlock() and awake() should be connected after initializePlatform(). -+ // Otherwise the connected flushRequests() may consumes up all events before processEvents starts to wait, -+ // so that processEvents(QEventLoop::WaitForMoreEvents) may be blocked in the forceRoundTrip(). - QAbstractEventDispatcher *dispatcher = QGuiApplicationPrivate::eventDispatcher; - QObject::connect(dispatcher, SIGNAL(aboutToBlock()), mDisplay.data(), SLOT(flushRequests())); - QObject::connect(dispatcher, SIGNAL(awake()), mDisplay.data(), SLOT(flushRequests())); - -- int fd = wl_display_get_fd(mDisplay->wl_display()); -- QSocketNotifier *sn = new QSocketNotifier(fd, QSocketNotifier::Read, mDisplay.data()); -- QObject::connect(sn, SIGNAL(activated(QSocketDescriptor)), mDisplay.data(), SLOT(flushRequests())); -- - // Qt does not support running with no screens - mDisplay->ensureScreen(); - } -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index 1597f67e63ae7834ded50e25b0acf86b71abcd73..7de19a742b6d3f6a3ce0955f59a5bf2879d29c9e 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr; - QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display) - : QPlatformWindow(window) - , mDisplay(display) -- , mFrameQueue(mDisplay->createFrameQueue()) - , mResizeAfterSwap(qEnvironmentVariableIsSet("QT_WAYLAND_RESIZE_AFTER_SWAP")) - { - { -@@ -95,8 +94,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display) - - QWaylandWindow::~QWaylandWindow() - { -- mDisplay->destroyFrameQueue(mFrameQueue); -- - delete mWindowDecoration; - - if (mSurface) -@@ -635,6 +632,8 @@ const wl_callback_listener QWaylandWindow::callbackListener = { - - void QWaylandWindow::handleFrameCallback() - { -+ QMutexLocker locker(&mFrameSyncMutex); -+ - mWaitingForFrameCallback = false; - mFrameCallbackElapsedTimer.invalidate(); - -@@ -656,12 +655,16 @@ void QWaylandWindow::handleFrameCallback() - mWaitingForUpdateDelivery = true; - QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection); - } -+ -+ mFrameSyncWait.notify_all(); - } - - bool QWaylandWindow::waitForFrameSync(int timeout) - { -- QMutexLocker locker(mFrameQueue.mutex); -- mDisplay->dispatchQueueWhile(mFrameQueue.queue, [&]() { return mWaitingForFrameCallback; }, timeout); -+ QMutexLocker locker(&mFrameSyncMutex); -+ -+ QDeadlineTimer deadline(timeout); -+ while (mWaitingForFrameCallback && mFrameSyncWait.wait(&mFrameSyncMutex, deadline)) { } - - if (mWaitingForFrameCallback) { - qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed"; -@@ -1157,8 +1160,11 @@ void QWaylandWindow::requestUpdate() - Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA - - // If we have a frame callback all is good and will be taken care of there -- if (mWaitingForFrameCallback) -- return; -+ { -+ QMutexLocker locker(&mFrameSyncMutex); -+ if (mWaitingForFrameCallback) -+ return; -+ } - - // If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet - // This is a somewhat redundant behavior and might indicate a bug in the calling code, so log -@@ -1171,7 +1177,12 @@ void QWaylandWindow::requestUpdate() - // so use invokeMethod to delay the delivery a bit. - QMetaObject::invokeMethod(this, [this] { - // Things might have changed in the meantime -- if (hasPendingUpdateRequest() && !mWaitingForFrameCallback) -+ { -+ QMutexLocker locker(&mFrameSyncMutex); -+ if (mWaitingForFrameCallback) -+ return; -+ } -+ if (hasPendingUpdateRequest()) - deliverUpdateRequest(); - }, Qt::QueuedConnection); - } -@@ -1191,9 +1202,10 @@ void QWaylandWindow::handleUpdate() - if (!mSurface) - return; - -- QMutexLocker locker(mFrameQueue.mutex); -+ QMutexLocker locker(&mFrameSyncMutex); -+ - struct ::wl_surface *wrappedSurface = reinterpret_cast<struct ::wl_surface *>(wl_proxy_create_wrapper(mSurface->object())); -- wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mFrameQueue.queue); -+ wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mDisplay->frameEventQueue()); - mFrameCallback = wl_surface_frame(wrappedSurface); - wl_proxy_wrapper_destroy(wrappedSurface); - wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this); -@@ -1203,6 +1215,8 @@ void QWaylandWindow::handleUpdate() - // Start a timer for handling the case when the compositor stops sending frame callbacks. - if (mFrameCallbackTimeout > 0) { - QMetaObject::invokeMethod(this, [this] { -+ QMutexLocker locker(&mFrameSyncMutex); -+ - if (mWaitingForFrameCallback) { - if (mFrameCallbackCheckIntervalTimerId < 0) - mFrameCallbackCheckIntervalTimerId = startTimer(mFrameCallbackTimeout); -diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h -index e06879620c3d033f093b0866f018ec80a72a97c3..d45980a80e9ecc9c5003fa2144de63e6337bda8a 100644 ---- a/src/client/qwaylandwindow_p.h -+++ b/src/client/qwaylandwindow_p.h -@@ -232,7 +232,7 @@ protected: - int mFrameCallbackCheckIntervalTimerId = -1; - QElapsedTimer mFrameCallbackElapsedTimer; - struct ::wl_callback *mFrameCallback = nullptr; -- QWaylandDisplay::FrameQueue mFrameQueue; -+ QMutex mFrameSyncMutex; - QWaitCondition mFrameSyncWait; - - // True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer diff --git a/source/l/qt5/patches/qt5-glibc-2.34.patch b/source/l/qt5/patches/qt5-glibc-2.34.patch deleted file mode 100644 index 097d0efe8..000000000 --- a/source/l/qt5/patches/qt5-glibc-2.34.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff -aurN qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc ---- qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-08-29 05:12:01.000000000 +0200 -+++ qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/abseil-cpp/absl/debugging/failure_signal_handler.cc 2021-09-25 12:52:13.032957704 +0200 -@@ -135,7 +135,7 @@ - #else - const size_t page_mask = sysconf(_SC_PAGESIZE) - 1; - #endif -- size_t stack_size = (std::max(SIGSTKSZ, 65536) + page_mask) & ~page_mask; -+ size_t stack_size = (std::max<size_t>(SIGSTKSZ, 65536) + page_mask) & ~page_mask; - #if defined(ADDRESS_SANITIZER) || defined(MEMORY_SANITIZER) || \ - defined(THREAD_SANITIZER) - // Account for sanitizer instrumentation requiring additional stack space. -diff -aurN qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc ---- qt-everywhere-src-5.15.3_20210826_21ea9c12/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-08-29 05:12:02.000000000 +0200 -+++ qt-everywhere-src-5.15.3_20210826_21ea9c12-mod/qtwebengine/src/3rdparty/chromium/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc 2021-09-25 12:53:59.282947757 +0200 -@@ -138,7 +138,7 @@ - // SIGSTKSZ may be too small to prevent the signal handlers from overrunning - // the alternative stack. Ensure that the size of the alternative stack is - // large enough. -- static const unsigned kSigStackSize = std::max(16384, SIGSTKSZ); -+ static const unsigned kSigStackSize = std::max<size_t>(16384, SIGSTKSZ); - - // Only set an alternative stack if there isn't already one, or if the current - // one is too small. diff --git a/source/l/qt5/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch b/source/l/qt5/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch deleted file mode 100644 index 28a60ad1a..000000000 --- a/source/l/qt5/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch +++ /dev/null @@ -1,141 +0,0 @@ -diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc ---- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2020-11-07 02:22:36.000000000 +0100 -+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc 2021-01-20 02:14:53.066223906 +0100 -@@ -248,6 +248,18 @@ - return RestrictKillTarget(current_pid, sysno); - } - -+#if defined(__NR_newfstatat) -+ if (sysno == __NR_newfstatat) { -+ return RewriteFstatatSIGSYS(); -+ } -+#endif -+ -+#if defined(__NR_fstatat64) -+ if (sysno == __NR_fstatat64) { -+ return RewriteFstatatSIGSYS(); -+ } -+#endif -+ - if (SyscallSets::IsFileSystem(sysno) || - SyscallSets::IsCurrentDirectory(sysno)) { - return Error(fs_denied_errno); -diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc ---- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2020-11-07 02:22:36.000000000 +0100 -+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc 2021-01-22 19:02:55.651668257 +0100 -@@ -6,6 +6,8 @@ - - #include "sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h" - -+#include <errno.h> -+#include <fcntl.h> - #include <stddef.h> - #include <stdint.h> - #include <sys/syscall.h> -@@ -353,6 +355,35 @@ - return -ENOSYS; - } - -+intptr_t SIGSYSFstatatHandler(const struct arch_seccomp_data& args, -+ void* aux) { -+ switch (args.nr) { -+#if defined(__NR_newfstatat) -+ case __NR_newfstatat: -+#endif -+#if defined(__NR_fstatat64) -+ case __NR_fstatat64: -+#endif -+#if defined(__NR_newfstatat) || defined(__NR_fstatat64) -+ if (*reinterpret_cast<const char *>(args.args[1]) == '\0' -+ && args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) { -+ return sandbox::sys_fstat64(static_cast<int>(args.args[0]), -+ reinterpret_cast<struct stat64 *>(args.args[2])); -+ } else { -+ errno = EACCES; -+ return -1; -+ } -+ break; -+#endif -+ } -+ -+ CrashSIGSYS_Handler(args, aux); -+ -+ // Should never be reached. -+ RAW_CHECK(false); -+ return -ENOSYS; -+} -+ - bpf_dsl::ResultExpr CrashSIGSYS() { - return bpf_dsl::Trap(CrashSIGSYS_Handler, NULL); - } -@@ -385,6 +416,10 @@ - return bpf_dsl::Trap(SIGSYSSchedHandler, NULL); - } - -+bpf_dsl::ResultExpr RewriteFstatatSIGSYS() { -+ return bpf_dsl::Trap(SIGSYSFstatatHandler, NULL); -+} -+ - void AllocateCrashKeys() { - #if !defined(OS_NACL_NONSFI) - if (seccomp_crash_key) -diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h ---- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2020-11-07 02:22:36.000000000 +0100 -+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.h 2021-01-20 02:11:04.583714199 +0100 -@@ -62,6 +62,10 @@ - // sched_setparam(), sched_setscheduler() - SANDBOX_EXPORT intptr_t - SIGSYSSchedHandler(const struct arch_seccomp_data& args, void* aux); -+// If the fstatat syscall is actually a disguised fstat, calls the regular fstat -+// syscall, otherwise, crashes in the same way as CrashSIGSYS_Handler. -+SANDBOX_EXPORT intptr_t -+ SIGSYSFstatatHandler(const struct arch_seccomp_data& args, void* aux); - - // Variants of the above functions for use with bpf_dsl. - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYS(); -@@ -72,6 +76,7 @@ - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSFutex(); - SANDBOX_EXPORT bpf_dsl::ResultExpr CrashSIGSYSPtrace(); - SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteSchedSIGSYS(); -+SANDBOX_EXPORT bpf_dsl::ResultExpr RewriteFstatatSIGSYS(); - - // Allocates a crash key so that Seccomp information can be recorded. - void AllocateCrashKeys(); -diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc ---- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc 2020-11-07 02:22:36.000000000 +0100 -+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.cc 2021-01-20 02:41:12.033133269 +0100 -@@ -261,4 +261,13 @@ - - #endif // defined(MEMORY_SANITIZER) - -+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf) -+{ -+#if defined(__NR_fstat64) -+ return syscall(__NR_fstat64, fd, buf); -+#else -+ return syscall(__NR_fstat, fd, buf); -+#endif -+} -+ - } // namespace sandbox -diff -ur qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h ---- qtwebengine-everywhere-src-5.15.2/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h 2020-11-07 02:22:36.000000000 +0100 -+++ qtwebengine-everywhere-src-5.15.2-#1904652/src/3rdparty/chromium/sandbox/linux/services/syscall_wrappers.h 2021-01-20 02:40:26.499827829 +0100 -@@ -17,6 +17,7 @@ - struct rlimit64; - struct cap_hdr; - struct cap_data; -+struct stat64; - - namespace sandbox { - -@@ -84,6 +85,9 @@ - const struct sigaction* act, - struct sigaction* oldact); - -+// Recent glibc rewrites fstat to fstatat. -+SANDBOX_EXPORT int sys_fstat64(int fd, struct stat64 *buf); -+ - } // namespace sandbox - - #endif // SANDBOX_LINUX_SERVICES_SYSCALL_WRAPPERS_H_ diff --git a/source/l/qt5/qt5.SlackBuild b/source/l/qt5/qt5.SlackBuild index f1bd631e6..cc3731f92 100755 --- a/source/l/qt5/qt5.SlackBuild +++ b/source/l/qt5/qt5.SlackBuild @@ -31,7 +31,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=qt5 VERSION=$(ls qt-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev) -BUILD=${BUILD:-3} +BUILD=${BUILD:-1} PKGSRC=$(echo $VERSION | cut -d - -f 1) PKGVER=$(echo $VERSION | tr - _) @@ -143,21 +143,6 @@ cd qtbase zcat $CWD/patches/qt5.qtbase_cmake_isystem_includes.patch.gz | patch -p1 --verbose || exit 1 cd - 1>/dev/null -# Fix sandbox functions for glibc-2.33: -cd qtwebengine - zcat $CWD/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch.gz | patch -p1 --verbose || exit 1 -cd - 1>/dev/null - -# Fix for glibc-2.34+: -zcat $CWD/patches/qt5-glibc-2.34.patch.gz | patch -p1 --verbose || exit 1 - -# Apply upstream patch to move the wayland socket polling to a separate event -# thread. This greatly improves the behavior of Plasma Wayland sessions, fixing -# (for example) stuttering that was occuring on multimedia applications. -cd qtwayland - zcat $CWD/patches/24.diff.gz | patch -p1 --verbose || exit 1 -cd - 1>/dev/null - # If PulseAudio is not found, use the _alsa $TAG and disable it in the build: if ! pkg-config --exists libpulse 2>/dev/null ; then PULSEAUDIO_OPTION="-no-pulseaudio -no-webengine-pulseaudio" diff --git a/source/l/vte/vte.SlackBuild b/source/l/vte/vte.SlackBuild index 40b5aa99e..9e53414bc 100755 --- a/source/l/vte/vte.SlackBuild +++ b/source/l/vte/vte.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=vte VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} NUMJOBS=${NUMJOBS:-" -j$(expr $(nproc) + 1) "} diff --git a/source/n/dovecot/dovecot.SlackBuild b/source/n/dovecot/dovecot.SlackBuild index 1c5dfaff9..7993a195e 100755 --- a/source/n/dovecot/dovecot.SlackBuild +++ b/source/n/dovecot/dovecot.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=dovecot VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/n/php/php.SlackBuild b/source/n/php/php.SlackBuild index 8663af6b4..5bbf8d5b2 100755 --- a/source/n/php/php.SlackBuild +++ b/source/n/php/php.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=php VERSION=${VERSION:-$(echo php-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} ALPINE=2.25 -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/n/postfix/postfix.SlackBuild b/source/n/postfix/postfix.SlackBuild index b3cbf888e..3cc6375a9 100755 --- a/source/n/postfix/postfix.SlackBuild +++ b/source/n/postfix/postfix.SlackBuild @@ -28,7 +28,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=postfix VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -z "$ARCH" ]; then case "$( uname -m )" in diff --git a/source/n/samba/samba.SlackBuild b/source/n/samba/samba.SlackBuild index 0761cb69d..71b6212d2 100755 --- a/source/n/samba/samba.SlackBuild +++ b/source/n/samba/samba.SlackBuild @@ -26,7 +26,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=samba VERSION=${VERSION:-$(echo samba-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} if [ -e $CWD/machine.conf ]; then . $CWD/machine.conf ] diff --git a/source/n/tin/tin.SlackBuild b/source/n/tin/tin.SlackBuild index 53e983eeb..0fa8b83c6 100755 --- a/source/n/tin/tin.SlackBuild +++ b/source/n/tin/tin.SlackBuild @@ -24,7 +24,7 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=tin VERSION=${VERSION:-$(echo $PKGNAM-*.tar.xz | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then diff --git a/source/t/texlive/texlive.SlackBuild b/source/t/texlive/texlive.SlackBuild index 909d1399e..c0b26eeca 100755 --- a/source/t/texlive/texlive.SlackBuild +++ b/source/t/texlive/texlive.SlackBuild @@ -34,7 +34,7 @@ PKGNAM=texlive SOURCEVERSION=${SOURCEVERSION:-20210324} TEXMFVERSION=${TEXMFVERSION:-210418} VERSION=${VERSION:-2021.$TEXMFVERSION} -BUILD=${BUILD:-2} +BUILD=${BUILD:-3} TMP=${TMP:-/tmp} PKG=$TMP/package-texlive |