Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


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