summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
Diffstat (limited to 'source')
-rwxr-xr-xsource/a/aaa_libraries/aaa_libraries.SlackBuild4
-rw-r--r--source/a/aaa_libraries/symlinks-to-tracked-libs-tmp.d/icu4c7
-rwxr-xr-xsource/a/xfsprogs/xfsprogs.SlackBuild2
-rw-r--r--source/k/kernel-configs/config-generic-5.16.11 (renamed from source/k/kernel-configs/config-generic-5.16.10)3
-rw-r--r--source/k/kernel-configs/config-generic-5.16.11.x64 (renamed from source/k/kernel-configs/config-generic-5.16.10.x64)3
-rw-r--r--source/k/kernel-configs/config-generic-smp-5.16.11-smp (renamed from source/k/kernel-configs/config-generic-smp-5.16.10-smp)3
-rw-r--r--source/k/kernel-configs/config-huge-5.16.11 (renamed from source/k/kernel-configs/config-huge-5.16.10)3
-rw-r--r--source/k/kernel-configs/config-huge-5.16.11.x64 (renamed from source/k/kernel-configs/config-huge-5.16.10.x64)3
-rw-r--r--source/k/kernel-configs/config-huge-smp-5.16.11-smp (renamed from source/k/kernel-configs/config-huge-smp-5.16.10-smp)3
-rw-r--r--source/kde/kde/build/okteta2
-rwxr-xr-xsource/l/boost/boost.SlackBuild2
-rwxr-xr-xsource/l/gegl/gegl.SlackBuild2
-rwxr-xr-xsource/l/harfbuzz/harfbuzz.SlackBuild2
-rwxr-xr-xsource/l/libical/libical.SlackBuild2
-rwxr-xr-xsource/l/libqalculate/libqalculate.SlackBuild2
-rwxr-xr-xsource/l/libvisio/libvisio.SlackBuild2
-rwxr-xr-xsource/l/qt5-webkit/qt5-webkit.SlackBuild2
-rwxr-xr-xsource/l/qt5/fetch_sources.sh3
-rw-r--r--source/l/qt5/patches/24.diff585
-rw-r--r--source/l/qt5/patches/qt5-glibc-2.34.patch24
-rw-r--r--source/l/qt5/patches/qtwebengine-everywhere-src-5.15.2-%231904652.patch141
-rwxr-xr-xsource/l/qt5/qt5.SlackBuild17
-rwxr-xr-xsource/l/vte/vte.SlackBuild2
-rwxr-xr-xsource/n/dovecot/dovecot.SlackBuild2
-rwxr-xr-xsource/n/php/php.SlackBuild2
-rwxr-xr-xsource/n/postfix/postfix.SlackBuild2
-rwxr-xr-xsource/n/samba/samba.SlackBuild2
-rwxr-xr-xsource/n/tin/tin.SlackBuild2
-rwxr-xr-xsource/t/texlive/texlive.SlackBuild2
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 5203eb1d..16f1bc43 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 00000000..e96d497d
--- /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 fe5d5e8f..1fbf978d 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 0431ba25..ab46b2f3 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 8dc63593..8ab14744 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 fc93614b..8ddf636b 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 1875421d..a78e04a2 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 3fb6eb40..474919d9 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 dc0f2002..c0409c63 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 0cfbf088..d00491fd 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 8329ba15..27e7f36b 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 3f037bd2..67312343 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 c8e41715..f8dd7827 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 3dff49df..f8e67a2d 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 82062ea8..f06cb4de 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 d37a341a..f098e8b0 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 6bdd1d89..5f2a4b2e 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 7a17f888..4859cf30 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 5921881b..00000000
--- 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 097d0efe..00000000
--- 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 28a60ad1..00000000
--- 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 f1bd631e..cc3731f9 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 40b5aa99..9e53414b 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 1c5dfaff..7993a195 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 8663af6b..5bbf8d5b 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 b3cbf888..3cc6375a 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 0761cb69..71b6212d 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 53e983ee..0fa8b83c 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 909d1399..c0b26eec 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