Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4085 - (hide annotations) (download)
Wed Nov 18 21:01:04 2009 UTC (14 years, 7 months ago) by niro
File size: 8632 byte(s)
-reduced-relocs
1 niro 4082 # $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 niro 4085 -reduce-relocations \
164 niro 4082 -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 niro 4084 -plugin-sql-mysql \
190     -I/usr/include/mysql \
191     -L/usr/$(mlibdir)/mysql \
192 niro 4082 ${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