@ -9,11 +9,19 @@ 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' )
depends = ( 'libpng' 'libjpeg' 'libxmu' 'libmng'
'libxcursor' 'libxinerama' 'mesa' 'libxft' 'libxrandr' )
makedepends = ( 'libxi'
'libmysqlclient' 'postgresql-libs' 'unixodbc' 'libcups' )
#'mysql' 'postgresql' 'sqlite3' 'unixodbc' 'libxi' 'cups')
# cups - add for cups support
# cups is enabled by default in ./configure
# remove -no-cups if you want cups support in qt3
optdepends = ( 'cups: The CUPS Printing System - for printing support'
'postgresql: A sophisticated object-relational DBMS - databse support'
'unixodbc: ODBC API for linux - databse support'
'mysql: A fast SQL database server - databse support'
#'libmysqlclient' 'postgresql-libs' 'unixodbc' 'cups')
provides = ( 'qt3' 'qt3-enhanced' )
replaces = ( 'qt3-enhanced' 'qt3' )
options = ( 'libtool' '!emptydirs' )
@ -21,21 +29,40 @@ 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'
' de4d95f8d236ecc85bad4876efd8fdf0 ')
' 4091a624930738779f76764f4cb6ac5f ')
_prefix = "/opt/qt3"
build( ) {
msg "Patching source code..."
cd $srcdir /qt3
# apply other qt patches from debian/gentoo and kde
msg "Patching source code..."
# apply qt patches from debian/gentoo and kde
for patch in $srcdir /qt-patches/*.patch; do
_p = ` basename $patch `
msg " Applying patch $_p .. "
patch -Np0 -i $patch
done
unset _p patch
# Originally this was done in a patch but probably it's a bad idea
# Besides we need the rpath, since we don't install qt in the default
# system dirs. If we would install into default /usr hierarchy
# we would uncomment this. See Beyond Linux From Scratch book
# for more info.
# sed -i '/QMAKE_RPATH/d' mkspecs/linux*/qmake.conf
# These are probably arch-specific. They were present in old qt3
# PKGBULD, they were present in kdemod3 PKGBUILD, they are present
# here.
sed -i 's|-cp -P -f|-cp -L -f|' qmake/Makefile.unix
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 "Setting enviroment variables..."
export QTDIR = " ${ srcdir } /qt3/ "
@ -44,50 +71,42 @@ build() {
export QMAKESPEC = $QTDIR /mkspecs/linux-g++
if [ " $CARCH " = "x86_64" ] ; then
export ARCH = "-64"
export ARCH = "-64"
else unset ARCH
fi
cd " ${ srcdir } /qt3 "
# Remove useless to us mkspecs
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 \
-I/usr/include/mysql \
-I/usr/include/postgresql/server \
-lpq \
-lmysqlclient \
-L/usr/lib/mysql \
-qt-gif \
-system-zlib \
-system-libpng \
-system-libjpeg \
-system-libmng \
-plugin-imgfmt-png \
-plugin-imgfmt-jpeg \
-plugin-imgfmt-mng \
-plugin-sql-mysql \
-plugin-sql-psql \
-plugin-sql-sqlite \
-plugin-sql-odbc \
-platform linux-g++${ ARCH } \
-no-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}
-no-ipv6
# 64bit fixes pulled from extras/qt3 PKGBUILD
# this is Arch-specific
# 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
@ -98,20 +117,19 @@ build() {
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
# do we need this, I don't think so.
#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
# build rest, but without tutorials and examples
# of you want them, remove sub-tools
make sub-tools
}
@ -121,24 +139,24 @@ package() {
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 qmake
install -D -m755 qmake/qmake " ${ pkgdir } " $_prefix /bin/qmake
# install doc pages which are missed by make install
install -d -m755 " ${ pkgdir } " $_prefix /doc/
cp -r " ${ srcdir } " /qt3/doc " ${ pkgdir } " $_prefix /doc
# install link the apps provided by qt3 so we don't collide with
# qt4 and can run them.
ln -sf $_prefix /bin/assistant " ${ pkgdir } " $_prefix /bin/qt3assistant
ln -sf $_prefix /bin/designer " ${ pkgdir } " $_prefix /bin/qt3designer
ln -sf $_prefix /bin/linguist " ${ pkgdir } " $_prefix /bin/qt3linguist
ln -sf $_prefix /bin/lrelease " ${ pkgdir } " $_prefix /bin/qt3lrelease
ln -sf $_prefix /bin/lupdate " ${ pkgdir } " $_prefix /bin/qt3lupdate
ln -sf $_prefix /bin/moc " ${ pkgdir } " $_prefix /bin/qt3moc
ln -sf $_prefix /bin/qmake " ${ pkgdir } " $_prefix /bin/qt3qmake
ln -sf $_prefix /bin/qtconfig " ${ pkgdir } " $_prefix /bin/qt3config
# 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
@ -150,20 +168,25 @@ package() {
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
msg "Cleaning package..."
# install man pages
install -d -m755 " ${ pkgdir } " $_prefix /man
cp -r " ${ srcdir } " /qt3/doc/man/{ man1,man3} " ${ pkgdir } " $_prefix /man/
#rm -rf "${pkgdir}"$_prefix/{phrasebooks,templates,translations}
# remove any link to the compiled libraries present in
# $srcdir, which won't be present in non-building system.
sed -i " s|-L ${ srcdir } /qt3/lib ||g " " ${ pkgdir } " $_prefix /lib/*.prl
#rm -f "${pkgdir}"${_prefix}/mkspecs/linux-g++$ARCH/linux-g++$ARCH
# libtoolslay
find $startdir /pkg -name '*.la' -exec rm { } \;
# 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
# 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
# missing include "qglobal.h" in include/qtimer.h fix
sed -ie 's/define QTIMER_H/&\n#include "qglobal.h"/g' $pkgdir $_prefix /include/qtimer.h
}