1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
# $Id: PKGBUILD 123699 2011-05-12 15:47:03Z andrea $
# Maintainer:
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: John Proctor <jproctor@prium.net>
pkgname=qt3
pkgver=3.3.8
pkgrel=20
pkgdesc="The QT3 gui toolkit"
arch=('i686' 'x86_64')
license=('GPL')
url="http://www.trolltech.com/products/qt/index.html"
pkgfqn=qt-x11-free-${pkgver}
install=qt.install
depends=('libpng' 'libxmu' 'libxcursor' 'libxinerama' 'mesa' 'libxft'
'libxrandr' 'libmng')
makedepends=('mysql' 'postgresql' 'unixodbc' 'sqlite3')
optdepends=('libmysqlclient' 'postgresql-libs' 'unixodbc')
source=("ftp://ftp.trolltech.com/qt/source/${pkgfqn}.tar.bz2"
qt3-png14.patch
qt.profile
qt-copy-kde-patches.tar.bz2
qt-patches.tar.bz2
utf8-bug-qt3.diff
qt-font-default-subst.diff
mysql.patch
eastern_asian_languagues.diff
qt-odbc.patch
gcc-4.6.patch)
options=(!libtool)
md5sums=('cf3c43a7dfde5bfb76f8001102fe6e85'
'1dc671df42b9030dbdf68bb61cd3375e'
'f72d1eb4eb49b9a9467c1f6035194266'
'f2a2dbdbfee9422c90efc3ef3f86197c'
'2f00e5c0c1e2c2a23dddc982cd79f3e0'
'f6b3b39040f2b8f19ba1cf1445468c28'
'9370d82e85f2c799335ed0dcc1d53189'
'7d40ed1bd40d33d8b9b27a2076a5d22a'
'616f1f3029cf8375256ad6a406de3549'
'2178ca88dfd75a230918593b30eb0dbe'
'75177de5b08e1efd437c887c6e606c5b')
# qt-copy-kde-patches come from http://websvn.kde.org/trunk/qt-copy/patches/
# other qt-patches come from fedora and gentoo
build() {
unset QMAKESPEC
export QTDIR="${srcdir}"/$pkgfqn
export PATH=${QTDIR}/bin:${PATH}
export LD_LIBRARY_PATH=${QTDIR}/lib:${LD_LIBRARY_PATH}
export QMAKESPEC=$QTDIR/mkspecs/linux-g++
cd "${srcdir}"/$pkgfqn
# apply qt patches from kde.org
for i in ../qt-copy-kde-patches/*; do
patch -Np0 -i $i
done
# apply other qt patches and one security fix from debian/gentoo
for i in ../qt-patches/*; do
patch -Np1 -i $i
done
# fix utf8 bug
patch -p0 -i "${srcdir}"/utf8-bug-qt3.diff
# fix asia fonts
patch -p0 -i "${srcdir}"/qt-font-default-subst.diff
# fix segfaults on exit when using mysql DB driver
patch -p0 -i "${srcdir}"/mysql.patch
# fix CJK font/chars select error (FS#11245)
patch -p1 -i "${srcdir}"/eastern_asian_languagues.diff
# fix build problem against new unixODBC
patch -p1 -i "${srcdir}"/qt-odbc.patch
# fix build with gcc 4.6.0
patch -p1 -i "${srcdir}"/gcc-4.6.patch
patch -p0 -i "${srcdir}"/qt3-png14.patch
# start compiling qt
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
sed -i "s|read acceptance|acceptance=yes|" configure
# remove unwanted mkspecs
rm -rf mkspecs/{*aix*,*bsd*,cygwin*,dgux*,darwin*,hpux*,hurd*,irix*,lynxos*,macx*,qnx*,reliant*,sco*,solaris*,tru64*,unixware*,win32*}
if [ "$CARCH" = "x86_64" ]; then
export ARCH="-64"
else unset ARCH
fi
./configure -prefix /opt/qt \
-platform linux-g++$ARCH \
-system-zlib \
-qt-gif \
-release \
-shared \
-sm \
-nis \
-thread \
-stl \
-system-lib{png,jpeg,mng} \
-no-g++-exceptions \
-plugin-sql-{mysql,psql,sqlite,odbc}
# fix /opt/qt/lib path
[ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/src/Makefile
[ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/designer/Makefile
[ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/editor/Makefile
[ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/assistant/lib/Makefile
[ "$CARCH" = "x86_64" ] && sed -i "s|/opt/qt/lib64|/opt/qt/lib|g" "${srcdir}"/$pkgfqn/tools/designer/uilib/Makefile
cd "${srcdir}"/$pkgfqn
make -C qmake
cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/mysql
"${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/include/mysql" "LIBS+=-L/usr/lib/mysql -lmysqlclient" mysql.pro
cd "${srcdir}"/$pkgfqn/plugins/src/sqldrivers/psql
"${srcdir}"/$pkgfqn/bin/qmake -o Makefile "INCPATH+=/usr/src/include /usr/include/postgresql/server" "LIBS+=-L/usr/lib -lpq" psql.pro
cd "${srcdir}"/$pkgfqn
# fix the broken makefiles
#sed -i 's|[[:space:]]*strip.*doc/html.*$|#|g' src/Makefile
make
}
package() {
cd "${srcdir}"/$pkgfqn
make INSTALL_ROOT="${pkgdir}" install
rm -rf "${pkgdir}"/opt/qt/{phrasebooks,templates,translations}
sed -i "s|-L${srcdir}/$pkgfqn/lib ||g" "${pkgdir}"/opt/qt/lib/*.prl
install -D -m755 qmake/qmake "${pkgdir}"/opt/qt/bin/qmake
install -D -m755 "${srcdir}"/qt.profile "${pkgdir}"/etc/profile.d/qt3.sh
ln -sf /opt/qt/bin/qtconfig "${pkgdir}"/opt/qt/bin/qt3config
rm -f "${pkgdir}"/opt/qt/mkspecs/linux-g++$ARCH/linux-g++$ARCH
# install man pages
install -d -m755 "${pkgdir}"/opt/qt/man
cp -r "${srcdir}"/$pkgfqn/doc/man/{man1,man3} "${pkgdir}"/opt/qt/man/
install -d -m755 "${pkgdir}"/etc/ld.so.conf.d/
echo '/opt/qt/lib' > "${pkgdir}"/etc/ld.so.conf.d/qt3.conf
}
|