# Description: QT4 # URL: https://download.qt.io/ # Maintainer: Petar Petrov, slackalaxy at gmail dot com # Depends on: dbus fontconfig glib libglvnd xorg-libsm xorg-libxrender name=qt4 version=4.8.7 release=4 source=(https://download.qt.io/archive/qt/${version:0:3}/$version/qt-everywhere-opensource-src-$version.tar.gz disable-root-include.patch improve-cups-support.patch moc-boost-workaround.patch kubuntu_14_systemtrayicon.diff kde4-settings.patch glib-honor-ExcludeSocketNotifiers-flag.diff disable-sslv3.patch l-qclipboard_fix_recursive.patch l-qclipboard_delay.patch qt4-gcc6.patch qt4-gcc8.patch qt4-gcc9.patch qt4-gcc11.patch qt4-glibc-2.25.patch qt4-icu59.patch qt4-openssl-1.1.patch qtconfig-qt4.desktop) build() { cd qt-everywhere-opensource-src-$version # (FS#28381) (KDEBUG#180051) patch -p1 -i $SRC/improve-cups-support.patch # QTBUG#22829 patch -p1 -i $SRC/moc-boost-workaround.patch # http://blog.martin-graesslin.com/blog/2014/06/where-are-my-systray-icons/ patch -p1 -i $SRC/kubuntu_14_systemtrayicon.diff # FS#45106 patch -p0 -i $SRC/kde4-settings.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 $SRC/glib-honor-ExcludeSocketNotifiers-flag.diff # https://bugreports.qt.io/browse/QTBUG-34614 patch -p0 -i $SRC/l-qclipboard_fix_recursive.patch # https://bugreports.qt.io/browse/QTBUG-38585 patch -p0 -i $SRC/l-qclipboard_delay.patch # React to OpenSSL's OPENSSL_NO_SSL3 define patch -p1 -i $SRC/disable-sslv3.patch 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 echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/3rdparty/javascriptcore/JavaScriptCore/JavaScriptCore.pri echo "QMAKE_CXXFLAGS += -std=gnu++98" >> src/plugins/accessible/qaccessiblebase.pri # Fix build with GCC6 (Fedora) patch -p1 -i $SRC/qt4-gcc6.patch # Fix build with GCC-8.3 patch -Np0 -i $SRC/qt4-gcc8.patch # Fix build with GCC9 patch -Np0 -i $SRC/qt4-gcc9.patch # Fix build with GCC11 (thx de-vries) patch -Np0 -i $SRC/qt4-gcc11.patch # Fix build of Qt4 applications with glibc 2.25 (Fedora) patch -p1 -i $SRC/qt4-glibc-2.25.patch # Fix build with ICU 59 (pld-linux) patch -p1 -i $SRC/qt4-icu59.patch # Fix build with OpenSSL 1.1 (Debian + OpenMandriva) patch -p1 -i $SRC/qt4-openssl-1.1.patch # Do not create /include/WebCore/libdummy.prl in root of build host filesystem # http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg24436.html patch -p1 -i $SRC/disable-root-include.patch # Options are from Arch Linux # https://aur.archlinux.org/packages/qt4/ ./configure -prefix /usr/lib/$name \ -bindir /usr/lib/$name/bin \ -headerdir /usr/include/$name \ -libdir /usr/lib/$name/lib \ -plugindir /usr/lib/$name/plugins \ -platform linux-g++ -release -shared -sm \ -system-sqlite \ -graphicssystem raster \ -openssl-linked \ -no-phonon \ -no-phonon-backend \ -no-webkit \ -nomake demos \ -nomake examples \ -nomake docs \ -xmlpatterns \ -silent \ -no-rpath \ -optimized-qmake \ -no-reduce-relocations \ -dbus-linked \ -no-openvg \ -opensource \ -confirm-license \ -little-endian -host-little-endian # From Alan's port... LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$PWD/lib" make make INSTALL_ROOT=$PKG install install -d $PKG/{etc/ld.so.conf.d,usr/{bin,lib}} echo "/usr/lib/$name/lib" > $PKG/etc/ld.so.conf.d/qt4.conf cd $PKG/usr/lib/$name/mkspecs/ ln -s linux-g++ default mv $PKG/usr/lib/$name/lib/pkgconfig $PKG/usr/lib sed -i -e "s|-L$SRC/qt-everywhere-opensource-src-$version/lib ||g" \ -e "s|$SRC/qt-everywhere-opensource-src-$version/bin|/usr/$name/qt4/bin|g" \ $PKG/usr/lib/pkgconfig/*.pc for f in assistant designer linguist lrelease lupdate moc qmake qtconfig uic \ pixeltool qdbus qdbuscpp2xml qdbusxml2cpp qt3to4 rcc uic3; do ln -s ../lib/$name/bin/$f $PKG/usr/bin/$f-qt4 done mkdir -p $PKG/usr/share/applications cp $SRC/qtconfig-qt4.desktop $PKG/usr/share/applications rm -rf `find $PKG/usr/share/qt4/mkspecs/* | grep -v linux-g++ | grep -v common | grep -v pri | grep -v features` rm -rf $PKG/usr/lib/$name/mkspecs/linux-g++/linux-g++ rm -rf $PKG/usr/lib/$name/mkspecs/features/{mac,win32} rm -rf $PKG/usr/lib/$name/mkspecs/common/mac* rm -rf $PKG/usr/lib/$name/phrasebooks rm -rf $PKG/usr/lib/$name/translations }