Magellan Linux

Contents of /trunk/extras/qt4/qt4-4.5.3-r2.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4085 - (show annotations) (download)
Wed Nov 18 21:01:04 2009 UTC (14 years, 6 months ago) by niro
File size: 8632 byte(s)
-reduced-relocs
1 # $Id$
2
3 PNAME="qt4"
4 PVER="4.5.3"
5 PBUILD="r2"
6
7 PCATEGORIE="x11-libs"
8 STATE="unstable"
9
10 DESCRIPTION="Qt: Cross-Platform Rich Client Development Framework."
11 HOMEPAGE="http://trolltech.com/products/qt/"
12
13 DEPEND=">= dev-libs/expat-2
14 >= x11-libs/libICE-1
15 >= x11-libs/libSM-1.1
16 >= x11-libs/libX11-1.2
17 >= x11-libs/libXau-1
18 >= x11-libs/libxcb-1.2
19 >= x11-libs/libXcursor-1.1
20 >= x11-libs/libXdmcp-1
21 >= x11-libs/libXext-1
22 >= x11-libs/libXfixes-4
23 >= x11-libs/libXft-2.1
24 >= x11-libs/libXi-1.2
25 >= x11-libs/libXinerama-1
26 >= x11-libs/libXrandr-1.3
27 >= x11-libs/libXrender-0.9
28 >= media-libs/libjpeg-7
29 >= media-libs/libmng-1.0.10
30 >= media-libs/libpng-1.2.40
31 >= media-libs/lcms-1.18
32 >= media-libs/freetype-2.3.9
33 >= media-libs/fontconfig-2.7
34 >= net-print/cups-1.4
35 >= sys-libs/zlib-1.2
36 >= media-libs/giflib-4.1
37 >= sys-apps/dbus-1.3
38 >= virtual/opengl
39 >= media-libs/nas-1.9
40 >= dev-libs/openssl-0.9.8
41 >= dev-db/sqlite-3.6
42 >= dev-db/mysql5-5.1
43 >= media-libs/gstreamer-0.10.25
44 >= media-libs/gst-plugins-base-0.10.25"
45
46 SDEPEND=">= sys-dev/bison-2.4
47 >= x11-proto/xineramaproto-1.1
48 >= x11-proto/xextproto-7
49 >= x11-proto/inputproto-1.5
50 >= dev-util/pkgconfig-0.23"
51
52 PROVIDE="virtual/phonon"
53
54 SRCFILE="${PNAME/4/}-x11-opensource-src-${PVER}.tar.gz"
55 SRCDIR="${BUILDDIR}/${PNAME/4/}-x11-opensource-src-${PVER}"
56
57 sminclude mtools
58
59 SRC_URI=(
60 ftp://ftp.qtsoftware.com/qt/source/${SRCFILE}
61 mirror://${PNAME}/${SRCFILE}
62 mirror://${PNAME}/qt-4.5.1-no-hardcoded_fonts.patch
63 mirror://${PNAME}/qt-${PVER}-phonon.patch
64 mirror://${PNAME}/qt-${PVER}-kde-qt-063bded33b417cdf92fd51366fc7fdb06dea00ba.patch
65 )
66
67 UP2DATE="updatecmd ftp://ftp.qtsoftware.com/qt/source/ | grep qt-x11-opensource-src | lasttarball"
68
69 ## global vars ##
70 export QTDIR=${SRCDIR}
71 export LD_LIBRARY_PATH=${QTDIR}/lib
72 export PATH=${QTDIR}/bin:${PATH}
73 export PLATFORM=linux-g++
74 [[ ${ARCH} = x86_64 ]] && export PLATFORM=linux-g++-64
75 # install prefix
76 export QT_PREFIX=/opt/${PNAME}
77
78 src_prepare()
79 {
80 munpack ${SRCFILE} || die
81 cd ${SRCDIR}
82
83 # no hardcoded font-aliases
84 # see: https://cvs.fedoraproject.org/viewvc/rpms/qt4/F-8/qt-x11-opensource-src-4.3.4-no-hardcoded-font-aliases.patch?view=markup
85 mpatch qt-4.5.1-no-hardcoded_fonts.patch || die
86
87 # install service files needed by kde
88 mpatch qt-${PVER}-phonon.patch || die
89
90 # kdeqt patches from http://gitorious.org/+kde-developers/qt/kde-qt
91 mpatch qt-${PVER}-kde-qt-063bded33b417cdf92fd51366fc7fdb06dea00ba.patch || die
92
93 # set our cflags and fix up our header and lib locations
94 cd ${SRCDIR}/mkspecs/${PLATFORM}
95 sed -i -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \
96 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \
97 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
98 -e 's:$(QTDIR)/include:&/qt:' \
99 -e "s:\$(QTDIR)/lib:\$(QTDIR)/$(mlibdir):" \
100 qmake.conf \
101 || die
102
103 # fix libdir to lib64 on 64bit arches
104 sed -i "s:/lib$:/$(mlibdir):" qmake.conf || die
105
106 # disable rpath
107 sed -i "s:QMAKE_RPATH.*=.*:QMAKE_RPATH=:" qmake.conf || die
108
109 # get rid of /usr/X11R6
110 sed -i "s:X11R6/::" qmake.conf || die
111
112 # same goes for the g++ definitions
113 # they where moved to an extra file with qt4
114 cd ${SRCDIR}/mkspecs/common
115 sed -i -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CPPFLAGS} ${CFLAGS} ${ASFLAGS}:" \
116 -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CPPFLAGS} ${CXXFLAGS} ${ASFLAGS}:" \
117 -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \
118 -e 's:$(QTDIR)/include:&/qt:' \
119 -e "s:\$(QTDIR)/lib:\$(QTDIR)/$(mlibdir):" \
120 g++.conf \
121 || die
122
123 # fix libdir to lib64 on 64bit arches
124 sed -i "s:/lib$:/$(mlibdir):" g++.conf || die
125
126 # disable rpath
127 sed -i "s:QMAKE_RPATH.*=.*:QMAKE_RPATH=:" g++.conf || die
128
129 # get rid of /usr/X11R6
130 sed -i "s:X11R6/::" linux.conf || die
131 }
132
133 src_compile()
134 {
135 cd ${SRCDIR}
136
137 # add missing lib64 search path on 64bit arches
138 local myconf
139 [[ $(mlibdir) != lib ]] && myconf="-L/usr/$(mlibdir)"
140
141 # enable this only for binutils >=2.18
142 [[ $(ld -v | sed 's/.*\ \([0-9].[0-9].*\)/\1/') > 2.17 ]] && myconf="${myconf} -reduce-relocations"
143
144 ./configure \
145 -prefix ${QT_PREFIX} \
146 -sysconfdir /etc/${PNAME} \
147 -datadir ${QT_PREFIX}/share/qt \
148 -docdir ${QT_PREFIX}/share/doc/qt-${PVER} \
149 -headerdir ${QT_PREFIX}/include/qt \
150 -plugindir ${QT_PREFIX}/$(mlibdir)/qt/plugins \
151 -libdir ${QT_PREFIX}/$(mlibdir) \
152 -datadir ${QT_PREFIX}/share/qt \
153 -translationdir ${QT_PREFIX}/share/qt/translations \
154 -confirm-license \
155 -opensource \
156 -platform ${PLATFORM} \
157 -xplatform ${PLATFORM} \
158 -verbose \
159 -silent \
160 -fast \
161 -release \
162 -no-separate-debug-info \
163 -reduce-relocations \
164 -optimized-qmake \
165 -system-libjpeg \
166 -system-libmng \
167 -system-libpng \
168 -system-zlib \
169 -system-nas-sound \
170 -system-sqlite \
171 -nomake examples \
172 -nomake demos \
173 -nomake docs \
174 -no-rpath \
175 -qt3support \
176 -stl \
177 -lpthread \
178 -largefile \
179 -sm \
180 -xrender \
181 -opengl \
182 -qt-gif \
183 -cups \
184 -dbus-linked \
185 -openssl \
186 -webkit \
187 -phonon \
188 -plugin-sql-sqlite \
189 -plugin-sql-mysql \
190 -I/usr/include/mysql \
191 -L/usr/$(mlibdir)/mysql \
192 ${myconf} \
193 || die
194
195 mmake all || die
196 }
197
198 src_install()
199 {
200 cd ${SRCDIR}
201 mmake INSTALL_ROOT=${BINDIR} install || die
202
203 # remove broken qmake link and install binary
204 if [ -L ${BINDIR}/${QT_PREFIX}/bin/qmake ]
205 then
206 echo "removing broken qmake symlink"
207 rm -f ${BINDIR}/${QT_PREFIX}/bin/qmake || die
208 echo "installing qmake binary"
209 minstallexec ${SRCDIR}/qmake/qmake ${QT_PREFIX}/bin || die
210 fi
211
212 # remove broken linux-g++ link if exists
213 if [ -L ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/${PLATFORM}/${PLATFORM} ]
214 then
215 echo "removing broken ${PLATFORM} symlink"
216 rm ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/${PLATFORM}/${PLATFORM} || die
217 fi
218
219 # install some missing binaries
220 # minstallexec ${SRCDIR}/bin/qtrename140 ${QT_PREFIX}/bin || die
221 minstallexec ${SRCDIR}/bin/uic ${QT_PREFIX}/bin || die
222 minstallexec ${SRCDIR}/bin/findtr ${QT_PREFIX}/bin || die
223 # minstallexec ${SRCDIR}/bin/qt20fix ${QT_PREFIX}/bin || die
224
225 # qmake cache file
226 sed "s:${SRCDIR}:${QT_PREFIX}:g" ${SRCDIR}/.qmake.cache > ${BINDIR}/${QT_PREFIX}/share/qt/.qmake.cache || die
227
228 # some needed symlinks
229 mlink libqt-mt.so ${QT_PREFIX}/$(mlibdir)/libqt.so || die
230 # symlink qmake to qmakeMAJversion
231 mlink qmake ${QT_PREFIX}/bin/qmake${PVER:0:1} || die
232
233 # remove unneeded specs
234 echo "removing unneeded specs ..."
235 install -d ${BUILDDIR}/keep
236 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/default ${BUILDDIR}/keep || die
237 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/common ${BUILDDIR}/keep || die
238 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/features ${BUILDDIR}/keep || die
239 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/qws ${BUILDDIR}/keep || die
240 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/${PLATFORM} ${BUILDDIR}/keep || die
241 if [[ ${ARCH} = x86_64 ]]
242 then
243 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/linux-g++ ${BUILDDIR}/keep || die
244 fi
245 mv ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/qconfig.pri ${BUILDDIR}/keep || die
246 rm -rf ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs/* || die
247 mv ${BUILDDIR}/keep/* ${BINDIR}/${QT_PREFIX}/share/qt/mkspecs || die
248
249 # docs
250 minstalldocs GPL* changes-${PVER} LICENSE* OPENSOURCE* README* || die
251
252 # # man
253 # cp -r doc/man ${BINDIR}/${QT_PREFIX}/share || die
254 # gzip -r9 ${BINDIR}/${QT_PREFIX}/share/man || die
255 #
256 # # don't want the tutorial anymore, too big
257 # rm -rf ${BINDIR}/${QT_PREFIX}/share/doc/qt-${PVER}/html || die
258 # # don't want the demos too
259 # rm -rf ${BINDIR}/${QT_PREFIX}/demos || die
260
261 # environ vars
262 minstalldir /etc/env.d || die
263 echo "QMAKESPEC=\"${PLATFORM}\"" > ${BINDIR}/etc/env.d/45${PNAME} || die
264 echo "QTDIR=\"${QT_PREFIX}\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
265
266 if [[ ${QT_PREFIX} != /usr ]]
267 then
268 # overwrite the env file here, there may be one in user
269 # and we want this as system-wide default
270 :> ${BINDIR}/etc/env.d/45${PNAME} || die
271 echo "PATH=\"${QT_PREFIX}/bin\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
272 echo "ROOTPATH=\"${QT_PREFIX}/bin\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
273 echo "LDPATH=\"${QT_PREFIX}/$(mlibdir)\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
274 echo "MANPATH=\"${QT_PREFIX}/share/man\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
275 echo "PKG_CONFIG_PATH=\"${QT_PREFIX}/$(mlibdir)/pkgconfig\"" >> ${BINDIR}/etc/env.d/45${PNAME} || die
276 fi
277 }
278
279 preinstall()
280 {
281 if [[ -n $(magequery -n phonon) ]]
282 then
283 die "please uninstall kde-base/phonon first!"
284 fi
285 }
286
287 postinstall()
288 {
289 # breaks compilation if the old phonon symlink from kde-phonon exist
290 if [[ -L ${MROOT}/opt/kde4/lib/libphonon.so ]]
291 then
292 rm ${MROOT}/opt/kde4/lib/libphonon.so
293 fi
294 }

Properties

Name Value
svn:keywords Id