Contents of /trunk/extras/qt3/qt3-3.3.8b-r3.smage2
Parent Directory | Revision Log
Revision 21082 -
(show annotations)
(download)
Mon Mar 10 10:20:35 2014 UTC (10 years, 6 months ago) by niro
File size: 7537 byte(s)
Mon Mar 10 10:20:35 2014 UTC (10 years, 6 months ago) by niro
File size: 7537 byte(s)
-fixed build against >= freetype-2.5.1
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 | } |