80 AutoReqProv: no |
80 AutoReqProv: no |
81 Provides: QTSDK |
81 Provides: QTSDK |
82 |
82 |
83 %description |
83 %description |
84 Qt is a comprehensive C++ framework for cross-platform application |
84 Qt is a comprehensive C++ framework for cross-platform application |
85 development. Using Qt, you can develop applications and user |
85 development. It plays the role of a widget toolkit in facilitating |
86 interfaces once, and deploy them across many desktop and embedded |
86 the development of software with a graphical user interface, however |
87 operating systems without rewriting the source code. This package |
87 Qt is useful for developing command line tools and consoles for |
88 distribution builds all modules of the Qt/X11 Open Source Edition. |
88 servers as well. |
89 |
89 |
90 %track |
90 %track |
91 prog qt = { |
91 prog qt = { |
92 version = %{version} |
92 version = %{version} |
93 url = ftp://ftp.qt.nokia.com/qt/source/ |
93 url = ftp://ftp.qt.nokia.com/qt/source/ |
95 } |
95 } |
96 |
96 |
97 %prep |
97 %prep |
98 # announce exceptional build requirements |
98 # announce exceptional build requirements |
99 ( echo "This package has exceptional build requirements:" |
99 ( echo "This package has exceptional build requirements:" |
100 echo " qt-%{version}-root (4,5 Go)" |
100 echo " qt-%{version}-root (5 Go)" |
101 echo " qt-everywhere-opensource-src-%{version} (5,5 Go)" |
101 echo " qt-everywhere-opensource-src-%{version} (6 Go)" |
102 echo " qt-%{version}-<date>.<arch>-<os>-<tag>.rpm (2 Go)" |
102 echo " qt-%{version}-<date>.<arch>-<os>-<tag>.rpm (2 Go)" |
103 echo "Building with no options takes 2,0 hours on a dual core" |
103 echo "Building with no options takes 3,0 hours on a dual core" |
104 echo "2 GHz CPU, or 5 hours with all build options enabled." |
104 echo "2 GHz CPU, or 7 hours with all build options enabled." |
105 ) | %{l_rpmtool} msg -b -t notice |
105 ) | %{l_rpmtool} msg -b -t notice |
106 |
106 |
107 %setup -q -n qt-everywhere-opensource-src-%{version} |
107 %setup -q -n qt-everywhere-opensource-src-%{version} |
108 x11_incdir=`%{l_rc} --query x11_incdir` |
108 x11_incdir=`%{l_rc} --query x11_incdir` |
109 x11_libdir=`%{l_rc} --query x11_libdir` |
109 x11_libdir=`%{l_rc} --query x11_libdir` |
203 # Iconv support cannot be enabled due to functionality tests! |
203 # Iconv support cannot be enabled due to functionality tests! |
204 # Turn on verbose messaging (-v) to ./configure to see the final report. |
204 # Turn on verbose messaging (-v) to ./configure to see the final report. |
205 %{l_shtool} subst \ |
205 %{l_shtool} subst \ |
206 -e 's;^mac[^:][^:]*:\(LIBS\);\1;' \ |
206 -e 's;^mac[^:][^:]*:\(LIBS\);\1;' \ |
207 config.tests/unix/iconv/iconv.pro |
207 config.tests/unix/iconv/iconv.pro |
208 # MSvB Aktualisierung: The uiclibs line is probably an error, remove... |
208 # Trolltech Bug: |
|
209 # Missing libmng test! Parts (src/gui/image/qmnghandler.cpp) use |
|
210 # such libmng methods as mng_create(3), mng_putchunk_term(3)... |
|
211 # These are only optional parts of typical MNG implementations. |
|
212 # Questions surround whether the MNG standard [1] requires these |
|
213 # API methods in their expected form, or if this alone is excuse |
|
214 # enough for neglecting such build time configuration. |
|
215 # [1] http://www.libpng.org/pub/mng/spec/ |
|
216 # A work around is to force integration of Qt 3rdparty embedded |
|
217 # MNG logic, thus weakening the loosely coupled nature of Qt |
|
218 # components and potentially affecting security. |
209 # MSvB In R/D: uiclibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig lcms` |
219 # MSvB In R/D: uiclibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig lcms` |
210 # MSvB In R/D: %{l_shtool} subst \ |
220 # MSvB In R/D: %{l_shtool} subst \ |
211 # MSvB In R/D: -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \ |
221 # MSvB In R/D: -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \ |
212 # MSvB In R/D: -e "s;LIBS .*= \$\$QT_LFLAGS_MYSQL;LIBS += $mysqllibs;" \ |
222 # MSvB In R/D: -e "s;LIBS .*= \$\$QT_LFLAGS_MYSQL;LIBS += $mysqllibs;" \ |
213 # MSvB In R/D: src/sql/drivers/drivers.pri |
223 # MSvB In R/D: src/sql/drivers/drivers.pri |
287 # MSvB In R/D: -e 's;webkit;web-broken-kit;g' \ |
297 # MSvB In R/D: -e 's;webkit;web-broken-kit;g' \ |
288 # MSvB In R/D: tools/assistant/tools/assistant/assistant.pro |
298 # MSvB In R/D: tools/assistant/tools/assistant/assistant.pro |
289 # MSvB In R/D: echo "DEFINES += QT_NO_WEBKIT" \ |
299 # MSvB In R/D: echo "DEFINES += QT_NO_WEBKIT" \ |
290 # MSvB In R/D: >>tools/assistant/tools/assistant/assistant.pro |
300 # MSvB In R/D: >>tools/assistant/tools/assistant/assistant.pro |
291 # MSvB In R/D: %{l_shtool} subst \ |
301 # MSvB In R/D: %{l_shtool} subst \ |
292 # MSvB In R/D: -e "s;Qt.s Classes;All Classes;" \ |
302 # MSvB In R/D: -e 's;Qt.s Classes;All Classes;' \ |
293 # MSvB In R/D: tools/assistant/tools/assistant/doc/assistant.qdoc \ |
303 # MSvB In R/D: tools/assistant/tools/assistant/doc/assistant.qdoc \ |
294 # MSvB In R/D: tools/qdoc3/doc/qdoc-manual.qdoc \ |
304 # MSvB In R/D: tools/qdoc3/doc/qdoc-manual.qdoc \ |
295 # MSvB In R/D: tools/qdoc3/doc/files/qt.qdocconf \ |
305 # MSvB In R/D: tools/qdoc3/doc/files/qt.qdocconf \ |
296 # MSvB In R/D: tools/qdoc3/test/qt-build-docs.qdocconf \ |
306 # MSvB In R/D: tools/qdoc3/test/qt-build-docs.qdocconf \ |
297 # MSvB In R/D: tools/qdoc3/test/qt.qdocconf |
307 # MSvB In R/D: tools/qdoc3/test/qt.qdocconf |
537 # default options are implicitly used, for example... |
547 # default options are implicitly used, for example... |
538 #-no-fast -exceptions -accessibility -stl -qt3support -nis |
548 #-no-fast -exceptions -accessibility -stl -qt3support -nis |
539 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb |
549 #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb |
540 |
550 |
541 # carry out static build procedure |
551 # carry out static build procedure |
542 %{l_make} %{l_mflags -O} sub-src |
552 # Trolltech Bug: |
|
553 # Problem with dependency order, causes compiling of qtreeview.cpp |
|
554 # with dependency to moc_qtreeview.cpp before moc(1) has finished. |
|
555 # The implemented work around is disabling parallel make, causing |
|
556 # a nearly 100% build deceleration but allowing the build to procede. |
|
557 # In file included from itemviews/qtreeview.cpp:3761:0: |
|
558 # .moc/release-static/moc_qtreeview.cpp: In member function 'QPixmap QTreeViewPrivate::renderTreeToPixmapForAnimation(const QRect&) const': |
|
559 # .moc/release-static/moc_qtreeview.cpp:209:1: internal compiler error: Segmentation fault |
|
560 %{l_make} %{l_mflags} sub-src |
543 %if "%{with_tools}" == "yes" |
561 %if "%{with_tools}" == "yes" |
544 %{l_make} %{l_mflags -O} \ |
562 %{l_make} %{l_mflags -O} \ |
545 sub-tools-make_default-ordered sub-translations-make_default-ordered |
563 sub-tools-make_default-ordered sub-translations-make_default-ordered |
546 %endif |
564 %endif |
547 %if "%{with_examples}" == "yes" |
565 %if "%{with_examples}" == "yes" |
596 lib/libjscore.a lib/libjscore.prl \ |
614 lib/libjscore.a lib/libjscore.prl \ |
597 $RPM_BUILD_ROOT%{l_prefix}/lib/ |
615 $RPM_BUILD_ROOT%{l_prefix}/lib/ |
598 |
616 |
599 # correct paths in pkg-config(1) configuration files |
617 # correct paths in pkg-config(1) configuration files |
600 %{l_shtool} subst \ |
618 %{l_shtool} subst \ |
601 -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \ |
619 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};' \ |
|
620 -e 's;=\([\t ]*\)[^\t ]*qt-everywhere-opensource-src-%{version};=\1%{l_prefix};g' \ |
|
621 $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/* |
|
622 # keep library paths clean by removing redundant paths |
|
623 %{l_shtool} subst \ |
|
624 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ |
602 $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/* |
625 $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/* |
603 |
626 |
604 # install static or shared plugins according to user choice |
627 # install static or shared plugins according to user choice |
605 %if "%{with_shared}" != "yes" |
628 %if "%{with_shared}" != "yes" |
606 %{l_make} %{l_mflags} sub-plugins-install_subtargets-ordered INSTALL_ROOT="$RPM_BUILD_ROOT" |
629 %{l_make} %{l_mflags} sub-plugins-install_subtargets-ordered INSTALL_ROOT="$RPM_BUILD_ROOT" |
615 %{l_tar} cf - -C sharbuild dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt |
638 %{l_tar} cf - -C sharbuild dynamic | %{l_tar} xf - -C $RPM_BUILD_ROOT%{l_prefix}/lib/qt |
616 |
639 |
617 # offer limited support of pkg-config(1) for shared libs |
640 # offer limited support of pkg-config(1) for shared libs |
618 # substitution unfortunately only handles paths with no whitespace |
641 # substitution unfortunately only handles paths with no whitespace |
619 %{l_shtool} subst \ |
642 %{l_shtool} subst \ |
620 -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;g" \ |
643 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;' \ |
621 -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \ |
644 -e 's;=\([\t ]*\)[^\t ]*qt-everywhere-opensource-src-%{version};=\1%{l_prefix};g' \ |
|
645 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* |
|
646 # keep library paths clean by removing redundant paths |
|
647 %{l_shtool} subst \ |
|
648 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ |
622 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* |
649 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* |
623 |
650 |
624 # explain nonstandard shared library placement |
651 # explain nonstandard shared library placement |
625 ( echo "This OpenPKG Qt build is using the with_shared option." |
652 ( echo "This OpenPKG Qt build is using the with_shared option." |
626 echo "" |
653 echo "" |
643 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README |
670 ) >$RPM_BUILD_ROOT%{l_prefix}/lib/qt/README |
644 %endif |
671 %endif |
645 |
672 |
646 # correct temporary runtime link paths (static libs) |
673 # correct temporary runtime link paths (static libs) |
647 %{l_shtool} subst \ |
674 %{l_shtool} subst \ |
648 -e "s;\(QMAKE_PRL_BUILD_DIR[\t ][\t ]*=\).*;\1 /.../qt-everywhere-opensource-src-%{version};" \ |
675 -e 's;/./;/;g' \ |
649 -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \ |
676 -e 's;\(QMAKE_PRL_BUILD_DIR[\t ]*=\).*\(qt-everywhere-opensource-src-%{version}.*\);\1 /.../\2;' \ |
|
677 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};' \ |
|
678 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/plugins/*/*.prl \ |
|
679 $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ |
|
680 $RPM_BUILD_ROOT%{l_prefix}/lib/*.la |
|
681 # keep library paths clean by removing redundant paths |
|
682 %{l_shtool} subst \ |
|
683 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ |
650 $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ |
684 $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ |
651 $RPM_BUILD_ROOT%{l_prefix}/lib/*.la |
685 $RPM_BUILD_ROOT%{l_prefix}/lib/*.la |
652 %if "%{with_shared}" == "yes" |
686 %if "%{with_shared}" == "yes" |
653 # correct temporary runtime link paths (dynamic libs) |
687 # correct temporary runtime link paths (dynamic libs) |
654 %{l_shtool} subst \ |
688 %{l_shtool} subst \ |
655 -e "s;\(QMAKE_PRL_BUILD_DIR[\t ][\t ]*=\).*;\1 /.../qt-everywhere-opensource-src-%{version};" \ |
689 -e 's;/./;/;g' \ |
656 -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L\1%{l_prefix}/lib/qt/dynamic;g" \ |
690 -e 's;\(QMAKE_PRL_BUILD_DIR[\t ]*=\).*\(qt-everywhere-opensource-src-%{version}.*\);\1 /.../\2;' \ |
|
691 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;' \ |
657 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \ |
692 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \ |
658 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la |
693 $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la |
|
694 # keep library paths clean by removing redundant paths |
|
695 %{l_shtool} subst \ |
|
696 -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ |
|
697 $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ |
|
698 $RPM_BUILD_ROOT%{l_prefix}/lib/*.la |
659 %endif |
699 %endif |
660 |
700 |
661 ## Doesn't work as expected, because RPM reads the --[in|ex]cludedocs |
701 ## Doesn't work as expected, because RPM reads the --[in|ex]cludedocs |
662 ## argument only when installing binary packages, rather than building. |
702 ## argument only when installing binary packages, rather than building. |
663 #%define _excludedocs 0 |
703 #%define _excludedocs 0 |