# Maintainer: Jesus E. pkgname=qt4 pkgver=4.8.7 _debver=$pkgver _debrel=18 pkgrel=23 arch=('i686' 'x86_64') url='https://www.qt.io' license=('custom:GPL-3+OpenSSL-Linking-Exception' 'LGPL-3' 'FDL-1.3' 'custom:LGPL-Exception-1.1') pkgdesc="A cross-platform application and UI framework (legacy version)" depends=('sqlite' 'ca-certificates' 'fontconfig' 'mesa-libgl' 'libxrandr' 'libxv' 'libxi' 'alsa-lib' 'xdg-utils' 'hicolor-icon-theme' 'desktop-file-utils' 'libmng' 'libressl') makedepends=('postgresql-libs' 'unixodbc' 'cups' 'gtk2' 'mesa' 'libxtst' 'quilt') optdepends=('postgresql-libs: PostgreSQL driver' 'unixodbc: ODBC driver' 'libxinerama: Xinerama support' 'libxcursor: Xcursor support' 'libxfixes: Xfixes support' 'icu: Unicode support') replaces=('qt<=4.8.4') _pkgfqn="qt-everywhere-opensource-src-${pkgver}" source=("https://download.qt.io/archive/qt/4.8/${pkgver}/${_pkgfqn}.tar.gz" "https://deb.debian.org/debian/pool/main/q/qt4-x11/qt4-x11_${_debver}+dfsg-${_debrel}+deb10u1.debian.tar.xz" "qtconfig-qt4.desktop" "assistant-qt4.desktop" "designer-qt4.desktop" "linguist-qt4.desktop" "improve-cups-support.patch" "moc-boost-workaround.patch" "glib-honor-ExcludeSocketNotifiers-flag.diff" "l-qclipboard_fix_recursive.patch" "l-qclipboard_delay.patch" "qt4-gcc6.patch" "qt4-glibc-2.25.patch" "qt4-icu59.patch" "moc-syslib-workaround.patch" "patch-src_network_ssl_qsslsocket_openssl_cpp.diff" "patch-src_network_ssl_qsslsocket_openssl_symbols_cpp.diff" "libressl-2.8.patch") sha512sums=('f9f81a2e7205e1fd05c8d923dc73244f29aa33f951fa6b7c5c8193449328b37084796b9b71ad0c317e4e6fd00017c10ea5d67b1b2032551cde00548522218125' 'e5659aeef85cd1273bf28d53011758b2ae884931884b62d89f48c3a7703276463e16da7e2a4c38a369b94a83ab7495b4e14dc3a27ea7f418dd2bddbe9afa04e0' 'fbcc1ec9ca04b93941c37d02326f33f3a84cb7630ca83f234845eebdb1875676aa8b27553981d8d42b2d5fcf227c7423228f704efc74a5df25a9ae05c5385fda' 'c08b74d70e557d968672ad3251c70e23d0447f30f5d62bc63f6165cbb8c372e63b96b1e61e8888e48bc4f589705c95951f9e05723cf998963ddb7585b0f2e246' '29b3f2b05e27b2c8db3967bb426dfd2ee96e0715e284fc524d58c33fff55756bbb327ba166af943ce5e3fe825b2a3fc44f85c96d5117d25036b3606d7a49047d' 'fbe3e343678b6cf7f94c97d5fb151028afdfa2fd27a19cbd583da999782f5a71c61a9282fb6284271290b3f5370e6b214b2edd1c05ee1e09d6345389b98be961' '4a8f828c79bde81ab1e39c9eaba4ef553582d85b62d6d182dda02820c4c8e046de6a25cc77d228955ed37fbc5b55f697a0a464af0bb3e171849851639e9ef4ee' 'b4eced1fe34f09baa987be59fd21a02f4209551f491ae113c9d1cc3c44b00494a909808e22db306bcae0ee4c4f996097ce2c23994b2ac067cf9f599da5a5fc71' '6d5216e539d93352cd5f5ca98b5296feba702feba1f198f81de650c399076f0161d8ae712ecd79f1c2833b00b5ce7d4c390e33bbeb7e5542c6860a58a6785cab' 'bd63961bcb695beebe8686142b84bff7702db4d85d737f5c2da927252b931700d03602f80048223cbbb05d85a5ddb9cb818321d756577f84843690b318f0c413' '0215f81fd0ed3483d1f79f46a53d9378f7462901410f4bc3f235325974c155454b0e75cba5222180e5ca62099cba7b80419b5fab86380ac6d951b9ae12714444' 'efe8e1842882b784a14ba137bc6a8a579d5133e579f98c61674f5d3d9b79ff8e895775a79fcf757f7726377cd221396a678d181fa069416b0760a5241d39845a' 'a19e76d64bbbf148b088e3531135dc3ababd63ea8e71147dcf7d2966802abb2d83b839766882040e5c9efdea2e364d48bc38aa712dd35b850383c7747ffa9745' '483b382da8ad57f9792df1ad0c85948992d8293819c2774a381544235d9b6a7498b12beb3f9d7d06c4a814f8ded514973453314d71381368148d2fcbbf854e65' '087c76b5076708e9883a43f0fb7ff4016b937034823ec33edc95aab34a3d2dad7b184d8328d15f7efe6f33037e743bbee253d6c5450ee705f246ac755c9288db' 'dd87bdb2c3e12f5247b5c36ffa9065eb0bfa9040193d48dcf87f25b808cce47aece9b9dadbc238c0aab4b6fc35aa7b6a3ee3aeb0943ee7deef8315e46c21a3af' 'aaf3c7314c50717dce4697c69c316d516af47dff00c28355789f2e88ccdfb3d556b715a2ba5e54aae36900bb75ac03a15f2930ab4b9ee0e322326171617ac392' '413ebafa62f7a39ad569c6ecac47ca32bfe6e87bc07bccf86a732eaf51f152311db172eb197711e0f263e47b7f2c573026b2ee69ab9393b75573c499fa1593a4') prepare() { cd ${_pkgfqn} if [[ ${pkgver%.*} = ${_debver%.*} ]]; then # Debian patches export QUILT_PATCHES=debian/patches export QUILT_REFRESH_ARGS='-p ab --no-timestamps --no-index' export QUILT_DIFF_ARGS='--no-timestamps' mv "$srcdir"/debian . # Doesn't apply and seems unimportant rm -v debian/patches/07_trust_dpkg-arch_over_uname-m.diff || true rm -v debian/patches/94_armv6_uname_entry.diff || true rm -v debian/patches/aarch64_arm64_qatomic_support.patch || true rm -v debian/patches/kfreebsd_monotonic_clock.diff || true rm -v debian/patches/no-ssl3.patch || true rm -v debian/patches/parisc-atomic.patch || true rm -v debian/patches/powerpc_designer_gstabs.diff || true rm -v debian/patches/powerpcspe.diff || true rm -v debian/patches/qt-everywhere-opensource-src-4.8.5-QTBUG-22829.patch || true rm -v debian/patches/s390x_jscore.diff || true rm -v debian/patches/sh.diff || true rm -v debian/patches/x32.diff || true rm -v debian/patches/openssl_1.1.patch || true rm -v debian/patches/riscv64-support.patch || true quilt push -av else # Fix build with GCC6 (Fedora) patch -p1 -i "$srcdir"/qt4-gcc6.patch # Fix build of Qt4 applications with glibc 2.25 (Fedora) patch -p1 -i "$srcdir"/qt4-glibc-2.25.patch fi # QTBUG#22829 patch -p1 -i "${srcdir}"/moc-boost-workaround.patch # Workaround a bug where newer kernel headers sys/sysmacros.h define macros like major, minor (Void) patch -p1 -i "${srcdir}"/moc-syslib-workaround.patch # (FS#28381) (KDEBUG#180051) patch -p1 -i "${srcdir}"/improve-cups-support.patch # fixes for LibreOffice from the upstream Qt bug tracker FS#46436, FS#41648, FS#39819 # https://bugreports.qt.io/browse/QTBUG-37380 patch -p1 -i "${srcdir}"/glib-honor-ExcludeSocketNotifiers-flag.diff # https://bugreports.qt.io/browse/QTBUG-34614 patch -p0 -i "${srcdir}"/l-qclipboard_fix_recursive.patch # https://bugreports.qt.io/browse/QTBUG-38585 patch -p0 -i "${srcdir}"/l-qclipboard_delay.patch # React to OpenSSL's OPENSSL_NO_SSL3 define (OpenBSD) patch -p1 -i "$srcdir"/patch-src_network_ssl_qsslsocket_openssl_cpp.diff patch -p1 -i "$srcdir"/patch-src_network_ssl_qsslsocket_openssl_symbols_cpp.diff sed -i "s|-O2|${CXXFLAGS}|" mkspecs/common/{g++,gcc}-base.conf sed -i "/^QMAKE_LFLAGS_RPATH/s| -Wl,-rpath,||g" mkspecs/common/gcc-base-unix.conf sed -i "/^QMAKE_LFLAGS\s/s|+=|+= ${LDFLAGS}|g" mkspecs/common/gcc-base.conf cp mkspecs/common/linux{,32}.conf sed -i "/^QMAKE_LIBDIR\s/s|=|= /usr/lib32|g" mkspecs/common/linux32.conf sed -i "s|common/linux.conf|common/linux32.conf|" mkspecs/linux-g++-32/qmake.conf # Fix build with ICU 59 (pld-linux) patch -p1 -i "$srcdir"/qt4-icu59.patch # Fix build with LibreSSL 2.8 (Void) patch -p1 -i "$srcdir"/libressl-2.8.patch } build() { export QT4DIR="${srcdir}"/${_pkgfqn} export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} export CXXFLAGS+=" -std=gnu++98" # Fix build with GCC 6 cd ${_pkgfqn} ./configure -confirm-license -opensource \ -prefix /usr \ -bindir /usr/libexec/qt4/bin \ -headerdir /usr/include/qt4 \ -docdir /usr/share/doc/qt4 \ -plugindir /usr/lib/qt4/plugins \ -importdir /usr/lib/qt4/imports \ -datadir /usr/share/qt4 \ -translationdir /usr/share/qt4/translations \ -sysconfdir /etc/xdg \ -examplesdir /usr/share/doc/qt4/examples \ -demosdir /usr/share/doc/qt4/demos \ -plugin-sql-{psql,sqlite,odbc} \ -system-sqlite \ -no-phonon \ -no-phonon-backend \ -no-webkit \ -graphicssystem raster \ -openssl-linked \ -nomake demos \ -nomake examples \ -nomake docs \ -silent \ -no-rpath \ -optimized-qmake \ -no-reduce-relocations \ -no-dbus \ -no-openvg make } package() { cd ${_pkgfqn} make INSTALL_ROOT="${pkgdir}" install # install missing icons and desktop files install -D -m644 src/gui/dialogs/images/qtlogo-64.png \ "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/qt4logo.png install -D -m644 tools/assistant/tools/assistant/images/assistant.png \ "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/assistant-qt4.png install -D -m644 tools/assistant/tools/assistant/images/assistant-128.png \ "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/assistant-qt4.png install -D -m644 tools/designer/src/designer/images/designer.png \ "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/designer-qt4.png for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do size=$(echo $(basename ${icon}) | cut -d- -f2) install -D -m644 ${icon} \ "${pkgdir}"/usr/share/icons/hicolor/${size}x${size}/apps/linguist-qt4.png done install -d "${pkgdir}"/usr/share/applications install -m644 "${srcdir}"/{assistant,designer,linguist,qtconfig}-qt4.desktop \ "${pkgdir}"/usr/share/applications/ # Useful symlinks for cmake and configure scripts install -d "${pkgdir}"/usr/bin for b in "${pkgdir}"/usr/libexec/qt4/bin/*; do ln -s /usr/libexec/qt4/bin/$(basename $b) "${pkgdir}"/usr/bin/$(basename $b)-qt4 done # install licenses install -d -m755 ${pkgdir}/usr/share/licenses/${pkgname} install -D -m644 LICENSE.{FDL,GPL3,LGPLv3} LGPL_EXCEPTION.txt \ ${pkgdir}/usr/share/licenses/${pkgname} # Fix wrong libs path in pkgconfig files find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \; # Fix wrong bins path in pkgconfig files find "${pkgdir}/usr/lib/pkgconfig" -type f -name '*.pc' \ -exec sed -i 's|/usr/bin/|/usr/libexec/qt4/bin/|g' {} \; # Fix wrong path in prl files find "${pkgdir}/usr/lib" -type f -name '*.prl' \ -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \; # The TGA plugin is broken (FS#33568) rm "${pkgdir}"/usr/lib/qt4/plugins/imageformats/libqtga.so }