summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO35
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD75
-rw-r--r--qt6-base-cflags.patch8
4 files changed, 81 insertions, 38 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 1d515e3e95cd..5d3720006cde 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,7 +1,7 @@
pkgbase = qt6-base-headless
pkgdesc = A cross-platform application and UI framework - headless build, no QtGui or QtWidgets
- pkgver = 6.0.2
- pkgrel = 1
+ pkgver = 6.7.0
+ pkgrel = 2
url = https://www.qt.io
arch = x86_64
groups = qt6
@@ -10,24 +10,39 @@ pkgbase = qt6-base-headless
license = FDL
license = custom
makedepends = cmake
- makedepends = ninja
+ makedepends = git
makedepends = mariadb-libs
- makedepends = unixodbc
+ makedepends = ninja
makedepends = postgresql
- makedepends = xmlstarlet
makedepends = systemd
- depends = sqlite
- depends = double-conversion
+ makedepends = unixodbc
+ makedepends = xmlstarlet
depends = brotli
+ depends = double-conversion
depends = libb2
+ depends = sqlite
+ depends = zlib
+ depends = zstd
optdepends = postgresql-libs: PostgreSQL driver
optdepends = mariadb-libs: MariaDB driver
+ optdepends = md4c: C Markdown parser
optdepends = unixodbc: ODBC driver
optdepends = shared-mime-info: Freedesktop.org Shared MIME Info
provides = qt6-base
conflicts = qt6-base
- source = https://download.qt.io/official_releases/qt/6.0/6.0.2/submodules/qtbase-everywhere-src-6.0.2.tar.xz
- sha256sums = 991a0e4e123104e76563067fcfa58602050c03aba8c8bb0c6198347c707817f1
+ source = git+https://code.qt.io/qt/qtbase#tag=v6.7.0
+ source = qt6-base-cflags.patch
+ source = qt6-base-nostrip.patch
+ source = fix-wrong-cpp-if.patch::https://code.qt.io/cgit/qt/qtbase.git/patch/?id=68102202
+ sha256sums = ee87abbfdf2d5bb204056bcb6c53e21c03e1abd779e3669faa56db7249c5e39e
+ sha256sums = 5411edbe215c24b30448fac69bd0ba7c882f545e8cf05027b2b6e2227abc5e78
+ sha256sums = 4b93f6a79039e676a56f9d6990a324a64a36f143916065973ded89adc621e094
+ sha256sums = 81c4821fb1c258603474771a267d450aa8b5d1d298443bc04620d70719c7eab7
pkgname = qt6-base-headless
-
+ optdepends = postgresql-libs: PostgreSQL driver
+ optdepends = mariadb-libs: MariaDB driver
+ optdepends = md4c: C Markdown parser
+ optdepends = unixodbc: ODBC driver
+ optdepends = shared-mime-info: Freedesktop.org Shared MIME Info
+ optdepends = qt6-translations: Translations
diff --git a/.gitignore b/.gitignore
index 165c4d4ecf2b..586a8d739a0d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
*~
*.log
*.tar.xz
+qtbug-96392.patch
qtbase-everywhere-src-*.tar.xz
qt6-base-headless-*.pkg.tar.*
diff --git a/PKGBUILD b/PKGBUILD
index 0dddbd926b45..3a87bf375a27 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -4,65 +4,92 @@
# Contributor: Andrea Scarpino <andrea@archlinux.org>
pkgname=qt6-base-headless
-_qtver=6.0.2
+_qtver=6.7.0
pkgver=${_qtver/-/}
-pkgrel=1
+pkgrel=2
arch=(x86_64)
url='https://www.qt.io'
license=(GPL3 LGPL3 FDL custom)
pkgdesc='A cross-platform application and UI framework - headless build, no QtGui or QtWidgets'
-depends=(sqlite double-conversion brotli libb2) # md4c - not supported yet
-makedepends=(cmake ninja mariadb-libs unixodbc postgresql xmlstarlet systemd)
+depends=(brotli
+ double-conversion
+ libb2
+ sqlite
+ zlib
+ zstd)
+makedepends=(cmake
+ git
+ mariadb-libs
+ ninja
+ postgresql
+ systemd
+ unixodbc
+ xmlstarlet)
optdepends=('postgresql-libs: PostgreSQL driver'
'mariadb-libs: MariaDB driver'
+ 'md4c: C Markdown parser'
'unixodbc: ODBC driver'
'shared-mime-info: Freedesktop.org Shared MIME Info')
groups=(qt6)
conflicts=(qt6-base)
provides=(qt6-base)
-_pkgfn="qtbase-everywhere-src-${_qtver}"
-source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/$_qtver/submodules/$_pkgfn.tar.xz"
- qt6-base-cflags.patch
- qt6-base-nostrip.patch)
-sha256sums=('991a0e4e123104e76563067fcfa58602050c03aba8c8bb0c6198347c707817f1'
- 'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c'
- '4b93f6a79039e676a56f9d6990a324a64a36f143916065973ded89adc621e094')
+_pkgfn=qtbase
+source=(git+https://code.qt.io/qt/$_pkgfn#tag=v$pkgver
+ qt6-base-cflags.patch
+ qt6-base-nostrip.patch
+ fix-wrong-cpp-if.patch::https://code.qt.io/cgit/qt/qtbase.git/patch/?id=68102202)
+sha256sums=('ee87abbfdf2d5bb204056bcb6c53e21c03e1abd779e3669faa56db7249c5e39e'
+ '5411edbe215c24b30448fac69bd0ba7c882f545e8cf05027b2b6e2227abc5e78'
+ '4b93f6a79039e676a56f9d6990a324a64a36f143916065973ded89adc621e094'
+ '81c4821fb1c258603474771a267d450aa8b5d1d298443bc04620d70719c7eab7')
prepare() {
- patch -d $_pkgfn -p1 -i ../qt6-base-cflags.patch # Use system CFLAGS
- patch -d $_pkgfn -p1 -i ../qt6-base-nostrip.patch # Don't strip binaries with qmake
+ patch -d $_pkgfn -p1 < qt6-base-cflags.patch # Use system CFLAGS
+ patch -d $_pkgfn -p1 < qt6-base-nostrip.patch # Don't strip binaries with qmake
+ patch -d $_pkgfn -p1 < fix-wrong-cpp-if.patch # https://bugreports.qt.io/browse/QTBUG-123937
+ cd $_pkgfn
+ git cherry-pick -n 7c4e1357e49baebdd2d20710fccb5604cbb36c0d # CVE-2024-33861
}
build() {
- cmake -G Ninja -B build -S "$_pkgfn" \
+ cmake -B build -S "$_pkgfn" -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DINSTALL_BINDIR=lib/qt6/bin \
+ -DINSTALL_PUBLICBINDIR=usr/bin \
+ -DINSTALL_LIBEXECDIR=lib/qt6 \
-DINSTALL_DOCDIR=share/doc/qt6 \
-DINSTALL_ARCHDATADIR=lib/qt6 \
-DINSTALL_DATADIR=share/qt6 \
-DINSTALL_INCLUDEDIR=include/qt6 \
-DINSTALL_MKSPECSDIR=lib/qt6/mkspecs \
-DINSTALL_EXAMPLESDIR=share/doc/qt6/examples \
- -DQT_FEATURE_journald=ON \
- -DQT_FEATURE_openssl_linked=ON \
- -DQT_FEATURE_system_sqlite=ON \
+ -DFEATURE_journald=ON \
+ -DFEATURE_openssl_linked=ON \
+ -DFEATURE_system_sqlite=ON \
+ -DFEATURE_no_direct_extern_access=ON \
+ -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON \
+ -DCMAKE_MESSAGE_LOG_LEVEL=STATUS \
\
-DQT_FEATURE_gui=OFF \
-DQT_FEATURE_widgets=OFF \
-DQT_FEATURE_freetype=OFF \
- -DQT_FEATURE_harfbuzz=OFF
+ -DQT_FEATURE_harfbuzz=OFF \
+ -DQT_FEATURE_zstd=ON
cmake --build build
}
package() {
+ optdepends+=('qt6-translations: Translations')
DESTDIR="$pkgdir" cmake --install build
- install -Dm644 $_pkgfn/LICENSE* -t "$pkgdir"/usr/share/licenses/$pkgbase
+ install -Dm644 $_pkgfn/LICENSES/* -t "$pkgdir"/usr/share/licenses/$pkgbase
- # Symlinks for backwards compatibility
- mkdir -p "$pkgdir"/usr/bin
- for _b in $(ls "$pkgdir"/usr/lib/qt6/bin); do
- ln -rs "$pkgdir"/usr/lib/qt6/bin/$_b "$pkgdir"/usr/bin/$_b-qt6
- done
+# Install symlinks for user-facing tools
+ cd "$pkgdir"
+ mkdir usr/bin
+ while read _line; do
+ ln -s $_line
+ done < "$srcdir"/build/user_facing_tool_links.txt
}
diff --git a/qt6-base-cflags.patch b/qt6-base-cflags.patch
index c33aa78e7e93..3325016108f0 100644
--- a/qt6-base-cflags.patch
+++ b/qt6-base-cflags.patch
@@ -23,8 +23,8 @@ index 1f919d270a..7ef6046326 100644
-QMAKE_CFLAGS_DEBUG += -g
+SYSTEM_CFLAGS = $$(CFLAGS)
+SYSTEM_DEBUG_CFLAGS = $$(DEBUG_CFLAGS)
-+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE += $$(CPPFLAGS) $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
-+!isEmpty(SYSTEM_CFLAGS) { eval(QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CFLAGS)) } else { QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!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
@@ -38,8 +38,8 @@ index 1f919d270a..7ef6046326 100644
-QMAKE_CXXFLAGS_DEBUG += $$QMAKE_CFLAGS_DEBUG
+SYSTEM_CXXFLAGS = $$(CXXFLAGS)
+SYSTEM_DEBUG_CXXFLAGS = $$(DEBUG_CXXFLAGS)
-+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE += $$(CPPFLAGS) $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE += $$QMAKE_CFLAGS_OPTIMIZE }
-+!isEmpty(SYSTEM_CXXFLAGS) { eval(QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$(CPPFLAGS) -g $$(CXXFLAGS)) } else { QMAKE_CXXFLAGS_RELEASE_WITH_DEBUGINFO += $$QMAKE_CFLAGS_OPTIMIZE -g }
++!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