diff -r 438731a46ed1 -r 00697b799711 qt/qt.spec --- a/qt/qt.spec Thu Oct 07 19:04:06 2010 +0200 +++ b/qt/qt.spec Fri Oct 08 23:24:07 2010 +0200 @@ -1,6 +1,6 @@ ## ## qt.spec -- OpenPKG RPM Specification -## Copyright (c) 2009 Michael Schloh von Bennewitz +## Copyright (c) 2010 Michael Schloh von Bennewitz ## ## Permission to use, copy, modify, and distribute this software for ## any purpose with or without fee is hereby granted, provided that @@ -29,9 +29,7 @@ # FIXME: MSvB: Solaris 11 IA-32 builds fail while Linux 2.6.25.18 # FIXME: MSvB: AMD64 builds succeed. # FIXME: MSvB: -# FIXME: MSvB: GNU iconv integration is flawed in Qt 4.5.2, and -# FIXME: MSvB: has been disabled in this build until a new release -# FIXME: MSvB: corrects the problem. +# FIXME: MSvB: -no-webkit added to broken static buildconf # package information Name: qt @@ -43,8 +41,8 @@ Class: EVAL Group: Development License: GPL -Version: 4.5.3 -Release: 20091001 +Version: 4.7.0 +Release: 20101008 # build options %option with_tools yes @@ -54,7 +52,7 @@ %option with_examples no # list of sources -Source0: ftp://ftp.qt.nokia.com/qt/source/qt-x11-opensource-src-%{version}.tar.gz +Source0: ftp://ftp.qt.nokia.com/qt/source/qt-everywhere-opensource-src-%{version}.tar.gz # build information Prefix: %{l_prefix} @@ -90,23 +88,24 @@ prog qt = { version = %{version} url = ftp://ftp.trolltech.com/qt/source/ - regex = qt-x11-opensource-src-(__VER__)\.tar\.gz + regex = qt-everywhere-opensource-src-(__VER__)\.tar\.gz } %prep # announce exceptional build requirements - ( echo "This package has exceptional storage requirements:" + ( echo "This package has exceptional build requirements:" echo " qt-%{version}-root (2,5 Go)" - echo " qt-x11-opensource-src-%{version} (4,5 Go)" + echo " qt-everywhere-opensource-src-%{version} (4,5 Go)" echo " qt-%{version}-.--.rpm (1 Go)" echo "Building with no options takes 0,5 hours on a dual core" echo "2 GHz CPU, or 2 hours with all build options enabled." ) | %{l_rpmtool} msg -b -t notice - %setup -q -n qt-x11-opensource-src-%{version} + %setup -q -n qt-everywhere-opensource-src-%{version} x11_incdir=`%{l_rc} --query x11_incdir` x11_libdir=`%{l_rc} --query x11_libdir` fontconflibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig` + lcmslibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static lcms` openssllibs=`%{l_prefix}/bin/pkg-config --libs --static openssl` loclibs='' @@ -125,7 +124,8 @@ -e 's;\(-z[\t ][\t ]*\)\([^\t \"][^\t \"]*\);\1"\2";g' \ configure %{l_shtool} subst \ - -e "s;\(QMAKE_LIBS_X11.*\)-lfreetype -lfontconfig;\1$fontconflibs;" \ + -e 's; *QMakeVar set QMAKE_CFLAGS_X11.*QT_CFLAGS_FONTCONFIG.*;;' \ + -e 's; *QMakeVar set QMAKE_LIBS_X11.*QT_LIBS_FONTCONFIG.*;;' \ configure %{l_shtool} subst \ -e "s;\(OPENSSL_LIBS *=\) *-lssl -lcrypto;\1 $openssllibs;" \ @@ -135,21 +135,38 @@ -e 's;\(RPATH_FLAGS="\)\\"\$QT_INSTALL_LIBS\\" \($RPATH_FLAGS"\);\1\2;' \ -e "s;\(echo.*QMAKE_RPATHDIR +=\).*\$QT_INSTALL_LIBS\\\\\"\\\";\1 $x11_libdir\";" \ configure + # yes this is needed several times to catch nested occurences of '--cflags' + %{l_shtool} subst \ + -e 's;\(QT_CFLAGS_[^=][^=]*=.*PKG_CONFIG.*\) --cflags ;\1 --cflags-only-other ;g' \ + -e 's;\(QT_CFLAGS_[^=][^=]*=.*PKG_CONFIG.*\) --cflags ;\1 --cflags-only-other ;g' \ + configure %{l_shtool} subst \ -e 's;\(TRY_INCLUDEPATHS = \).*\(\$\$INCLUDEPATH\);\1\2;' \ -e 's;/freetype2;/freetype;' \ config.tests/unix/freetype/freetype.pri %{l_shtool} subst \ + -e "s;\(LIBS.*=.*-lmng\);\1 $lcmslibs;" \ + src/gui/image/qmnghandler.pri + %{l_shtool} subst \ -e "s;^\(LIBS += \)-lfreetype -lfontconfig;\1$fontconflibs;" \ config.tests/x11/fontconfig/fontconfig.pro echo 'INCLUDEPATH += /usr/include/wacomcfg' \ >>src/gui/kernel/x11.pri + echo "contains(QT_CONFIG, fontconfig) { LIBS += $fontconflibs }" \ + >>src/gui/kernel/x11.pri + echo "contains(QT_CONFIG, fontconfig) { LIBS += $fontconflibs }" \ + >>src/gui/text/text.pri + echo "INCLUDEPATH = `%{l_prefix}/bin/pkg-config --cflags-only-I dbus-1 | %{l_shtool} subst -e 's;\-I;;g'`" \ + >>config.tests/unix/dbus/dbus.pro + echo "LIBS = `%{l_prefix}/bin/pkg-config --libs-only-l --static dbus-1`" \ + >>config.tests/unix/dbus/dbus.pro %{l_shtool} subst \ - -e "s;\(LIBS += -lpq\);\1 `%{l_prefix}/bin/pg_config --libs` $loclibs;" \ + -e "s;\(LIBS.*= -lpq\);\1 `%{l_prefix}/bin/pg_config --libs` $loclibs;" \ config.tests/unix/psql/psql.pro %{l_shtool} subst \ - -e 's;^mac:\(LIBS\);\1;' \ + -e 's;^mac[^:][^:]*:\(LIBS\);\1;' \ config.tests/unix/iconv/iconv.pro + uiclibs=`%{l_prefix}/bin/pkg-config --libs-only-l --static fontconfig lcms` %{l_shtool} subst \ -e 's;LIBS .*= -lpq$;LIBS += -lpq -lssl -lcrypto;' \ src/sql/drivers/drivers.pri @@ -161,6 +178,8 @@ -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_PSQL;INCPATH += `pg_config --includedir 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_MYSQL;INCPATH += `mysql_config --include 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ -e "s;QMAKE_CXXFLAGS \*= \$\$QT_CFLAGS_SQLITE;INCPATH += `pkg-config --cflags-only-I sqlite3 2>/dev/null | %{l_shtool} subst -e 's;-I;;g'`;g" \ + -e 's;!static:\(!isEmpty(QT_LFLAGS_PSQL)\);\1;' \ + -e 's;!static:\(LIBS \*= \$\$QT_LFLAGS_PSQL\);\1;' \ src/plugins/sqldrivers/mysql/mysql.pro \ src/plugins/sqldrivers/psql/psql.pro \ src/plugins/sqldrivers/sqlite/sqlite.pro \ @@ -190,7 +209,7 @@ src/gui/text/text.pri %{l_shtool} subst \ -e 's;\(#include *"\)\(tiffio.h"\);\1tiff/\2;' \ - src/plugins/imageformats/tiff/qtiffhandler.cpp + src/gui/image/qtiffhandler.cpp %{l_shtool} subst \ -e 's;\(CONFIG[\t ]*+=[\t ]*qt\);\1 x11;' \ tools/qtconfig/qtconfig.pro @@ -200,7 +219,7 @@ %build # protect against sloppy code inclusion of all unused subprojects - rm -rf src/3rdparty/[^cdhmsw]* src/3rdparty/sql* src/3rdparty/win* + (cd src/3rdparty && rm -rf [^cdehjmswxz]* sql* win* zlib zlib.pri) || exit $? # detect which platform for which to build case "%{l_platform -t}" in @@ -276,7 +295,7 @@ -system-libtiff \ -rpath \ -no-cups \ - -no-iconv \ + -iconv \ -pch \ -dbus-linked \ -opengl \ @@ -293,12 +312,29 @@ ( cd src %{l_make} %{l_mflags -O} \ sub-moc sub-rcc sub-uic sub-uic3 - %{l_make} %{l_mflags -O} \ - sub-corelib sub-xml sub-network sub-gui sub-sql \ - sub-script sub-testlib sub-qt3support sub-dbus \ - sub-opengl sub-xmlpatterns sub-svg sub-plugins \ - sub-webkit sub-scripttools ) || exit $? + %{l_make} %{l_mflags -O} \ + sub-corelib-make_default-ordered \ + sub-xml-make_default-ordered \ + sub-network-make_default-ordered \ + sub-sql-make_default-ordered \ + sub-testlib-make_default-ordered \ + sub-dbus-make_default-ordered \ + sub-gui-make_default-ordered \ + sub-qt3support-make_default-ordered \ + sub-opengl-make_default-ordered \ + sub-xmlpatterns-make_default-ordered \ + sub-multimedia-make_default-ordered \ + sub-svg-make_default-ordered \ + sub-script-make_default-ordered \ + sub-declarative-make_default-ordered \ + sub-javascriptcore-make_default-ordered \ + sub-webkit-make_default-ordered \ + sub-scripttools-make_default-ordered \ + sub-plugins-make_default-ordered \ + sub-imports-make_default-ordered \ + sub-webkitdeclarative-make_default-ordered \ + sub-translations-make_default-ordered # arthur plugin requires libQtDesigner ( cd demos @@ -315,10 +351,7 @@ # would otherwise still contain references to our shared libs build %{l_shtool} mkdir -f -p -m 755 dynamic mv lib/* dynamic/ - ( cd qmake - %{l_make} %{l_mflags} distclean - ) || exit $? - rm -f .qmake.cache + %{l_make} %{l_mflags} confclean %endif # mandatory static build (follows optional shared build) @@ -357,7 +390,7 @@ -openssl-linked \ -xmlpatterns \ -svg \ - -webkit \ + -no-webkit \ -system-zlib \ -qt-gif \ -system-libpng \ @@ -366,7 +399,7 @@ -system-libtiff \ -rpath \ -no-cups \ - -no-iconv \ + -iconv \ -pch \ -dbus-linked \ -opengl \ @@ -380,9 +413,9 @@ #-sm -xshape -xinerama -xcursor -xfixes -xrandr -tablet -xkb # carry out static build procedure - %{l_make} %{l_mflags -O} sub-src + %{l_make} %{l_mflags -O} sub-src sub-translations %if "%{with_tools}" == "yes" - %{l_make} %{l_mflags -O} sub-tools + %{l_make} %{l_mflags -O} sub-tools-make_default-ordered %endif %if "%{with_examples}" == "yes" %{l_make} %{l_mflags -O} \ @@ -401,19 +434,23 @@ sub-corelib-install_subtargets-ordered \ sub-xml-install_subtargets-ordered \ sub-network-install_subtargets-ordered \ + sub-sql-install_subtargets-ordered \ + sub-testlib-install_subtargets-ordered \ + sub-dbus-install_subtargets-ordered \ sub-gui-install_subtargets-ordered \ - sub-sql-install_subtargets-ordered \ - sub-script-install_subtargets-ordered \ - sub-testlib-install_subtargets-ordered \ sub-qt3support-install_subtargets-ordered \ - sub-dbus-install_subtargets-ordered \ sub-uic3-install_subtargets-ordered \ sub-opengl-install_subtargets-ordered \ sub-xmlpatterns-install_subtargets-ordered \ + sub-multimedia-install_subtargets-ordered \ sub-svg-install_subtargets-ordered \ - sub-webkit-install_subtargets-ordered \ - sub-scripttools-install_subtargets-ordered \ - sub-plugins-install_subtargets-ordered" + sub-script-install_subtargets-ordered \ + sub-declarative-install_subtargets-ordered \ + sub-scripttools-install_subtargets-ordered \ + sub-plugins-install_subtargets-ordered \ + sub-imports-install_subtargets-ordered \ + sub-translations-install_subtargets-ordered" + %if "%{with_tools}" == "yes" targets="$targets sub-tools-install_subtargets-ordered sub-tools-qdoc3-install_subtargets-ordered" %endif @@ -424,6 +461,9 @@ %{l_make} %{l_mflags} $targets INSTALL_ROOT="$RPM_BUILD_ROOT" %if "%{with_shared}" == "yes" +# # install components only built against shared libs +# targets="$targets irgend-was-webkit_subtargets-ordered" + # install shared libs and symlinks %{l_shtool} mkdir -f -p -m 755 \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt @@ -432,7 +472,7 @@ # offer limited support of pkg-config(1) for shared libs # substitution unfortunately only handles paths with no whitespace %{l_shtool} subst \ - -e "s;[^\t ][^\t ]*qt-x11-opensource-src-%{version};%{l_prefix};g" \ + -e "s;-L[^\t ][^\t ]*qt-everywhere-opensource-src-%{version};-L%{l_prefix};g" \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/pkgconfig/* # explain nonstandard shared library placement @@ -453,8 +493,8 @@ # remove temporary dynamic link paths %{l_shtool} subst \ - -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-x11-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \ - -e "s;\([\t ][\t ]*\)[^\t ][^\t ]*\(qt-x11-opensource-src-%{version}.*\);\1/tmp/\2;" \ + -e "s;-L\([\t ]*\)[^\t ][^\t ]*qt-everywhere-opensource-src-%{version}\(/[^\t ][^\t ]*\);-L\1%{l_prefix}\2;g" \ + -e "s;\([\t ][\t ]*\)[^\t ][^\t ]*\(qt-everywhere-opensource-src-%{version}.*\);\1/tmp/\2;" \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.prl \ $RPM_BUILD_ROOT%{l_prefix}/lib/qt/dynamic/*.la %endif