# Maintainer: Natanael Copa pkgname=qt pkgver=4.8.4 pkgrel=3 pkgdesc="A cross-platform application and UI framework" url="http://qt.nokia.com/" arch="all" license="GPL3 LGPL" depends="ca-certificates" subpackages="$pkgname-dev $pkgname-doc $pkgname-assistant $pkgname-config $pkgname-sqlite $pkgname-odbc $pkgname-postgresql $pkgname-mysql $pkgname-tds $pkgname-webkit $pkgname-x11 $pkgname-private-dev:private" depends_dev="mesa-dev libice-dev libsm-dev libx11-dev libxext-dev libxrender-dev alsa-lib-dev openssl-dev fontconfig-dev freetype-dev glib-dev libpng-dev zlib-dev sqlite-dev dbus-dev" makedepends="$depends_dev postgresql-dev mysql-dev unixodbc-dev cups-dev gtk+-dev tiff-dev libmng-dev libxrandr-dev libxv-dev libxi-dev perl gawk paxctl rsync freetds-dev hicolor-icon-theme" install= source="http://releases.qt-project.org/qt4/source/qt-everywhere-opensource-src-$pkgver.tar.gz qt-gtk-theme-fix.patch qsettings-recursive-global-mutex.patch assistant.desktop designer.desktop linguist.desktop qtconfig.desktop " _builddir="$srcdir"/qt-everywhere-opensource-src-$pkgver prepare() { cd "$_builddir" for i in $source; do case $i in *.patch) msg "Applying $i" patch -p1 -i "$srcdir"/$i || return 1 ;; esac done sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf sed -i "/^QMAKE_LFLAGS\s/s|+=|+= $LDFLAGS|g" mkspecs/common/g++.conf } build() { cd "$_builddir" unset QMAKESPEC export QT4DIR="$_builddir" export PATH="${QT4DIR}/bin:${PATH}" export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} # note: not autotools ./configure -confirm-license -opensource \ -prefix /usr \ -docdir /usr/share/doc/qt \ -plugindir /usr/lib/qt/plugins \ -importdir /usr/lib/qt/imports \ -datadir /usr/share/qt \ -translationdir /usr/share/qt/translations \ -sysconfdir /etc \ -examplesdir /usr/share/doc/qt/examples \ -demosdir /usr/share/doc/qt/demos \ -largefile \ -plugin-sql-psql \ -plugin-sql-mysql \ -plugin-sql-sqlite \ -plugin-sql-odbc \ -plugin-sql-tds \ -system-sqlite \ -xmlpatterns \ -no-phonon \ -no-phonon-backend \ -svg \ -webkit \ -script \ -scripttools \ -system-zlib \ -system-libtiff \ -system-libpng \ -system-libmng \ -system-libjpeg \ -nomake demos \ -nomake examples \ -nomake docs \ -no-rpath \ -openssl-linked \ -silent \ -optimized-qmake \ -dbus \ -reduce-relocations \ -no-separate-debug-info \ -gtkstyle \ -opengl \ -no-openvg \ -glib \ || return 1 qmake && make } package() { cd "$_builddir" make INSTALL_ROOT="$pkgdir" install rm -r "$pkgdir"/usr/lib/*.la \ "$pkgdir"/usr/tests || return 1 paxctl -cm "$pkgdir"/usr/bin/qmlviewer "$pkgdir"/usr/bin/designer \ || return 1 # install missing icons and desktop files for icon in tools/linguist/linguist/images/icons/linguist-*-32.png ; do size=$(echo $(basename ${icon}) | cut -d- -f2) install -p -D -m644 ${icon} "${pkgdir}"/usr/share/icons/hicolor/${size}x${size}/apps/linguist.png done install -p -Dm644 src/gui/dialogs/images/qtlogo-64.png \ "${pkgdir}"/usr/share/icons/hicolor/64x64/apps/qtlogo.png install -p -Dm644 tools/assistant/tools/assistant/images/assistant.png \ "${pkgdir}"/usr/share/icons/hicolor/32x32/apps/assistant.png install -p -Dm644 tools/designer/src/designer/images/designer.png \ "${pkgdir}"/usr/share/icons/hicolor/128x128/apps/designer.png install -d ${pkgdir}/usr/share/applications for i in linguist designer assistant qtconfig; do install -m644 "${srcdir}"/$i.desktop \ "${pkgdir}"/usr/share/applications/ || return 1 done # install license addition install -D -m644 LGPL_EXCEPTION.txt \ "${pkgdir}"/usr/share/licenses/qt/LGPL_EXCEPTION.txt # Fix wrong path in pkgconfig files find "${pkgdir}"/usr/lib/pkgconfig -type f -name '*.pc' \ -exec perl -pi -e "s, -L${srcdir}/?\S+,,g" {} \; \ || return 1 # 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/' {} \;\ || return 1 } _mv_files() { local i for i in "$@"; do mkdir -p "$subpkgdir"/${i%/*} mv "$pkgdir"/$i "$subpkgdir"/$i || return 1 done } dev() { mkdir -p "$subpkgdir"/usr/share/qt \ "$subpkgdir"/usr/bin \ "$subpkgdir"/usr/lib \ mv "$pkgdir"/usr/share/qt/mkspecs \ "$pkgdir"/usr/share/qt/q3porting.xml \ "$subpkgdir"/usr/share/qt/ \ || return 1 default_dev mv "$pkgdir"/usr/lib/*.prl "$subpkgdir"/usr/lib/ || return 1 cd "$pkgdir"/usr/bin mv designer lconvert linguist lrelease lupdate moc pixeltool \ qcollectiongenerator qdbuscpp2xml qdbusxml2cpp qdoc3 \ qhelpconverter qhelpgenerator qmake qt3to4 qttracereplay \ rcc uic uic3 xmlpatterns xmlpatternsvalidator \ "$subpkgdir"/usr/bin/ || return 1 cd "$pkgdir" _mv_files $(find * -name 'designer*') \ $(find * -name 'linguist*') } assistant() { pkgdesc="Documentation browser for Qt" cd "$pkgdir" _mv_files $(find * -name 'assistant*') || return 1 } config() { pkgdesc="Graphical configuration tool for programs using Qt" cd "$pkgdir" _mv_files $(find * -name 'qt*config*') || return 1 } sqlite() { pkgdesc="SQLite driver for Qt's SQL classes" cd "$pkgdir" _mv_files usr/lib/qt/plugins/sqldrivers/libqsqlite* } odbc() { pkgdesc="ODBC driver for Qt's SQL classes" cd "$pkgdir" _mv_files usr/lib/qt/plugins/sqldrivers/libqsqlodbc* } postgresql() { pkgdesc="PostgreSQL driver for Qt's SQL classes" cd "$pkgdir" _mv_files usr/lib/qt/plugins/sqldrivers/libqsqlpsql* } mysql() { pkgdesc="MySQL driver for Qt's SQL classes" cd "$pkgdir" _mv_files usr/lib/qt/plugins/sqldrivers/libqsqlmysql* } tds() { pkgdesc="TDS driver for Qt's SQL classes" cd "$pkgdir" _mv_files usr/lib/qt/plugins/sqldrivers/libqsqltds* } webkit() { pkgdesc="Qt Webkit libraries" mkdir -p "$subpkgdir"/usr/lib/qt/imports mv "$pkgdir"/usr/lib/libQtWebKit.so.* \ "$subpkgdir"/usr/lib/ || return 1 mv "$pkgdir"/usr/lib/qt/imports/QtWebKit \ "$subpkgdir"/usr/lib/qt/imports/ || return 1 } x11() { pkgdesc="Qt GUI-related libraries" depends="hicolor-icon-theme" replaces="qt" cd "$pkgdir" _mv_files \ usr/bin/qdbusviewer \ usr/bin/qmlviewer \ usr/bin/qmlplugindump \ usr/lib/libQt3Support.so.* \ usr/lib/libQtCLucene.so.* \ usr/lib/libQtDesigner.so.* \ usr/lib/libQtDeclarative.so.* \ usr/lib/libQtDesignerComponents.so.* \ usr/lib/libQtGui.so.* \ usr/lib/libQtHelp.so.* \ usr/lib/libQtMultimedia.so.* \ usr/lib/libQtOpenGL.so.* \ usr/lib/libQtScriptTools.so.* \ usr/lib/libQtSvg.so.* \ usr/share/icons \ usr/lib/qt/imports \ usr/lib/qt/plugins } private() { pkgdesc="Private headers for Qt toolkit" cd "$_builddir" mkdir -p "$subpkgdir"/usr rsync -aR \ include/QtCore/private \ include/QtDeclarative/private \ include/QtGui/private \ include/QtScript/private \ src/corelib/*/*_p.h \ src/declarative/*/*_p.h \ src/gui/*/*_p.h \ src/script/*/*_p.h \ "$subpkgdir"/usr || return 1 } md5sums="89c5ecba180cae74c66260ac732dc5cb qt-everywhere-opensource-src-4.8.4.tar.gz 91e8b5ea1e682ae51b60a27d01d7d381 qt-gtk-theme-fix.patch 7467e168418c50b2737b4b2fab4448fe qsettings-recursive-global-mutex.patch a445c6917086d80f1cfc1e40cb6b0132 assistant.desktop d457f0a0ad68a3861c3cadefe3b42ded designer.desktop 668331d9798a0e2b94381efb7be4c513 linguist.desktop c29f2993d6a0f73d756d2fa36e130e1c qtconfig.desktop"