diff options
Diffstat (limited to 'meta/recipes-qt/qt4/qt4-4.8.1')
15 files changed, 737 insertions, 0 deletions
diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/0004-no-qmake.patch b/meta/recipes-qt/qt4/qt4-4.8.1/0004-no-qmake.patch new file mode 100644 index 0000000..ed50c6d --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/0004-no-qmake.patch @@ -0,0 +1,27 @@ +From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Sat, 2 Jun 2007 16:06:59 +0200 +Subject: [PATCH] no qmake + +qmake is already built in qt4-tools-native, so disable it + +Ported from OE by: Yu Ke <ke.yu@intel.com> +Upstream-Status: Inappropriate [configuration] + +--- + configure | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: qt-embedded-linux-opensource-src-4.4.3/configure +=================================================================== +--- qt-embedded-linux-opensource-src-4.4.3.orig/configure 2009-03-26 17:03:43.000000000 +0100 ++++ qt-embedded-linux-opensource-src-4.4.3/configure 2009-03-26 17:04:17.000000000 +0100 +@@ -3786,7 +3786,7 @@ + } + + # build qmake +-if true; then ###[ '!' -f "$outpath/bin/qmake" ]; ++if false; then ###[ '!' -f "$outpath/bin/qmake" ]; + echo "Creating qmake. Please wait..." + + OLD_QCONFIG_H= diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/0006-freetype-host-includes.patch b/meta/recipes-qt/qt4/qt4-4.8.1/0006-freetype-host-includes.patch new file mode 100644 index 0000000..effc5f1 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/0006-freetype-host-includes.patch @@ -0,0 +1,25 @@ +From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001 +From: Michael Krelin <hacker@klever.net> +Date: Mon, 4 Jun 2007 14:48:50 +0200 +Subject: [PATCH] freetype host includes + +Host include path should not be used in cross compiling case. + +Ported from OE by: Yu Ke <ke.yu@intel.com> +Upstream-Status: Pending + +--- + config.tests/unix/freetype/freetype.pri | 2 +- + 1 files changed, 1 insertions(+), 1 deletions(-) + +Index: qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri +=================================================================== +--- qt-embedded-linux-opensource-src-4.5.0.orig/config.tests/unix/freetype/freetype.pri 2009-02-25 22:32:32.000000000 +0100 ++++ qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri 2009-03-26 17:14:16.000000000 +0100 +@@ -1,5 +1,5 @@ + !cross_compile { +- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH ++ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH + # LSB doesn't allow using headers from /include or /usr/include + linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH + for(p, TRY_INCLUDEPATHS) { diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/0008-qt-lib-infix.patch b/meta/recipes-qt/qt4/qt4-4.8.1/0008-qt-lib-infix.patch new file mode 100644 index 0000000..d308a15 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/0008-qt-lib-infix.patch @@ -0,0 +1,41 @@ +Add lib infix for QtUiTools to distinguish different Qt edition: e.g. "E" for embedded, "" for X11 + +Patch has been accepted upstream and should be included in the next major version (4.8.0), see: +http://bugreports.qt.nokia.com/browse/QTBUG-7169 + +Original Author: Jeremy LainĂ© <jeremy.laine@m4x.org> +Ported from OE by: Yu Ke <ke.yu@intel.com> +Upstream-Status: Accepted + +--- /tmp/uitools.prf 2009-12-01 18:38:22.000000000 +0100 ++++ qt-everywhere-opensource-src-4.6.0/mkspecs/features/uitools.prf 2009-12-01 18:58:16.000000000 +0100 +@@ -3,11 +3,11 @@ + + # Include the correct version of the UiLoader library + symbian: QTUITOOLS_LINKAGE = -lQtUiTools.lib +-else: QTUITOOLS_LINKAGE = -lQtUiTools ++else: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX} + + CONFIG(debug, debug|release) { +- mac: QTUITOOLS_LINKAGE = -lQtUiTools_debug +- win32: QTUITOOLS_LINKAGE = -lQtUiToolsd ++ mac: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}_debug ++ win32: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}d + } + LIBS += $$QTUITOOLS_LINKAGE + +--- /tmp/uitools.pro 2009-12-01 18:40:28.000000000 +0100 ++++ qt-everywhere-opensource-src-4.6.0/tools/designer/src/uitools/uitools.pro 2009-12-01 18:59:18.000000000 +0100 +@@ -1,5 +1,5 @@ + TEMPLATE = lib +-TARGET = $$qtLibraryTarget(QtUiTools) ++TARGET = QtUiTools + QT += xml + CONFIG += qt staticlib + DESTDIR = ../../../../lib +@@ -43,3 +43,5 @@ + QMAKE_PKGCONFIG_DESTDIR = pkgconfig + QMAKE_PKGCONFIG_REQUIRES += QtXml + } ++ ++TARGET = $$qtLibraryTarget($$TARGET$$QT_LIBINFIX) #do this towards the end diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/0009-support-2bpp.patch b/meta/recipes-qt/qt4/qt4-4.8.1/0009-support-2bpp.patch new file mode 100644 index 0000000..6f0890b --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/0009-support-2bpp.patch @@ -0,0 +1,304 @@ +Add 2bpp support + +Submitted upstream but rejected as being "out of scope": +http://bugreports.qt.nokia.com/browse/QTBUG-3468 + +Upstream-Status: Denied +Original author: Jeremy LainĂ© <jeremy.laine@m4x.org> +Ported from OE by: Yu Ke <ke.yu@intel.com> + +diff -urN qt-embedded-linux-opensource-src-4.4.3.orig/configure qt-embedded-linux-opensource-src-4.4.3/configure +--- qt-embedded-linux-opensource-src-4.4.3.orig/configure 2008-09-27 11:01:23.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.3/configure 2009-01-14 14:30:53.000000000 +0100 +@@ -5045,6 +5045,7 @@ + echo "Choose pixel-depths to support:" + echo + echo " 1. 1bpp, black/white" ++ echo " 2. 2bpp, grayscale" + echo " 4. 4bpp, grayscale" + echo " 8. 8bpp, paletted" + echo " 12. 12bpp, rgb 4-4-4" +@@ -5063,11 +5064,11 @@ + fi + if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then + if [ "$CFG_QWS_DEPTHS" = "all" ]; then +- CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic" ++ CFG_QWS_DEPTHS="1 2 4 8 12 15 16 18 24 32 generic" + fi + for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do + case $D in +- 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";; ++ 1|2|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";; + generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";; + esac + done +diff -urN qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreenlinuxfb_qws.cpp qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreenlinuxfb_qws.cpp +--- qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreenlinuxfb_qws.cpp 2008-09-27 11:01:28.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreenlinuxfb_qws.cpp 2009-01-14 17:22:34.000000000 +0100 +@@ -404,8 +404,8 @@ + setupOffScreen(); + + // Now read in palette +- if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4)) { +- screencols= (vinfo.bits_per_pixel==8) ? 256 : 16; ++ if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4) || (vinfo.bits_per_pixel==2)) { ++ screencols= 1 << vinfo.bits_per_pixel; + int loopc; + fb_cmap startcmap; + startcmap.start=0; +diff -urN qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreen_qws.cpp qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreen_qws.cpp +--- qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreen_qws.cpp 2008-09-27 11:01:28.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreen_qws.cpp 2009-01-14 17:22:44.000000000 +0100 +@@ -444,6 +444,58 @@ + } + #endif // QT_QWS_DEPTH_4 + ++#ifdef QT_QWS_DEPTH_2 ++static inline void qt_rectfill_gray2(quint8 *dest, quint8 value, ++ int x, int y, int width, int height, ++ int stride) ++{ ++ const int pixelsPerByte = 4; ++ const int alignWidth = qMin(width, (4 - (x & 3)) & 3); ++ const int doAlign = (alignWidth > 0 ? 1 : 0); ++ const int alignStart = pixelsPerByte - 1 - (x & 3); ++ const int alignStop = alignStart - (alignWidth - 1); ++ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop); ++ const int tailWidth = (width - alignWidth) & 3; ++ const int doTail = (tailWidth > 0 ? 1 : 0); ++ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1; ++ const int width8 = (width - alignWidth) / pixelsPerByte; ++ ++ dest += y * stride + x / pixelsPerByte; ++ stride -= (doAlign + width8); ++ ++ for (int j = 0; j < height; ++j) { ++ if (doAlign) { ++ *dest = (*dest & ~alignMask) | (value & alignMask); ++ ++dest; ++ } ++ if (width8) { ++ qt_memfill<quint8>(dest, value, width8); ++ dest += width8; ++ } ++ if (doTail) ++ *dest = (*dest & tailMask) | (value & ~tailMask); ++ dest += stride; ++ } ++} ++ ++static void solidFill_gray2(QScreen *screen, const QColor &color, ++ const QRegion ®ion) ++{ ++ quint8 *dest = reinterpret_cast<quint8*>(screen->base()); ++ const quint8 c = qGray(color.rgba()) >> 6; ++ const quint8 c8 = (c << 6) | (c << 4) | (c << 2) | c; ++ ++ const int stride = screen->linestep(); ++ const QVector<QRect> rects = region.rects(); ++ ++ for (int i = 0; i < rects.size(); ++i) { ++ const QRect r = rects.at(i); ++ qt_rectfill_gray2(dest, c8, r.x(), r.y(), r.width(), r.height(), ++ stride); ++ } ++} ++#endif // QT_QWS_DEPTH_2 ++ + #ifdef QT_QWS_DEPTH_1 + static inline void qt_rectfill_mono(quint8 *dest, quint8 value, + int x, int y, int width, int height, +@@ -551,6 +603,11 @@ + screen->d_ptr->solidFill = solidFill_gray4; + break; + #endif ++#ifdef QT_QWS_DEPTH_2 ++ case 2: ++ screen->d_ptr->solidFill = solidFill_gray2; ++ break; ++#endif + #ifdef QT_QWS_DEPTH_1 + case 1: + screen->d_ptr->solidFill = solidFill_mono; +@@ -958,6 +1015,149 @@ + } + #endif // QT_QWS_DEPTH_4 + ++#ifdef QT_QWS_DEPTH_2 ++ ++struct qgray2 { quint8 dummy; } Q_PACKED; ++ ++template <typename SRC> ++static inline quint8 qt_convertToGray2(SRC color); ++ ++template <> ++inline quint8 qt_convertToGray2(quint32 color) ++{ ++ return qGray(color) >> 6; ++} ++ ++template <> ++inline quint8 qt_convertToGray2(quint16 color) ++{ ++ const int r = (color & 0xf800) >> 11; ++ const int g = (color & 0x07e0) >> 6; // only keep 5 bit ++ const int b = (color & 0x001f); ++ return (r * 11 + g * 16 + b * 5) >> 8; ++} ++ ++template <> ++inline quint8 qt_convertToGray2(qrgb444 color) ++{ ++ return qt_convertToGray2(quint32(color)); ++} ++ ++template <> ++inline quint8 qt_convertToGray2(qargb4444 color) ++{ ++ return qt_convertToGray2(quint32(color)); ++} ++ ++template <typename SRC> ++static inline void qt_rectconvert_gray2(qgray2 *dest2, const SRC *src, ++ int x, int y, int width, int height, ++ int dstStride, int srcStride) ++{ ++ const int pixelsPerByte = 4; ++ quint8 *dest8 = reinterpret_cast<quint8*>(dest2) ++ + y * dstStride + x / pixelsPerByte; ++ const int alignWidth = qMin(width, (4 - (x & 3)) & 3); ++ const int doAlign = (alignWidth > 0 ? 1 : 0); ++ const int alignStart = pixelsPerByte - 1 - (x & 3); ++ const int alignStop = alignStart - (alignWidth - 1); ++ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop); ++ const int tailWidth = (width - alignWidth) & 3; ++ const int doTail = (tailWidth > 0 ? 1 : 0); ++ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1; ++ const int width8 = (width - alignWidth) / pixelsPerByte; ++ ++ srcStride = srcStride / sizeof(SRC) - (width8 * pixelsPerByte + alignWidth); ++ dstStride -= (width8 + doAlign); ++ ++ for (int j = 0; j < height; ++j) { ++ if (doAlign) { ++ quint8 d = *dest8 & ~alignMask; ++ for (int i = alignStart; i >= alignStop; --i) ++ d |= qt_convertToGray2<SRC>(*src++) << (2 * i); ++ *dest8++ = d; ++ } ++ for (int i = 0; i < width8; ++i) { ++ *dest8 = (qt_convertToGray2<SRC>(src[0]) << 6) ++ | (qt_convertToGray2<SRC>(src[1]) << 4) ++ | (qt_convertToGray2<SRC>(src[2]) << 2) ++ | (qt_convertToGray2<SRC>(src[3])); ++ src += 4; ++ ++dest8; ++ } ++ if (doTail) { ++ quint8 d = *dest8 & tailMask; ++ switch (tailWidth) { ++ case 3: d |= qt_convertToGray2<SRC>(src[2]) << 2; ++ case 2: d |= qt_convertToGray2<SRC>(src[1]) << 4; ++ case 1: d |= qt_convertToGray2<SRC>(src[0]) << 6; ++ } ++ *dest8 = d; ++ } ++ ++ dest8 += dstStride; ++ src += srcStride; ++ } ++} ++ ++template <> ++void qt_rectconvert(qgray2 *dest, const quint32 *src, ++ int x, int y, int width, int height, ++ int dstStride, int srcStride) ++{ ++ qt_rectconvert_gray2<quint32>(dest, src, x, y, width, height, ++ dstStride, srcStride); ++} ++ ++template <> ++void qt_rectconvert(qgray2 *dest, const quint16 *src, ++ int x, int y, int width, int height, ++ int dstStride, int srcStride) ++{ ++ qt_rectconvert_gray2<quint16>(dest, src, x, y, width, height, ++ dstStride, srcStride); ++} ++ ++template <> ++void qt_rectconvert(qgray2 *dest, const qrgb444 *src, ++ int x, int y, int width, int height, ++ int dstStride, int srcStride) ++{ ++ qt_rectconvert_gray2<qrgb444>(dest, src, x, y, width, height, ++ dstStride, srcStride); ++} ++ ++template <> ++void qt_rectconvert(qgray2 *dest, const qargb4444 *src, ++ int x, int y, int width, int height, ++ int dstStride, int srcStride) ++{ ++ qt_rectconvert_gray2<qargb4444>(dest, src, x, y, width, height, ++ dstStride, srcStride); ++} ++ ++static void blit_2(QScreen *screen, const QImage &image, ++ const QPoint &topLeft, const QRegion ®ion) ++{ ++ switch (image.format()) { ++ case QImage::Format_ARGB32_Premultiplied: ++ blit_template<qgray2, quint32>(screen, image, topLeft, region); ++ return; ++ case QImage::Format_RGB16: ++ blit_template<qgray2, quint16>(screen, image, topLeft, region); ++ return; ++ case QImage::Format_RGB444: ++ blit_template<qgray2, qrgb444>(screen, image, topLeft, region); ++ return; ++ case QImage::Format_ARGB4444_Premultiplied: ++ blit_template<qgray2, qargb4444>(screen, image, topLeft, region); ++ return; ++ default: ++ qCritical("blit_2(): Image format %d not supported!", image.format()); ++ } ++} ++#endif // QT_QWS_DEPTH_2 ++ + #ifdef QT_QWS_DEPTH_1 + + struct qmono { quint8 dummy; } Q_PACKED; +@@ -1206,6 +1406,11 @@ + screen->d_ptr->blit = blit_4; + break; + #endif ++#ifdef QT_QWS_DEPTH_2 ++ case 2: ++ screen->d_ptr->blit = blit_2; ++ break; ++#endif + #ifdef QT_QWS_DEPTH_1 + case 1: + screen->d_ptr->blit = blit_1; +@@ -2056,6 +2261,8 @@ + } + } else if (d == 4) { + ret = qGray(r, g, b) >> 4; ++ } else if (d == 2) { ++ ret = qGray(r, g, b) >> 6; + } else if (d == 1) { + ret = qGray(r, g, b) >= 128; + } else { +@@ -2126,6 +2333,10 @@ + } else if(d==1) { + return true; + #endif ++#ifdef QT_QWS_DEPTH_2 ++ } else if(d==2) { ++ return true; ++#endif + #ifdef QT_QWS_DEPTH_4 + } else if(d==4) { + return true; diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/add_nostrip_for_debug_packages.diff b/meta/recipes-qt/qt4/qt4-4.8.1/add_nostrip_for_debug_packages.diff new file mode 100644 index 0000000..774cb99 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/add_nostrip_for_debug_packages.diff @@ -0,0 +1,23 @@ +author: Fathi Boudra <fabo@debian.org> + +Qt is built in release mode and strip files by default. +Set CONFIG+=nostrip to avoid the stripping and +let dh_strip do it to generate debug packages. + +Upstream-Status: Inappropriate [Configuration] + +--- + configure | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/configure ++++ b/configure +@@ -627,6 +627,8 @@ mkdir -p "$outpath/config.tests" + rm -f "$outpath/config.tests/.qmake.cache" + cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache" + ++QMakeVar add CONFIG nostrip ++ + QMakeVar add styles "cde mac motif plastique cleanlooks windows" + QMakeVar add decorations "default windows styled" + QMakeVar add mouse-drivers "pc" diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/blacklist-diginotar-certs.diff b/meta/recipes-qt/qt4/qt4-4.8.1/blacklist-diginotar-certs.diff new file mode 100644 index 0000000..4d88ae2 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/blacklist-diginotar-certs.diff @@ -0,0 +1,95 @@ +http://labs.qt.nokia.com/2011/09/02/what-the-diginotar-security-breach-means-for-qt-users/ +http://labs.qt.nokia.com/2011/09/07/what-the-diginotar-security-breach-means-for-qt-users-continued/ + +Original Author:Nokia +Upstream-Status: Integrated in upcoming versions + +diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp +index 328c5c2..1ae98f4 100644 +--- a/src/network/ssl/qsslcertificate.cpp ++++ b/src/network/ssl/qsslcertificate.cpp +@@ -803,22 +803,47 @@ QList<QSslCertificate> QSslCertificatePrivate::certificatesFromDer(const QByteAr + // These certificates are known to be fraudulent and were created during the comodo + // compromise. See http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html + static const char *certificate_blacklist[] = { +- "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e", +- "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06", +- "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3", +- "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29", +- "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71", +- "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47", +- "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43", +- "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0", +- "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0", ++ "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e", "mail.google.com", // Comodo ++ "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06", "www.google.com", // Comodo ++ "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3", "login.yahoo.com", // Comodo ++ "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29", "login.yahoo.com", // Comodo ++ "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71", "login.yahoo.com", // Comodo ++ "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47", "login.skype.com", // Comodo ++ "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43", "addons.mozilla.org", // Comodo ++ "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0", "login.live.com", // Comodo ++ "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0", "global trustee", // Comodo ++ ++ "05:e2:e6:a4:cd:09:ea:54:d6:65:b0:75:fe:22:a2:56", "*.google.com", // leaf certificate issued by DigiNotar ++ "0c:76:da:9c:91:0c:4e:2c:9e:fe:15:d0:58:93:3c:4c", "DigiNotar Root CA", // DigiNotar root ++ "f1:4a:13:f4:87:2b:56:dc:39:df:84:ca:7a:a1:06:49", "DigiNotar Services CA", // DigiNotar intermediate signed by DigiNotar Root ++ "36:16:71:55:43:42:1b:9d:e6:cb:a3:64:41:df:24:38", "DigiNotar Services 1024 CA", // DigiNotar intermediate signed by DigiNotar Root ++ "0a:82:bd:1e:14:4e:88:14:d7:5b:1a:55:27:be:bf:3e", "DigiNotar Root CA G2", // other DigiNotar Root CA ++ "a4:b6:ce:e3:2e:d3:35:46:26:3c:b3:55:3a:a8:92:21", "CertiID Enterprise Certificate Authority", // DigiNotar intermediate signed by "DigiNotar Root CA G2" ++ "5b:d5:60:9c:64:17:68:cf:21:0e:35:fd:fb:05:ad:41", "DigiNotar Qualified CA", // DigiNotar intermediate signed by DigiNotar Root ++ ++ "1184640176", "DigiNotar Services 1024 CA", // DigiNotar intermediate cross-signed by Entrust ++ "120000525", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust ++ "120000505", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust ++ "120000515", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust ++ "20015536", "DigiNotar PKIoverheid CA Overheid en Bedrijven", // DigiNotar intermediate cross-signed by the Dutch government ++ "20001983", "DigiNotar PKIoverheid CA Organisatie - G2", // DigiNotar intermediate cross-signed by the Dutch government ++ "d6:d0:29:77:f1:49:fd:1a:83:f2:b9:ea:94:8c:5c:b4", "DigiNotar Extended Validation CA", // DigiNotar intermediate signed by DigiNotar EV Root ++ "1e:7d:7a:53:3d:45:30:41:96:40:0f:71:48:1f:45:04", "DigiNotar Public CA 2025", // DigiNotar intermediate ++// "(has not been seen in the wild so far)", "DigiNotar Public CA - G2", // DigiNotar intermediate ++// "(has not been seen in the wild so far)", "Koninklijke Notariele Beroepsorganisatie CA", // compromised during DigiNotar breach ++// "(has not been seen in the wild so far)", "Stichting TTP Infos CA," // compromised during DigiNotar breach ++ "1184640175", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust ++ "1184644297", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust + 0 + }; + + bool QSslCertificatePrivate::isBlacklisted(const QSslCertificate &certificate) + { + for (int a = 0; certificate_blacklist[a] != 0; a++) { +- if (certificate.serialNumber() == certificate_blacklist[a]) ++ QString blacklistedCommonName = QString::fromUtf8(certificate_blacklist[(a+1)]); ++ if (certificate.serialNumber() == certificate_blacklist[a++] && ++ (certificate.subjectInfo(QSslCertificate::CommonName) == blacklistedCommonName || ++ certificate.issuerInfo(QSslCertificate::CommonName) == blacklistedCommonName)) + return true; + } + return false; +diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp +index 141d80a..b8e6c4c 100644 +--- a/src/network/ssl/qsslsocket_openssl.cpp ++++ b/src/network/ssl/qsslsocket_openssl.cpp +@@ -1193,12 +1193,16 @@ bool QSslSocketBackendPrivate::startHandshake() + X509 *x509 = q_SSL_get_peer_certificate(ssl); + configuration.peerCertificate = QSslCertificatePrivate::QSslCertificate_from_X509(x509); + q_X509_free(x509); +- if (QSslCertificatePrivate::isBlacklisted(configuration.peerCertificate)) { +- q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted")); +- q->setSocketError(QAbstractSocket::SslHandshakeFailedError); +- emit q->error(QAbstractSocket::SslHandshakeFailedError); +- plainSocket->disconnectFromHost(); +- return false; ++ ++ // check the whole chain for blacklisting (including root, as we check for subjectInfo and issuer) ++ foreach (const QSslCertificate &cert, configuration.peerCertificateChain) { ++ if (QSslCertificatePrivate::isBlacklisted(cert)) { ++ q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted")); ++ q->setSocketError(QAbstractSocket::SslHandshakeFailedError); ++ emit q->error(QAbstractSocket::SslHandshakeFailedError); ++ plainSocket->disconnectFromHost(); ++ return false; ++ } + } + + // Start translating errors. diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/compile.test-lflags.patch b/meta/recipes-qt/qt4/qt4-4.8.1/compile.test-lflags.patch new file mode 100644 index 0000000..1d725b7 --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/compile.test-lflags.patch @@ -0,0 +1,17 @@ +Pass through LDFLAGS to configure tests + +Upstream-Status: Inappropriate [configuration] + +Index: qt-everywhere-opensource-src-4.6.3/config.tests/unix/compile.test +=================================================================== +--- qt-everywhere-opensource-src-4.6.3.orig/config.tests/unix/compile.test 2010-06-02 06:03:18.000000000 +0400 ++++ qt-everywhere-opensource-src-4.6.3/config.tests/unix/compile.test 2010-10-04 17:35:07.587783460 +0400 +@@ -11,7 +11,7 @@ + EXE=`basename "$6"` + DESCRIPTION=$7 + shift 7 +-LFLAGS="" ++LFLAGS="$LDFLAGS" + INCLUDEPATH="" + CXXFLAGS="" + MAC_ARCH_CXXFLAGS="" diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/configure-paths.patch b/meta/recipes-qt/qt4/qt4-4.8.1/configure-paths.patch new file mode 100644 index 0000000..45208ec --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/configure-paths.patch @@ -0,0 +1,26 @@ +Use OE_QMAKE_* values to specify Qt utility paths + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> +Upstream-Status: Inappropriate [configuration] + +Index: qt-everywhere-opensource-src-4.6.3/configure +=================================================================== +--- qt-everywhere-opensource-src-4.6.3.orig/configure 2011-01-10 15:47:37.100607001 +0000 ++++ qt-everywhere-opensource-src-4.6.3/configure 2011-01-10 15:49:14.576606999 +0000 +@@ -7198,11 +7198,11 @@ + QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc + + #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR +-QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc +-QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic +-QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3 +-QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc +-QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp ++QMAKE_MOC = \${OE_QMAKE_MOC} ++QMAKE_UIC = \${OE_QMAKE_UIC} ++QMAKE_UIC3 = \${OE_QMAKE_UIC3} ++QMAKE_RCC = \${OE_QMAKE_RCC} ++QMAKE_QDBUSXML2CPP = \${OE_QMAKE_QDBUSXML2CPP} + QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include + QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib + diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/fix-config-tests.patch b/meta/recipes-qt/qt4/qt4-4.8.1/fix-config-tests.patch new file mode 100644 index 0000000..1e0d14e --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/fix-config-tests.patch @@ -0,0 +1,38 @@ +Fix invocation in case of "ccache some-compiler-gcc". As the command "ccache some-compiler-gcc" will not exist but "ccache" will. + +both visibility and relocs were affected. + +Original Author: Holger Hans Peter Freyther <zecke@selfish.org> +Ported from OE by: Yu Ke <ke.yu@intel.com> +Upstream-Status: Pending + +Index: qt-x11-opensource-src-4.5.2/config.tests/unix/bsymbolic_functions.test +=================================================================== +--- qt-x11-opensource-src-4.5.2.orig/config.tests/unix/bsymbolic_functions.test 2009-08-01 08:01:11.000000000 +0200 ++++ qt-x11-opensource-src-4.5.2/config.tests/unix/bsymbolic_functions.test 2009-08-01 08:01:16.000000000 +0200 +@@ -8,7 +8,7 @@ + int main() { return 0; } + EOF + +-"$COMPILER" -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes ++$COMPILER -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes + rm -f bsymbolic_functions.c libtest.so + + # done +Index: qt-x11-opensource-src-4.5.2/config.tests/unix/fvisibility.test +=================================================================== +--- qt-x11-opensource-src-4.5.2.orig/config.tests/unix/fvisibility.test 2009-06-20 06:57:50.000000000 +0200 ++++ qt-x11-opensource-src-4.5.2/config.tests/unix/fvisibility.test 2009-08-01 07:59:05.000000000 +0200 +@@ -15,9 +15,9 @@ + EOF + + if [ "$VERBOSE" = "yes" ] ; then +- "$COMPILER" -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes ++ $COMPILER -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes + else +- "$COMPILER" -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes ++ $COMPILER -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes + fi + rm -f fvisibility.c fvisibility.o + } + diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/fix_qkbdtty_qws.patch b/meta/recipes-qt/qt4/qt4-4.8.1/fix_qkbdtty_qws.patch new file mode 100644 index 0000000..c2aed5c --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/fix_qkbdtty_qws.patch @@ -0,0 +1,37 @@ +Upstream-Status: Pending + +This issue is that with C++ compiler process an old version of kernel +header file, coincidently that file has a variable named 'new': + +* 'embedded/qkbdtty_qws.cpp' include 'linux/vt.h'; +* '/usr/include/linux/vt.h' has below code on SLED-11.x: + + unsigned int new; + +On mostly hosts it has been changed to: new -> newev. + +Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> +======================================= +diff --git a/src/gui/embedded/qkbdtty_qws.cpp b/src/gui/embedded/qkbdtty_qws.cpp +--- a/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:16:58.420198350 +0800 ++++ b/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:24:43.924191127 +0800 +@@ -54,8 +54,20 @@ + + #if defined Q_OS_LINUX + # include <linux/kd.h> ++ ++/* Workaround kernel headers using "new" as variable name. The problem ++ is specific to SLED-11, other distros use "newev" rather than "new" */ ++#ifdef __cplusplus ++#warning "workaround kernel headers using new as variable name on SLED 11" ++#define new newev ++#endif ++ + # include <linux/vt.h> //TODO: move vt handling somewhere else (QLinuxFbScreen?) + ++#ifdef __cplusplus ++#undef new ++#endif ++ + # include "qscreen_qws.h" + # include "qwindowsystem_qws.h" + # include "qapplication.h" diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/qt-config.patch b/meta/recipes-qt/qt4/qt4-4.8.1/qt-config.patch new file mode 100644 index 0000000..2ab05ed --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/qt-config.patch @@ -0,0 +1,29 @@ +Allow to set a qt.conf from the outside using the environment. This allows +to inject new prefixes and other paths into qmake. This is needed when using +the same qmake binary to build qt/x11 and qt/embedded + +Original Author: Holger Freyther <zecke@selfish.org> +Ported from OE by: Yu Ke <ke.yu@intel.com> +Upstream-Status: Pending + +--- /tmp/qlibraryinfo.cpp 2008-08-02 17:16:41.000000000 +0200 ++++ qt-embedded-linux-opensource-src-4.4.1/src/corelib/global/qlibraryinfo.cpp 2008-08-02 17:17:42.000000000 +0200 +@@ -47,6 +47,7 @@ + QT_BEGIN_NAMESPACE + extern QString qmake_libraryInfoFile(); + QT_END_NAMESPACE ++#include <stdlib.h> + #else + # include "qcoreapplication.h" + #endif +@@ -113,6 +114,10 @@ + #ifdef QT_BUILD_QMAKE + if(!QFile::exists(qtconfig)) + qtconfig = qmake_libraryInfoFile(); ++ if (!QFile::exists(qtconfig)) { ++ QByteArray config = getenv("QT_CONF_PATH"); ++ qtconfig = QFile::decodeName(config); ++ } + #else + if (!QFile::exists(qtconfig) && QCoreApplication::instance()) { + #ifdef Q_OS_MAC diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/qt-dbus-const.patch b/meta/recipes-qt/qt4/qt4-4.8.1/qt-dbus-const.patch new file mode 100644 index 0000000..6ee402f --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/qt-dbus-const.patch @@ -0,0 +1,22 @@ +Remove "const" usage that causes compile failure building nativesdk-qt4-tools + +Upstream-Status: Denied [possible retry] + +Patch has apparently been rejected upstream, not because it is invalid +but because the submitter did not submit a merge request for it, so the +validity of the patch upstream is uncertain. For further details see: +http://bugreports.qt.nokia.com/browse/QTBUG-17962 + +Original Author: Pavel Heimlich <tropikhajma at gmail.com> + +--- qt-everywhere-opensource-src-4.7.3/src/dbus/qdbusintegrator.cpp.orig 2011-03-12 02:11:32.313467991 +0100 ++++ qt-everywhere-opensource-src-4.7.3/src/dbus/qdbusintegrator.cpp 2011-03-12 02:11:03.795809176 +0100 +@@ -71,7 +71,7 @@ + static bool isDebugging; + #define qDBusDebug if (!::isDebugging); else qDebug + +-Q_GLOBAL_STATIC_WITH_ARGS(const QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS))) ++Q_GLOBAL_STATIC_WITH_ARGS(QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS))) + + static inline QString dbusServiceString() + { return *orgFreedesktopDBusString(); } diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/qte.sh b/meta/recipes-qt/qt4/qt4-4.8.1/qte.sh new file mode 100644 index 0000000..21d6ecb --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/qte.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +if [ -e /dev/input/touchscreen0 ] +then + QWS_MOUSE_PROTO=Tslib:/dev/input/touchscreen0 + export QWS_MOUSE_PROTO +fi diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/set-OUTPUT_DIR-if-empty.patch b/meta/recipes-qt/qt4/qt4-4.8.1/set-OUTPUT_DIR-if-empty.patch new file mode 100644 index 0000000..9cb72ba --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/set-OUTPUT_DIR-if-empty.patch @@ -0,0 +1,19 @@ +Without this do_configure was trying to create /include/WebCore/libdummy.prl in root of build host filesystem +now it's in proper place ${WORKDIR}/qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/include/WebCore/libdummy.prl + +First reported here: +http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg24436.html + +Upstream-Status: Pending + +--- qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro.orig 2012-05-01 07:48:08.457613310 +0200 ++++ qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro 2012-05-01 07:48:15.493613232 +0200 +@@ -3,6 +3,8 @@ + + CONFIG -= debug_and_release + ++isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../.. ++ + CONFIG(standalone_package) { + isEmpty(WEBKIT2_GENERATED_SOURCES_DIR):WEBKIT2_GENERATED_SOURCES_DIR = $$PWD/generated + isEmpty(WC_GENERATED_SOURCES_DIR):WC_GENERATED_SOURCES_DIR = $$PWD/../WebCore/generated diff --git a/meta/recipes-qt/qt4/qt4-4.8.1/target_qmake.patch b/meta/recipes-qt/qt4/qt4-4.8.1/target_qmake.patch new file mode 100644 index 0000000..9b53aff --- /dev/null +++ b/meta/recipes-qt/qt4/qt4-4.8.1/target_qmake.patch @@ -0,0 +1,27 @@ +From e4b27237386b3dd864dd603de2ae54a707f5419f Mon Sep 17 00:00:00 2001 +From: Paul Eggleton <paul.eggleton@linux.intel.com> +Date: Mon, 27 Feb 2012 00:13:05 +0000 +Subject: [PATCH] Allow building a separate qmake for the target + +Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> + +Upstream-Status: Inappropriate [config] +--- + qmake/qmake.pro | 1 + + 1 files changed, 1 insertions(+), 0 deletions(-) + +diff --git a/qmake/qmake.pro b/qmake/qmake.pro +index b602afa..b59f7fb 100644 +--- a/qmake/qmake.pro ++++ b/qmake/qmake.pro +@@ -7,6 +7,7 @@ CONFIG += console bootstrap + CONFIG -= qt shared app_bundle uic + DEFINES += QT_BUILD_QMAKE QT_BOOTSTRAPPED + DESTDIR = ../bin/ ++TARGET = qmake2 + + OBJECTS_DIR = . + MOC_DIR = . +-- +1.7.5.4 + |