source: packaging/qt4.spec@ 1141

Last change on this file since 1141 was 1141, checked in by Dmitry A. Kuminov, 12 years ago

packaging: Release 4.7.3.2-1 (GA2).

File size: 24.9 KB
Line 
1#
2# http://svn.netlabs.org/qt4
3#
4# If you are a packager, please read HowToDistribute.txt for general
5# instructions.
6#
7
8Name: qt4
9Vendor: netlabs.org
10License: LGPLv2 with exceptions or GPLv3 with exceptions
11Url: http://www.qtsoftware.com/
12
13%define ver_major 4
14%define ver_minor 7
15%define ver_patch 3
16
17%define os2_release 2
18
19%define rpm_release 1
20
21%define svn_url http://svn.netlabs.org/repos/qt4/tags/%{version}
22
23%define descr_brief Qt is a software toolkit for developing applications.
24
25%define pkg_wps_base QT4
26%define pkg_wps_folder_id <%{pkg_wps_base}_FOLDER>
27%define pkg_wps_folder_create %{pkg_wps_base}_FOLDER:WPFolder|Qt 4|<WP_DESKTOP>
28%define pkg_wps_view_txt() EXENAME=e.exe;PROGTYPE=PROG_PM;PARAMETERS=((%*))
29
30%define pkg_docdir %{_docdir}/%{name}
31
32%if 0%{?os2_release}
33Version: %{ver_major}.%{ver_minor}.%{ver_patch}.%{os2_release}
34%else
35Version: %{ver_major}.%{ver_minor}.%{ver_patch}
36%endif
37Release: %{rpm_release}
38
39Source: %{name}-%{version}.zip
40
41#BuildRequires: gnumake (when available)
42BuildRequires: findutils
43#BuildRequires: mapsym (os2tk45, when available)
44BuildRequires: libc-devel
45BuildRequires: gcc
46BuildRequires: gcc-wlink
47BuildRequires: gcc-wrc
48#BuildRequires: cups-devel (when available)
49BuildRequires: openssl-devel
50BuildRequires: pthread-devel
51#BuildRequires: mysql-devel (when available)
52#BuildRequires: psql-devel (when available)
53
54# @todo add wrc support to Qt
55# @todo add proper %attr for .exe files
56
57#------------------------------------------------------------------------------
58# commons
59#------------------------------------------------------------------------------
60
61# process command line arguments
62%if "%{?QT_SOURCE_TREE}" == ""
63%define QT_SOURCE_TREE .
64%else
65%define skip_prep_export 1
66%endif
67
68# installation paths
69%define qt_prefix %{_libdir}/%{name}
70%define qt_libdir %{_libdir}
71%define qt_headerdir %{_includedir}
72%define qt_bindir %{qt_prefix}/bin
73%define qt_plugindir %{qt_prefix}/plugins
74%define qt_importdir %{qt_prefix}/imports
75%define qt_demosdir %{qt_prefix}/demos
76%define qt_examplesdir %{qt_prefix}/examples
77%define qt_datadir %{_datadir}/%{name}
78%define qt_docdir %{qt_datadir}/doc
79%define qt_translationdir %{qt_datadir}/translations
80%define qt_sysconfdir %{_sysconfdir}/xdg
81
82# disable lxlite compression (Qt EXEs and DLLs are already compressed)
83%define __os_install_post %{nil}
84
85#------------------------------------------------------------------------------
86# main package
87#------------------------------------------------------------------------------
88
89Summary: Qt 4 (dummy package)
90Group: System Environment/Libraries
91
92%description
93%{descr_brief}
94
95This package is not actually generated (due to the missing %files section).
96It is present only because RPM requires Summary: and %description sections for
97the main package to exist.
98
99#------------------------------------------------------------------------------
100%package -n lib%{name}
101#------------------------------------------------------------------------------
102
103Summary: Qt 4 runtime libraries
104Group: System Environment/Libraries
105
106%description -n lib%{name}
107%{descr_brief}
108
109This package contains runtime Qt libraries for console applications, including
110core, network and XML modules.
111
112%files -n lib%{name}
113%defattr(-,root,root,-)
114%dir %{pkg_docdir}/
115%docdir %{pkg_docdir}/
116%{pkg_docdir}/*
117%if "%{qt_prefix}" != "%{_prefix}"
118%dir %{qt_prefix}/
119%endif
120%if "%{qt_libdir}" != "%{_libdir}"
121%dir %{qt_libdir}/
122%endif
123%if "%{qt_bindir}" != "%{_bindir}"
124%dir %{qt_bindir}/
125%endif
126%dir %{qt_plugindir}
127%{qt_plugindir}/bearer/
128%{qt_plugindir}/codecs/
129%dir %{qt_plugindir}/sqldrivers/
130%{qt_plugindir}/sqldrivers/*
131%exclude %{qt_plugindir}/sqldrivers/qmysql%{ver_major}.dll
132%exclude %{qt_plugindir}/sqldrivers/qpsql%{ver_major}.dll
133%dir %{qt_datadir}/
134%dir %{qt_docdir}/
135%dir %{qt_docdir}/qch/
136%dir %{qt_translationdir}/
137%{qt_translationdir}/qt_??.qm
138%{qt_translationdir}/qt_??_??.qm
139%if "%{qt_sysconfdir}" != "%{_sysconfdir}" && "%{qt_sysconfdir}" != "%{_sysconfdir}/xdg"
140%dir %{qt_sysconfdir}/
141%endif
142%{qt_libdir}/QtCore%{ver_major}.dll
143%{qt_libdir}/QtNet%{ver_major}.dll
144%{qt_libdir}/QtScri%{ver_major}.dll
145%{qt_libdir}/QtSql%{ver_major}.dll
146%{qt_libdir}/QtTest%{ver_major}.dll
147%{qt_libdir}/QtXml%{ver_major}.dll
148%{qt_libdir}/QtXmlP%{ver_major}.dll
149
150%pre -n lib%{name}
151%warpin_conflicts_begin
152netlabs.org\Qt4\Runtime
153%warpin_conflicts_end
154
155%post -n lib%{name}
156# clean up the plugin/font cache to remove old entries (@todo other users?)
157rm -f "$HOME/.config/Trolltech.ini"
158
159#------------------------------------------------------------------------------
160%package -n lib%{name}-sql-mysql
161#------------------------------------------------------------------------------
162
163Summary: Qt 4 MySQL database driver
164Group: System Environment/Libraries
165
166Requires: lib%{name} = %{version}-%{release}
167
168%description -n lib%{name}-sql-mysql
169%{descr_brief}
170
171This package contains the MySQL plugin for Qt 4.
172
173%files -n lib%{name}-sql-mysql
174%defattr(-,root,root,-)
175%{qt_plugindir}/sqldrivers/qmysql%{ver_major}.dll
176
177#------------------------------------------------------------------------------
178%package -n lib%{name}-sql-psql
179#------------------------------------------------------------------------------
180
181Summary: Qt 4 PostgreSQL database driver
182Group: System Environment/Libraries
183
184Requires: lib%{name} = %{version}-%{release}
185
186%description -n lib%{name}-sql-psql
187%{descr_brief}
188
189This package contains the PostgreSQL plugin for Qt 4.
190
191%files -n lib%{name}-sql-psql
192%defattr(-,root,root,-)
193%{qt_plugindir}/sqldrivers/qpsql%{ver_major}.dll
194
195#------------------------------------------------------------------------------
196%package -n lib%{name}-gui
197#------------------------------------------------------------------------------
198
199Summary: Qt 4 GUI runtime libraries
200Group: System Environment/Libraries
201
202Requires: lib%{name} = %{version}-%{release}
203
204%description -n lib%{name}-gui
205%{descr_brief}
206
207This package contains runtime Qt libraries for Presentation Manager GUI
208applications.
209
210%files -n lib%{name}-gui
211%defattr(-,root,root,-)
212%dir %{qt_plugindir}/designer
213%{qt_plugindir}/designer/qdeclv.dll
214%{qt_plugindir}/accessible/
215%{qt_plugindir}/graphicssystems/
216%{qt_plugindir}/iconengines/
217%{qt_plugindir}/imageformats/
218%{qt_plugindir}/qmltooling/
219%{qt_translationdir}/qt_help_??.qm
220%{qt_translationdir}/qt_help_??_??.qm
221%dir %{qt_importdir}/
222%{qt_importdir}/Qt/
223%{qt_libdir}/QtCLuc%{ver_major}.dll
224%{qt_libdir}/QtDecl%{ver_major}.dll
225%{qt_libdir}/QtGui%{ver_major}.dll
226%{qt_libdir}/QtHelp%{ver_major}.dll
227%{qt_libdir}/QtScTl%{ver_major}.dll
228%{qt_libdir}/QtSvg%{ver_major}.dll
229
230#------------------------------------------------------------------------------
231%package -n lib%{name}-webkit
232#------------------------------------------------------------------------------
233
234Summary: Qt 4 WebKit runtime libraries
235Group: System Environment/Libraries
236
237Requires: lib%{name}-gui = %{version}-%{release}
238
239%description -n lib%{name}-webkit
240%{descr_brief}
241
242This package contains runtime Qt libraries for applications based on the WebKit
243technology.
244
245%files -n lib%{name}-webkit
246%defattr(-,root,root,-)
247%{qt_plugindir}/designer/qwebv.dll
248%{qt_importdir}/QtWebKit/
249%{qt_libdir}/QtWebK%{ver_major}.dll
250
251#------------------------------------------------------------------------------
252%package -n lib%{name}-designer
253#------------------------------------------------------------------------------
254
255Summary: Qt 4 Designer runtime libraries
256Group: System Environment/Libraries
257
258Requires: lib%{name}-gui = %{version}-%{release}
259
260%description -n lib%{name}-designer
261%{descr_brief}
262
263This package contains runtime Qt libraries for Designer components.
264
265%files -n lib%{name}-designer
266%defattr(-,root,root,-)
267%{qt_libdir}/QtDsgC%{ver_major}.dll
268%{qt_libdir}/QtDsgn%{ver_major}.dll
269
270#------------------------------------------------------------------------------
271%package demos
272#------------------------------------------------------------------------------
273Summary: Qt 4 demos and examples
274Group: Documentation
275
276Requires: lib%{name}-gui = %{version}-%{release}
277Requires: lib%{name}-designer = %{version}-%{release}
278Requires: lib%{name}-webkit = %{version}-%{release}
279Requires: %{name}-doc = %{version}-%{release}
280
281%description demos
282%{descr_brief}
283
284This package contains the demo and example Qt applications and their
285source code. These applications demonstrate the possibilities of the
286Qt toolkit.
287
288%files demos
289%defattr(-,root,root,-)
290%{qt_plugindir}/designer/
291%exclude %{qt_plugindir}/designer/qdeclv.dll
292%exclude %{qt_plugindir}/designer/qwebv.dll
293%{qt_bindir}/qtdemo.exe
294%{qt_examplesdir}
295%{qt_demosdir}
296
297%post demos
298%wps_object_create_begin -n %{name}-demos
299%{pkg_wps_folder_create}
300%{pkg_wps_base}_DEMO:WPProgram|Examples and Demos|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/qtdemo.exe))
301%wps_object_create_end
302
303# clean up the qtdemo doc cache, otherwise the demo descriptions may not show up
304# if the old cache contains links to non-existent doc files (@todo other users?)
305rm -f "$HOME/.local/share/data/Trolltech/Assistant/qtdemo_%{ver_major}.%{ver_minor}.%{ver_patch}.qhc"
306
307%postun demos
308%wps_object_delete_all -n %{name}-demos
309
310#------------------------------------------------------------------------------
311%package qmlviewer
312#------------------------------------------------------------------------------
313Summary: Qt 4 QML Viewer tool
314Group: Development/Tools
315
316Requires: lib%{name}-gui = %{version}-%{release}
317
318%description qmlviewer
319%{descr_brief}
320
321This package contains the Qt QML Viewer tool that allows to view QML files.
322
323%files qmlviewer
324%defattr(-,root,root,-)
325%{qt_bindir}/qmlviewer.exe
326
327%post qmlviewer
328%wps_object_create_begin -n %{name}-qmlviewer
329%{pkg_wps_folder_create}
330%{pkg_wps_base}_QMLVIEWER:WPProgram|QML Viewer|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/qmlviewer.exe))
331%wps_object_create_end
332
333%postun qmlviewer
334%wps_object_delete_all -n %{name}-qmlviewer
335
336#------------------------------------------------------------------------------
337%package linguist
338#------------------------------------------------------------------------------
339Summary: Qt 4 Linguist tool
340Group: Development/Tools
341
342Requires: lib%{name}-gui = %{version}-%{release}
343
344%description linguist
345%{descr_brief}
346
347This package contains the Qt Linguist tool used to edit the translation files
348for Qt applications.
349
350%files linguist
351%defattr(-,root,root,-)
352%{qt_translationdir}/linguist_??.qm
353%{qt_translationdir}/linguist_??_??.qm
354%dir %{qt_datadir}/phrasebooks/
355%{qt_datadir}/phrasebooks/*
356%{qt_bindir}/linguist.exe
357
358%post linguist
359%wps_object_create_begin -n %{name}-linguist
360%{pkg_wps_folder_create}
361%{pkg_wps_base}_LINGUIST:WPProgram|Linguist|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/linguist.exe))
362%wps_object_create_end
363
364%postun linguist
365%wps_object_delete_all -n %{name}-linguist
366
367#------------------------------------------------------------------------------
368%package assistant
369#------------------------------------------------------------------------------
370Summary: Qt 4 Assistant tool
371Group: Development/Tools
372
373Requires: lib%{name}-gui = %{version}-%{release}
374
375%description assistant
376%{descr_brief}
377
378This package contains the Qt Assistant tool used to read and search the Qt
379Toolkit reference documentation.
380
381%files assistant
382%defattr(-,root,root,-)
383%{qt_translationdir}/assistant_??.qm
384%{qt_translationdir}/assistant_??_??.qm
385%{qt_bindir}/assistant.exe
386
387%post assistant
388%wps_object_create_begin -n %{name}-assistant
389%{pkg_wps_folder_create}
390%{pkg_wps_base}_ASSISTANT:WPProgram|Assistant|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/assistant.exe))
391%wps_object_create_end
392
393# clean up the assistant cache & search index (@todo other users?)
394rm -f "$HOME/.local/share/data/Trolltech/Assistant/assistant.qch.%{ver_major}.%{ver_minor}"
395rm -f "$HOME/.local/share/data/Trolltech/Assistant/qthelpcollection_%{ver_major}.%{ver_minor}.%{ver_patch}.qhc"
396rm -rf "$HOME/.local/share/data/Trolltech/Assistant/.qthelpcollection_%{ver_major}.%{ver_minor}.%{ver_patch}"
397
398%postun assistant
399%wps_object_delete_all -n %{name}-assistant
400
401#------------------------------------------------------------------------------
402%package designer
403#------------------------------------------------------------------------------
404Summary: Qt 4 Designer tool
405Group: Development/Tools
406
407Requires: lib%{name}-gui = %{version}-%{release}
408Requires: lib%{name}-designer = %{version}-%{release}
409
410%description designer
411%{descr_brief}
412
413This package contains the Qt Designer tool used to for designing and building
414graphical user interfaces from Qt components.
415
416%files designer
417%defattr(-,root,root,-)
418%{qt_translationdir}/designer_??.qm
419%{qt_translationdir}/designer_??_??.qm
420%{qt_bindir}/designer.exe
421
422%post designer
423%wps_object_create_begin -n %{name}-designer
424%{pkg_wps_folder_create}
425%{pkg_wps_base}_DESIGNER:WPProgram|Designer|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/designer.exe))
426%wps_object_create_end
427
428%postun designer
429%wps_object_delete_all -n %{name}-designer
430
431#------------------------------------------------------------------------------
432%package devel-tools
433#------------------------------------------------------------------------------
434Summary: Qt 4 development tools
435Group: Development/Tools
436
437Requires: lib%{name}-gui = %{version}-%{release}
438
439%description devel-tools
440%{descr_brief}
441
442This package contains tools used to assist in Qt development, including
443PixelTool, Help Converter and other applications.
444
445%files devel-tools
446%defattr(-,root,root,-)
447%{qt_bindir}/lconvert.exe
448%{qt_bindir}/pixeltool.exe
449%{qt_bindir}/qcollectiongenerator.exe
450%{qt_bindir}/qdoc3.exe
451%{qt_bindir}/qhelpconverter.exe
452%{qt_bindir}/qhelpgenerator.exe
453%{qt_bindir}/qt3to4.exe
454%{qt_bindir}/qttracereplay.exe
455%{qt_bindir}/xmlpatterns.exe
456%{qt_bindir}/xmlpatternsvalidator.exe
457
458%post devel-tools
459%wps_object_create_begin -n %{name}-devel-tools
460%{pkg_wps_folder_create}
461%{pkg_wps_base}_PIXELTOOL:WPProgram|Pixel Tool|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/pixeltool.exe))
462%{pkg_wps_base}_HELPCONVERTER:WPProgram|Help Converter|%{pkg_wps_folder_id}|EXENAME=((%{qt_bindir}/qhelpconverter.exe))
463%wps_object_create_end
464
465%postun devel-tools
466%wps_object_delete_all -n %{name}-devel-tools
467
468#------------------------------------------------------------------------------
469%package doc
470#------------------------------------------------------------------------------
471Summary: Qt 4 API documentation
472Group: Documentation
473BuildArch: noarch
474
475Requires: lib%{name} = %{version}-%{release}
476Requires: %{name}-assistant = %{version}-%{release}
477
478%description doc
479%{descr_brief}
480
481This package contains the Qt Toolkit reference documentation that provides the
482detailed description of all Qt classes and tools.
483
484%files doc
485%defattr(-,root,root,-)
486%doc %{qt_docdir}/qch/*.qch
487
488%post doc
489%wps_object_create_begin -n %{name}-doc
490%{pkg_wps_folder_create}
491%{pkg_wps_base}_README_FOLDER:WPFolder|Readme Files|%{pkg_wps_folder_id}
492%{pkg_wps_base}_README:WPShadow|README|<%{pkg_wps_base}_README_FOLDER>|SHADOWID=((%{pkg_docdir}/README))
493%{pkg_wps_base}_CHANGES:WPShadow|CHANGES|<%{pkg_wps_base}_README_FOLDER>|SHADOWID=((%{pkg_docdir}/changes-4.7.3))
494%{pkg_wps_base}_README_OS2:WPShadow|README.OS2|<%{pkg_wps_base}_README_FOLDER>|SHADOWID=((%{pkg_docdir}/README.OS2))
495%{pkg_wps_base}_CHANGES_OS2:WPShadow|CHANGES.OS2|<%{pkg_wps_base}_README_FOLDER>|SHADOWID=((%{pkg_docdir}/CHANGES.OS2))
496%wps_object_create_end
497
498%postun doc
499%wps_object_delete_all -n %{name}-doc
500
501#------------------------------------------------------------------------------
502%package -n lib%{name}-devel
503#------------------------------------------------------------------------------
504Summary: Qt 4 development files
505Group: Development/Libraries
506
507Requires: lib%{name}-gui = %{version}-%{release}
508Requires: lib%{name}-designer = %{version}-%{release}
509
510%description -n lib%{name}-devel
511%{descr_brief}
512
513This package contains the headers, libraries and tools necessary to develop
514applications using the Qt toolkit.
515
516%files -n lib%{name}-devel
517%defattr(-,root,root,-)
518%if "%{qt_headerdir}" != "%{_includedir}"
519%dir %{qt_headerdir}/
520%endif
521%{qt_headerdir}/*
522%exclude %{qt_headerdir}/Qt/QtWebKit
523%exclude %{qt_headerdir}/Qt/qgraphicswebview.h
524%exclude %{qt_headerdir}/Qt/qweb*.h
525%exclude %{qt_headerdir}/QtWebKit/
526%{qt_libdir}/*.lib
527%{qt_libdir}/*.prl
528%exclude %{qt_libdir}/QtWebKit%{ver_major}.lib
529%exclude %{qt_libdir}/QtWebKit.prl
530%dir %{qt_datadir}/mkspecs/
531%{qt_datadir}/mkspecs/*
532%exclude %{qt_datadir}/mkspecs/modules/qt_webkit_version.pri
533%{qt_datadir}/q3porting.xml
534%{qt_bindir}/lrelease.exe
535%{qt_bindir}/lupdate.exe
536%{qt_bindir}/moc.exe
537%if "%{qt_bindir}" != "%{_bindir}"
538%{_bindir}/qmake.exe
539%endif
540%{qt_bindir}/qmake.exe
541%{qt_bindir}/rcc.exe
542%{qt_bindir}/uic.exe
543
544#------------------------------------------------------------------------------
545%package -n lib%{name}-webkit-devel
546#------------------------------------------------------------------------------
547Summary: Qt 4 WebKit development files
548Group: Development/Libraries
549
550Requires: lib%{name}-webkit = %{version}-%{release}
551Requires: lib%{name}-devel = %{version}-%{release}
552
553%description -n lib%{name}-webkit-devel
554%{descr_brief}
555
556This package contains the headers, libraries and tools necessary to
557develop applications using the Qt WebKit technology.
558
559%files -n lib%{name}-webkit-devel
560%defattr(-,root,root,-)
561%{qt_headerdir}/Qt/QtWebKit
562%{qt_headerdir}/Qt/qgraphicswebview.h
563%{qt_headerdir}/Qt/qweb*.h
564%{qt_headerdir}/QtWebKit/
565%{qt_libdir}/QtWebKit%{ver_major}.lib
566%{qt_libdir}/QtWebKit.prl
567%{qt_datadir}/mkspecs/modules/qt_webkit_version.pri
568
569#------------------------------------------------------------------------------
570%package devel-kit
571#------------------------------------------------------------------------------
572Summary: Qt 4 development kit
573Group: Development/Libraries
574
575Requires: %{name}-demos = %{version}-%{release}
576Requires: %{name}-qmlviewer = %{version}-%{release}
577Requires: %{name}-linguist = %{version}-%{release}
578Requires: %{name}-assistant = %{version}-%{release}
579Requires: %{name}-designer = %{version}-%{release}
580Requires: %{name}-devel-tools = %{version}-%{release}
581Requires: %{name}-doc = %{version}-%{release}
582Requires: lib%{name}-devel = %{version}-%{release}
583Requires: lib%{name}-webkit-devel = %{version}-%{release}
584
585%description devel-kit
586%{descr_brief}
587
588This meta package installs all individual packages containing various Qt
589development components, including the Qt headers and libraries, the Linguist,
590Assistant and Designer applications, development tools, example
591Qt applications and the API documentation.
592
593%files devel-kit
594
595#------------------------------------------------------------------------------
596%prep
597#------------------------------------------------------------------------------
598
599%if !0%{?skip_prep}
600
601%if 0%{?master_mode}
602%if !0%{?skip_prep_export}
603# get clean source tree from SVN (both for building and for SRPM)
604%setup -n "%{name}-%{version}" -Tc
605svn export %{svn_url} . --force
606rm -f "%{_sourcedir}/%{name}-%{version}.zip"
607(cd .. && zip -SrX9 "%{_sourcedir}/%{name}-%{version}.zip" "%{name}-%{version}")
608%else
609# use source tree in %{QT_SOURCE_TREE} (e.g. shadow build)
610%setup -n "%{name}-%{version}" -Tc%{?skip_prep_clean:D}
611%endif
612%else
613# use source zip
614%setup -q
615%endif
616
617%endif # if !0%{?skip_prep}
618
619#------------------------------------------------------------------------------
620%build
621#------------------------------------------------------------------------------
622
623%if !0%{?skip_build}
624
625die() { echo "ERROR: $@"; exit 1; }
626check_var() { eval "[ -n \"\$$1\" ] || die \"$1 variable is not set.\""; }
627
628%if "%{?svn_revision}" == ""
629QT_BUILD_ID=$(svn info %{svn_url} | sed -nre 's/^Last Changed Rev: ([0-9]+)$/\1/p')
630[ -z "$QT_BUILD_ID" ] && die "Cannot determine SVN revision."
631%else
632QT_BUILD_ID=%{svn_revision}
633%endif
634
635# Qt source tree (DOS format)
636QT_SOURCE_TREE_D=$(echo "%{QT_SOURCE_TREE}" | tr '/' '\\')
637
638# Sanity checks (laking these would turn off features that must be ON)
639check_var "CUPS_INCLUDEPATH"
640check_var "MYSQL_INCLUDEPATH"
641check_var "MYSQL_LIBS"
642check_var "PSQL_INCLUDEPATH"
643check_var "PSQL_LIBS"
644
645# Mapsym must be present (for debug info packages)
646[ -z "$(mapsym 2>&1)" ] && die "Cannot find mapsym tool."
647
648# Non-root UNIXROOT is not currently supported because of make install
649# that will install to a subtree in such case (which is not expected
650# by %install below). @todo One solution is to move everything from that
651# subtree right to %{buildroot}/@unixroot after make install.
652[ -z "$(echo "$UNIXROOT" | sed -re 's/^[a-bA-b]:$//')" ] || \
653 die "UNIXROOT must be the root directory"
654
655[ -z "$MAKE_JOBS" ] && MAKE_JOBS=1
656
657# Qt links to some OS/2 DLLs directly (w/o import libs)
658export LIBRARY_PATH=%{os2_boot_drive}/OS2/DLL\;%{os2_boot_drive}/MPTN/DLL\;$LIBRARY_PATH
659
660# CMD.EXE is required by the build process for now
661export MAKESHELL=%{os2_boot_drive}\\OS2\\CMD.EXE
662
663library_paths='
664 --official-build-quiet $QT_BUILD_ID
665 -prefix "%{qt_prefix}"
666 -datadir "%{qt_datadir}"
667 -libdir "%{qt_libdir}"
668 -headerdir "%{qt_headerdir}"
669 -bindir "%{qt_bindir}"
670 -plugindir "%{qt_plugindir}"
671 -importdir "%{qt_importdir}"
672 -demosdir "%{qt_demosdir}"
673 -examplesdir "%{qt_examplesdir}"
674 -docdir "%{qt_docdir}"
675 -translationdir "%{qt_translationdir}"
676 -sysconfdir "%{qt_sysconfdir}"'
677
678BUILDDIR_D=$(echo "%{_builddir}/%{buildsubdir}" | sed -re 's,/,\\,g')
679
680# make sure the right DLLs are used by the build (and in particular by qdoc
681# in make docs) in case if there is another Qt version installed
682export PATH="$BUILDDIR_D\\bin\;$PATH"
683export BEGINLIBPATH="$BUILDDIR_D\\bin\;$BEGINLIBPATH"
684
685cmd /c $QT_SOURCE_TREE_D\\configure.cmd $library_paths
686
687make -j$MAKE_JOBS
688
689%if !0%{?skip_build_docs}
690# qdoc needs the qsqlite plugin but nothing is installed to target locations
691# yet, so generate qt.conf to override paths
692echo \
693"[Paths]
694Prefix = ..
695Settings = \$(ETC)/xdg
696Examples = examples
697Demos = demos" \
698> "%{_builddir}/%{buildsubdir}/bin/qt.conf"
699make docs -j$MAKE_JOBS
700rm -f "%{_builddir}/%{buildsubdir}/bin/qt.conf"
701%endif
702
703%endif # if !0%{?skip_build}
704
705#------------------------------------------------------------------------------
706%install
707#------------------------------------------------------------------------------
708
709%if !0%{?skip_install}
710
711rm -rf %{buildroot}
712
713# Qt links to some OS/2 DLLs directly (w/o import libs)
714export LIBRARY_PATH=%{os2_boot_drive}/OS2/DLL\;%{os2_boot_drive}/MPTN/DLL\;$LIBRARY_PATH
715
716# CMD.EXE is required by the build process for now
717export MAKESHELL=%{os2_boot_drive}\\OS2\\CMD.EXE
718
719# exclude install_htmldocs from install targets
720make install_subtargets install_qchdocs install_qmake install_mkspecs \
721 INSTALL_ROOT=$(echo "%{buildroot}/@unixroot" | sed -re 's,/,\\,g')
722
723# copy READMEs (make install doesn't do that)
724mkdir -p "%{buildroot}/%{pkg_docdir}/"
725cp -dp \
726 %{QT_SOURCE_TREE}/LICENSE.* \
727 "%{QT_SOURCE_TREE}/LGPL_EXCEPTION.txt" \
728 "%{QT_SOURCE_TREE}/README" \
729 "%{QT_SOURCE_TREE}/changes-%{ver_major}.%{ver_minor}.%{ver_patch}" \
730 "%{QT_SOURCE_TREE}/README.OS2" \
731 "%{QT_SOURCE_TREE}/CHANGES.OS2" \
732 "%{buildroot}/%{pkg_docdir}/"
733
734# remove *.dll from bin (they also live in %{qt_libdir})
735dlls=$(find "%{buildroot}/%{qt_bindir}/" -type f -name *.dll)
736rm -f $dlls ${dlls%.*}.sym
737
738# remove translations we don't need
739rm -f %{buildroot}/%{qt_translationdir}/qtconfig_??.qm \
740 %{buildroot}/%{qt_translationdir}/qtconfig_??_??.qm
741rm -f %{buildroot}/%{qt_translationdir}/qvfb_??.qm \
742 %{buildroot}/%{qt_translationdir}/qvfb_??_??.qm
743
744# move qmake.exe to %{_bindir} (to have it in PATH) and symlink back to qt4/bin
745%if "%{qt_bindir}" != "%{_bindir}"
746mkdir -p "%{buildroot}/%{_bindir}/"
747mv "%{buildroot}/%{qt_bindir}/qmake.exe" "%{buildroot}/%{_bindir}/"
748ln -s "%{_bindir}/qmake.exe" "%{buildroot}/%{qt_bindir}/qmake.exe"
749mv "%{buildroot}/%{qt_bindir}/qmake.sym" "%{buildroot}/%{_bindir}/"
750%endif
751
752# @todo temporarily split out .sym files (until we generate -debuginfo packages)
753rm -rf %{buildroot}.sym
754for f in $(cd "%{buildroot}" && find -type f -name "*.sym"); do
755 fd="${f%/*}"/
756 [ "$fd" = "$f/" ] && fd=
757 [ -d "%{buildroot}.sym/$fd" ] || mkdir -p "%{buildroot}.sym/$fd"
758 mv "%{buildroot}/$f" "%{buildroot}.sym/$fd"
759done
760
761%endif # if !0%{?skip_install}
762
763#------------------------------------------------------------------------------
764%clean
765#------------------------------------------------------------------------------
766
767%if !0%{?skip_clean}
768
769%if 0%{?master_mode}
770%if "%{?create_zips_script}" != ""
771# @todo put split out .sym files back
772(cd "%{buildroot}.sym" && find . -type f -name '*.sym' -exec mv "{}" "%{buildroot}/{}" \;)
773rm -rf "%{buildroot}.sym"
774%{create_zips_script} all "%{buildroot}" "%{_topdir}/zip"
775%endif
776%endif
777
778rm -rf %{buildroot}
779
780%endif # if !0%{?skip_clean}
781
782#------------------------------------------------------------------------------
783%changelog
784
785* Fri Mar 13 2013 Dmitriy Kuminov <dmik/coding.org> 4.7.3.2-1
786- New release 4.7.3.2 (4.7.3 GA2). See %{pkg_docdir}/CHANGES.OS2
787 for more information.
788
789* Thu Sep 15 2011 Dmitriy Kuminov <dmik/coding.org> 4.7.3-1
790- New release 4.7.3. See %{pkg_docdir}/changes-4.7.3 and
791 %{pkg_docdir}/CHANGES.OS2 for more information.
Note: See TracBrowser for help on using the repository browser.