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