summaryrefslogtreecommitdiffstats
path: root/meta/recipes-qt/qt4/qt4-4.8.1
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-qt/qt4/qt4-4.8.1')
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/0004-no-qmake.patch27
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/0006-freetype-host-includes.patch25
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/0008-qt-lib-infix.patch41
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/0009-support-2bpp.patch304
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/add_nostrip_for_debug_packages.diff23
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/blacklist-diginotar-certs.diff95
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/compile.test-lflags.patch17
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/configure-paths.patch26
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/fix-config-tests.patch38
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/fix_qkbdtty_qws.patch37
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/qt-config.patch29
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/qt-dbus-const.patch22
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/qte.sh7
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/set-OUTPUT_DIR-if-empty.patch19
-rw-r--r--meta/recipes-qt/qt4/qt4-4.8.1/target_qmake.patch27
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 0000000000..ed50c6df53
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/0004-no-qmake.patch
@@ -0,0 +1,27 @@
1From f5a73ce944240de9013cc23288c115e8213add5e Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Sat, 2 Jun 2007 16:06:59 +0200
4Subject: [PATCH] no qmake
5
6qmake is already built in qt4-tools-native, so disable it
7
8Ported from OE by: Yu Ke <ke.yu@intel.com>
9Upstream-Status: Inappropriate [configuration]
10
11---
12 configure | 2 +-
13 1 files changed, 1 insertions(+), 1 deletions(-)
14
15Index: qt-embedded-linux-opensource-src-4.4.3/configure
16===================================================================
17--- qt-embedded-linux-opensource-src-4.4.3.orig/configure 2009-03-26 17:03:43.000000000 +0100
18+++ qt-embedded-linux-opensource-src-4.4.3/configure 2009-03-26 17:04:17.000000000 +0100
19@@ -3786,7 +3786,7 @@
20 }
21
22 # build qmake
23-if true; then ###[ '!' -f "$outpath/bin/qmake" ];
24+if false; then ###[ '!' -f "$outpath/bin/qmake" ];
25 echo "Creating qmake. Please wait..."
26
27 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 0000000000..effc5f14d0
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/0006-freetype-host-includes.patch
@@ -0,0 +1,25 @@
1From c9ab62bd9a56643574b3ae6e59e0ca776d4860d2 Mon Sep 17 00:00:00 2001
2From: Michael Krelin <hacker@klever.net>
3Date: Mon, 4 Jun 2007 14:48:50 +0200
4Subject: [PATCH] freetype host includes
5
6Host include path should not be used in cross compiling case.
7
8Ported from OE by: Yu Ke <ke.yu@intel.com>
9Upstream-Status: Pending
10
11---
12 config.tests/unix/freetype/freetype.pri | 2 +-
13 1 files changed, 1 insertions(+), 1 deletions(-)
14
15Index: qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri
16===================================================================
17--- qt-embedded-linux-opensource-src-4.5.0.orig/config.tests/unix/freetype/freetype.pri 2009-02-25 22:32:32.000000000 +0100
18+++ qt-embedded-linux-opensource-src-4.5.0/config.tests/unix/freetype/freetype.pri 2009-03-26 17:14:16.000000000 +0100
19@@ -1,5 +1,5 @@
20 !cross_compile {
21- TRY_INCLUDEPATHS = /include /usr/include $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
22+ TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
23 # LSB doesn't allow using headers from /include or /usr/include
24 linux-lsb-g++:TRY_INCLUDEPATHS = $$QMAKE_INCDIR $$QMAKE_INCDIR_X11 $$INCLUDEPATH
25 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 0000000000..d308a15cf8
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/0008-qt-lib-infix.patch
@@ -0,0 +1,41 @@
1Add lib infix for QtUiTools to distinguish different Qt edition: e.g. "E" for embedded, "" for X11
2
3Patch has been accepted upstream and should be included in the next major version (4.8.0), see:
4http://bugreports.qt.nokia.com/browse/QTBUG-7169
5
6Original Author: Jeremy Lainé <jeremy.laine@m4x.org>
7Ported from OE by: Yu Ke <ke.yu@intel.com>
8Upstream-Status: Accepted
9
10--- /tmp/uitools.prf 2009-12-01 18:38:22.000000000 +0100
11+++ qt-everywhere-opensource-src-4.6.0/mkspecs/features/uitools.prf 2009-12-01 18:58:16.000000000 +0100
12@@ -3,11 +3,11 @@
13
14 # Include the correct version of the UiLoader library
15 symbian: QTUITOOLS_LINKAGE = -lQtUiTools.lib
16-else: QTUITOOLS_LINKAGE = -lQtUiTools
17+else: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}
18
19 CONFIG(debug, debug|release) {
20- mac: QTUITOOLS_LINKAGE = -lQtUiTools_debug
21- win32: QTUITOOLS_LINKAGE = -lQtUiToolsd
22+ mac: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}_debug
23+ win32: QTUITOOLS_LINKAGE = -lQtUiTools$${QT_LIBINFIX}d
24 }
25 LIBS += $$QTUITOOLS_LINKAGE
26
27--- /tmp/uitools.pro 2009-12-01 18:40:28.000000000 +0100
28+++ qt-everywhere-opensource-src-4.6.0/tools/designer/src/uitools/uitools.pro 2009-12-01 18:59:18.000000000 +0100
29@@ -1,5 +1,5 @@
30 TEMPLATE = lib
31-TARGET = $$qtLibraryTarget(QtUiTools)
32+TARGET = QtUiTools
33 QT += xml
34 CONFIG += qt staticlib
35 DESTDIR = ../../../../lib
36@@ -43,3 +43,5 @@
37 QMAKE_PKGCONFIG_DESTDIR = pkgconfig
38 QMAKE_PKGCONFIG_REQUIRES += QtXml
39 }
40+
41+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 0000000000..6f0890bb54
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/0009-support-2bpp.patch
@@ -0,0 +1,304 @@
1Add 2bpp support
2
3Submitted upstream but rejected as being "out of scope":
4http://bugreports.qt.nokia.com/browse/QTBUG-3468
5
6Upstream-Status: Denied
7Original author: Jeremy Lainé <jeremy.laine@m4x.org>
8Ported from OE by: Yu Ke <ke.yu@intel.com>
9
10diff -urN qt-embedded-linux-opensource-src-4.4.3.orig/configure qt-embedded-linux-opensource-src-4.4.3/configure
11--- qt-embedded-linux-opensource-src-4.4.3.orig/configure 2008-09-27 11:01:23.000000000 +0200
12+++ qt-embedded-linux-opensource-src-4.4.3/configure 2009-01-14 14:30:53.000000000 +0100
13@@ -5045,6 +5045,7 @@
14 echo "Choose pixel-depths to support:"
15 echo
16 echo " 1. 1bpp, black/white"
17+ echo " 2. 2bpp, grayscale"
18 echo " 4. 4bpp, grayscale"
19 echo " 8. 8bpp, paletted"
20 echo " 12. 12bpp, rgb 4-4-4"
21@@ -5063,11 +5064,11 @@
22 fi
23 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
24 if [ "$CFG_QWS_DEPTHS" = "all" ]; then
25- CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
26+ CFG_QWS_DEPTHS="1 2 4 8 12 15 16 18 24 32 generic"
27 fi
28 for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
29 case $D in
30- 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
31+ 1|2|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
32 generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
33 esac
34 done
35diff -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
36--- qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreenlinuxfb_qws.cpp 2008-09-27 11:01:28.000000000 +0200
37+++ qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreenlinuxfb_qws.cpp 2009-01-14 17:22:34.000000000 +0100
38@@ -404,8 +404,8 @@
39 setupOffScreen();
40
41 // Now read in palette
42- if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4)) {
43- screencols= (vinfo.bits_per_pixel==8) ? 256 : 16;
44+ if((vinfo.bits_per_pixel==8) || (vinfo.bits_per_pixel==4) || (vinfo.bits_per_pixel==2)) {
45+ screencols= 1 << vinfo.bits_per_pixel;
46 int loopc;
47 fb_cmap startcmap;
48 startcmap.start=0;
49diff -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
50--- qt-embedded-linux-opensource-src-4.4.3.orig/src/gui/embedded/qscreen_qws.cpp 2008-09-27 11:01:28.000000000 +0200
51+++ qt-embedded-linux-opensource-src-4.4.3/src/gui/embedded/qscreen_qws.cpp 2009-01-14 17:22:44.000000000 +0100
52@@ -444,6 +444,58 @@
53 }
54 #endif // QT_QWS_DEPTH_4
55
56+#ifdef QT_QWS_DEPTH_2
57+static inline void qt_rectfill_gray2(quint8 *dest, quint8 value,
58+ int x, int y, int width, int height,
59+ int stride)
60+{
61+ const int pixelsPerByte = 4;
62+ const int alignWidth = qMin(width, (4 - (x & 3)) & 3);
63+ const int doAlign = (alignWidth > 0 ? 1 : 0);
64+ const int alignStart = pixelsPerByte - 1 - (x & 3);
65+ const int alignStop = alignStart - (alignWidth - 1);
66+ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop);
67+ const int tailWidth = (width - alignWidth) & 3;
68+ const int doTail = (tailWidth > 0 ? 1 : 0);
69+ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1;
70+ const int width8 = (width - alignWidth) / pixelsPerByte;
71+
72+ dest += y * stride + x / pixelsPerByte;
73+ stride -= (doAlign + width8);
74+
75+ for (int j = 0; j < height; ++j) {
76+ if (doAlign) {
77+ *dest = (*dest & ~alignMask) | (value & alignMask);
78+ ++dest;
79+ }
80+ if (width8) {
81+ qt_memfill<quint8>(dest, value, width8);
82+ dest += width8;
83+ }
84+ if (doTail)
85+ *dest = (*dest & tailMask) | (value & ~tailMask);
86+ dest += stride;
87+ }
88+}
89+
90+static void solidFill_gray2(QScreen *screen, const QColor &color,
91+ const QRegion &region)
92+{
93+ quint8 *dest = reinterpret_cast<quint8*>(screen->base());
94+ const quint8 c = qGray(color.rgba()) >> 6;
95+ const quint8 c8 = (c << 6) | (c << 4) | (c << 2) | c;
96+
97+ const int stride = screen->linestep();
98+ const QVector<QRect> rects = region.rects();
99+
100+ for (int i = 0; i < rects.size(); ++i) {
101+ const QRect r = rects.at(i);
102+ qt_rectfill_gray2(dest, c8, r.x(), r.y(), r.width(), r.height(),
103+ stride);
104+ }
105+}
106+#endif // QT_QWS_DEPTH_2
107+
108 #ifdef QT_QWS_DEPTH_1
109 static inline void qt_rectfill_mono(quint8 *dest, quint8 value,
110 int x, int y, int width, int height,
111@@ -551,6 +603,11 @@
112 screen->d_ptr->solidFill = solidFill_gray4;
113 break;
114 #endif
115+#ifdef QT_QWS_DEPTH_2
116+ case 2:
117+ screen->d_ptr->solidFill = solidFill_gray2;
118+ break;
119+#endif
120 #ifdef QT_QWS_DEPTH_1
121 case 1:
122 screen->d_ptr->solidFill = solidFill_mono;
123@@ -958,6 +1015,149 @@
124 }
125 #endif // QT_QWS_DEPTH_4
126
127+#ifdef QT_QWS_DEPTH_2
128+
129+struct qgray2 { quint8 dummy; } Q_PACKED;
130+
131+template <typename SRC>
132+static inline quint8 qt_convertToGray2(SRC color);
133+
134+template <>
135+inline quint8 qt_convertToGray2(quint32 color)
136+{
137+ return qGray(color) >> 6;
138+}
139+
140+template <>
141+inline quint8 qt_convertToGray2(quint16 color)
142+{
143+ const int r = (color & 0xf800) >> 11;
144+ const int g = (color & 0x07e0) >> 6; // only keep 5 bit
145+ const int b = (color & 0x001f);
146+ return (r * 11 + g * 16 + b * 5) >> 8;
147+}
148+
149+template <>
150+inline quint8 qt_convertToGray2(qrgb444 color)
151+{
152+ return qt_convertToGray2(quint32(color));
153+}
154+
155+template <>
156+inline quint8 qt_convertToGray2(qargb4444 color)
157+{
158+ return qt_convertToGray2(quint32(color));
159+}
160+
161+template <typename SRC>
162+static inline void qt_rectconvert_gray2(qgray2 *dest2, const SRC *src,
163+ int x, int y, int width, int height,
164+ int dstStride, int srcStride)
165+{
166+ const int pixelsPerByte = 4;
167+ quint8 *dest8 = reinterpret_cast<quint8*>(dest2)
168+ + y * dstStride + x / pixelsPerByte;
169+ const int alignWidth = qMin(width, (4 - (x & 3)) & 3);
170+ const int doAlign = (alignWidth > 0 ? 1 : 0);
171+ const int alignStart = pixelsPerByte - 1 - (x & 3);
172+ const int alignStop = alignStart - (alignWidth - 1);
173+ const quint8 alignMask = ((1 << (2 * alignWidth)) - 1) << (2 * alignStop);
174+ const int tailWidth = (width - alignWidth) & 3;
175+ const int doTail = (tailWidth > 0 ? 1 : 0);
176+ const quint8 tailMask = (1 << (2 * (pixelsPerByte - tailWidth))) - 1;
177+ const int width8 = (width - alignWidth) / pixelsPerByte;
178+
179+ srcStride = srcStride / sizeof(SRC) - (width8 * pixelsPerByte + alignWidth);
180+ dstStride -= (width8 + doAlign);
181+
182+ for (int j = 0; j < height; ++j) {
183+ if (doAlign) {
184+ quint8 d = *dest8 & ~alignMask;
185+ for (int i = alignStart; i >= alignStop; --i)
186+ d |= qt_convertToGray2<SRC>(*src++) << (2 * i);
187+ *dest8++ = d;
188+ }
189+ for (int i = 0; i < width8; ++i) {
190+ *dest8 = (qt_convertToGray2<SRC>(src[0]) << 6)
191+ | (qt_convertToGray2<SRC>(src[1]) << 4)
192+ | (qt_convertToGray2<SRC>(src[2]) << 2)
193+ | (qt_convertToGray2<SRC>(src[3]));
194+ src += 4;
195+ ++dest8;
196+ }
197+ if (doTail) {
198+ quint8 d = *dest8 & tailMask;
199+ switch (tailWidth) {
200+ case 3: d |= qt_convertToGray2<SRC>(src[2]) << 2;
201+ case 2: d |= qt_convertToGray2<SRC>(src[1]) << 4;
202+ case 1: d |= qt_convertToGray2<SRC>(src[0]) << 6;
203+ }
204+ *dest8 = d;
205+ }
206+
207+ dest8 += dstStride;
208+ src += srcStride;
209+ }
210+}
211+
212+template <>
213+void qt_rectconvert(qgray2 *dest, const quint32 *src,
214+ int x, int y, int width, int height,
215+ int dstStride, int srcStride)
216+{
217+ qt_rectconvert_gray2<quint32>(dest, src, x, y, width, height,
218+ dstStride, srcStride);
219+}
220+
221+template <>
222+void qt_rectconvert(qgray2 *dest, const quint16 *src,
223+ int x, int y, int width, int height,
224+ int dstStride, int srcStride)
225+{
226+ qt_rectconvert_gray2<quint16>(dest, src, x, y, width, height,
227+ dstStride, srcStride);
228+}
229+
230+template <>
231+void qt_rectconvert(qgray2 *dest, const qrgb444 *src,
232+ int x, int y, int width, int height,
233+ int dstStride, int srcStride)
234+{
235+ qt_rectconvert_gray2<qrgb444>(dest, src, x, y, width, height,
236+ dstStride, srcStride);
237+}
238+
239+template <>
240+void qt_rectconvert(qgray2 *dest, const qargb4444 *src,
241+ int x, int y, int width, int height,
242+ int dstStride, int srcStride)
243+{
244+ qt_rectconvert_gray2<qargb4444>(dest, src, x, y, width, height,
245+ dstStride, srcStride);
246+}
247+
248+static void blit_2(QScreen *screen, const QImage &image,
249+ const QPoint &topLeft, const QRegion &region)
250+{
251+ switch (image.format()) {
252+ case QImage::Format_ARGB32_Premultiplied:
253+ blit_template<qgray2, quint32>(screen, image, topLeft, region);
254+ return;
255+ case QImage::Format_RGB16:
256+ blit_template<qgray2, quint16>(screen, image, topLeft, region);
257+ return;
258+ case QImage::Format_RGB444:
259+ blit_template<qgray2, qrgb444>(screen, image, topLeft, region);
260+ return;
261+ case QImage::Format_ARGB4444_Premultiplied:
262+ blit_template<qgray2, qargb4444>(screen, image, topLeft, region);
263+ return;
264+ default:
265+ qCritical("blit_2(): Image format %d not supported!", image.format());
266+ }
267+}
268+#endif // QT_QWS_DEPTH_2
269+
270 #ifdef QT_QWS_DEPTH_1
271
272 struct qmono { quint8 dummy; } Q_PACKED;
273@@ -1206,6 +1406,11 @@
274 screen->d_ptr->blit = blit_4;
275 break;
276 #endif
277+#ifdef QT_QWS_DEPTH_2
278+ case 2:
279+ screen->d_ptr->blit = blit_2;
280+ break;
281+#endif
282 #ifdef QT_QWS_DEPTH_1
283 case 1:
284 screen->d_ptr->blit = blit_1;
285@@ -2056,6 +2261,8 @@
286 }
287 } else if (d == 4) {
288 ret = qGray(r, g, b) >> 4;
289+ } else if (d == 2) {
290+ ret = qGray(r, g, b) >> 6;
291 } else if (d == 1) {
292 ret = qGray(r, g, b) >= 128;
293 } else {
294@@ -2126,6 +2333,10 @@
295 } else if(d==1) {
296 return true;
297 #endif
298+#ifdef QT_QWS_DEPTH_2
299+ } else if(d==2) {
300+ return true;
301+#endif
302 #ifdef QT_QWS_DEPTH_4
303 } else if(d==4) {
304 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 0000000000..774cb997a4
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/add_nostrip_for_debug_packages.diff
@@ -0,0 +1,23 @@
1author: Fathi Boudra <fabo@debian.org>
2
3Qt is built in release mode and strip files by default.
4Set CONFIG+=nostrip to avoid the stripping and
5let dh_strip do it to generate debug packages.
6
7Upstream-Status: Inappropriate [Configuration]
8
9---
10 configure | 2 ++
11 1 file changed, 2 insertions(+)
12
13--- a/configure
14+++ b/configure
15@@ -627,6 +627,8 @@ mkdir -p "$outpath/config.tests"
16 rm -f "$outpath/config.tests/.qmake.cache"
17 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
18
19+QMakeVar add CONFIG nostrip
20+
21 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
22 QMakeVar add decorations "default windows styled"
23 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 0000000000..4d88ae2e60
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/blacklist-diginotar-certs.diff
@@ -0,0 +1,95 @@
1http://labs.qt.nokia.com/2011/09/02/what-the-diginotar-security-breach-means-for-qt-users/
2http://labs.qt.nokia.com/2011/09/07/what-the-diginotar-security-breach-means-for-qt-users-continued/
3
4Original Author:Nokia
5Upstream-Status: Integrated in upcoming versions
6
7diff --git a/src/network/ssl/qsslcertificate.cpp b/src/network/ssl/qsslcertificate.cpp
8index 328c5c2..1ae98f4 100644
9--- a/src/network/ssl/qsslcertificate.cpp
10+++ b/src/network/ssl/qsslcertificate.cpp
11@@ -803,22 +803,47 @@ QList<QSslCertificate> QSslCertificatePrivate::certificatesFromDer(const QByteAr
12 // These certificates are known to be fraudulent and were created during the comodo
13 // compromise. See http://www.comodo.com/Comodo-Fraud-Incident-2011-03-23.html
14 static const char *certificate_blacklist[] = {
15- "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e",
16- "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06",
17- "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3",
18- "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29",
19- "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71",
20- "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47",
21- "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43",
22- "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0",
23- "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0",
24+ "04:7e:cb:e9:fc:a5:5f:7b:d0:9e:ae:36:e1:0c:ae:1e", "mail.google.com", // Comodo
25+ "f5:c8:6a:f3:61:62:f1:3a:64:f5:4f:6d:c9:58:7c:06", "www.google.com", // Comodo
26+ "d7:55:8f:da:f5:f1:10:5b:b2:13:28:2b:70:77:29:a3", "login.yahoo.com", // Comodo
27+ "39:2a:43:4f:0e:07:df:1f:8a:a3:05:de:34:e0:c2:29", "login.yahoo.com", // Comodo
28+ "3e:75:ce:d4:6b:69:30:21:21:88:30:ae:86:a8:2a:71", "login.yahoo.com", // Comodo
29+ "e9:02:8b:95:78:e4:15:dc:1a:71:0a:2b:88:15:44:47", "login.skype.com", // Comodo
30+ "92:39:d5:34:8f:40:d1:69:5a:74:54:70:e1:f2:3f:43", "addons.mozilla.org", // Comodo
31+ "b0:b7:13:3e:d0:96:f9:b5:6f:ae:91:c8:74:bd:3a:c0", "login.live.com", // Comodo
32+ "d8:f3:5f:4e:b7:87:2b:2d:ab:06:92:e3:15:38:2f:b0", "global trustee", // Comodo
33+
34+ "05:e2:e6:a4:cd:09:ea:54:d6:65:b0:75:fe:22:a2:56", "*.google.com", // leaf certificate issued by DigiNotar
35+ "0c:76:da:9c:91:0c:4e:2c:9e:fe:15:d0:58:93:3c:4c", "DigiNotar Root CA", // DigiNotar root
36+ "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
37+ "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
38+ "0a:82:bd:1e:14:4e:88:14:d7:5b:1a:55:27:be:bf:3e", "DigiNotar Root CA G2", // other DigiNotar Root CA
39+ "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"
40+ "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
41+
42+ "1184640176", "DigiNotar Services 1024 CA", // DigiNotar intermediate cross-signed by Entrust
43+ "120000525", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
44+ "120000505", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
45+ "120000515", "DigiNotar Cyber CA", // DigiNotar intermediate cross-signed by CyberTrust
46+ "20015536", "DigiNotar PKIoverheid CA Overheid en Bedrijven", // DigiNotar intermediate cross-signed by the Dutch government
47+ "20001983", "DigiNotar PKIoverheid CA Organisatie - G2", // DigiNotar intermediate cross-signed by the Dutch government
48+ "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
49+ "1e:7d:7a:53:3d:45:30:41:96:40:0f:71:48:1f:45:04", "DigiNotar Public CA 2025", // DigiNotar intermediate
50+// "(has not been seen in the wild so far)", "DigiNotar Public CA - G2", // DigiNotar intermediate
51+// "(has not been seen in the wild so far)", "Koninklijke Notariele Beroepsorganisatie CA", // compromised during DigiNotar breach
52+// "(has not been seen in the wild so far)", "Stichting TTP Infos CA," // compromised during DigiNotar breach
53+ "1184640175", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
54+ "1184644297", "DigiNotar Root CA", // DigiNotar intermediate cross-signed by Entrust
55 0
56 };
57
58 bool QSslCertificatePrivate::isBlacklisted(const QSslCertificate &certificate)
59 {
60 for (int a = 0; certificate_blacklist[a] != 0; a++) {
61- if (certificate.serialNumber() == certificate_blacklist[a])
62+ QString blacklistedCommonName = QString::fromUtf8(certificate_blacklist[(a+1)]);
63+ if (certificate.serialNumber() == certificate_blacklist[a++] &&
64+ (certificate.subjectInfo(QSslCertificate::CommonName) == blacklistedCommonName ||
65+ certificate.issuerInfo(QSslCertificate::CommonName) == blacklistedCommonName))
66 return true;
67 }
68 return false;
69diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
70index 141d80a..b8e6c4c 100644
71--- a/src/network/ssl/qsslsocket_openssl.cpp
72+++ b/src/network/ssl/qsslsocket_openssl.cpp
73@@ -1193,12 +1193,16 @@ bool QSslSocketBackendPrivate::startHandshake()
74 X509 *x509 = q_SSL_get_peer_certificate(ssl);
75 configuration.peerCertificate = QSslCertificatePrivate::QSslCertificate_from_X509(x509);
76 q_X509_free(x509);
77- if (QSslCertificatePrivate::isBlacklisted(configuration.peerCertificate)) {
78- q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted"));
79- q->setSocketError(QAbstractSocket::SslHandshakeFailedError);
80- emit q->error(QAbstractSocket::SslHandshakeFailedError);
81- plainSocket->disconnectFromHost();
82- return false;
83+
84+ // check the whole chain for blacklisting (including root, as we check for subjectInfo and issuer)
85+ foreach (const QSslCertificate &cert, configuration.peerCertificateChain) {
86+ if (QSslCertificatePrivate::isBlacklisted(cert)) {
87+ q->setErrorString(QSslSocket::tr("The peer certificate is blacklisted"));
88+ q->setSocketError(QAbstractSocket::SslHandshakeFailedError);
89+ emit q->error(QAbstractSocket::SslHandshakeFailedError);
90+ plainSocket->disconnectFromHost();
91+ return false;
92+ }
93 }
94
95 // 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 0000000000..1d725b7e03
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/compile.test-lflags.patch
@@ -0,0 +1,17 @@
1Pass through LDFLAGS to configure tests
2
3Upstream-Status: Inappropriate [configuration]
4
5Index: qt-everywhere-opensource-src-4.6.3/config.tests/unix/compile.test
6===================================================================
7--- qt-everywhere-opensource-src-4.6.3.orig/config.tests/unix/compile.test 2010-06-02 06:03:18.000000000 +0400
8+++ qt-everywhere-opensource-src-4.6.3/config.tests/unix/compile.test 2010-10-04 17:35:07.587783460 +0400
9@@ -11,7 +11,7 @@
10 EXE=`basename "$6"`
11 DESCRIPTION=$7
12 shift 7
13-LFLAGS=""
14+LFLAGS="$LDFLAGS"
15 INCLUDEPATH=""
16 CXXFLAGS=""
17 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 0000000000..45208ec415
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/configure-paths.patch
@@ -0,0 +1,26 @@
1Use OE_QMAKE_* values to specify Qt utility paths
2
3Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
4Upstream-Status: Inappropriate [configuration]
5
6Index: qt-everywhere-opensource-src-4.6.3/configure
7===================================================================
8--- qt-everywhere-opensource-src-4.6.3.orig/configure 2011-01-10 15:47:37.100607001 +0000
9+++ qt-everywhere-opensource-src-4.6.3/configure 2011-01-10 15:49:14.576606999 +0000
10@@ -7198,11 +7198,11 @@
11 QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
12
13 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
14-QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
15-QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
16-QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
17-QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
18-QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
19+QMAKE_MOC = \${OE_QMAKE_MOC}
20+QMAKE_UIC = \${OE_QMAKE_UIC}
21+QMAKE_UIC3 = \${OE_QMAKE_UIC3}
22+QMAKE_RCC = \${OE_QMAKE_RCC}
23+QMAKE_QDBUSXML2CPP = \${OE_QMAKE_QDBUSXML2CPP}
24 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
25 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
26
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 0000000000..1e0d14eb6b
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/fix-config-tests.patch
@@ -0,0 +1,38 @@
1Fix invocation in case of "ccache some-compiler-gcc". As the command "ccache some-compiler-gcc" will not exist but "ccache" will.
2
3both visibility and relocs were affected.
4
5Original Author: Holger Hans Peter Freyther <zecke@selfish.org>
6Ported from OE by: Yu Ke <ke.yu@intel.com>
7Upstream-Status: Pending
8
9Index: qt-x11-opensource-src-4.5.2/config.tests/unix/bsymbolic_functions.test
10===================================================================
11--- qt-x11-opensource-src-4.5.2.orig/config.tests/unix/bsymbolic_functions.test 2009-08-01 08:01:11.000000000 +0200
12+++ qt-x11-opensource-src-4.5.2/config.tests/unix/bsymbolic_functions.test 2009-08-01 08:01:16.000000000 +0200
13@@ -8,7 +8,7 @@
14 int main() { return 0; }
15 EOF
16
17-"$COMPILER" -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
18+$COMPILER -o libtest.so -shared -Wl,-Bsymbolic-functions -fPIC bsymbolic_functions.c >/dev/null 2>&1 && BSYMBOLIC_FUNCTIONS_SUPPORT=yes
19 rm -f bsymbolic_functions.c libtest.so
20
21 # done
22Index: qt-x11-opensource-src-4.5.2/config.tests/unix/fvisibility.test
23===================================================================
24--- qt-x11-opensource-src-4.5.2.orig/config.tests/unix/fvisibility.test 2009-06-20 06:57:50.000000000 +0200
25+++ qt-x11-opensource-src-4.5.2/config.tests/unix/fvisibility.test 2009-08-01 07:59:05.000000000 +0200
26@@ -15,9 +15,9 @@
27 EOF
28
29 if [ "$VERBOSE" = "yes" ] ; then
30- "$COMPILER" -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes
31+ $COMPILER -c -fvisibility=hidden fvisibility.c && FVISIBILITY_SUPPORT=yes
32 else
33- "$COMPILER" -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
34+ $COMPILER -c -fvisibility=hidden fvisibility.c >/dev/null 2>&1 && FVISIBILITY_SUPPORT=yes
35 fi
36 rm -f fvisibility.c fvisibility.o
37 }
38
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 0000000000..c2aed5ca0f
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/fix_qkbdtty_qws.patch
@@ -0,0 +1,37 @@
1Upstream-Status: Pending
2
3This issue is that with C++ compiler process an old version of kernel
4header file, coincidently that file has a variable named 'new':
5
6* 'embedded/qkbdtty_qws.cpp' include 'linux/vt.h';
7* '/usr/include/linux/vt.h' has below code on SLED-11.x:
8 + unsigned int new;
9
10On mostly hosts it has been changed to: new -> newev.
11
12Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
13=======================================
14diff --git a/src/gui/embedded/qkbdtty_qws.cpp b/src/gui/embedded/qkbdtty_qws.cpp
15--- a/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:16:58.420198350 +0800
16+++ b/src/gui/embedded/qkbdtty_qws.cpp 2012-07-27 13:24:43.924191127 +0800
17@@ -54,8 +54,20 @@
18
19 #if defined Q_OS_LINUX
20 # include <linux/kd.h>
21+
22+/* Workaround kernel headers using "new" as variable name. The problem
23+ is specific to SLED-11, other distros use "newev" rather than "new" */
24+#ifdef __cplusplus
25+#warning "workaround kernel headers using new as variable name on SLED 11"
26+#define new newev
27+#endif
28+
29 # include <linux/vt.h> //TODO: move vt handling somewhere else (QLinuxFbScreen?)
30
31+#ifdef __cplusplus
32+#undef new
33+#endif
34+
35 # include "qscreen_qws.h"
36 # include "qwindowsystem_qws.h"
37 # 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 0000000000..2ab05ed1ad
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/qt-config.patch
@@ -0,0 +1,29 @@
1Allow to set a qt.conf from the outside using the environment. This allows
2to inject new prefixes and other paths into qmake. This is needed when using
3the same qmake binary to build qt/x11 and qt/embedded
4
5Original Author: Holger Freyther <zecke@selfish.org>
6Ported from OE by: Yu Ke <ke.yu@intel.com>
7Upstream-Status: Pending
8
9--- /tmp/qlibraryinfo.cpp 2008-08-02 17:16:41.000000000 +0200
10+++ qt-embedded-linux-opensource-src-4.4.1/src/corelib/global/qlibraryinfo.cpp 2008-08-02 17:17:42.000000000 +0200
11@@ -47,6 +47,7 @@
12 QT_BEGIN_NAMESPACE
13 extern QString qmake_libraryInfoFile();
14 QT_END_NAMESPACE
15+#include <stdlib.h>
16 #else
17 # include "qcoreapplication.h"
18 #endif
19@@ -113,6 +114,10 @@
20 #ifdef QT_BUILD_QMAKE
21 if(!QFile::exists(qtconfig))
22 qtconfig = qmake_libraryInfoFile();
23+ if (!QFile::exists(qtconfig)) {
24+ QByteArray config = getenv("QT_CONF_PATH");
25+ qtconfig = QFile::decodeName(config);
26+ }
27 #else
28 if (!QFile::exists(qtconfig) && QCoreApplication::instance()) {
29 #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 0000000000..6ee402fdc1
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/qt-dbus-const.patch
@@ -0,0 +1,22 @@
1Remove "const" usage that causes compile failure building nativesdk-qt4-tools
2
3Upstream-Status: Denied [possible retry]
4
5Patch has apparently been rejected upstream, not because it is invalid
6but because the submitter did not submit a merge request for it, so the
7validity of the patch upstream is uncertain. For further details see:
8http://bugreports.qt.nokia.com/browse/QTBUG-17962
9
10Original Author: Pavel Heimlich <tropikhajma at gmail.com>
11
12--- qt-everywhere-opensource-src-4.7.3/src/dbus/qdbusintegrator.cpp.orig 2011-03-12 02:11:32.313467991 +0100
13+++ qt-everywhere-opensource-src-4.7.3/src/dbus/qdbusintegrator.cpp 2011-03-12 02:11:03.795809176 +0100
14@@ -71,7 +71,7 @@
15 static bool isDebugging;
16 #define qDBusDebug if (!::isDebugging); else qDebug
17
18-Q_GLOBAL_STATIC_WITH_ARGS(const QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS)))
19+Q_GLOBAL_STATIC_WITH_ARGS(QString, orgFreedesktopDBusString, (QLatin1String(DBUS_SERVICE_DBUS)))
20
21 static inline QString dbusServiceString()
22 { 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 0000000000..21d6ecbd6a
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/qte.sh
@@ -0,0 +1,7 @@
1#!/bin/sh
2
3if [ -e /dev/input/touchscreen0 ]
4then
5 QWS_MOUSE_PROTO=Tslib:/dev/input/touchscreen0
6 export QWS_MOUSE_PROTO
7fi
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 0000000000..9cb72baf9e
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/set-OUTPUT_DIR-if-empty.patch
@@ -0,0 +1,19 @@
1Without this do_configure was trying to create /include/WebCore/libdummy.prl in root of build host filesystem
2now it's in proper place ${WORKDIR}/qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/include/WebCore/libdummy.prl
3
4First reported here:
5http://www.mail-archive.com/openembedded-devel@lists.openembedded.org/msg24436.html
6
7Upstream-Status: Pending
8
9--- qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro.orig 2012-05-01 07:48:08.457613310 +0200
10+++ qt-everywhere-opensource-src-4.8.1/src/3rdparty/webkit/Source/WebKit2/DerivedSources.pro 2012-05-01 07:48:15.493613232 +0200
11@@ -3,6 +3,8 @@
12
13 CONFIG -= debug_and_release
14
15+isEmpty(OUTPUT_DIR): OUTPUT_DIR = ../..
16+
17 CONFIG(standalone_package) {
18 isEmpty(WEBKIT2_GENERATED_SOURCES_DIR):WEBKIT2_GENERATED_SOURCES_DIR = $$PWD/generated
19 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 0000000000..9b53aff172
--- /dev/null
+++ b/meta/recipes-qt/qt4/qt4-4.8.1/target_qmake.patch
@@ -0,0 +1,27 @@
1From e4b27237386b3dd864dd603de2ae54a707f5419f Mon Sep 17 00:00:00 2001
2From: Paul Eggleton <paul.eggleton@linux.intel.com>
3Date: Mon, 27 Feb 2012 00:13:05 +0000
4Subject: [PATCH] Allow building a separate qmake for the target
5
6Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
7
8Upstream-Status: Inappropriate [config]
9---
10 qmake/qmake.pro | 1 +
11 1 files changed, 1 insertions(+), 0 deletions(-)
12
13diff --git a/qmake/qmake.pro b/qmake/qmake.pro
14index b602afa..b59f7fb 100644
15--- a/qmake/qmake.pro
16+++ b/qmake/qmake.pro
17@@ -7,6 +7,7 @@ CONFIG += console bootstrap
18 CONFIG -= qt shared app_bundle uic
19 DEFINES += QT_BUILD_QMAKE QT_BOOTSTRAPPED
20 DESTDIR = ../bin/
21+TARGET = qmake2
22
23 OBJECTS_DIR = .
24 MOC_DIR = .
25--
261.7.5.4
27