Magellan Linux

Annotation of /branches/R11-unstable/extras/qt3/qt3-3.3.8b-r3.smage2

Parent Directory Parent Directory | Revision Log Revision Log


Revision 25755 - (hide annotations) (download)
Tue Nov 25 04:15:48 2014 UTC (9 years, 6 months ago) by niro
File size: 7537 byte(s)
-release branches/R11-unstable
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 niro 21080 HOMEPAGE="http://qt-project.org/"
11 niro 21079
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 niro 21080 http://download.qt-project.org/archive/qt/3/${SRCFILE}
48 niro 21079 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 niro 21082 mirror://qt/qt-3.3.8b-freetype251.patch
64 niro 21079 )
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 niro 21082 # fix build against >= freetype-2.5.1
128     mpatch qt-3.3.8b-freetype251.patch || die
129    
130 niro 21079 # 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     }