# # QT Packages for Chakra, part of chakra-project.org # # maintainer (i686): Phil Miller # maintainer (x86_64): Manuel Tortosa # original name (used for the source and pkgnames) _origname=qt pkgbase=('qt') pkgname=('qt' 'qt-doc' 'qt-debug' 'qt-demos' 'qt-tools') pkgver=4.7.0 pkgrel=1 kdeqtver=8fa76375a2f030ecf8aa23c917f51f04333a1b2c pkgdesc="A cross-platform application and UI framework" arch=('i686' 'x86_64') url="http://qt.nokia.com/" license=('LGPL') # because qt has its own "create debug files" implementation, # we can disable our splithdr option and create qt-debug directly # inside the PKGBUILD. This works even with the standard arch makepkg. options=('!libtool' 'docs' '!strip') makedepends=('inputproto' 'postgresql-libs' 'mysql>=5.1.42' 'apr-util' # needed for soprano/virtuoso backend, libiodbc is compatible to unixodbc 'libiodbc' # needed for soprano/virtuoso backend, libiodbc is compatible to unixodbc 'cups' 'libxfixes' 'libpng' 'libxi' 'mesa' 'fontconfig' 'libxrandr' 'glib2' 'libtiff>=3.9.2-2' 'libmng>=1.0.10-3' 'libpng>=1.4.0' 'libjpeg>=8' 'sqlite3' 'dbus' 'libxcursor' 'libxinerama' 'libmysqlclient>=5.1.42' 'git') # 'gconf' _pkgfqn=${_origname}-everywhere-opensource-src-${pkgver} source=("ftp://ftp.qt.nokia.com/qt/source/${_pkgfqn}.tar.gz" "http://chakra-project.org/sources/qt/kde-qt-${kdeqtver}.patch.gz" 'assistant.desktop' 'designer.desktop' 'linguist.desktop' 'qtconfig.desktop' 'demosexamples-manual-install.patch' 'fix-scroll-when-last-item-is-removed.patch' 'qmake-linker-flags-as-needed.patch') md5sums=('3a2f25b9b115037277f4fb759194a7a5' '6ef3f787fa5b4651cb2305706861b370' # kde-qt-8fa76375a2f030ecf8aa23c917f51f04333a1b2c.patch.gz '20d333282c43f9e643cb8e91b6307dcc' 'bf89ee0bdd178933f19d8bc4090173ec' 'a9bfeeffab8ba103bc8153fdb31474a1' '83b2a4aece6c9d86301c53a979af0b63' '579e63488320a8d692d25502551787af' 'ef20c34afc5be5ed62f2935be66d9402' 'c436732fc467271e8a3838145c122070') # source PKGBUILD && _create-kdeqt-patch _create-kdeqt-patch() { #Create patches echo "creating kde-qt patches" local codir=$(mktemp -d) mkdir -p "${codir}/kde-qt" git clone git://gitorious.org/+kde-developers/qt/kde-qt.git "${codir}/kde-qt" pushd "${codir}/kde-qt" git checkout --track -b ${pkgver}-patched origin/${pkgver}-patched local kdeqtver=$(git --no-pager show --format='%H' "${pkgver}-patched" | head -1) git diff "v${pkgver}..${pkgver}-patched" | gzip > "${codir}/kde-qt-${kdeqtver}.patch.gz" popd mv "${codir}/kde-qt-${kdeqtver}.patch.gz" . rm -rf "${codir}" } build() { cd $srcdir/$_pkgfqn unset QMAKESPEC export QT4DIR=$srcdir/$_pkgfqn export PATH=${QT4DIR}/bin:${PATH} export LD_LIBRARY_PATH=${QT4DIR}/lib:${LD_LIBRARY_PATH} cd $srcdir/$_pkgfqn msg "applying kde-qt patches" cd $srcdir/$_pkgfqn patch -p1 -i $srcdir/kde-qt-${kdeqtver}.patch || return 1 # editing qt.install sed -i -e 's/^.*> Qt .*/ echo " > Qt '${pkgver}'"/' $startdir/qt.install sed -i -e 's/^.*kde-qt .*/ echo " kde-qt '${kdeqtver}'"/' $startdir/qt.install msg "apply other patches" # Already fixed in 4.7.1 patch -Np1 -i ${srcdir}/fix-scroll-when-last-item-is-removed.patch || return 1 patch -Np1 -i ${srcdir}/qmake-linker-flags-as-needed.patch || return 1 # we want our cflags etc sed -i "s|-O2|$CXXFLAGS|" mkspecs/common/g++.conf sed -i "/^QMAKE_RPATH/s| -Wl,-rpath,||g" mkspecs/common/g++.conf msg "starting configure" ./configure -opensource \ -confirm-license \ -prefix /usr \ -sysconfdir /etc \ -plugindir /usr/lib/qt/plugins \ -translationdir /usr/share/qt/translations \ -datadir /usr/share/qt \ -docdir /usr/share/doc/qt \ -examplesdir /usr/share/doc/qt/examples \ -demosdir /usr/share/doc/qt/demos \ -plugin-sql-{psql,mysql,sqlite,odbc} \ -system-sqlite \ -openssl-linked \ -largefile \ -nomake docs \ -no-phonon \ -no-phonon-backend \ -optimized-qmake \ -reduce-relocations \ -xmlpatterns \ -svg \ -webkit \ -scripttools \ -system-zlib \ -system-libtiff \ -system-libpng \ -system-libmng \ -system-libjpeg \ -no-rpath \ -no-gtkstyle \ -opengl \ -glib \ -ptmalloc || return 1 # disable automatic installation of demos and examples, we want to do that manually patch -p0 -i $srcdir/demosexamples-manual-install.patch || return 1 msg "starting the build" make || return 1 } package_qt() { pkgdesc="A cross-platform application and UI framework" depends=('libpng>=1.4.0' 'libxi' 'mesa' 'fontconfig' 'libxrandr' 'glib2' 'libtiff>=3.9.2-2' 'libmng>=1.0.10-3' 'libjpeg>=8' 'sqlite3' 'dbus' 'libxcursor' 'libxinerama') optdepends=('postgresql-libs : PostgreSQL support' 'libmysqlclient : MySQL support' 'iodbc/unixodbc : ODBC support') # 'gconf : qgtkstyle theme support for GTK') provides=("qt4=${pkgver}" "qt=${pkgver}") # "phonon=4.3.80" replaces=('qt-devel' 'qtmod') conflicts=('qt4' 'qtmod') groups=("kde" "kde-complete" "kde-uninstall" "kde-minimal") install=qt.install cd $srcdir/$_pkgfqn # install it make INSTALL_ROOT=$pkgdir install || return 1 # cleanup and path fixes find $pkgdir/usr/lib -type f -name '*prl' -print -exec sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" {} \; sed -i -e "s|-L$srcdir/${_pkgfqn}/lib||g" $pkgdir/usr/lib/pkgconfig/*.pc sed -i -e "s|$srcdir/${_pkgfqn}/bin/moc|/usr/bin/moc|g" $pkgdir/usr/lib/pkgconfig/*.pc sed -i -e "s|$srcdir/${_pkgfqn}/bin/uic|/usr/bin/uic|g" $pkgdir/usr/lib/pkgconfig/*.pc # icon and desktop file for qtconfig install -D -m644 src/gui/dialogs/images/qtlogo-64.png ${pkgdir}/usr/share/pixmaps/qtlogo.png install -D -m644 ${srcdir}/qtconfig.desktop ${pkgdir}/usr/share/applications/qtconfig.desktop # licensing install -D -m644 LGPL_EXCEPTION.txt ${pkgdir}/usr/share/licenses/qt/LGPL_EXCEPTION.txt # move out some tool binaries and put them into qt-tools # its ugly, but it "feels" cleaner ;) mkdir -p $srcdir/bin mv $pkgdir/usr/bin/assistant $srcdir/bin #mv $pkgdir/usr/bin/assistant_adp $srcdir/bin mv $pkgdir/usr/bin/designer $srcdir/bin mv $pkgdir/usr/bin/linguist $srcdir/bin # move out debug symbols into a temp dir and put them into qt-debug later below mkdir $srcdir/debug for x in `find $pkgdir -name *.debug` do basedir=`dirname $x` targetdir=`echo $basedir | awk -F "/usr" '{print $NF}'` mkdir -p $srcdir/debug${targetdir} mv $x $srcdir/debug${targetdir} done } package_qt-debug() { pkgdesc="A cross-platform application and UI framework - Debugging Symbols" depends=("qt=${pkgver}") optdepends=() groups=("kde-debug" "kde-uninstall") mkdir $pkgdir/usr cd $srcdir cp -r debug/* $pkgdir/usr } package_qt-doc() { pkgdesc="A cross-platform application and UI framework - Documentation" depends=("qt=${pkgver}") optdepends=() provides=("qt4-doc=${pkgver}" "qt-doc=${pkgver}") conflicts=('qt4-doc' 'qtmod-doc') groups=("kde-complete" "kde-doc" "kde-uninstall") cd $srcdir/$_pkgfqn mkdir -p $pkgdir/usr/share/doc/qt cp -r doc/* $pkgdir/usr/share/doc/qt } package_qt-demos() { pkgdesc="A cross-platform application and UI framework - Demos & Examples" depends=("qt=${pkgver}") optdepends=() provides=() replaces=('qtmod-demos') conflicts=() groups=("kde-uninstall") cd $srcdir/$_pkgfqn pushd demos make INSTALL_ROOT=$pkgdir install || return 1 popd pushd examples make INSTALL_ROOT=$pkgdir install || return 1 popd } package_qt-tools() { pkgdesc="A cross-platform application and UI framework - Tools (Linguist, Designer, Assistant)" depends=("qt=${pkgver}") optdepends=() provides=() replaces=('qtmod-tools') conflicts=() groups=("kde-uninstall" "kde-devel") cd $srcdir/$_pkgfqn install -D -m755 -o root -g root $srcdir/bin/assistant $pkgdir/usr/bin/assistant #install -D -m755 -o root -g root $srcdir/bin/assistant_adp $pkgdir/usr/bin/assistant_adp install -D -m755 -o root -g root $srcdir/bin/designer $pkgdir/usr/bin/designer install -D -m755 -o root -g root $srcdir/bin/linguist $pkgdir/usr/bin/linguist install -D -m644 -o root -g root tools/assistant/tools/assistant/images/assistant.png ${pkgdir}/usr/share/pixmaps/assistant.png install -D -m644 -o root -g root tools/linguist/linguist/images/appicon.png ${pkgdir}/usr/share/pixmaps/linguist.png install -D -m644 -o root -g root tools/designer/src/designer/images/designer.png ${pkgdir}/usr/share/pixmaps/designer.png install -d -o root -g root ${pkgdir}/usr/share/applications install -m644 -o root -g root ${srcdir}/{linguist,designer,assistant}.desktop ${pkgdir}/usr/share/applications/ }