]> git.pld-linux.org Git - packages/qt5-qtbase.git/blame - qt5-qtbase.spec
update BR
[packages/qt5-qtbase.git] / qt5-qtbase.spec
CommitLineData
51df396b
WF
1# TODO:
2# - use PLD ldflags
3# - cleanup
1600b17a 4# - subpackages to sql classes
51df396b
WF
5
6# Conditional build:
7%bcond_with static_libs # build static libraries
8# -- features
9%bcond_without cups # CUPS printing support
10%bcond_with nas # NAS audio support
11%bcond_without gtk # GTK+ theme integration
12%bcond_without pch # pch (pre-compiled headers) in qmake
13%bcond_without system_phonon # phonon libraries from phonon.spec intead of qt4.spec
14%bcond_with wkhtml # WKHTMLTOPDF patch (affects QtGui ABI)
15# -- databases
16%bcond_without mysql # MySQL plugin
17%bcond_without odbc # unixODBC plugin
18%bcond_without pgsql # PostgreSQL plugin
19%bcond_without sqlite3 # SQLite3 plugin
20%bcond_without sqlite # SQLite2 plugin
21%bcond_without ibase # ibase (InterBase/Firebird) plugin
22# -- SIMD CPU instructions
23%bcond_with sse # use SSE instructions in gui/painting module
24%bcond_with sse2 # use SSE2 instructions
25%bcond_with sse3 # use SSE3 instructions (since: Intel middle Pentium4, AMD Athlon64)
26%bcond_with ssse3 # use SSSE3 instructions (Intel since Core2, Via Nano)
27%bcond_with sse41 # use SSE4.1 instructions (Intel since middle Core2)
28%bcond_with sse42 # use SSE4.2 instructions (the same)
29%bcond_with avx # use AVX instructions (future Intel x86 CPUs only)
30
31%ifnarch %{ix86} %{x8664} sparc sparcv9 alpha ppc
32%undefine with_ibase
33%endif
34%ifarch athlon
35%define with_3dnow 1
36%endif
37%ifarch athlon pentium3 pentium4 %{x8664}
38%define with_mmx 1
39%endif
40%ifarch pentium3 pentium4 %{x8664}
41%define with_sse 1
42%endif
43%ifarch pentium4 %{x8664}
44%define with_sse2 1
45%endif
46# any SQL
47%define _withsql 1
48%{!?with_sqlite3:%{!?with_sqlite:%{!?with_ibase:%{!?with_mysql:%{!?with_pgsql:%{!?with_odbc:%undefine _withsql}}}}}}
49
50%define icu_abi 52
51%define next_icu_abi %(echo $((%{icu_abi} + 1)))
52
53%define orgname qtbase
1600b17a 54Summary: Qt5 - QtBase components
51df396b
WF
55Summary(es.UTF-8): Biblioteca para ejecutar aplicaciones Qt5
56Summary(pl.UTF-8): Biblioteka Qt5
57Summary(pt_BR.UTF-8): Estrutura para rodar aplicações Qt5
58Name: qt5-%{orgname}
59Version: 5.2.0
60Release: 0.1
1600b17a
ER
61# See LGPL_EXCEPTIONS.txt, LICENSE.GPL3, respectively, for exception details
62License: LGPLv2 with exceptions or GPLv3 with exceptions
51df396b
WF
63Group: X11/Libraries
64Source0: http://download.qt-project.org/official_releases/qt/5.2/%{version}/submodules/%{orgname}-opensource-src-%{version}.tar.xz
65# Source0-md5: c94bbaf1bb7f0f4a32d2caa7501416e1
66URL: http://qt-project.org/
67%{?with_ibase:BuildRequires: Firebird-devel}
68BuildRequires: Mesa-libOpenVG-devel
69BuildRequires: OpenGL-GLU-devel
70BuildRequires: OpenGL-devel
71BuildRequires: alsa-lib-devel
72%{?with_cups:BuildRequires: cups-devel}
73BuildRequires: dbus-devel >= 0.93
74BuildRequires: fontconfig-devel
75BuildRequires: freetds-devel
76BuildRequires: freetype-devel >= 1:2.0.0
77%{?with_pch:BuildRequires: gcc >= 5:4.0}
5b8dc449 78BuildRequires: gdb
51df396b
WF
79BuildRequires: glib2-devel >= 2.0.0
80BuildRequires: gstreamer0.10-plugins-base-devel
81%{?with_gtk:BuildRequires: gtk+2-devel >= 2:2.10}
82# see dependency on libicu version below
51df396b 83BuildRequires: libicu-devel < %{next_icu_abi}
1600b17a 84BuildRequires: libicu-devel >= %{icu_abi}
51df396b
WF
85BuildRequires: libjpeg-devel
86BuildRequires: libmng-devel >= 1.0.0
87BuildRequires: libpng-devel >= 2:1.0.8
88BuildRequires: libstdc++-devel
89%{?with_mysql:BuildRequires: mysql-devel}
90%{?with_nas:BuildRequires: nas-devel}
91BuildRequires: pkgconfig
92%{?with_pgsql:BuildRequires: postgresql-backend-devel}
93%{?with_pgsql:BuildRequires: postgresql-devel}
94BuildRequires: pulseaudio-devel >= 0.9.10
95BuildRequires: rpmbuild(macros) >= 1.654
96BuildRequires: rsync
97BuildRequires: sed >= 4.0
98%{?with_sqlite:BuildRequires: sqlite-devel}
99%{?with_sqlite3:BuildRequires: sqlite3-devel}
1600b17a 100BuildRequires: tar >= 1:1.22
5b8dc449 101BuildRequires: udev-devel
51df396b 102%{?with_odbc:BuildRequires: unixODBC-devel >= 2.3.0}
5b8dc449
ER
103BuildRequires: xcb-util-image-devel
104BuildRequires: xcb-util-keysyms-devel
105BuildRequires: xcb-util-renderutil-devel
106BuildRequires: xcb-util-wm-devel
51df396b
WF
107BuildRequires: xorg-lib-libSM-devel
108BuildRequires: xorg-lib-libXcursor-devel
109BuildRequires: xorg-lib-libXext-devel
110BuildRequires: xorg-lib-libXfixes-devel
111BuildRequires: xorg-lib-libXi-devel
112BuildRequires: xorg-lib-libXinerama-devel
113BuildRequires: xorg-lib-libXrandr-devel
114BuildRequires: xorg-lib-libXrender-devel
115BuildRequires: xorg-lib-libXtst-devel
116BuildRequires: xorg-lib-libXv-devel
1600b17a 117BuildRequires: xz
51df396b
WF
118BuildRequires: zlib-devel
119BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
120
121%define _noautoreqdep libGL.so.1 libGLU.so.1
122%define _noautostrip '.*_debug\\.so*'
123
124%define specflags -fno-strict-aliasing
125
126%define _qtdir %{_libdir}/qt5
127
128%description
1600b17a
ER
129Qt is a software toolkit for developing applications.
130
131This package contains base tools, like string, xml, and network
132handling.
51df396b
WF
133
134%package devel
135Summary: The Qt5 application framework - development files
136Group: X11/Development/Libraries
137Requires: %{name} = %{version}-%{release}
138
139%description devel
140Qt5 - development files.
141
142%package examples
143Summary: Qt5 examples
144Group: X11/Development/Libraries
145
146%description examples
147Qt5 - examples.
148
149%prep
150%setup -q -n %{orgname}-opensource-src-%{version}
151
152%{__sed} -i -e 's,usr/X11R6/,usr/g,' mkspecs/linux-g++-64/qmake.conf \
153 mkspecs/common/linux.conf
154
155# change QMAKE FLAGS to build
156%{__sed} -i -e '
157 s|QMAKE_CC.*=.*gcc|QMAKE_CC\t\t= %{__cc}|;
158 s|QMAKE_CXX.*=.*g++|QMAKE_CXX\t\t= %{__cxx}|;
159 s|QMAKE_LINK.*=.*g++|QMAKE_LINK\t\t= %{__cxx}|;
160 s|QMAKE_LINK_SHLIB.*=.*g++|QMAKE_LINK_SHLIB\t= %{__cxx}|;
161 s|QMAKE_CFLAGS_RELEASE.*|QMAKE_CFLAGS_RELEASE\t+= %{rpmcppflags} %{rpmcflags}|;
162 s|QMAKE_CXXFLAGS_RELEASE.*|QMAKE_CXXFLAGS_RELEASE\t+= %{rpmcppflags} %{rpmcxxflags}|;
163 s|QMAKE_CFLAGS_DEBUG.*|QMAKE_CFLAGS_DEBUG\t+= %{debugcflags}|;
164 s|QMAKE_CXXFLAGS_DEBUG.*|QMAKE_CXXFLAGS_DEBUG\t+= %{debugcflags}|;
165 ' mkspecs/common/g++-base.conf
166
167#%{__sed} -i -e '
168# s|QMAKE_INCDIR_QT.*|QMAKE_INCDIR_QT = %{_includedir}/qt4|;
169# ' mkspecs/common/linux.conf
170
171# No -L/usr/lib.
172%{__sed} -i -e '
173 s|^QMAKE_LIBDIR_QT.*=.*|QMAKE_LIBDIR_QT =|;
174 ' mkspecs/common/linux.conf
175
176# undefine QMAKE_STRIP, so we get useful -debuginfo pkgs
177%{__sed} -i -e '
178 s|^QMAKE_STRIP.*=.*|QMAKE_STRIP =|;
179 ' mkspecs/common/linux.conf
180
181%build
182# pass OPTFLAGS to build qmake itself with optimization
183export OPTFLAGS="%{rpmcflags}"
184export PATH=$PWD/bin:$PATH
185
186##################################
187# DEFAULT OPTIONS FOR ALL BUILDS #
188##################################
189
190COMMONOPT=" \
191 -confirm-license \
192 -opensource \
193 -verbose \
194 -prefix %{_qtdir} \
195 -bindir %{_qtdir}/bin \
196 -docdir %{_docdir}/qt5-doc \
197 -headerdir %{_includedir}/qt5 \
198 -libdir %{_libdir} \
199 -plugindir %{_qtdir}/plugins \
200 -datadir %{_datadir}/qt5 \
201 -translationdir %{_localedir}/ \
202 -sysconfdir %{_sysconfdir}/qt5 \
203 -examplesdir %{_examplesdir}/qt5 \
204 -optimized-qmake \
205 -glib \
206 %{!?with_gtk:-no-gtkstyle} \
207 -%{!?with_pch:no-}pch \
208 -no-rpath \
209 %{!?with_sse:-no-sse} \
210 %{!?with_sse2:-no-sse2} \
211 %{!?with_sse3:-no-sse3} \
212 %{!?with_ssse3:-no-ssse3} \
213 %{!?with_sse41:-no-sse4.1} \
214 %{!?with_sse42:-no-sse4.2} \
215 %{!?with_avx:-no-avx} \
216 -dbus \
217 -dbus-linked \
218 -reduce-relocations \
219 -system-freetype \
220 -system-libjpeg \
221 -system-libpng \
222 -system-pcre \
223 -system-xcb \
224 -system-xkbcommon \
225 -system-zlib \
226 -openssl-linked \
227 -largefile \
228 -I/usr/include/postgresql/server \
229 -I/usr/include/mysql \
230 %{?with_cups:-cups} \
231 %{?with_nas:-system-nas-sound} \
232 %{?debug:-debug} \
233 %{!?debug:-release} \
234 -fontconfig \
235 -largefile \
236 -iconv \
237 -icu \
238 -no-separate-debug-info \
239 -xfixes \
240 -nis \
241 -sm \
242 -xcursor \
243 -xinput2 \
244 -xinerama \
245 -xrandr \
246 -xkb \
247 -xrender \
248 -xshape \
249 -continue"
250
251%if 0
252##################################
253# STATIC MULTI-THREAD #
254##################################
255
256%if %{with static_libs}
257OPT=" \
258 -%{!?with_mysql:no}%{?with_mysql:qt}-sql-mysql \
259 -%{!?with_odbc:no}%{?with_odbc:qt}-sql-odbc \
260 -%{!?with_pgsql:no}%{?with_pgsql:qt}-sql-psql \
261 -%{!?with_sqlite3:no}%{?with_sqlite3:qt}-sql-sqlite \
262 -%{!?with_sqlite:no}%{?with_sqlite:qt}-sql-sqlite2 \
263 -%{!?with_ibase:no}%{?with_ibase:qt}-sql-ibase \
264 -static"
265
266./configure $COMMONOPT $OPT
267
268%{__make} -C src
269%{__make} -C tools/assistant/lib
270%{__make} -C tools/designer
271if [ ! -d staticlib ]; then
272 mkdir staticlib
273 cp -a lib/*.a staticlib
274fi
275%{__make} distclean
276%endif
277%endif
278
279##################################
280# SHARED MULTI-THREAD #
281##################################
282
283OPT=" \
284 -%{!?with_mysql:no}%{?with_mysql:plugin}-sql-mysql \
285 -%{!?with_odbc:no}%{?with_odbc:plugin}-sql-odbc \
286 -%{!?with_pgsql:no}%{?with_pgsql:plugin}-sql-psql \
287 -%{!?with_sqlite3:no}%{?with_sqlite3:plugin}-sql-sqlite \
288 -%{!?with_sqlite:no}%{?with_sqlite:plugin}-sql-sqlite2 \
289 -%{!?with_ibase:no}%{?with_ibase:plugin}-sql-ibase \
290 -shared"
291
292./configure $COMMONOPT $OPT
293
294%{__make}
295#%{__make} \
296# sub-tools-all-ordered \
297# sub-demos-all-ordered \
298# sub-examples-all-ordered
299
300%install
301rm -rf $RPM_BUILD_ROOT
302install -d $RPM_BUILD_ROOT{/etc/{env.d,qt5},%{_bindir},%{_desktopdir},%{_pixmapsdir},%{_pkgconfigdir}}
303#install -d $RPM_BUILD_ROOT%{_qtdir}/plugins/{crypto,network}
304
305#echo '#QT_GRAPHICSSYSTEM=raster' > $RPM_BUILD_ROOT/etc/env.d/QT_GRAPHICSSYSTEM
306
307%{__make} install \
308 INSTALL_ROOT=$RPM_BUILD_ROOT
309
310# for qt-creator sth is messed up in the Makefile, nothing for make install
311#install bin/qdoc3 $RPM_BUILD_ROOT%{_qtdir}/bin/qdoc3
312
313# kill -L/inside/builddir from *.la and *.pc (bug #77152)
314%{__sed} -i -e "s,-L$PWD/lib,,g" $RPM_BUILD_ROOT%{_libdir}/*.{la,prl}
315%{__sed} -i -e "s,-L$PWD/lib,,g" $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
316%{__sed} -i -e '
317 s|moc_location=.*|moc_location=%{_bindir}/moc-qt5|;
318 s|uic_location=.*|uic_location=%{_bindir}/uic-qt5|;
319 ' $RPM_BUILD_ROOT%{_pkgconfigdir}/*.pc
320
321# libQtWebKit.la contains '-ljscore' and '-lwebcore', they come
322# from src/3rdparty/webkit/{JavaScriptCore,WebCore}} but those libs aren't installed
323#%{__sed} -i -e "s,-lwebcore,,g;s,-ljscore,,g;" $RPM_BUILD_ROOT%{_libdir}/libQtWebKit.la
324
325# install tools
326install bin/findtr $RPM_BUILD_ROOT%{_qtdir}/bin
327
328cd $RPM_BUILD_ROOT%{_bindir}
329#ln -sf ../%{_lib}/qt5/bin/assistant assistant-qt5
330#ln -sf ../%{_lib}/qt5/bin/designer designer-qt5
331ln -sf ../%{_lib}/qt5/bin/findtr findtr-qt5
332#ln -sf ../%{_lib}/qt5/bin/linguist linguist-qt5
333#ln -sf ../%{_lib}/qt5/bin/lrelease lrelease-qt5
334#ln -sf ../%{_lib}/qt5/bin/lupdate lupdate-qt5
335ln -sf ../%{_lib}/qt5/bin/moc moc-qt5
336ln -sf ../%{_lib}/qt5/bin/qmake qmake-qt5
337#ln -sf ../%{_lib}/qt5/bin/qtconfig qtconfig-qt5
338ln -sf ../%{_lib}/qt5/bin/uic uic-qt5
339ln -sf ../%{_lib}/qt5/bin/rcc rcc-qt5
340#ln -sf ../%{_lib}/qt5/bin/pixeltool .
341#ln -sf ../%{_lib}/qt5/bin/qcollectiongenerator .
342ln -sf ../%{_lib}/qt5/bin/qdbuscpp2xml qdbuscpp2xml-qt5
343ln -sf ../%{_lib}/qt5/bin/qdbusxml2cpp qdbusxml2cpp-qt5
344ln -sf ../%{_lib}/qt5/bin/qdoc qdoc-qt5
345#ln -sf ../%{_lib}/qt5/bin/qhelpconverter .
346#ln -sf ../%{_lib}/qt5/bin/qhelpgenerator .
347#ln -sf ../%{_lib}/qt5/bin/qmlviewer .
348#ln -sf ../%{_lib}/qt5/bin/qmlplugindump .
349#ln -sf ../%{_lib}/qt5/bin/qttracereplay .
350#ln -sf ../%{_lib}/qt5/bin/qvfb .
351#ln -sf ../%{_lib}/qt5/bin/xmlpatternsvalidator .
352cd -
353
354# Prepare some files list
355ifecho() {
356 RESULT=`echo $RPM_BUILD_ROOT$2 2>/dev/null`
357 [ "$RESULT" == "" ] && return # XXX this is never true due $RPM_BUILD_ROOT being set
358 r=`echo $RESULT | awk '{ print $1 }'`
359
360 if [ -d "$r" ]; then
361 echo "%%dir $2" >> $1.files
362 elif [ -x "$r" ] ; then
363 echo "%%attr(755,root,root) $2" >> $1.files
364 elif [ -f "$r" ]; then
365 echo "$2" >> $1.files
366 else
367 echo "Error generation $1 files list!"
368 echo "$r: no such file or directory!"
369 return 1
370 fi
371}
372
373echo "%defattr(644,root,root,755)" > examples.files
374ifecho examples %{_examplesdir}/qt5
375for f in `find $RPM_BUILD_ROOT%{_examplesdir}/qt5 -printf "%%P "`; do
376 ifecho examples %{_examplesdir}/qt5/$f
377done
378
379%clean
380rm -rf $RPM_BUILD_ROOT
381
382%post -p /sbin/ldconfig
383%postun -p /sbin/ldconfig
384
385%files
386%defattr(644,root,root,755)
387%attr(755,root,root) %{_bindir}/*
388%attr(755,root,root) %ghost %{_libdir}/libQt5Concurrent.so.?
389%attr(755,root,root) %{_libdir}/libQt5Concurrent.so.*.*
390%attr(755,root,root) %ghost %{_libdir}/libQt5Core.so.?
391%attr(755,root,root) %{_libdir}/libQt5Core.so.*.*
392%attr(755,root,root) %ghost %{_libdir}/libQt5DBus.so.?
393%attr(755,root,root) %{_libdir}/libQt5DBus.so.*.*
394%attr(755,root,root) %ghost %{_libdir}/libQt5Gui.so.?
395%attr(755,root,root) %{_libdir}/libQt5Gui.so.*.*
396%attr(755,root,root) %ghost %{_libdir}/libQt5Network.so.?
397%attr(755,root,root) %{_libdir}/libQt5Network.so.*.*
398%attr(755,root,root) %ghost %{_libdir}/libQt5OpenGL.so.?
399%attr(755,root,root) %{_libdir}/libQt5OpenGL.so.*.*
400%attr(755,root,root) %ghost %{_libdir}/libQt5PrintSupport.so.?
401%attr(755,root,root) %{_libdir}/libQt5PrintSupport.so.*.*
402%attr(755,root,root) %ghost %{_libdir}/libQt5Sql.so.?
403%attr(755,root,root) %{_libdir}/libQt5Sql.so.*.*
404%attr(755,root,root) %ghost %{_libdir}/libQt5Test.so.?
405%attr(755,root,root) %{_libdir}/libQt5Test.so.*.*
406%attr(755,root,root) %ghost %{_libdir}/libQt5Widgets.so.?
407%attr(755,root,root) %{_libdir}/libQt5Widgets.so.*.*
408%attr(755,root,root) %ghost %{_libdir}/libQt5Xml.so.?
409%attr(755,root,root) %{_libdir}/libQt5Xml.so.*.*
410%{_libdir}/libQt5Bootstrap.a
411%{_libdir}/libQt5OpenGLExtensions.a
412%{_libdir}/libQt5PlatformSupport.a
413
414%dir /etc/qt5
415%dir %{_qtdir}
416%dir %{_qtdir}/bin
417%attr(755,root,root) %{_qtdir}/bin/*
418%attr(755,root,root) %{_qtdir}/plugins
419
420%files devel
421%defattr(644,root,root,755)
422%attr(755,root,root) %{_libdir}/libQt5Concurrent.so
423%attr(755,root,root) %{_libdir}/libQt5Core.so
424%attr(755,root,root) %{_libdir}/libQt5DBus.so
425%attr(755,root,root) %{_libdir}/libQt5Gui.so
426%attr(755,root,root) %{_libdir}/libQt5Network.so
427%attr(755,root,root) %{_libdir}/libQt5OpenGL.so
428%attr(755,root,root) %{_libdir}/libQt5PrintSupport.so
429%attr(755,root,root) %{_libdir}/libQt5Sql.so
430%attr(755,root,root) %{_libdir}/libQt5Test.so
431%attr(755,root,root) %{_libdir}/libQt5Widgets.so
432%attr(755,root,root) %{_libdir}/libQt5Xml.so
433
434%{_libdir}/libQt5Concurrent.la
435%{_libdir}/libQt5Core.la
436%{_libdir}/libQt5DBus.la
437%{_libdir}/libQt5Gui.la
438%{_libdir}/libQt5Network.la
439%{_libdir}/libQt5OpenGL.la
440%{_libdir}/libQt5PrintSupport.la
441%{_libdir}/libQt5Sql.la
442%{_libdir}/libQt5Test.la
443%{_libdir}/libQt5Widgets.la
444%{_libdir}/libQt5Xml.la
445
446%{_libdir}/libQt5Concurrent.prl
447%{_libdir}/libQt5Core.prl
448%{_libdir}/libQt5DBus.prl
449%{_libdir}/libQt5Gui.prl
450%{_libdir}/libQt5Network.prl
451%{_libdir}/libQt5OpenGL.prl
452%{_libdir}/libQt5PrintSupport.prl
453%{_libdir}/libQt5Sql.prl
454%{_libdir}/libQt5Test.prl
455%{_libdir}/libQt5Widgets.prl
456%{_libdir}/libQt5Xml.prl
457
458%{_libdir}/libQt5Bootstrap.la
459%{_libdir}/libQt5Bootstrap.prl
460%{_libdir}/libQt5OpenGLExtensions.la
461%{_libdir}/libQt5OpenGLExtensions.prl
462%{_libdir}/libQt5PlatformSupport.la
463%{_libdir}/libQt5PlatformSupport.prl
464
465%{_includedir}/qt5
466%{_libdir}/cmake/Qt5
467%{_libdir}/cmake/Qt5Concurrent
468%{_libdir}/cmake/Qt5Core
469%{_libdir}/cmake/Qt5DBus
470%{_libdir}/cmake/Qt5Gui
471%{_libdir}/cmake/Qt5Network
472%{_libdir}/cmake/Qt5OpenGL
473%{_libdir}/cmake/Qt5OpenGLExtensions
474%{_libdir}/cmake/Qt5PrintSupport
475%{_libdir}/cmake/Qt5Sql
476%{_libdir}/cmake/Qt5Test
477%{_libdir}/cmake/Qt5Widgets
478%{_libdir}/cmake/Qt5Xml
479%{_pkgconfigdir}/*.pc
480#%{_examplesdir}/qt5
481%{_docdir}/qt5-doc
482%{_qtdir}/mkspecs
483
484%files examples -f examples.files
This page took 0.305247 seconds and 4 git commands to generate.