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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
# Maintainer: Pawel 'l0ner' Soltys <pwslts@gmail.com>
# Contributor: Calvin Morrison <MutantTurkey@gmail.com>
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' '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')
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'
'4091a624930738779f76764f4cb6ac5f')
_prefix="/opt/qt3"
build() {
cd $srcdir/qt3
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/"
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
# 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*}
msg "Starting configure..."
./configure \
-prefix ${_prefix} \
-sysconfdir /etc/qt \
-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 \
-dlopen-opengl \
-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
[ "$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
# 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
# build rest, but without tutorials and examples
# of you want them, remove sub-tools
make sub-tools
}
package() {
msg "Packaging - $pkgname-$pkgver"
cd "$srcdir/qt3"
make INSTALL_ROOT="$pkgdir" install
# 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
# 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
msg "Cleaning package..."
#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
# 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
# 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
}
|