Magellan Linux

Contents of /branches/R11-stable/extras/qt3/qt3-3.3.8b-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 15348 - (show annotations) (download)
Wed Jan 2 11:33:07 2013 UTC (11 years, 4 months ago) by niro
File size: 7418 byte(s)
-release branches/R11-stable
1 # $Id$
2
3 PNAME="qt3"
4 PVER="3.3.8b"
5 PBUILD="r2"
6
7 PCAT="x11-libs"
8
9 DESCRIPTION="Qt: Cross-Platform Rich Client Development Framework."
10 HOMEPAGE="http://trolltech.com/products/qt/"
11
12 # load qt3 here to overide all depends
13 sminclude mtools qt3
14
15 DEPEND=">= dev-libs/expat-2
16 >= x11-libs/libICE-1
17 >= x11-libs/libSM-1
18 >= x11-libs/libX11-1.4
19 >= x11-libs/libXau-1
20 >= x11-libs/libxcb-1.7
21 >= x11-libs/libXcursor-1
22 >= x11-libs/libXdmcp-1
23 >= x11-libs/libXext-1.3
24 >= x11-libs/libXfixes-5
25 >= x11-libs/libXft-2.2
26 >= x11-libs/libXi-1.4
27 >= x11-libs/libXinerama-1
28 >= x11-libs/libXrandr-1
29 >= x11-libs/libXrender-0.9
30 >= media-libs/libjpeg-8
31 >= media-libs/libmng-1.0.10
32 >= media-libs/libpng-1.5
33 >= media-libs/lcms-1.19
34 >= media-libs/freetype-2.4
35 >= media-libs/fontconfig-2.8
36 >= media-libs/giflib-4.1
37 >= net-print/libcups-1.5
38 >= sys-libs/zlib-1.2.5
39 >= sys-libs/libstdc++-4.6"
40
41 SDEPEND=">= sys-dev/bison-2"
42
43 SRCFILE="qt-x11-free-${PVER}.tar.gz"
44 SRCDIR="${BUILDDIR}/qt-x11-free-${PVER}"
45
46 SRC_URI=(
47 ftp://ftp.trolltech.com/qt/source/${SRCFILE}
48 mirror://qt/${SRCFILE}
49 mirror://qt/qt-no-rpath-uic.patch
50 mirror://qt/qt-no-rpath.patch
51 mirror://qt/qt-3.3.4-qclipboard-hack.patch
52 mirror://qt/qt-3.3.4-flickerfree_qiconview_buffered.patch
53 mirror://qt/qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch
54 mirror://qt/qt-3.3.4-0047-fix-kmenu-widget.diff
55 mirror://qt/0001-dnd_optimization.patch
56 mirror://qt/0002-dnd_active_window_fix.patch
57 mirror://qt/0038-dragobject-dont-prefer-unknown.patch
58 mirror://qt/qt-3.3.8-uic-fix.patch
59 mirror://qt/qt-3.3.8-xinerama-improvements.patch
60 mirror://qt/qt-3.3.8-visibility.patch
61 mirror://qt/qt-3.3.8b-gcc46.patch
62 mirror://qt/qt-3.3.8b-libpng15.patch
63 )
64
65 #
66 ## global vars ##
67 #
68 # install prefix
69 # get this one from qt3.sminc, QTDIR gets overridden later on
70 export QT_PREFIX="${QTDIR}"
71 # source location
72 export QTDIR="${SRCDIR}"
73 export LD_LIBRARY_PATH="${QTDIR}/lib"
74 export PATH="${QTDIR}/bin:${PATH}"
75 export PLATFORM="linux-g++"
76 [[ ${ARCH} = x86_64 ]] && export PLATFORM="linux-g++-64"
77 # etc dir
78 export QT_SYSCONFDIR="/etc/${PNAME}"
79 # envfile
80 export QT_ENVFILE="/etc/env.d/45${PNAME}"
81 #
82 # do not export QMAKE from qt3.sminc
83 unset QMAKE
84
85 # qt3 tarballs are named qt-x11-free
86 UP2DATE="updatecmd http://get.qt.nokia.com/qt/source/ | grep qt-x11-free | lasttarball gz"
87
88 src_prepare()
89 {
90 munpack ${SRCFILE} || die
91 cd ${SRCDIR}
92
93 sed -i 's:read acceptance:acceptance=yes:' configure || die
94
95 mpatch qt-no-rpath-uic.patch || die
96 mpatch qt-no-rpath.patch || die
97
98 # fixes includehint errors
99 mpatch qt-3.3.8-uic-fix.patch || die
100
101 # fix freeze caused by bad interaction with kde klipper (kde bug 80072)
102 mpatch qt-3.3.4-qclipboard-hack.patch || die
103
104 # performance patches (see http://robotics.dei.unipd.it/~koral/KDE/kflicker.html)
105 mpatch qt-3.3.4-flickerfree_qiconview_buffered.patch || die
106 mpatch qt-3.3.4-flickerfree_qscrollview_fixwindowactivate.patch || die
107
108 # kde related patches
109 mpatch 0001-dnd_optimization.patch || die
110 mpatch 0002-dnd_active_window_fix.patch || die
111 mpatch 0038-dragobject-dont-prefer-unknown.patch || die
112 mpatch qt-3.3.4-0047-fix-kmenu-widget.diff || die
113
114 # improved xinerama support (see http://ktown.kde.org/~seli/xinerama/)
115 mpatch qt-3.3.8-xinerama-improvements.patch || die
116
117 # gcc-4.1 visibility fixes (do not apply on <gcc-4.1)
118 mpatch qt-3.3.8-visibility.patch || die
119
120 # fix build with gcc-4.6
121 mpatch qt-3.3.8b-gcc46.patch || die
122
123 # fix build against >= libpng-1.5
124 mpatch qt-3.3.8b-libpng15.patch || die
125
126 # set our cflags and fix up our header and lib locations
127 cd ${SRCDIR}/mkspecs/${PLATFORM}
128 sed -i -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
129 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
130 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
131 -e 's:$(QTDIR)/include:&/qt:' \
132 -e "s:\$(QTDIR)/lib:\$(QTDIR)/$(mlibdir):" \
133 qmake.conf \
134 || die
135
136 # fix libdir to lib64 on 64bit arches
137 if [[ $(mlibdir) != lib ]]
138 then
139 sed -i "s:/lib$:/$(mlibdir):" qmake.conf || die
140 fi
141 }
142
143 src_compile()
144 {
145 cd ${SRCDIR}
146
147 # add missing lib64 search path on 64bit arches
148 local myconf
149 [[ $(mlibdir) != lib ]] && myconf="-L/usr/$(mlibdir)"
150
151 ./configure \
152 -prefix ${QT_PREFIX} \
153 -sysconfdir ${QT_SYSCONFDIR} \
154 -datadir ${QT_PREFIX}/share/qt \
155 -docdir ${QT_PREFIX}/share/doc/qt-${PVER} \
156 -headerdir ${QT_PREFIX}/include/qt \
157 -plugindir ${QT_PREFIX}/$(mlibdir)/qt/plugins \
158 -libdir ${QT_PREFIX}/$(mlibdir) \
159 -datadir ${QT_PREFIX}/share/qt \
160 -translationdir ${QT_PREFIX}/share/qt/translations \
161 -sm \
162 -thread \
163 -stl \
164 -system-libjpeg \
165 -verbose \
166 -largefile \
167 -qt-imgfmt-{jpeg,mng,png} \
168 -tablet \
169 -system-libmng \
170 -system-libpng \
171 -lpthread \
172 -xft \
173 -platform ${PLATFORM} \
174 -xplatform ${PLATFORM} \
175 -xrender \
176 -fast \
177 -cups \
178 -enable-module=opengl \
179 -system-zlib \
180 -qt-gif \
181 -dlopen-opengl \
182 -release \
183 ${myconf} \
184 || die
185
186 mmake src-qmake src-moc sub-src || die
187 mmake sub-tools || die
188 }
189
190 src_install()
191 {
192 cd ${SRCDIR}
193 make INSTALL_ROOT=${BINDIR} install || die
194
195 # remove broken qmake link and install binary
196 if [ -L ${BINDIR}${QT_PREFIX}/bin/qmake ]
197 then
198 echo "removing broken qmake symlink"
199 rm -f ${BINDIR}${QT_PREFIX}/bin/qmake || die
200 echo "installing qmake binary"
201 minstallexec ${SRCDIR}/qmake/qmake ${QT_PREFIX}/bin || die
202 fi
203
204 # remove broken linux-g++ link if exists
205 if [ -L ${BINDIR}${QT_PREFIX}/share/qt/mkspecs/${PLATFORM}/${PLATFORM} ]
206 then
207 echo "removing broken ${PLATFORM} symlink"
208 rm ${BINDIR}${QT_PREFIX}/share/qt/mkspecs/${PLATFORM}/${PLATFORM} || die
209 fi
210
211 # install some missing binaries
212 minstallexec ${SRCDIR}/bin/qtrename140 ${QT_PREFIX}/bin || die
213 minstallexec ${SRCDIR}/bin/uic ${QT_PREFIX}/bin || die
214 minstallexec ${SRCDIR}/bin/findtr ${QT_PREFIX}/bin || die
215 minstallexec ${SRCDIR}/bin/qt20fix ${QT_PREFIX}/bin || die
216
217 # qmake cache file
218 sed "s:${SRCDIR}:${QT_PREFIX}:g" ${SRCDIR}/.qmake.cache > ${BINDIR}${QT_PREFIX}/share/qt/.qmake.cache || die
219
220 # some needed symlinks
221 mlink libqt-mt.so ${QT_PREFIX}/$(mlibdir)/libqt.so || die
222
223 # remove unneeded specs
224 echo "removing unneeded specs ..."
225 install -d ${BUILDDIR}/keep
226 mv ${BINDIR}${QT_PREFIX}/share/qt/mkspecs/default ${BUILDDIR}/keep || die
227 mv ${BINDIR}${QT_PREFIX}/share/qt/mkspecs/${PLATFORM} ${BUILDDIR}/keep || die
228 rm -rf ${BINDIR}${QT_PREFIX}/share/qt/mkspecs/* || die
229 mv ${BUILDDIR}/keep/* ${BINDIR}${QT_PREFIX}/share/qt/mkspecs || die
230
231 # docs
232 minstalldocs FAQ changes-${PVER} LICENSE* MANIFEST PLATFORMS README* || die
233
234 # man
235 cp -r doc/man ${BINDIR}${QT_PREFIX}/share || die
236 gzip -r9 ${BINDIR}${QT_PREFIX}/share/man || die
237
238 # don't want the tutorial anymore, too big
239 rm -rf ${BINDIR}${QT_PREFIX}/share/doc/qt-${PVER}/html || die
240
241 # environ vars
242 minstalldir /etc/env.d || die
243 MCONFIG="${QT_ENVFILE}"
244 mclearconfig || die
245 maddconfig "QMAKESPEC=\"${PLATFORM}\"" || die
246 maddconfig "QTDIR=\"${QT_PREFIX}\"" || die
247
248 if [[ ${QT_PREFIX} != /usr ]]
249 then
250 # overwrite the env file here, there may be a qt installation in usr
251 # and we want this one as system-wide default
252 mclearconfig || die
253 maddconfig "PATH=\"${QT_PREFIX}/bin\"" || die
254 maddconfig "ROOTPATH=\"${QT_PREFIX}/bin\"" || die
255 maddconfig "LDPATH=\"${QT_PREFIX}/$(mlibdir)\"" || die
256 maddconfig "MANPATH=\"${QT_PREFIX}/share/man\"" || die
257 maddconfig "PKG_CONFIG_PATH=\"${QT_PREFIX}/$(mlibdir)/pkgconfig\"" || die
258 fi
259 }