rdieter pushed to qt5-qtdeclarative (el6). "pull in some upstream fixes, for QTBUG-45753/kde-345544 in particular"
notifications at fedoraproject.org
notifications at fedoraproject.org
Tue Jun 9 09:52:58 UTC 2015
From 66e30f34be732f2bc04666a2fc48ca2ad574c190 Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter at math.unl.edu>
Date: Sat, 2 May 2015 17:23:29 -0500
Subject: pull in some upstream fixes, for QTBUG-45753/kde-345544 in particular
diff --git a/0008-Fix-usage-of-pow-to-C99-standard-compliance.patch b/0008-Fix-usage-of-pow-to-C99-standard-compliance.patch
new file mode 100644
index 0000000..790b68b
--- /dev/null
+++ b/0008-Fix-usage-of-pow-to-C99-standard-compliance.patch
@@ -0,0 +1,28 @@
+From 6b3ac8e2e0944fb6025371c2ff37db350fef69fd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?=
+ <pasi.petajajarvi at theqtcompany.com>
+Date: Wed, 21 Jan 2015 16:02:17 +0200
+Subject: [PATCH 08/68] Fix usage of pow to C99 standard compliance
+
+Change-Id: I37c25b848dd3f53afff360d81a3a685cbd8e5d26
+Reviewed-by: Simon Hausmann <simon.hausmann at digia.com>
+---
+ src/qml/jsruntime/qv4globalobject.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/qml/jsruntime/qv4globalobject.cpp b/src/qml/jsruntime/qv4globalobject.cpp
+index 9a9de8b..77bc9f5 100644
+--- a/src/qml/jsruntime/qv4globalobject.cpp
++++ b/src/qml/jsruntime/qv4globalobject.cpp
+@@ -502,7 +502,7 @@ ReturnedValue GlobalFunctions::method_parseInt(CallContext *ctx)
+ }
+
+ if (overflow) {
+- double result = (double) v_overflow * pow(R, overflow_digit_count);
++ double result = (double) v_overflow * pow(static_cast<double>(R), static_cast<double>(overflow_digit_count));
+ result += v;
+ return Encode(sign * result);
+ } else {
+--
+2.3.7
+
diff --git a/0011-V4-include-alloca-private-header-as-alloca-is-used-u.patch b/0011-V4-include-alloca-private-header-as-alloca-is-used-u.patch
new file mode 100644
index 0000000..21eda00
--- /dev/null
+++ b/0011-V4-include-alloca-private-header-as-alloca-is-used-u.patch
@@ -0,0 +1,41 @@
+From 47c089d15f79cd678e0c9de5c7fb5b5e2488a9f5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pasi=20Pet=C3=A4j=C3=A4j=C3=A4rvi?=
+ <pasi.petajajarvi at theqtcompany.com>
+Date: Wed, 21 Jan 2015 12:35:38 +0200
+Subject: [PATCH 11/68] V4: include alloca private header as alloca is used
+ unconditionally.
+
+Change-Id: Ic94a7ec3980ca9e2629620ef83c93b179d75162b
+Reviewed-by: Simon Hausmann <simon.hausmann at digia.com>
+---
+ src/qml/jit/qv4regalloc.cpp | 1 +
+ src/qml/jsruntime/qv4stringobject.cpp | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/qml/jit/qv4regalloc.cpp b/src/qml/jit/qv4regalloc.cpp
+index e695224..f9f494c 100644
+--- a/src/qml/jit/qv4regalloc.cpp
++++ b/src/qml/jit/qv4regalloc.cpp
+@@ -32,6 +32,7 @@
+ ****************************************************************************/
+
+ #include "qv4regalloc_p.h"
++#include "qv4alloca_p.h"
+ #include <private/qv4value_inl_p.h>
+
+ #include <algorithm>
+diff --git a/src/qml/jsruntime/qv4stringobject.cpp b/src/qml/jsruntime/qv4stringobject.cpp
+index 397a6ef..8bf9a09 100644
+--- a/src/qml/jsruntime/qv4stringobject.cpp
++++ b/src/qml/jsruntime/qv4stringobject.cpp
+@@ -37,6 +37,7 @@
+ #include "qv4objectproto_p.h"
+ #include "qv4mm_p.h"
+ #include "qv4scopedvalue_p.h"
++#include "qv4alloca_p.h"
+ #include <QtCore/qnumeric.h>
+ #include <QtCore/qmath.h>
+ #include <QtCore/QDateTime>
+--
+2.3.7
+
diff --git a/0032-Update-C-11-warning-logic-from-QtWebKit.patch b/0032-Update-C-11-warning-logic-from-QtWebKit.patch
new file mode 100644
index 0000000..b219f62
--- /dev/null
+++ b/0032-Update-C-11-warning-logic-from-QtWebKit.patch
@@ -0,0 +1,47 @@
+From fd395141f00ef0fc72e2d6b7da0c6397324036a3 Mon Sep 17 00:00:00 2001
+From: Allan Sandfeld Jensen <allan.jensen at theqtcompany.com>
+Date: Fri, 30 Jan 2015 11:54:44 +0100
+Subject: [PATCH 32/68] Update C++11 warning logic from QtWebKit
+
+Fixes compatibility with gcc 5.0.
+
+Change-Id: I017c6d690c1f64359c3bac6c8b6b0f5e089861eb
+Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen at theqtcompany.com>
+Reviewed-by: Thiago Macieira <thiago.macieira at intel.com>
+---
+ src/3rdparty/masm/masm.pri | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/src/3rdparty/masm/masm.pri b/src/3rdparty/masm/masm.pri
+index 3fd4aa6..3655af3 100644
+--- a/src/3rdparty/masm/masm.pri
++++ b/src/3rdparty/masm/masm.pri
+@@ -71,18 +71,16 @@ retgen.commands = python $$retgen.script > ${QMAKE_FILE_OUT}
+ QMAKE_EXTRA_COMPILERS += retgen
+
+ # Taken from WebKit/Tools/qmake/mkspecs/features/unix/default_post.prf
+-linux-g++* {
+- greaterThan(QT_GCC_MAJOR_VERSION, 3):greaterThan(QT_GCC_MINOR_VERSION, 5) {
+- !contains(QMAKE_CXXFLAGS, -std=(c|gnu)\\+\\+(0x|11)) {
++!c++11:!intel_icc {
++ # Don't warn about OVERRIDE and FINAL, since they are feature-checked anyways
++ clang {
++ QMAKE_CXXFLAGS += -Wno-c++11-extensions -Wno-c++0x-extensions
++ QMAKE_OBJECTIVE_CFLAGS += -Wno-c++11-extensions -Wno-c++0x-extensions
++ } else: gcc {
++ greaterThan(QT_GCC_MAJOR_VERSION, 4)|greaterThan(QT_GCC_MINOR_VERSION, 5) {
+ # We need to deactivate those warnings because some names conflicts with upcoming c++0x types (e.g.nullptr).
+ QMAKE_CXXFLAGS_WARN_ON += -Wno-c++0x-compat
+ QMAKE_CXXFLAGS += -Wno-c++0x-compat
+ }
+ }
+ }
+-
+-# Don't warn about OVERRIDE and FINAL, since they are feature-checked anyways
+-*clang:!contains(QMAKE_CXXFLAGS, -std=c++11) {
+- QMAKE_CXXFLAGS += -Wno-c++11-extensions
+- QMAKE_OBJECTIVE_CFLAGS += -Wno-c++11-extensions
+-}
+--
+2.3.7
+
diff --git a/0041-Fix-crash-in-overdraw-and-change-visualizers.patch b/0041-Fix-crash-in-overdraw-and-change-visualizers.patch
new file mode 100644
index 0000000..77c434a
--- /dev/null
+++ b/0041-Fix-crash-in-overdraw-and-change-visualizers.patch
@@ -0,0 +1,39 @@
+From d43a963e49956ba772644e9f3448dc3672147f77 Mon Sep 17 00:00:00 2001
+From: Daiwei Li <daiweili at suitabletech.com>
+Date: Mon, 2 Feb 2015 16:34:27 -0800
+Subject: [PATCH 41/68] Fix crash in overdraw and change visualizers
+
+It appears to be possible for node->element()->batch to be NULL
+
+Task-number: QTBUG-43129
+Change-Id: If6e4e265a02ee305bf3aa9cad387b7a73648367a
+Reviewed-by: Gunnar Sletta <gunnar at sletta.org>
+---
+ src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+index dbea0fa..b926697 100644
+--- a/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
++++ b/src/quick/scenegraph/coreapi/qsgbatchrenderer.cpp
+@@ -2815,7 +2815,7 @@ void Renderer::visualizeChangesPrepare(Node *n, uint parentChanges)
+ void Renderer::visualizeChanges(Node *n)
+ {
+
+- if (n->type() == QSGNode::GeometryNodeType && m_visualizeChanceSet.contains(n)) {
++ if (n->type() == QSGNode::GeometryNodeType && n->element()->batch && m_visualizeChanceSet.contains(n)) {
+ uint dirty = m_visualizeChanceSet.value(n);
+ bool tinted = (dirty & QSGNODE_DIRTY_PARENT) != 0;
+
+@@ -2852,7 +2852,7 @@ void Renderer::visualizeChanges(Node *n)
+
+ void Renderer::visualizeOverdraw_helper(Node *node)
+ {
+- if (node->type() == QSGNode::GeometryNodeType) {
++ if (node->type() == QSGNode::GeometryNodeType && node->element()->batch) {
+ VisualizeShader *shader = static_cast<VisualizeShader *>(m_shaderManager->visualizeProgram);
+ QSGGeometryNode *gn = static_cast<QSGGeometryNode *>(node->sgNode);
+
+--
+2.3.7
+
diff --git a/0043-V4-fix-ToFixed-rounding-for-0-fraction-digits.patch b/0043-V4-fix-ToFixed-rounding-for-0-fraction-digits.patch
new file mode 100644
index 0000000..3efe682
--- /dev/null
+++ b/0043-V4-fix-ToFixed-rounding-for-0-fraction-digits.patch
@@ -0,0 +1,73 @@
+From c3effc6cd3a66b6c02048d8ad85c7ed3bb3c1463 Mon Sep 17 00:00:00 2001
+From: Erik Verbruggen <erik.verbruggen at digia.com>
+Date: Wed, 28 Jan 2015 09:34:10 +0100
+Subject: [PATCH 43/68] V4: fix ToFixed rounding for 0 fraction digits.
+
+(12.5).toFixed() should return 13, not 12.
+
+Task-number: QTBUG-43885
+Task-number: QTBUG-44039
+Change-Id: Id2b19641e8c12dd5755d8447508b74567e4a2b9b
+Reviewed-by: Simon Hausmann <simon.hausmann at theqtcompany.com>
+---
+ src/qml/jsruntime/qv4numberobject.cpp | 12 +++++++++---
+ tests/auto/qml/qjsengine/tst_qjsengine.cpp | 13 +++++++++++++
+ 2 files changed, 22 insertions(+), 3 deletions(-)
+
+diff --git a/src/qml/jsruntime/qv4numberobject.cpp b/src/qml/jsruntime/qv4numberobject.cpp
+index 227ff14..236091b 100644
+--- a/src/qml/jsruntime/qv4numberobject.cpp
++++ b/src/qml/jsruntime/qv4numberobject.cpp
+@@ -202,9 +202,15 @@ ReturnedValue NumberPrototype::method_toFixed(CallContext *ctx)
+ str = QString::fromLatin1("NaN");
+ else if (qIsInf(v))
+ str = QString::fromLatin1(v < 0 ? "-Infinity" : "Infinity");
+- else if (v < 1.e21)
+- str = QString::number(v, 'f', int (fdigits));
+- else
++ else if (v < 1.e21) {
++ char buf[100];
++ double_conversion::StringBuilder builder(buf, sizeof(buf));
++ double_conversion::DoubleToStringConverter::EcmaScriptConverter().ToFixed(v, fdigits, &builder);
++ str = QString::fromLatin1(builder.Finalize());
++ // At some point, the 3rd party double-conversion code should be moved to qtcore.
++ // When that's done, we can use:
++// str = QString::number(v, 'f', int (fdigits));
++ } else
+ return RuntimeHelpers::stringFromNumber(ctx, v)->asReturnedValue();
+ return ctx->d()->engine->newString(str)->asReturnedValue();
+ }
+diff --git a/tests/auto/qml/qjsengine/tst_qjsengine.cpp b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+index 158ee15..2b7b1fc 100644
+--- a/tests/auto/qml/qjsengine/tst_qjsengine.cpp
++++ b/tests/auto/qml/qjsengine/tst_qjsengine.cpp
+@@ -174,6 +174,7 @@ private slots:
+ void privateMethods();
+
+ void intConversion_QTBUG43309();
++ void toFixed();
+
+ signals:
+ void testSignal();
+@@ -3615,6 +3616,18 @@ void tst_QJSEngine::intConversion_QTBUG43309()
+ QCOMPARE(result.toNumber(), 25.0);
+ }
+
++// QTBUG-44039 and QTBUG-43885:
++void tst_QJSEngine::toFixed()
++{
++ QJSEngine engine;
++ QJSValue result = engine.evaluate(QStringLiteral("(12.5).toFixed()"));
++ QVERIFY(result.isString());
++ QCOMPARE(result.toString(), QStringLiteral("13"));
++ result = engine.evaluate(QStringLiteral("(12.05).toFixed(1)"));
++ QVERIFY(result.isString());
++ QCOMPARE(result.toString(), QStringLiteral("12.1"));
++}
++
+ QTEST_MAIN(tst_QJSEngine)
+
+ #include "tst_qjsengine.moc"
+--
+2.3.7
+
diff --git a/0045-Fix-thread-safety-_POSIX_THREAD_SAFE_FUNCTIONS-is-in.patch b/0045-Fix-thread-safety-_POSIX_THREAD_SAFE_FUNCTIONS-is-in.patch
new file mode 100644
index 0000000..2741f36
--- /dev/null
+++ b/0045-Fix-thread-safety-_POSIX_THREAD_SAFE_FUNCTIONS-is-in.patch
@@ -0,0 +1,29 @@
+From ea70dd579522667e1ba2ffa7f6a39faa13857a72 Mon Sep 17 00:00:00 2001
+From: Thiago Macieira <thiago.macieira at intel.com>
+Date: Mon, 16 Feb 2015 16:17:21 -0800
+Subject: [PATCH 45/68] Fix thread-safety: _POSIX_THREAD_SAFE_FUNCTIONS is in
+ <unistd.h>
+
+If you don't include it, it isn't defined...
+
+Change-Id: I1a800c709d3543699131ffff13c388ba652761fc
+Reviewed-by: Simon Hausmann <simon.hausmann at theqtcompany.com>
+---
+ src/qml/jsruntime/qv4dateobject.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/qml/jsruntime/qv4dateobject.cpp b/src/qml/jsruntime/qv4dateobject.cpp
+index b3c340c..0aa53c4 100644
+--- a/src/qml/jsruntime/qv4dateobject.cpp
++++ b/src/qml/jsruntime/qv4dateobject.cpp
+@@ -57,6 +57,7 @@
+ # else
+ # include "qplatformdefs.h"
+ # endif
++# include <unistd.h> // for _POSIX_THREAD_SAFE_FUNCTIONS
+ #endif
+
+ using namespace QV4;
+--
+2.3.7
+
diff --git a/0058-V4-JIT-fix-typo-in-Binop-int32Binop.patch b/0058-V4-JIT-fix-typo-in-Binop-int32Binop.patch
new file mode 100644
index 0000000..024770a
--- /dev/null
+++ b/0058-V4-JIT-fix-typo-in-Binop-int32Binop.patch
@@ -0,0 +1,34 @@
+From 181824f2497b3c874acce0f4a54a5580ee64ea90 Mon Sep 17 00:00:00 2001
+From: Julien Brianceau <jbriance at cisco.com>
+Date: Mon, 13 Apr 2015 17:00:34 +0200
+Subject: [PATCH 58/68] V4 JIT: fix typo in Binop::int32Binop
+
+Change-Id: I68f073ab512b482c9b3b1ad7860f4c759245298e
+Reviewed-by: Simon Hausmann <simon.hausmann at theqtcompany.com>
+---
+ src/qml/jit/qv4binop.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/qml/jit/qv4binop.cpp b/src/qml/jit/qv4binop.cpp
+index a2d4815..7d6f397 100644
+--- a/src/qml/jit/qv4binop.cpp
++++ b/src/qml/jit/qv4binop.cpp
+@@ -430,13 +430,13 @@ bool Binop::int32Binop(IR::Expr *leftSource, IR::Expr *rightSource, IR::Expr *ta
+ as->lshift32(l, Assembler::ScratchRegister, targetReg);
+ break;
+
+- case IR::OpLShift:
++ case IR::OpRShift:
+ as->move(r, Assembler::ScratchRegister);
+ as->and32(Assembler::TrustedImm32(0x1f), Assembler::ScratchRegister);
+ as->rshift32(l, Assembler::ScratchRegister, targetReg);
+ break;
+
+- case IR::OpLShift:
++ case IR::OpURShift:
+ as->move(r, Assembler::ScratchRegister);
+ as->and32(Assembler::TrustedImm32(0x1f), Assembler::ScratchRegister);
+ as->storeUInt32(targetReg, target); // IMPORTANT: do NOT do a break here! The stored type of an urshift is different from the other binary operations!
+--
+2.3.7
+
diff --git a/0067-Avoid-calling-potentially-pure-virtual-method.patch b/0067-Avoid-calling-potentially-pure-virtual-method.patch
new file mode 100644
index 0000000..1f9d494
--- /dev/null
+++ b/0067-Avoid-calling-potentially-pure-virtual-method.patch
@@ -0,0 +1,64 @@
+From 0d31aa1617c96ed3e3624d77332ea6f13aba1492 Mon Sep 17 00:00:00 2001
+From: David Edmundson <davidedmundson at kde.org>
+Date: Thu, 23 Apr 2015 15:01:24 +0200
+Subject: [PATCH 67/68] Avoid calling potentially pure virtual method
+
+In Qt 5.4 screenChanged is called indirectly from the destructor of
+QPlatformScreen. By comparing new values against the oldScreen we call
+call virtual methods of QPlatformScreen from it's own destructor which
+results in a crash.
+
+This patch simply emits change signals whenever a screen change regardless
+of whether the value differs from the previous screen. Arguably less
+efficient, but better than crashing.
+
+This fix is not needed in Qt 5.5 where the QPA architecture has changed.
+
+Task-number: QTBUG-45753
+Change-Id: Ic155906928855a377add9b21bff9e72b31f4667e
+Reviewed-by: Alan Alpert <aalpert at blackberry.com>
+---
+ src/quick/items/qquickscreen.cpp | 27 +++++++++------------------
+ 1 file changed, 9 insertions(+), 18 deletions(-)
+
+diff --git a/src/quick/items/qquickscreen.cpp b/src/quick/items/qquickscreen.cpp
+index c4d1407..0900adb 100644
+--- a/src/quick/items/qquickscreen.cpp
++++ b/src/quick/items/qquickscreen.cpp
+@@ -347,24 +347,15 @@ void QQuickScreenAttached::screenChanged(QScreen *screen)
+ emit orientationUpdateMaskChanged();
+ }
+
+- if (!oldScreen || screen->size() != oldScreen->size()) {
+- emit widthChanged();
+- emit heightChanged();
+- }
+- if (!oldScreen || screen->name() != oldScreen->name())
+- emit nameChanged();
+- if (!oldScreen || screen->orientation() != oldScreen->orientation())
+- emit orientationChanged();
+- if (!oldScreen || screen->primaryOrientation() != oldScreen->primaryOrientation())
+- emit primaryOrientationChanged();
+- if (!oldScreen || screen->availableVirtualGeometry() != oldScreen->availableVirtualGeometry())
+- emit desktopGeometryChanged();
+- if (!oldScreen || screen->logicalDotsPerInch() != oldScreen->logicalDotsPerInch())
+- emit logicalPixelDensityChanged();
+- if (!oldScreen || screen->physicalDotsPerInch() != oldScreen->physicalDotsPerInch())
+- emit pixelDensityChanged();
+- if (!oldScreen || screen->devicePixelRatio() != oldScreen->devicePixelRatio())
+- emit devicePixelRatioChanged();
++ emit widthChanged();
++ emit heightChanged();
++ emit nameChanged();
++ emit orientationChanged();
++ emit primaryOrientationChanged();
++ emit desktopGeometryChanged();
++ emit logicalPixelDensityChanged();
++ emit pixelDensityChanged();
++ emit devicePixelRatioChanged();
+
+ connect(screen, SIGNAL(geometryChanged(QRect)),
+ this, SIGNAL(widthChanged()));
+--
+2.3.7
+
diff --git a/qt5-qtdeclarative.spec b/qt5-qtdeclarative.spec
index eb409e8..ac9ab0c 100644
--- a/qt5-qtdeclarative.spec
+++ b/qt5-qtdeclarative.spec
@@ -13,7 +13,7 @@
Summary: Qt5 - QtDeclarative component
Name: qt5-%{qt_module}
Version: 5.4.1
-Release: 3%{?dist}
+Release: 4%{?dist}
# See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details
License: LGPLv2 with exceptions or GPLv3 with exceptions
@@ -24,6 +24,16 @@ Source0: http://download.qt-project.org/development_releases/qt/5.4/%{version}-%
Source0: http://download.qt-project.org/official_releases/qt/5.4/%{version}/submodules/%{qt_module}-opensource-src-%{version}.tar.xz
%endif
+## upstream patches
+Patch08: 0008-Fix-usage-of-pow-to-C99-standard-compliance.patch
+Patch11: 0011-V4-include-alloca-private-header-as-alloca-is-used-u.patch
+Patch32: 0032-Update-C-11-warning-logic-from-QtWebKit.patch
+Patch41: 0041-Fix-crash-in-overdraw-and-change-visualizers.patch
+Patch43: 0043-V4-fix-ToFixed-rounding-for-0-fraction-digits.patch
+Patch45: 0045-Fix-thread-safety-_POSIX_THREAD_SAFE_FUNCTIONS-is-in.patch
+Patch58: 0058-V4-JIT-fix-typo-in-Binop-int32Binop.patch
+Patch67: 0067-Avoid-calling-potentially-pure-virtual-method.patch
+
# support no_sse2 CONFIG (fedora i686 builds cannot assume -march=pentium4 -msse2 -mfpmath=sse flags, or the JIT that needs them)
# https://codereview.qt-project.org/#change,73710
Patch1: qtdeclarative-opensource-src-5.4.1-no_sse2.patch
@@ -75,9 +85,9 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%prep
-%setup -q -n %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}}
+%autosetup -p1 -n %{qt_module}-opensource-src-%{version}%{?pre:-%{pre}}
-%patch1 -p1 -b .no_sse2
+#patch1 -p1 -b .no_sse2
%build
@@ -205,6 +215,9 @@ popd
%changelog
+* Sat May 02 2015 Rex Dieter <rdieter at fedoraproject.org> 5.4.1-4
+- pull in some upstream fixes, for QTBUG-45753/kde-345544 in particular
+
* Wed Apr 22 2015 Kevin Kofler <Kevin at tigcc.ticalc.org> - 5.4.1-3
- fix non-sse2 support (kde#346244) and optimize sse2 binaries
--
cgit v0.10.2
http://pkgs.fedoraproject.org/cgit/qt5-qtdeclarative.git/commit/?h=el6&id=66e30f34be732f2bc04666a2fc48ca2ad574c190
More information about the scm-commits
mailing list