# Maintainer: Pawel 'l0ner' Soltys # Contributor: Calvin Morrison pkgname=trinity-qt3 pkgver=3.8.8.d pkgrel=5 pkgdesc="The Qt3 gui toolkit - with Trinity upstream" arch=('i686' 'x86_64') url="http://trinitydesktop.org" license=('GPL') groups=('trinity-base') depends=('libpng' 'libjpeg' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft' 'libxrandr') makedepends=('mysql' 'postgresql' 'sqlite3' 'unixodbc' 'libmng' 'libxi') # cups [add for cups support, add -cups to ./configure opts] optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc') provides=('qt3' 'qt3-enhanced') replaces=('qt3-enhanced' 'qt3') options=('libtool' '!emptydirs') install='qt3.install' source=('http://mirror.ets.kth.se/trinity/releases/3.5.13/dependencies/qt3-3.3.8.d.tar.gz' 'qt-patches.tar.bz2') md5sums=('78dc675e84aed595375449818cbb589a' 'a4b569f217d17cb1231c18aa48ecae20') _prefix="/opt/qt3" build() { msg "Patching source code..." cd $srcdir/qt3 # apply other qt patches from debian/gentoo msg "- Applying patch: 0015-qiconview-finditem.patch" patch -Np0 -i $srcdir/qt-patches/0015-qiconview-finditem.patch msg "- Applying patch: 0017-qiconview-ctrl_rubber.patch" patch -Np0 -i $srcdir/qt-patches/0017-qiconview-ctrl_rubber.patch msg "- Applying patch: 0020-designer-deletetabs.patch" patch -Np0 -i $srcdir/qt-patches/0020-designer-deletetabs.patch msg "- Applying patch: 0035-qvaluelist-streaming-operator.patch" patch -Np0 -i $srcdir/qt-patches/0035-qvaluelist-streaming-operator.patch msg "- Applying patch: 0036-qprogressbar-optimization.patch" patch -Np0 -i $srcdir/qt-patches/0036-qprogressbar-optimization.patch msg "- Applying patch: 0046-qiconview-no-useless-scrollbar.patch" patch -Np0 -i $srcdir/qt-patches/0046-qiconview-no-useless-scrollbar.patch msg "- Applying patch: 0049-qiconview-rubber_on_move.patch" patch -Np0 -i $srcdir/qt-patches/0049-qiconview-rubber_on_move.patch msg "- Applying patch: 0078-argb-visual-hack.patch" patch -Np0 -i $srcdir/qt-patches/0078-argb-visual-hack.patch msg "- Applying patch: 0088-fix-xinput-clash.patch" patch -Np0 -i $srcdir/qt-patches/0088-fix-xinput-clash.patch msg "- Applying patch: gcc46-arch.patch" patch -Np1 -i $srcdir/qt-patches/gcc46-arch.patch msg "- Applying patch: qt-3.1.0-makefile.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.1.0-makefile.patch msg "- Applying patch: qt-3.3.4-print-CJK.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.3.4-print-CJK.patch msg "- Applying patch: qt-3.3.8-buffered-iconview.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.3.8-buffered-iconview.patch msg "- Applying patch: qt-3.3.8.d-libpng15-1.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.3.8.d-libpng15-1.patch msg "- Applying patch: qt-3.3.8-eyecandy.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.3.8-eyecandy.patch msg "- Applying patch: qt-3.3.8-odbc.patch" patch -Np1 -i $srcdir/qt-patches/qt-3.3.8-odbc.patch msg "- Applying patch: qt-no-rpath.patch" patch -Np1 -i $srcdir/qt-patches/qt-no-rpath.patch msg "- Applying patch: qt-visibility.patch" patch -Np1 -i $srcdir/qt-patches/qt-visibility.patch msg "- Applying patch: qt-x11-free-3.3.4-gcc4-buildkey.patch" patch -Np1 -i $srcdir/qt-patches/qt-x11-free-3.3.4-gcc4-buildkey.patch msg "- Applying patch: qt-x11-free-3.3.4-gcc4.patch" patch -Np1 -i $srcdir/qt-patches/qt-x11-free-3.3.4-gcc4.patch # change occurrences of $QTDIR into $QT3DIR # anything. Qt4 compatibility? # not needed since, qt4 don't use $QTDIR #find ${srcdir}/qt3 -type f -exec \ # sed -i 's/QTDIR/QT3DIR/g' {} + msg "Setting enviroment variables..." export QTDIR="${srcdir}/qt3/" export PATH=${QTDIR}/bin:${PATH} export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH} export QMAKESPEC=$QTDIR/mkspecs/linux-g++ if [ "$CARCH" = "x86_64" ]; then export ARCH="-64" else unset ARCH fi cd "${srcdir}/qt3" rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*} sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix rm -rf doc/html examples tutorial sed -i "s|sub-tutorial sub-examples||" Makefile sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++/qmake.conf sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-32/qmake.conf sed -i "s|-O2|$CXXFLAGS|" mkspecs/linux-g++-64/qmake.conf sed -i "s|-I. |$CXXFLAGS -I. |" qmake/Makefile.unix # auto license acceptance sed -i "s|read acceptance|acceptance=yes|" configure msg "Starting configure..." #make -C qmake || return 1 ./configure \ -prefix ${_prefix} \ -platform linux-g++${ARCH} \ -sysconfdir /etc/qt \ -release \ -sm \ -nis \ -stl \ -no-g++-exceptions \ -thread \ -shared \ -dlopen-opengl \ -no-ipv6 \ -system-zlib \ -{system-lib,plugin-imgfmt-}{png,jpeg,mng} \ -qt-gif \ -xinerama \ -xcursor \ -xrender \ -xft \ -plugin-sql-{mysql,psql,sqlite,odbc} # 64bit fixes pulled from extras/qt3 PKGBUILD # fix /opt/qt/lib path [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/src/Makefile [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/designer/Makefile [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/editor/Makefile [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/assistant/lib/Makefile [ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/qt3/tools/designer/uilib/Makefile msg "Building - $pkgname..." # build sql plugins cd "${srcdir}"/qt3 make -C qmake cd "${srcdir}"/qt3/plugins/src/sqldrivers/mysql "${srcdir}"/qt3/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro cd "${srcdir}"/qt3/plugins/src/sqldrivers/psql "${srcdir}"/qt3/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro cd "${srcdir}"/qt3 # fix the broken makefiles # sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile # build rest make } package() { msg "Packaging - $pkgname-$pkgver" cd "$srcdir/qt3" make INSTALL_ROOT="$pkgdir" install msg "Cleaning package..." rm -rf "${pkgdir}"$_prefix/{phrasebooks,templates,translations} sed -i "s|-L${srcdir}/qt3/lib ||g" "${pkgdir}"$_prefix/lib/*.prl rm -f "${pkgdir}"${_prefix}/mkspecs/linux-g++$ARCH/linux-g++$ARCH # Fix issues with GCC4 sed -i 's/\(char\*\)/const char*/g' $pkgdir$_prefix/include/*.h # Fix the mess we did fixing issues with GCC4 sed -i 's/const u char/const uchar/g' $pkgdir$_prefix/include/*.h sed -i 's/u const char/const uchar/g' $pkgdir$_prefix/include/*.h sed -i 's/const const/const/g' $pkgdir$_prefix/include/*.h sed -i 's/uconst/ unsigned /g' $pkgdir$_prefix/include/*.h sed -ie 's/define QTIMER_H/&\n#include "qglobal.h"/g' $pkgdir$_prefix/include/qtimer.h install -D -m755 qmake/qmake "${pkgdir}"$_prefix/bin/qmake # Build ld.so.conf file install -d -m755 ${pkgdir}/etc/ld.so.conf.d/ echo "${_prefix}/lib" >> ${pkgdir}/etc/ld.so.conf.d/qt3.conf # Build and install qt.profile install -d -m755 ${pkgdir}/etc/profile.d/ echo "export QTDIR=${_prefix}" > ${pkgdir}/etc/profile.d/qt3.sh echo "export QT_XFT=true" >> ${pkgdir}/etc/profile.d/qt3.sh echo "export PATH+=:${_prefix}/bin" >> ${pkgdir}/etc/profile.d/qt3.sh echo "export PKG_CONFIG_PATH+=:${_prefix}/pkgconfig" >> ${pkgdir}/etc/profile.d/qt3.sh # ln -sf $_prefix/bin/qtconfig "${pkgdir}"$_prefix/bin/qt3config # install man pages install -d -m755 "${pkgdir}"$_prefix/man cp -r "${srcdir}"/qt3/doc/man/{man1,man3} "${pkgdir}"$_prefix/man/ # libtoolslay find $startdir/pkg -name '*.la' -exec rm {} \; # Arch64 fix #if [ "$CARCH" = "x86_64" ]; then # [ -d $pkgdir$_prefix/mkspecs/linux-g++ ] || mkdir $pkgdir$_prefix/mkspecs/linux-g++ # cd $pkgdir$_prefix/mkspecs/linux-g++ # ln -s -v ../linux-g++-64/* . #fi }