sm-commit AT lists.ibiblio.org
Subject: Source Mage code commit list
List archive
[[SM-Commit] ] GIT changes to master grimoire by Treeve Jelbert (148aa50c109578c322aef5e1bbd8a857a1005f0d)
- From: Treeve Jelbert <scm AT sourcemage.org>
- To: sm-commit AT lists.ibiblio.org, sm-commit AT lists.sourcemage.org
- Subject: [[SM-Commit] ] GIT changes to master grimoire by Treeve Jelbert (148aa50c109578c322aef5e1bbd8a857a1005f0d)
- Date: Wed, 22 Oct 2025 16:50:42 +0000
GIT changes to master grimoire by Treeve Jelbert <treeve AT sourcemage.org>:
database/valkey/DETAILS |
4
database/valkey/HISTORY |
3
libs/protobuf/DETAILS |
4
libs/protobuf/HISTORY |
3
qt6/qt6declarative/DETAILS |
2
qt6/qt6declarative/HISTORY |
4
qt6/qt6declarative/PRE_BUILD |
3
qt6/qt6declarative/patches/0de0b0ffdb44d73c605e20f00934dfb44bdf7ad9.diff |
223 ++++++++++
8 files changed, 241 insertions(+), 5 deletions(-)
New commits:
commit 148aa50c109578c322aef5e1bbd8a857a1005f0d
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>
protobuf: => 33.0
commit ecace39d521623b432500ce6717797f487566970
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>
valkey: => 9.0.0
commit 28727c13694c0798529cdf04103f06af7bef0e4c
Author: Treeve Jelbert <treeve AT sourcemage.org>
Commit: Treeve Jelbert <treeve AT sourcemage.org>
qt6declarative - fix QTBUG-139626
diff --git a/database/valkey/DETAILS b/database/valkey/DETAILS
index 74740d3..9c53360 100755
--- a/database/valkey/DETAILS
+++ b/database/valkey/DETAILS
@@ -1,6 +1,6 @@
SPELL=valkey
- VERSION=8.1.3
-
SOURCE_HASH=sha512:1a8a12b4c74f553f954a53427926069ef9656657130862ae1c9e3119c69f0542447ab8c30466a253290cb74c7a043efd4f5d79567deef74084f17745d9085e3d
+ VERSION=9.0.0
+
SOURCE_HASH=sha512:387e8ebf26a307940bf0f26eb4ba51f016445a618435f4c61ec4c8b8d4b7e2cbfc7a7e93b6c35b7c6832e3161981b4b2ce0d09bdc1799dbb5271052cf70654e4
SECURITY_PATCH=3
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_URL[0]=https://github.com/valkey-io/valkey/archive/refs/tags/$VERSION.tar.gz
diff --git a/database/valkey/HISTORY b/database/valkey/HISTORY
index 3ddecb7..ad68a54 100644
--- a/database/valkey/HISTORY
+++ b/database/valkey/HISTORY
@@ -1,3 +1,6 @@
+2025-10-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 9.0.0
+
2025-08-26 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 8.1.3
SECURITY_PATCH++ fix CVE-2025-32023 CVE-2025-48367
diff --git a/libs/protobuf/DETAILS b/libs/protobuf/DETAILS
index 3f0d30b..4d3ae71 100755
--- a/libs/protobuf/DETAILS
+++ b/libs/protobuf/DETAILS
@@ -1,7 +1,7 @@
source $GRIMOIRE/CMAKE_FUNCTIONS
SPELL=protobuf
- VERSION=32.1
-
SOURCE_HASH=sha512:840239f4fb57450ffe61f2cdc73daf5f1f3ea317b1ab1135a90303783e62722cfa410ff27bb2c5c6d3106be39ccdc95cdfbc5bf271ba79f935ab85f9b8ce3075
+ VERSION=33.0
+
SOURCE_HASH=sha512:365f975f2e982dd2d5588dc0ff435316bf6e50d272e419c01793e4d02f1a9f1e98026fc854ec73f1ee4eb0391701201ae82c7af9b18f3b677d451dd3dd78c468
SOURCE=$SPELL-$VERSION.tar.gz
SOURCE_DIRECTORY=$BUILD_DIRECTORY/$SPELL-$VERSION
WEB_SITE=https://protobuf.dev/
diff --git a/libs/protobuf/HISTORY b/libs/protobuf/HISTORY
index d6bfeff..2212c63 100644
--- a/libs/protobuf/HISTORY
+++ b/libs/protobuf/HISTORY
@@ -1,3 +1,6 @@
+2025-10-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * DETAILS: version 33.0
+
2025-09-30 Treeve Jelbert <treeve AT sourcemage.org>
* DETAILS: version 32.1
diff --git a/qt6/qt6declarative/DETAILS b/qt6/qt6declarative/DETAILS
index 9d3f4de..40c42dc 100755
--- a/qt6/qt6declarative/DETAILS
+++ b/qt6/qt6declarative/DETAILS
@@ -1,6 +1,6 @@
SPELL=qt6declarative
source $GRIMOIRE/$SECTION/QT6_VERSIONS
-
+PATCHLEVEL=1
# SECURITY_PATCH=2
ENTERED=20210116
diff --git a/qt6/qt6declarative/HISTORY b/qt6/qt6declarative/HISTORY
index 1f56a06..580f09d 100644
--- a/qt6/qt6declarative/HISTORY
+++ b/qt6/qt6declarative/HISTORY
@@ -1,3 +1,7 @@
+2025-10-22 Treeve Jelbert <treeve AT sourcemage.org>
+ * PRE_BUILD 0de0b0ffdb44d73c605e20f00934dfb44bdf7ad9.diff: added,
upstream patch
+ * DETAILS: PATCHLEVEL=1
+
2025-07-22 Treeve Jelbert <treeve AT sourcemage.org>
* DEPENDS: re-add qt6tools
diff --git a/qt6/qt6declarative/PRE_BUILD b/qt6/qt6declarative/PRE_BUILD
new file mode 100755
index 0000000..4604ffc
--- /dev/null
+++ b/qt6/qt6declarative/PRE_BUILD
@@ -0,0 +1,3 @@
+default_pre_build &&
+cd $SOURCE_DIRECTORY &&
+apply_patch_dir patches
diff --git
a/qt6/qt6declarative/patches/0de0b0ffdb44d73c605e20f00934dfb44bdf7ad9.diff
b/qt6/qt6declarative/patches/0de0b0ffdb44d73c605e20f00934dfb44bdf7ad9.diff
new file mode 100644
index 0000000..7d8b62f
--- /dev/null
+++ b/qt6/qt6declarative/patches/0de0b0ffdb44d73c605e20f00934dfb44bdf7ad9.diff
@@ -0,0 +1,223 @@
+diff --git a/src/qmlcompiler/qqmljscodegenerator.cpp
b/src/qmlcompiler/qqmljscodegenerator.cpp
+index ce50e4cca2d..b8ad569276f 100644
+--- a/src/qmlcompiler/qqmljscodegenerator.cpp
++++ b/src/qmlcompiler/qqmljscodegenerator.cpp
+@@ -1472,7 +1472,7 @@ void QQmlJSCodeGenerator::generate_GetLookup(int index)
+ generate_GetLookupHelper(index);
+ }
+
+-QString QQmlJSCodeGenerator::generateVariantMapLookup(
++QString QQmlJSCodeGenerator::generateVariantMapGetLookup(
+ const QString &map, const int nameIndex)
+ {
+ const QString mapLookup = map
+@@ -1483,6 +1483,18 @@ QString QQmlJSCodeGenerator::generateVariantMapLookup(
+ + u";\n"_s;
+ }
+
++QString QQmlJSCodeGenerator::generateVariantMapSetLookup(
++ const QString &map, const int nameIndex,
++ const QQmlJSScope::ConstPtr &property, const QString &variableIn)
++{
++ const QString mapLookup = map
++ + u"["_s +
QQmlJSUtils::toLiteral(m_jsUnitGenerator->lookupName(nameIndex)) + u"]"_s;
++
++ return mapLookup + u" = "_s
++ + conversion(property, m_typeResolver->varType(), variableIn)
++ + u";\n"_s;
++}
++
+ void QQmlJSCodeGenerator::generate_GetLookupHelper(int index)
+ {
+ if (m_state.accumulatorOut().isMethod())
+@@ -1628,7 +1640,7 @@ void QQmlJSCodeGenerator::generate_GetLookupHelper(int
index)
+ REJECT(u"access to 'length' property of sequence wrapped in
non-sequence"_s);
+ }
+ } else if (accumulatorIn.isStoredIn(m_typeResolver->variantMapType())) {
+- m_body += generateVariantMapLookup(m_state.accumulatorVariableIn,
index);
++ m_body +=
generateVariantMapGetLookup(m_state.accumulatorVariableIn, index);
+ } else {
+ if (m_state.isRegisterAffectedBySideEffects(Accumulator))
+ REJECT(u"reading from a value that's potentially affected by
side effects"_s);
+@@ -1639,7 +1651,7 @@ void QQmlJSCodeGenerator::generate_GetLookupHelper(int
index)
+ m_jsUnitGenerator->lookupName(index)));
+
+ if (scope.contains(m_typeResolver->variantMapType())) {
+- m_body += generateVariantMapLookup(
++ m_body += generateVariantMapGetLookup(
+ u"(*static_cast<const QVariantMap *>("_s
+ + inputContentPointer + u"))"_s, index);
+ return;
+@@ -1699,6 +1711,15 @@ void QQmlJSCodeGenerator::generate_StoreProperty(int
nameIndex, int baseReg)
+ REJECT(u"StoreProperty"_s);
+ }
+
++// TODO: This shouldn't be necessary. If the content can be stored
directly, then it should
++// be stored and used directly. If it cannot be stored directly, it
should be stored
++// as QVariant, but then we cannot dereference the content pointer
either.
++static QString derefContentPointer(const QString &contentPointer)
++{
++ Q_ASSERT(contentPointer.startsWith(u'&') ||
contentPointer[0].isLetterOrNumber());
++ return contentPointer.startsWith(u'&') ? contentPointer.mid(1) : (u'*'
+ contentPointer);
++}
++
+ void QQmlJSCodeGenerator::generate_SetLookup(int index, int baseReg)
+ {
+ INJECT_TRACE_INFO(generate_SetLookup);
+@@ -1707,8 +1728,9 @@ void QQmlJSCodeGenerator::generate_SetLookup(int
index, int baseReg)
+ const QQmlJSScope::ConstPtr valueType =
m_state.accumulatorIn().storedType();
+ const QQmlJSRegisterContent property = m_state.readAccumulator();
+ Q_ASSERT(property.isConversion());
+- const QQmlJSScope::ConstPtr originalScope
+- =
m_typeResolver->original(property.conversionResultScope()).containedType();
++ const QQmlJSRegisterContent original
++ = m_typeResolver->original(property.conversionResultScope());
++ const QQmlJSScope::ConstPtr originalScope = original.containedType();
+
+ if (property.storedType().isNull()) {
+ REJECT(u"SetLookup. Could not find property "
+@@ -1758,9 +1780,7 @@ void QQmlJSCodeGenerator::generate_SetLookup(int
index, int baseReg)
+
+ // We can resize without write back on a list property because it's
actually a reference.
+ m_body += u"const int begin = "_s + object + u".count(&" + object +
u");\n"_s;
+- m_body += u"const int end = "_s
+- + (variableIn.startsWith(u'&') ? variableIn.mid(1) : (u'*'
+ variableIn))
+- + u";\n"_s;
++ m_body += u"const int end = "_s + derefContentPointer(variableIn) +
u";\n"_s;
+ m_body += u"for (int i = begin; i < end; ++i)\n"_s;
+ m_body += u" "_s + object + u".append(&"_s + object + u",
nullptr);\n"_s;
+ m_body += u"for (int i = begin; i > end; --i)\n"_s;
+@@ -1770,10 +1790,26 @@ void QQmlJSCodeGenerator::generate_SetLookup(int
index, int baseReg)
+ }
+ case QQmlJSScope::AccessSemantics::Value: {
+ const QQmlJSRegisterContent base = registerType(baseReg);
++ if (base.isStoredIn(m_typeResolver->variantMapType())) {
++ m_body += generateVariantMapSetLookup(
++ registerVariable(baseReg), index, property.storedType(),
++ derefContentPointer(variableIn));
++ generateWriteBack(baseReg);
++ break;
++ }
+ const QString baseContentPointer = resolveValueTypeContentPointer(
+ originalScope, base, object,
+ u"TypeError: Value is %1 and could not be converted to
an object"_s);
+
++ if (original.contains(m_typeResolver->variantMapType())) {
++ m_body += generateVariantMapSetLookup(
++ u"(*static_cast<const QVariantMap *>("_s
++ + baseContentPointer + u"))"_s, index,
property.storedType(),
++ derefContentPointer(variableIn));
++ generateWriteBack(baseReg);
++ break;
++ }
++
+ const QString lookup = u"aotContext->setValueLookup("_s +
indexString
+ + u", "_s + baseContentPointer
+ + u", "_s + variableIn + u')';
+diff --git a/src/qmlcompiler/qqmljscodegenerator_p.h
b/src/qmlcompiler/qqmljscodegenerator_p.h
+index ce160bf4f38..46da0bb61c0 100644
+--- a/src/qmlcompiler/qqmljscodegenerator_p.h
++++ b/src/qmlcompiler/qqmljscodegenerator_p.h
+@@ -366,7 +366,10 @@ class Q_QMLCOMPILER_EXPORT QQmlJSCodeGenerator : public
QQmlJSCompilePass
+ const QQmlJSMetaMethod &ctor, const
QList<QQmlJSRegisterContent> &argumentTypes,
+ const QStringList &arguments, const QString &metaType, const
QString &metaObject);
+
+- QString generateVariantMapLookup(const QString &map, const int
nameIndex);
++ QString generateVariantMapGetLookup(const QString &map, const int
nameIndex);
++ QString generateVariantMapSetLookup(
++ const QString &map, const int nameIndex, const
QQmlJSScope::ConstPtr &property,
++ const QString &variableIn);
+
+ QQmlJSRegisterContent originalType(QQmlJSRegisterContent tracked)
+ {
+diff --git a/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.h
b/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.h
+index de7ac4f739e..c1e52062b5c 100644
+--- a/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.h
++++ b/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.h
+@@ -7,19 +7,32 @@ class VariantMapLookupFoo : public QObject
+ {
+ Q_OBJECT
+ QML_ELEMENT
+- Q_PROPERTY(QVariantMap data READ data CONSTANT)
+- Q_PROPERTY(QList<QVariantMap> many READ many CONSTANT)
++ Q_PROPERTY(QVariantMap data READ data WRITE setData NOTIFY dataChanged)
++ Q_PROPERTY(QList<QVariantMap> many READ many NOTIFY dataChanged)
+
+ public:
+ VariantMapLookupFoo(QObject *parent = nullptr) : QObject(parent) { }
+
+-private:
+- QVariantMap data() const { return { { QStringLiteral("value"), 42 } }; }
++ QVariantMap data() const { return m_data; }
++ void setData(const QVariantMap &data)
++ {
++ if (data == m_data)
++ return;
++ m_data = data;
++ emit dataChanged();
++ }
++
+ QList<QVariantMap> many() const
+ {
+ const QVariantMap one = data();
+ return QList<QVariantMap>({one, one, one});
+ }
++
++signals:
++ void dataChanged();
++
++private:
++ QVariantMap m_data;
+ };
+
+
+diff --git a/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.qml
b/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.qml
+index 45cb0edd69e..75b4fd0fda1 100644
+--- a/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.qml
++++ b/tests/auto/qml/qmlcppcodegen/data/variantMapLookup.qml
+@@ -3,10 +3,28 @@ import TestTypes
+ import QtQuick
+
+ Item {
++ id: root
+ property int i: moo.data.value
+ property int j: moo.many[1].value
++ property string foo: moo.data.foo
+
+ VariantMapLookupFoo {
+ id: moo
++ data: {
++ let result = { value: 42 };
++ switch(root.visible) {
++ case true:
++ result.foo = "blue";
++ break;
++ case false:
++ result.foo = "green";
++ break;
++ }
++ return result;
++ }
++ }
++
++ function doI() {
++ moo.data.value = i + 1
+ }
+ }
+diff --git a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
+index 6a9c50ce610..9f85f642032 100644
+--- a/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
++++ b/tests/auto/qml/qmlcppcodegen/tst_qmlcppcodegen.cpp
+@@ -6097,6 +6097,12 @@ void tst_QmlCppCodegen::variantMapLookup()
+ QVERIFY(!o.isNull());
+ QCOMPARE(o->property("i"), 42);
+ QCOMPARE(o->property("j"), 42);
++ QCOMPARE(o->property("foo"), u"blue"_s);
++
++ QMetaObject::invokeMethod(o.data(), "doI");
++ QCOMPARE(o->property("i"), 43);
++ QCOMPARE(o->property("j"), 43);
++ QCOMPARE(o->property("foo"), u"blue"_s);
+ }
+
+ void tst_QmlCppCodegen::variantReturn()
- [[SM-Commit] ] GIT changes to master grimoire by Treeve Jelbert (148aa50c109578c322aef5e1bbd8a857a1005f0d), Treeve Jelbert, 10/22/2025
Archive powered by MHonArc 2.6.24.