diff options
-rw-r--r-- | .SRCINFO | 35 | ||||
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | PKGBUILD | 75 | ||||
-rw-r--r-- | qt6-base-cflags.patch | 8 |
4 files changed, 81 insertions, 38 deletions
@@ -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.* @@ -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 |