qt/qt.spec

changeset 341
24888fe4de94
parent 340
870131689a5c
child 342
90f1326e8f73
equal deleted inserted replaced
25:10005ed75aff 26:ef644fee8269
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

mercurial