Annotation of /trunk/extras/qt3/qt3-3.3.8b-r3.smage2
Parent Directory | Revision Log
Revision 21079 -
(hide annotations)
(download)
Mon Mar 10 09:55:50 2014 UTC (10 years, 6 months ago) by niro
File size: 7414 byte(s)
Mon Mar 10 09:55:50 2014 UTC (10 years, 6 months ago) by niro
File size: 7414 byte(s)
-rebuild against libmng2 (soname change) and fixed UP2DATE
1 | niro | 21079 | # $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://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.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 | 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 ftp://ftp.qt-project.org/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 | } |