# Maintainer: Bart Ribbers pkgname=qt5-qtbase pkgver=5.15.8_git20230109 pkgrel=3 _commit="dec44589403c99f96705b607d6fa5423b40463b6" pkgdesc="Qt5 - QtBase components" url="https://qt.io/developers/" arch="all" license="LGPL-2.1-only AND LGPL-3.0-only AND GPL-3.0-only AND Qt-GPL-exception-1.0" _sub="$pkgname-sqlite $pkgname-odbc $pkgname-postgresql $pkgname-mysql $pkgname-tds $pkgname-x11" # icu-data-full: see https://gitlab.alpinelinux.org/alpine/aports/-/issues/13814 depends="icu-data-full" depends_dev="$_sub dbus-dev fontconfig-dev freetype-dev glib-dev libice-dev libpng-dev libsm-dev libx11-dev libxext-dev mesa-dev openssl-dev>3 perl sqlite-dev zlib-dev " makedepends="$depends_dev at-spi2-core-dev bison cups-dev eudev-dev flex freetds-dev gawk gperf gtk+3.0-dev hicolor-icon-theme icu-dev libinput-dev libjpeg-turbo-dev libpq-dev libxi-dev libxkbcommon-dev libxrandr-dev libxrender-dev libxslt-dev libxv-dev mariadb-connector-c-dev mariadb-dev mtdev-dev pcre2-dev unixodbc-dev vulkan-headers xcb-util-dev xcb-util-image-dev xcb-util-keysyms-dev xcb-util-renderutil-dev xcb-util-wm-dev xdg-utils " subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $_sub" builddir="$srcdir/qtbase-$_commit" # temp allow textrels on riscv64 [ "$CARCH" = "riscv64" ] && options="$options textrels" case $pkgver in *_beta*|*_rc*) _rel=development_releases;; *) _rel=official_releases;; esac source="https://dev.alpinelinux.org/archive/qt/qtbase-$_commit.tar.xz qt-musl-iconv-no-bom.patch qt5-base-cflags.patch qt5-base-nostrip.patch " _qt5_prefix=/usr/lib/qt5 _qt5_datadir=/usr/share/qt5 case "$CTARGET_ARCH" in arm*|aarch64) _opengl="-opengl es2";; *) _opengl="-opengl";; esac case "$CTARGET_ARCH" in x86) _no_sse2=-no-sse2 ;; *) _no_sse2= ;; esac # secfixes: # 5.15.0-r2: # - CVE-2020-17507 _disturl="dev.alpinelinux.org:/archive/qt/" snapshot() { clean deps mkdir -p "$srcdir" && cd "$srcdir" git clone https://invent.kde.org/qt/qt/qtbase.git && cd qtbase git archive --format tar --prefix=qtbase-$_commit/ $_commit | xz -T0 -9 -vv - > $SRCDEST/qtbase-$_commit.tar.xz rsync --progress -La $SRCDEST/qtbase-$_commit.tar.xz $_disturl } prepare() { default_prepare sed -i -e "s|-O3|$CXXFLAGS|" \ -e "/^QMAKE_RPATH/s| -Wl,-rpath,||g" \ -e "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" \ mkspecs/common/*.conf # Make configure think we are running in a git directory # This makes it symlink the include files to the right directory mkdir .git } build() { ./configure -confirm-license -opensource \ -archdatadir "$_qt5_prefix" \ -bindir "$_qt5_prefix"/bin \ -datadir "$_qt5_datadir" \ -dbus-linked \ -docdir /usr/share/doc/qt5 \ -examplesdir /usr/share/doc/qt5/examples \ -glib \ -headerdir /usr/include/qt5 \ -icu \ -importdir "$_qt5_prefix"/imports \ -libexecdir "$_qt5_prefix"/libexec \ -no-rpath \ -no-separate-debug-info \ -no-pch \ -nomake examples \ $_opengl \ -openssl-linked \ -optimized-qmake \ -plugin-sql-mysql \ -plugin-sql-odbc \ -plugin-sql-psql \ -plugin-sql-sqlite \ -plugin-sql-tds \ -plugindir "$_qt5_prefix"/plugins \ -prefix /usr \ -sysconfdir /etc/xdg \ -system-libjpeg \ -system-libpng \ -system-pcre \ -system-sqlite \ -system-zlib \ -translationdir "$_qt5_datadir"/translations \ -no-reduce-relocations \ $_no_sse2 # significantly reduce debug symbol size CFLAGS="$CFLAGS -g1" CXXFLAGS="$CXXFLAGS -g1" \ make } check() { make check } package() { make INSTALL_ROOT="$pkgdir" install mkdir -p "$pkgdir"/usr/bin/ for i in "$pkgdir"/"$_qt5_prefix"/bin/*; do _name=${i##*/} case $_name in *.*) _dest="$pkgdir"/usr/bin/${_name%.*}-qt5.${_name##*.};; *) _dest="$pkgdir"/usr/bin/${_name%.*}-qt5;; esac ln -s ../lib/qt5/bin/"$_name" "$_dest" ln -s ../lib/qt5/bin/"$_name" "$pkgdir"/usr/bin/$_name done # 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' {} \; } dev() { provides="qtchooser=$pkgver-r$pkgrel" replaces="qtchooser" amove \ usr/lib/qt5/mkspecs \ usr/lib/cmake \ usr/lib/qt5/bin \ usr/bin cd "$pkgdir" find usr/ -name '*.prl' | while read -r i; do amove "$i" done default_dev } sqlite() { pkgdesc="SQLite driver for Qt5's SQL classes" depends="" amove usr/lib/qt5/plugins/sqldrivers/libqsqlite* } odbc() { pkgdesc="ODBC driver for Qt5's SQL classes" depends="" amove usr/lib/qt5/plugins/sqldrivers/libqsqlodbc* } postgresql() { pkgdesc="PostgreSQL driver for Qt5's SQL classes" depends="" amove usr/lib/qt5/plugins/sqldrivers/libqsqlpsql* } mysql() { pkgdesc="MySQL driver for Qt5's SQL classes" depends="" amove usr/lib/qt5/plugins/sqldrivers/libqsqlmysql* } tds() { pkgdesc="TDS driver for Qt5's SQL classes" depends="" amove usr/lib/qt5/plugins/sqldrivers/libqsqltds* } x11() { pkgdesc="Qt5 GUI-related libraries" depends="hicolor-icon-theme xdg-utils" amove \ usr/lib/libQt5EglFSDeviceIntegration.so.* \ usr/lib/libQt5EglFsKmsSupport.so.* \ usr/lib/libQt5Gui.so.* \ usr/lib/libQt5OpenGL.so.* \ usr/lib/libQt5PrintSupport.so.* \ usr/lib/libQt5Widgets.so.* \ usr/lib/libQt5XcbQpa.so.* \ usr/lib/qt5/plugins/egldeviceintegrations \ usr/lib/qt5/plugins/generic \ usr/lib/qt5/plugins/image* \ usr/lib/qt5/plugins/platform* \ usr/lib/qt5/plugins/printsupport* \ usr/lib/qt5/plugins/xcbglintegrations scanelf -Rn "$pkgdir"/usr/ | grep -E '(libX|libQt5Gui|libGL)' && return 1 return 0 } sha512sums=" ada014722b7c5220b050039c7d7dc417467379fea5d1f8f439ccacfc872e486b1820acbae68a6b98ae1692e3eada6d63ffce9c77706554f8504d3c7dc13153d8 qtbase-dec44589403c99f96705b607d6fa5423b40463b6.tar.xz 7d68421a14f0259535c977d8a521c98918193c107b76ac664571b12f5b0d7588a0d0e1297af412a26753a393b21f3f44c3274fa8ab5bc87f03705a3a03acb444 qt-musl-iconv-no-bom.patch fa3dddfe42b7f0ade45bd0530badfc3a3800adbd3798bd814597527713c9fe360a242f7cf39312f4cc3c88e9bd7aba233bd6674c0fc78e694a1fd868474c4240 qt5-base-cflags.patch af061bb56d5079d11407e6eb352fa4af7fefa6aed7f8cc40b5b2d591ef7ff04e9da6c6d534ca1904355ea7552951a1610fdcefb04ef9d696cb2b23ad6a0606e8 qt5-base-nostrip.patch "