# HG changeset patch # User Michael Schloh von Bennewitz # Date 1306664203 -7200 # Node ID 24888fe4de94086c5f3c66bf8619267db107d17e # Parent 870131689a5c0f468bd24317977dd2acda779ab3 Make a second cut at needed corrections for upgrade to version 4.7.3. diff -r 870131689a5c -r 24888fe4de94 qt/qt.spec --- a/qt/qt.spec Sat May 21 22:05:42 2011 +0200 +++ b/qt/qt.spec Sun May 29 12:16:43 2011 +0200 @@ -82,10 +82,10 @@ %description Qt is a comprehensive C++ framework for cross-platform application - development. Using Qt, you can develop applications and user - interfaces once, and deploy them across many desktop and embedded - operating systems without rewriting the source code. This package - distribution builds all modules of the Qt/X11 Open Source Edition. + development. It plays the role of a widget toolkit in facilitating + the development of software with a graphical user interface, however + Qt is useful for developing command line tools and consoles for + servers as well. %track prog qt = { @@ -97,11 +97,11 @@ %prep # announce exceptional build requirements ( echo "This package has exceptional build requirements:" - echo " qt-%{version}-root (4,5 Go)" - echo " qt-everywhere-opensource-src-%{version} (5,5 Go)" + echo " qt-%{version}-root (5 Go)" + echo " qt-everywhere-opensource-src-%{version} (6 Go)" echo " qt-%{version}-.--.rpm (2 Go)" - echo "Building with no options takes 2,0 hours on a dual core" - echo "2 GHz CPU, or 5 hours with all build options enabled." + echo "Building with no options takes 3,0 hours on a dual core" + echo "2 GHz CPU, or 7 hours with all build options enabled." ) | %{l_rpmtool} msg -b -t notice %setup -q -n qt-everywhere-opensource-src-%{version} @@ -205,7 +205,17 @@ %{l_shtool} subst \ -e 's;^mac[^:][^:]*:\(LIBS\);\1;' \ config.tests/unix/iconv/iconv.pro -# MSvB Aktualisierung: The uiclibs line is probably an error, remove... + # Trolltech Bug: + # Missing libmng test! Parts (src/gui/image/qmnghandler.cpp) use + # such libmng methods as mng_create(3), mng_putchunk_term(3)... + # These are only optional parts of typical MNG implementations. + # Questions surround whether the MNG standard [1] requires these + # API methods in their expected form, or if this alone is excuse + # enough for neglecting such build time configuration. + # [1] http://www.libpng.org/pub/mng/spec/ + # A work around is to force integration of Qt 3rdparty embedded + # MNG logic, thus weakening the loosely coupled nature of Qt + # components and potentially affecting security. # MSvB In R/D: uiclibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig lcms` # MSvB In R/D: %{l_shtool} subst \ # MSvB In R/D: -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \ @@ -289,7 +299,7 @@ # MSvB In R/D: echo "DEFINES += QT_NO_WEBKIT" \ # MSvB In R/D: >>tools/assistant/tools/assistant/assistant.pro # MSvB In R/D: %{l_shtool} subst \ -# MSvB In R/D: -e "s;Qt.s Classes;All Classes;" \ +# MSvB In R/D: -e 's;Qt.s Classes;All Classes;' \ # MSvB In R/D: tools/assistant/tools/assistant/doc/assistant.qdoc \ # MSvB In R/D: tools/qdoc3/doc/qdoc-manual.qdoc \ # MSvB In R/D: tools/qdoc3/doc/files/qt.qdocconf \ @@ -539,7 +549,15 @@ #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb # carry out static build procedure - %{l_make} %{l_mflags -O} sub-src + # Trolltech Bug: + # Problem with dependency order, causes compiling of qtreeview.cpp + # with dependency to moc_qtreeview.cpp before moc(1) has finished. + # The implemented work around is disabling parallel make, causing + # a nearly 100% build deceleration but allowing the build to procede. + # In file included from itemviews/qtreeview.cpp:3761:0: + # .moc/release-static/moc_qtreeview.cpp: In member function 'QPixmap QTreeViewPrivate::renderTreeToPixmapForAnimation(const QRect&) const': + # .moc/release-static/moc_qtreeview.cpp:209:1: internal compiler error: Segmentation fault + %{l_make} %{l_mflags} sub-src %if "%{with_tools}" == "yes" %{l_make} %{l_mflags -O} \ sub-tools-make_default-ordered sub-translations-make_default-ordered @@ -598,7 +616,12 @@ # correct paths in pkg-config(1) configuration files %{l_shtool} subst \ - -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};' \ + -e 's;=\([\t ]*\)[^\t ]*qt-everywhere-opensource-src-%{version};=\1%{l_prefix};g' \ + $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/* + # keep library paths clean by removing redundant paths + %{l_shtool} subst \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ $RPM_BUILD_ROOT%{l_prefix}/lib/pkgconfig/* # install static or shared plugins according to user choice @@ -617,8 +640,12 @@ # offer limited support of pkg-config(1) for shared libs # substitution unfortunately only handles paths with no whitespace %{l_shtool} subst \ - -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;g" \ - -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;' \ + -e 's;=\([\t ]*\)[^\t ]*qt-everywhere-opensource-src-%{version};=\1%{l_prefix};g' \ + $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* + # keep library paths clean by removing redundant paths + %{l_shtool} subst \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* # explain nonstandard shared library placement @@ -645,17 +672,30 @@ # correct temporary runtime link paths (static libs) %{l_shtool} subst \ - -e "s;\(QMAKE_PRL_BUILD_DIR[\t ][\t ]*=\).*;\1 /.../qt-everywhere-opensource-src-%{version};" \ - -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \ + -e 's;/./;/;g' \ + -e 's;\(QMAKE_PRL_BUILD_DIR[\t ]*=\).*\(qt-everywhere-opensource-src-%{version}.*\);\1 /.../\2;' \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};' \ + $RPM_BUILD_ROOT%{l_prefix}/lib/qt/plugins/*/*.prl \ + $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ + $RPM_BUILD_ROOT%{l_prefix}/lib/*.la + # keep library paths clean by removing redundant paths + %{l_shtool} subst \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ $RPM_BUILD_ROOT%{l_prefix}/lib/*.la %if "%{with_shared}" == "yes" # correct temporary runtime link paths (dynamic libs) %{l_shtool} subst \ - -e "s;\(QMAKE_PRL_BUILD_DIR[\t ][\t ]*=\).*;\1 /.../qt-everywhere-opensource-src-%{version};" \ - -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L\1%{l_prefix}/lib/qt/dynamic;g" \ + -e 's;/./;/;g' \ + -e 's;\(QMAKE_PRL_BUILD_DIR[\t ]*=\).*\(qt-everywhere-opensource-src-%{version}.*\);\1 /.../\2;' \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}/lib;-L%{l_prefix}/lib/qt/dynamic;' \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la + # keep library paths clean by removing redundant paths + %{l_shtool} subst \ + -e 's;-L[\t ]*[^\t ]*qt-everywhere-opensource-src-%{version}[^\t ]*[\t ]*;;g' \ + $RPM_BUILD_ROOT%{l_prefix}/lib/*.prl \ + $RPM_BUILD_ROOT%{l_prefix}/lib/*.la %endif ## Doesn't work as expected, because RPM reads the --[in|ex]cludedocs