qt3: removed no-rpath patch

- cleaned up and commented
   - removed default ./configure options
   - added documentation build
   - changed make to make sub-tools so we don't build examples and tutorials
      change it back to make to get them
   - added unset _p patch so we free the variables after we don't need them anymore
   - removed libtool slay
   - moved libmng from makedepends to depends. Since we are using it, it is
      more like runtime dependency, than build-only optdep.
   - fixed another typo in patches (001-qiconview-rebuildcontainer.patch)
   - added accidentaly removed qt-unixodbc.patch
   - added postgresql and mysql include and library location to ./configure options
      those should probably be detected automatically. fix needed.
   - added links to tools provided by qt3 with naming scheme qt3* so we can run
      them with qt4 installed.
   - changed optdepends from libs to full packages
   - added optdepens descriptions
   - changed builddepds from full packages to libraries
   - added post-install message about new naming scheme of the provided tools.
pull/3/head
Pawel "l0ner" Soltys 12 years ago
parent ead369ac94
commit 021036598a

@ -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
}

@ -1,12 +1,19 @@
post_install() {
ldconfig &> /dev/null
echo "Note that the tools provided by this package (assistant, designer,"
echo "linguist, lrelease, lupdate, moc, qmake and qtconfig) have been"
echo "renamet to qt3<toolname> to ensure compatibility with Qt4 and should"
echo "be run through new command scheme."
echo "\nIn order to update PATH to include Qt3 binaries location, You should"
echo "reboot your system. Before you do that you can access Qt3 bin path by"
echo "sourcing /etc/profile.d/qt3.sh"
}
post_upgrade() {
post_install
ldconfig &> /dev/null
}
post_remove() {
post_install
ldconfig &> /dev/null
}

Loading…
Cancel
Save