From 350f27dc07e3fa294ff5ba1c04c31ca74dfb4a52 Mon Sep 17 00:00:00 2001
From: nfg <sonnysighed@e.email>
Date: Wed, 20 Sep 2023 23:17:51 +0000
Subject: [PATCH] upgpkg: 5.15.10+kde+r158-2

---
 version/5.15.10+kde+r158-2/PKGBUILD           | 204 ++++++++++++++++++
 .../5.15.10+kde+r158-2/qt5-base-cflags.patch  |  46 ++++
 .../5.15.10+kde+r158-2/qt5-base-nostrip.patch |  13 ++
 .../work-around-pyside2-brokenness.patch      | 138 ++++++++++++
 4 files changed, 401 insertions(+)
 create mode 100644 version/5.15.10+kde+r158-2/PKGBUILD
 create mode 100644 version/5.15.10+kde+r158-2/qt5-base-cflags.patch
 create mode 100644 version/5.15.10+kde+r158-2/qt5-base-nostrip.patch
 create mode 100644 version/5.15.10+kde+r158-2/work-around-pyside2-brokenness.patch

diff --git a/version/5.15.10+kde+r158-2/PKGBUILD b/version/5.15.10+kde+r158-2/PKGBUILD
new file mode 100644
index 0000000..6c769f9
--- /dev/null
+++ b/version/5.15.10+kde+r158-2/PKGBUILD
@@ -0,0 +1,204 @@
+# Copyright     : Obarun
+#------------------------
+# Maintainer    : Eric Vidal <eric@obarun.org>
+# Maintainer    : Jean-Michel T.Dydak <jean-michel@obarun.org>
+#----------------
+# Pkgbuild Src  : https://git.obarun.org/pkg/obextra/qt5-base
+#--------------------------------------------------------------
+# DESCRIPTION ]
+
+pkgbase=qt5-base
+_basever=5.15.10
+pkgver=5.15.10+kde+r158
+pkgrel=2
+pkgdesc="A cross-platform application and UI framework"
+url='https://www.qt.io'
+
+pkgname=(
+    'qt5-base'
+    'qt5-xcb-private-headers'
+)
+
+track="commit"
+target="74917690e8cded41b087acfe6c58fcd3674864a4"
+source=(
+    "git+https://invent.kde.org/qt/qt/${pkgbase/5-/}#${track}=${target}"
+    work-around-pyside2-brokenness.patch
+    qt5-base-cflags.patch
+    qt5-base-nostrip.patch
+)
+
+#----------------------
+# BUILD CONFIGURATION ]
+
+makedepends=(
+    'libfbclient'
+    'mariadb-libs'
+    'unixodbc'
+    'postgresql-libs'
+    'alsa-lib'
+    'gst-plugins-base-libs'
+    'gtk3'
+    'libpulse'
+    'cups'
+    'freetds'
+    'vulkan-headers'
+    'git'
+)
+
+#options=('debug')
+
+#------------------------
+# INSTALL CONFIGURATION ]
+
+depends=(
+    'libjpeg-turbo'
+    'xcb-util-keysyms'
+    'xcb-util-renderutil'
+    'libgl'
+    'fontconfig'
+    'xdg-utils'
+    'shared-mime-info'
+    'xcb-util-wm'
+    'libxrender'
+    'libxi'
+    'sqlite'
+    'xcb-util-image'
+    'mesa'
+    'tslib'
+    'libinput'
+    'libxkbcommon-x11'
+    'libproxy'
+    'libcups'
+    'double-conversion'
+    'md4c'
+)
+
+optdepends=(
+    'qt5-svg: to use SVG icon themes'
+    'qt5-wayland: to run Qt applications in a Wayland session'
+    'postgresql-libs: PostgreSQL driver'
+    'mariadb-libs: MariaDB driver'
+    'unixodbc: ODBC driver'
+    'libfbclient: Firebird/iBase driver'
+    'freetds: MS SQL driver'
+    'gtk3: GTK platform plugin'
+    'perl: for fixqt4hearders and syncqt'
+)
+
+groups=(
+    'qt'
+    'qt5'
+)
+
+conflicts=(
+    'qtchooser'
+)
+
+#--------------------
+# BUILD PREPARATION ]
+
+pkgver() {
+    cd ${pkgbase/5-}
+    echo "$_basever+kde+r"`git rev-list --count v$_basever-lts-lgpl..$target` | sed -e 's|+kde+r0||'
+}
+
+prepare() {
+    cd ${pkgbase/5-}
+
+    patch -p1 < ../work-around-pyside2-brokenness.patch 
+    patch -p1 < ../qt5-base-cflags.patch ## Use system CFLAGS in qmake
+    patch -p1 < ../qt5-base-nostrip.patch ## Don't strip binaries with qmake
+}
+
+#--------
+# BUILD ]
+
+build() {
+    cd ${pkgbase/5-}
+
+    local configure_options=(
+        -confirm-license -opensource -v
+        -prefix /usr
+        -docdir /usr/share/doc/qt
+        -headerdir /usr/include/qt
+        -archdatadir /usr/lib/qt
+        -datadir /usr/share/qt
+        -sysconfdir /etc/xdg
+        -examplesdir /usr/share/doc/qt/examples
+        -plugin-sql-sqlite
+        -plugin-sql-mysql
+        -plugin-sql-psql
+        -plugin-sql-odbc
+        -plugin-sql-ibase
+        -system-sqlite
+        -openssl-linked
+        -nomake examples
+        -no-rpath
+        -dbus-linked
+        -system-harfbuzz
+        -libproxy
+        -no-mimetype-database
+        -no-use-gold-linker
+        -no-reduce-relocations
+        -no-strip
+        -ltcg
+    )
+
+    ./configure "${configure_options[@]}"
+
+    ## No configure flag for fat static libs with lto
+    bin/qmake CONFIG+=fat-static-lto -- -redo
+
+    make
+}
+
+#----------
+# PACKAGE ]
+
+package_qt5-base() {
+    pkgdesc="A cross-platform application and UI framework"
+    depends+=(
+        'qt5-translations'
+    )
+
+    cd ${pkgbase/5-}
+    make INSTALL_ROOT="$pkgdir" install
+
+    install -Dm644 LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase
+
+    ## Drop QMAKE_PRL_BUILD_DIR because reference the build dir
+    find "$pkgdir"/usr/lib -type f -name '*.prl' \
+     -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
+
+    ## Fix wrong qmake path in pri file
+    sed -i "s|$srcdir/${pkgbase/5-}|/usr|" \
+     "$pkgdir"/usr/lib/qt/mkspecs/modules/qt_lib_bootstrap_private.pri
+
+    ## Symlinks for backwards compatibility
+    for b in "$pkgdir"/usr/bin/*; do
+     ln -s $(basename $b) "$pkgdir"/usr/bin/$(basename $b)-qt5
+    done
+}
+
+package_qt5-xcb-private-headers() {
+    pkgdesc="Private headers for Qt5 Xcb"
+    depends=(
+        "qt5-base=$pkgver"
+    )
+
+    cd ${pkgbase/5-}
+    install -d -m755 "$pkgdir"/usr/include/qtxcb-private
+    cp -r src/plugins/platforms/xcb/*.h "$pkgdir"/usr/include/qtxcb-private/
+}
+
+#--------------------
+# ARCH LICENSE AUTH ]
+
+arch=(x86_64)
+license=(GPL3 LGPL3 FDL custom)
+
+sha256sums=('SKIP'
+            'fbc72a7b90f104c50020879884636614e169669fc66a1705b3df6dd28ad8e5bb'
+            '5411edbe215c24b30448fac69bd0ba7c882f545e8cf05027b2b6e2227abc5e78'
+            '957ff2f27b64a1358f8de1273d2e2691ce9edf2ab7acef35ad8dbdd66d2a1d58')
diff --git a/version/5.15.10+kde+r158-2/qt5-base-cflags.patch b/version/5.15.10+kde+r158-2/qt5-base-cflags.patch
new file mode 100644
index 0000000..3325016
--- /dev/null
+++ b/version/5.15.10+kde+r158-2/qt5-base-cflags.patch
@@ -0,0 +1,46 @@
+diff --git a/mkspecs/common/g++-unix.conf b/mkspecs/common/g++-unix.conf
+index a493cd5984..41342f5020 100644
+--- a/mkspecs/common/g++-unix.conf
++++ b/mkspecs/common/g++-unix.conf
+@@ -10,5 +10,6 @@
+ 
+ include(g++-base.conf)
+ 
+-QMAKE_LFLAGS_RELEASE   += -Wl,-O1
++SYSTEM_LDFLAGS = $$(LDFLAGS)
++!isEmpty(SYSTEM_LDFLAGS) { eval(QMAKE_LFLAGS_RELEASE += $$(LDFLAGS)) } else { QMAKE_LFLAGS_RELEASE   += -Wl,-O1 }
+ QMAKE_LFLAGS_NOUNDEF   += -Wl,--no-undefined
+diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
+index 1f919d270a..7ef6046326 100644
+--- a/mkspecs/common/gcc-base.conf
++++ b/mkspecs/common/gcc-base.conf
+@@ -40,9 +40,11 @@ QMAKE_CFLAGS_OPTIMIZE_SIZE = -Os
+ QMAKE_CFLAGS_DEPS          += -M
+ QMAKE_CFLAGS_WARN_ON       += -Wall -Wextra
+ QMAKE_CFLAGS_WARN_OFF      += -w
+-QMAKE_CFLAGS_RELEASE       += $$QMAKE_CFLAGS_OPTIMIZE
+-QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g
+-QMAKE_CFLAGS_DEBUG         += -g
++SYSTEM_CFLAGS = $$(CFLAGS)
++SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
++!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!isEmpty(SYSTEM_DEBUG_CFLAGS) { eval(QMAKE_CFLAGS_DEBUG += $$(DEBUG_CFLAGS)) } else { QMAKE_CFLAGS_DEBUG += -g }
+ QMAKE_CFLAGS_SHLIB         += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_STATIC_LIB    += $$QMAKE_CFLAGS_PIC
+ QMAKE_CFLAGS_APP           += $$QMAKE_CFLAGS_PIC
+@@ -59,9 +61,11 @@ QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS
+ QMAKE_CXXFLAGS_DEPS       += $$QMAKE_CFLAGS_DEPS
+ QMAKE_CXXFLAGS_WARN_ON    += $$QMAKE_CFLAGS_WARN_ON
+ QMAKE_CXXFLAGS_WARN_OFF   += $$QMAKE_CFLAGS_WARN_OFF
+-QMAKE_CXXFLAGS_RELEASE    += $$QMAKE_CFLAGS_RELEASE
+-QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO
+-QMAKE_CXXFLAGS_DEBUG      += $$QMAKE_CFLAGS_DEBUG
++SYSTEM_CXXFLAGS = $$(CXXFLAGS)
++SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
++!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!isEmpty(SYSTEM_DEBUG_CXXFLAGS) { eval(QMAKE_CXXFLAGS_DEBUG += $$(DEBUG_CXXFLAGS)) } else { QMAKE_CXXFLAGS_DEBUG += -g }
+ QMAKE_CXXFLAGS_SHLIB      += $$QMAKE_CFLAGS_SHLIB
+ QMAKE_CXXFLAGS_STATIC_LIB += $$QMAKE_CFLAGS_STATIC_LIB
+ QMAKE_CXXFLAGS_APP        += $$QMAKE_CFLAGS_APP
diff --git a/version/5.15.10+kde+r158-2/qt5-base-nostrip.patch b/version/5.15.10+kde+r158-2/qt5-base-nostrip.patch
new file mode 100644
index 0000000..9aead7f
--- /dev/null
+++ b/version/5.15.10+kde+r158-2/qt5-base-nostrip.patch
@@ -0,0 +1,13 @@
+diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
+index 99d77156fd..fc840fe9f6 100644
+--- a/mkspecs/common/gcc-base.conf
++++ b/mkspecs/common/gcc-base.conf
+@@ -31,6 +31,8 @@
+ # you can use the manual test in tests/manual/mkspecs.
+ #
+
++CONFIG += nostrip
++
+ QMAKE_CFLAGS_OPTIMIZE      = -O2
+ QMAKE_CFLAGS_OPTIMIZE_FULL = -O3
+ QMAKE_CFLAGS_OPTIMIZE_DEBUG = -Og
diff --git a/version/5.15.10+kde+r158-2/work-around-pyside2-brokenness.patch b/version/5.15.10+kde+r158-2/work-around-pyside2-brokenness.patch
new file mode 100644
index 0000000..ee959bb
--- /dev/null
+++ b/version/5.15.10+kde+r158-2/work-around-pyside2-brokenness.patch
@@ -0,0 +1,138 @@
+# Patch from OpenMandriva:
+# https://github.com/OpenMandrivaAssociation/qt5-qtbase/commit/20f97a4b#diff-c548550538903adec7a57251150fb23c61089ec82748fae900869f550aefc8f6R161
+
+diff -up qtbase-everywhere-src-5.15.9/src/gui/kernel/qevent.h.5~ qtbase-everywhere-src-5.15.9/src/gui/kernel/qevent.h
+--- qtbase-everywhere-src-5.15.9/src/gui/kernel/qevent.h.5~	2023-03-23 20:06:47.000000000 +0100
++++ qtbase-everywhere-src-5.15.9/src/gui/kernel/qevent.h	2023-04-15 23:23:40.599956996 +0200
+@@ -104,15 +104,15 @@ protected:
+ class Q_GUI_EXPORT QMouseEvent : public QInputEvent
+ {
+ public:
+-    QMouseEvent(Type type, const QPointF &localPos, Qt::MouseButton button,
++    QMouseEvent(QEvent::Type type, const QPointF &localPos, Qt::MouseButton button,
+                 Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers);
+-    QMouseEvent(Type type, const QPointF &localPos, const QPointF &screenPos,
++    QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &screenPos,
+                 Qt::MouseButton button, Qt::MouseButtons buttons,
+                 Qt::KeyboardModifiers modifiers);
+-    QMouseEvent(Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos,
++    QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos,
+                 Qt::MouseButton button, Qt::MouseButtons buttons,
+                 Qt::KeyboardModifiers modifiers);
+-    QMouseEvent(Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos,
++    QMouseEvent(QEvent::Type type, const QPointF &localPos, const QPointF &windowPos, const QPointF &screenPos,
+                 Qt::MouseButton button, Qt::MouseButtons buttons,
+                 Qt::KeyboardModifiers modifiers, Qt::MouseEventSource source);
+     ~QMouseEvent();
+@@ -154,7 +154,7 @@ protected:
+ class Q_GUI_EXPORT QHoverEvent : public QInputEvent
+ {
+ public:
+-    QHoverEvent(Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
++    QHoverEvent(QEvent::Type type, const QPointF &pos, const QPointF &oldPos, Qt::KeyboardModifiers modifiers = Qt::NoModifier);
+     ~QHoverEvent();
+ 
+ #ifndef QT_NO_INTEGER_EVENT_COORDINATES
+@@ -282,12 +282,12 @@ public:
+ #if QT_DEPRECATED_SINCE(5, 15)
+     // Actually deprecated since 5.4, in docs
+     QT_DEPRECATED_VERSION_X_5_15("Use the other QTabletEvent constructor")
+-    QTabletEvent(Type t, const QPointF &pos, const QPointF &globalPos,
++    QTabletEvent(QEvent::Type t, const QPointF &pos, const QPointF &globalPos,
+                  int device, int pointerType, qreal pressure, int xTilt, int yTilt,
+                  qreal tangentialPressure, qreal rotation, int z,
+                  Qt::KeyboardModifiers keyState, qint64 uniqueID); // ### remove in Qt 6
+ #endif
+-    QTabletEvent(Type t, const QPointF &pos, const QPointF &globalPos,
++    QTabletEvent(QEvent::Type t, const QPointF &pos, const QPointF &globalPos,
+                  int device, int pointerType, qreal pressure, int xTilt, int yTilt,
+                  qreal tangentialPressure, qreal rotation, int z,
+                  Qt::KeyboardModifiers keyState, qint64 uniqueID,
+@@ -377,9 +377,9 @@ protected:
+ class Q_GUI_EXPORT QKeyEvent : public QInputEvent
+ {
+ public:
+-    QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
++    QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers, const QString& text = QString(),
+               bool autorep = false, ushort count = 1);
+-    QKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
++    QKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers,
+               quint32 nativeScanCode, quint32 nativeVirtualKey, quint32 nativeModifiers,
+               const QString &text = QString(), bool autorep = false, ushort count = 1);
+     ~QKeyEvent();
+@@ -399,7 +399,7 @@ public:
+ 
+     // Functions for the extended key event information
+ #if QT_DEPRECATED_SINCE(5, 0)
+-    static inline QKeyEvent *createExtendedKeyEvent(Type type, int key, Qt::KeyboardModifiers modifiers,
++    static inline QKeyEvent *createExtendedKeyEvent(QEvent::Type type, int key, Qt::KeyboardModifiers modifiers,
+                                              quint32 nativeScanCode, quint32 nativeVirtualKey,
+                                              quint32 nativeModifiers,
+                                              const QString& text = QString(), bool autorep = false,
+@@ -682,7 +682,7 @@ class Q_GUI_EXPORT QDragMoveEvent : publ
+ {
+ public:
+     QDragMoveEvent(const QPoint &pos, Qt::DropActions actions, const QMimeData *data,
+-                   Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, Type type = DragMove);
++                   Qt::MouseButtons buttons, Qt::KeyboardModifiers modifiers, QEvent::Type type = QEvent::DragMove);
+     ~QDragMoveEvent();
+ 
+     inline QRect answerRect() const { return rect; }
+diff -up qtbase-everywhere-src-5.15.9/src/widgets/graphicsview/qgraphicssceneevent.h.5~ qtbase-everywhere-src-5.15.9/src/widgets/graphicsview/qgraphicssceneevent.h
+--- qtbase-everywhere-src-5.15.9/src/widgets/graphicsview/qgraphicssceneevent.h.5~	2023-03-23 20:06:47.000000000 +0100
++++ qtbase-everywhere-src-5.15.9/src/widgets/graphicsview/qgraphicssceneevent.h	2023-04-15 23:22:38.038387091 +0200
+@@ -82,7 +82,7 @@ class QGraphicsSceneMouseEventPrivate;
+ class Q_WIDGETS_EXPORT QGraphicsSceneMouseEvent : public QGraphicsSceneEvent
+ {
+ public:
+-    explicit QGraphicsSceneMouseEvent(Type type = None);
++    explicit QGraphicsSceneMouseEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneMouseEvent();
+ 
+     QPointF pos() const;
+@@ -136,7 +136,7 @@ class QGraphicsSceneWheelEventPrivate;
+ class Q_WIDGETS_EXPORT QGraphicsSceneWheelEvent : public QGraphicsSceneEvent
+ {
+ public:
+-    explicit QGraphicsSceneWheelEvent(Type type = None);
++    explicit QGraphicsSceneWheelEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneWheelEvent();
+ 
+     QPointF pos() const;
+@@ -171,7 +171,7 @@ class Q_WIDGETS_EXPORT QGraphicsSceneCon
+ public:
+     enum Reason { Mouse, Keyboard, Other };
+ 
+-    explicit QGraphicsSceneContextMenuEvent(Type type = None);
++    explicit QGraphicsSceneContextMenuEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneContextMenuEvent();
+ 
+     QPointF pos() const;
+@@ -198,7 +198,7 @@ class QGraphicsSceneHoverEventPrivate;
+ class Q_WIDGETS_EXPORT QGraphicsSceneHoverEvent : public QGraphicsSceneEvent
+ {
+ public:
+-    explicit QGraphicsSceneHoverEvent(Type type = None);
++    explicit QGraphicsSceneHoverEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneHoverEvent();
+ 
+     QPointF pos() const;
+@@ -231,7 +231,7 @@ class QGraphicsSceneHelpEventPrivate;
+ class Q_WIDGETS_EXPORT QGraphicsSceneHelpEvent : public QGraphicsSceneEvent
+ {
+ public:
+-    explicit QGraphicsSceneHelpEvent(Type type = None);
++    explicit QGraphicsSceneHelpEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneHelpEvent();
+ 
+     QPointF scenePos() const;
+@@ -249,7 +249,7 @@ class QGraphicsSceneDragDropEventPrivate
+ class Q_WIDGETS_EXPORT QGraphicsSceneDragDropEvent : public QGraphicsSceneEvent
+ {
+ public:
+-    explicit QGraphicsSceneDragDropEvent(Type type = None);
++    explicit QGraphicsSceneDragDropEvent(QEvent::Type type = QEvent::None);
+     ~QGraphicsSceneDragDropEvent();
+ 
+     QPointF pos() const;
+
-- 
GitLab