Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package qt6-opcua for openSUSE:Factory checked in at 2025-06-05 20:33:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/qt6-opcua (Old) and /work/SRC/openSUSE:Factory/.qt6-opcua.new.19631 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "qt6-opcua" Thu Jun 5 20:33:14 2025 rev:36 rq:1282568 version:6.9.1 Changes: -------- --- /work/SRC/openSUSE:Factory/qt6-opcua/qt6-opcua.changes 2025-04-07 17:36:17.448004537 +0200 +++ /work/SRC/openSUSE:Factory/.qt6-opcua.new.19631/qt6-opcua.changes 2025-06-05 20:33:42.271709943 +0200 @@ -1,0 +2,6 @@ +Tue Jun 3 07:49:29 UTC 2025 - Christophe Marin <christo...@krop.fr> + +- Update to 6.9.1: + * https://www.qt.io/blog/qt-6.9.1-released + +------------------------------------------------------------------- Old: ---- qtopcua-everywhere-src-6.9.0.tar.xz New: ---- qtopcua-everywhere-src-6.9.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ qt6-opcua.spec ++++++ --- /var/tmp/diff_new_pack.B0TzCm/_old 2025-06-05 20:33:42.955738385 +0200 +++ /var/tmp/diff_new_pack.B0TzCm/_new 2025-06-05 20:33:42.955738385 +0200 @@ -16,7 +16,7 @@ # -%define real_version 6.9.0 +%define real_version 6.9.1 %define short_version 6.9 %define tar_name qtopcua-everywhere-src %define tar_suffix %{nil} @@ -30,7 +30,7 @@ %global __requires_exclude qt6qmlimport\\(OpcUaMachineBackend\\) # Name: qt6-opcua%{?pkg_suffix} -Version: 6.9.0 +Version: 6.9.1 Release: 0 Summary: Qt wrapper for existing OPC UA stacks # src/plugins/opcua is GPL-3.0-or-later, rest is dual licensed ++++++ _service ++++++ --- /var/tmp/diff_new_pack.B0TzCm/_old 2025-06-05 20:33:42.991739881 +0200 +++ /var/tmp/diff_new_pack.B0TzCm/_new 2025-06-05 20:33:42.995740048 +0200 @@ -1,9 +1,9 @@ <services> <service name="tar_scm" mode="disabled"> <param name="changesgenerate">disable</param> - <param name="version">6.9.0</param> + <param name="version">6.9.1</param> <param name="url">git://code.qt.io/qt/qtopcua.git</param> - <param name="revision">v6.9.0</param> + <param name="revision">v6.9.1</param> <param name="scm">git</param> <param name="filename">qtopcua-everywhere-src</param> </service> ++++++ qtopcua-everywhere-src-6.9.0.tar.xz -> qtopcua-everywhere-src-6.9.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/.cmake.conf new/qtopcua-everywhere-src-6.9.1/.cmake.conf --- old/qtopcua-everywhere-src-6.9.0/.cmake.conf 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/.cmake.conf 2025-05-29 02:20:20.000000000 +0200 @@ -1,4 +1,4 @@ -set(QT_REPO_MODULE_VERSION "6.9.0") +set(QT_REPO_MODULE_VERSION "6.9.1") set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1") set(QT_EXTRA_INTERNAL_TARGET_DEFINES "QT_LEAN_HEADERS=1") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/.gitreview new/qtopcua-everywhere-src-6.9.1/.gitreview --- old/qtopcua-everywhere-src-6.9.0/.gitreview 1970-01-01 01:00:00.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/.gitreview 2025-05-29 02:20:20.000000000 +0200 @@ -0,0 +1,4 @@ +[gerrit] +host=codereview.qt-project.org +project=qt/qtopcua +defaultbranch=dev diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/REUSE.toml new/qtopcua-everywhere-src-6.9.1/REUSE.toml --- old/qtopcua-everywhere-src-6.9.0/REUSE.toml 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/REUSE.toml 2025-05-29 02:20:20.000000000 +0200 @@ -29,7 +29,7 @@ SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only" [[annotations]] -path = ["**.pro", "**.qrc", ".cmake.conf", "**.yaml", +path = ["**.pro", "**.qrc", ".cmake.conf", "**.yaml", ".tag", "**.pri", "**BLACKLIST", "**ci_config_linux.json"] precedence = "closest" comment = "build system" @@ -37,11 +37,11 @@ SPDX-License-Identifier = "BSD-3-Clause" [[annotations]] -path = [".tag", "**/.gitattributes", "**.gitignore"] +path = ["**/.gitattributes", "**.gitignore", "**.gitreview"] precedence = "closest" -comment = "version control system. Licensed as build system" +comment = "version control system. Infrastructure" SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." -SPDX-License-Identifier = "BSD-3-Clause" +SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause" [[annotations]] path = ["examples/**", "**/doc/snippets/**"] @@ -59,10 +59,10 @@ [[annotations]] path = ["**.toml", "licenseRule.json"] -comment = "documentation" +comment = "infrastructure" precedence = "override" SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd." -SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only" +SPDX-License-Identifier = "LicenseRef-Qt-Commercial OR BSD-3-Clause" [[annotations]] path = ["**/qt_attribution.json"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/coin/module_config.yaml new/qtopcua-everywhere-src-6.9.1/coin/module_config.yaml --- old/qtopcua-everywhere-src-6.9.0/coin/module_config.yaml 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/coin/module_config.yaml 2025-05-29 02:20:20.000000000 +0200 @@ -6,7 +6,6 @@ instructions: Build: - # to be turned on when the module source SBOM pass the license check - type: EnvironmentVariable variableName: VERIFY_SOURCE_SBOM variableValue: "ON" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/dependencies.yaml new/qtopcua-everywhere-src-6.9.1/dependencies.yaml --- old/qtopcua-everywhere-src-6.9.0/dependencies.yaml 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/dependencies.yaml 2025-05-29 02:20:20.000000000 +0200 @@ -1,7 +1,7 @@ dependencies: ../qtbase: - ref: 25986746947798e1a22d0830d3bcb11a55fcd3ae + ref: 2ad23cd72d5f122f88ce95792a4323d639c27d25 required: true ../qtdeclarative: - ref: 47ecb4fa226253c1ac85be8130ba905f95318f36 + ref: 1e6adc3d5f1f4cbbb77b41911395782dff43cccd required: true diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/licenseRule.json new/qtopcua-everywhere-src-6.9.1/licenseRule.json --- old/qtopcua-everywhere-src-6.9.0/licenseRule.json 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/licenseRule.json 2025-05-29 02:20:20.000000000 +0200 @@ -1,6 +1,6 @@ [ { - "comment" : ["file_pattern_ending: strings matched against the end of a file name.", + "comment": ["file_pattern_ending: strings matched against the end of a file name.", "location keys: regular expression matched against the beginning of", "the file path (relative to the git submodule root).", "spdx: list of SPDX-License-Expression's allowed in the matching files.", @@ -9,93 +9,104 @@ "unless they are examples", "Files with other endings can also be build system files" ], - "file_pattern_ending" : ["CMakeLists.txt", ".cmake", ".pro", ".pri", ".prf", + "file_pattern_ending": ["CMakeLists.txt", ".cmake", ".pro", ".pri", ".prf", "configure", "configure.bat", "cmake.in", "plist.in", "CMakeLists.txt.in", - ".cmake.conf", ".gitattributes", ".gitignore", ".tag", "ci_config_linux.json", + ".cmake.conf", ".tag", "ci_config_linux.json", ".yaml", ".qrc", "BLACKLIST"], - "location" : { - "" : { - "comment" : "Default", - "file type" : "build system", - "spdx" : ["BSD-3-Clause"] - }, - "(.*)(examples/|snippets/)" : { - "comment" : "Example takes precedence", - "file type" : "examples and snippets", - "spdx" : ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] + "location": { + "": { + "comment": "Default", + "file type": "build system", + "spdx": ["BSD-3-Clause"] + }, + "(.*)(examples/|snippets/)": { + "comment": "Example takes precedence", + "file type": "examples and snippets", + "spdx": ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] } } }, { - "comments" : ["Files with the following endings are Tool licensed,", + "comments": ["Files with the following endings are infrastructure licensed"], + "file_pattern_ending": [".gitattributes", ".gitignore", ".gitmodules", ".gitreview", + "_clang-format", "licenseRule.json", "REUSE.toml"], + "location":{ + "": { + "comment": "Default", + "file type": "infrastructure", + "spdx": ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] + } + } + }, + { + "comments": ["Files with the following endings are Tool licensed,", "unless they are examples.", "Files with other endings can also be tool files."], - "file_pattern_ending" : [".sh", ".py", ".pl", ".bat", ".ps1"], - "location" :{ - "" : { - "comment" : "Default", - "file type" : "tools and utils", - "spdx" : ["LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0"] - }, - "(.*)(examples/|snippets/)" : { - "comment" : "Example takes precedence", - "file type" : "examples and snippets", - "spdx" : ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] + "file_pattern_ending": [".sh", ".py", ".pl", ".bat", ".ps1"], + "location":{ + "": { + "comment": "Default", + "file type": "tools and utils", + "spdx": ["LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0"] + }, + "(.*)(examples/|snippets/)": { + "comment": "Example takes precedence", + "file type": "examples and snippets", + "spdx": ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] } } }, { - "comment" : "Files with the following endings are Documentation licensed.", - "file_pattern_ending" : [".qdoc", ".qdocinc" , ".qdocconf", ".txt", "README", "qt_attribution.json", - "REUSE.toml", "licenseRule.json"], - "location" :{ - "" : { - "comment" : "", - "file type" : "documentation", - "spdx" : ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] + "comment": "Files with the following endings are Documentation licensed.", + "file_pattern_ending": [".qdoc", ".qdocinc" , ".qdocconf", ".txt", "README", "qt_attribution.json"], + "location": { + "": { + "comment": "", + "file type": "documentation", + "spdx": ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] } } }, { - "comment" : ["All other files", + "comment": ["All other files", "The licensing is defined only by the file location in the Qt module repository.", "NO <file_pattern_ending> key for this case!", "This needs to be the last entry of the file."], - "location" : { - "" : { - "comment" : "Default", - "file type" : "module and plugin", - "spdx" : ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"] - }, - "dist/" : { - "comment" : "Default", - "file type" : "documentation", - "spdx" : ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] - }, - "(examples|.*)(.*)/doc/images/" : { - "comment" : "Default", - "file type" : "documentation", - "spdx" : ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] - }, - "src/" : { - "comment" : "Default", - "file type" : "module and plugin", - "spdx" : ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"] - }, - "tests/" : { - "comment" : "Default", - "file type" : "test", - "spdx" : ["LicenseRef-Qt-Commercial OR GPL-3.0-only"] - }, - "(.*)(examples/|snippets/)" : { - "comment" : "Default", - "file type" : "examples and snippets", - "spdx" : ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] - }, - "(examples/opcua/opcuaviewer|tests).*.pem" : { - "comment" : "Default", - "file type" : "keys", - "spdx" : ["CC0-1.0"] + "location": { + "": { + "comment": "Default", + "file type": "module and plugin", + "spdx": ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"] + }, + "dist/": { + "comment": "Default", + "file type": "documentation", + "spdx": ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] + }, + "(examples|.*)(.*)/doc/images/": { + "comment": "Default", + "file type": "documentation", + "spdx": ["LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only"] + }, + "src/": { + "comment": "Default", + "file type": "module and plugin", + "spdx": ["LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only"] + }, + "tests/": { + "comment": "Default", + "file type": "test", + "spdx": ["LicenseRef-Qt-Commercial OR GPL-3.0-only"] + }, + "(.*)(examples/|snippets/)": { + "comment": "Default", + "file type": "examples and snippets", + "spdx": ["LicenseRef-Qt-Commercial OR BSD-3-Clause"] + }, + "(examples/opcua/opcuaviewer|tests).*.pem": { + "comment": "Default", + "file type": "keys", + "spdx": ["CC0-1.0"] } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/src/opcua/Qt6OpcUaMacros.cmake new/qtopcua-everywhere-src-6.9.1/src/opcua/Qt6OpcUaMacros.cmake --- old/qtopcua-everywhere-src-6.9.0/src/opcua/Qt6OpcUaMacros.cmake 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/src/opcua/Qt6OpcUaMacros.cmake 2025-05-29 02:20:20.000000000 +0200 @@ -105,7 +105,6 @@ ${GENERATED_NODEIDS_HEADER} ${GENERATED_DATATYPES_HEADERS} ${GENERATED_DATATYPES_SOURCES} - PRE_BUILD COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qopcuaxmldatatypes2cpp -b ${INPUT_BSD_ARGS} ${DEPENDENCY_BSD_ARGS} ${INPUT_CSV_ARGS} -p ${GEN_OPT_PREFIX} -o ${GEN_OPT_OUTPUT_DIR} DEPENDS ${GEN_OPT_INPUT_BSD} ${GEN_OPT_DEPENDENCY_BSD} ${INPUT_CSV_FILES} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/src/plugins/opcua/open62541/qopen62541utils.cpp new/qtopcua-everywhere-src-6.9.1/src/plugins/opcua/open62541/qopen62541utils.cpp --- old/qtopcua-everywhere-src-6.9.0/src/plugins/opcua/open62541/qopen62541utils.cpp 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/src/plugins/opcua/open62541/qopen62541utils.cpp 2025-05-29 02:20:20.000000000 +0200 @@ -67,7 +67,11 @@ case 'b': { const QByteArray temp = QByteArray::fromBase64(identifierString.toLatin1()); if (temp.size() > 0) { - return UA_NODEID_BYTESTRING_ALLOC(namespaceIndex, temp.constData()); + UA_NodeId byteStringId = UA_NODEID_NULL; + byteStringId.namespaceIndex = namespaceIndex; + byteStringId.identifierType = UA_NODEIDTYPE_BYTESTRING; + QOpen62541ValueConverter::scalarFromQt<UA_ByteString, QByteArray>(temp, &byteStringId.identifier.byteString); + return byteStringId; } else qCWarning(QT_OPCUA_PLUGINS_OPEN62541) << name << "does not contain a valid byte string identifier"; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/tests/auto/qopcuaclient/tst_client.cpp new/qtopcua-everywhere-src-6.9.1/tests/auto/qopcuaclient/tst_client.cpp --- old/qtopcua-everywhere-src-6.9.0/tests/auto/qopcuaclient/tst_client.cpp 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/tests/auto/qopcuaclient/tst_client.cpp 2025-05-29 02:20:20.000000000 +0200 @@ -524,6 +524,8 @@ void compareNodeIds(); defineDataMethod(getNodeForIdTypes_data) void getNodeForIdTypes(); + defineDataMethod(readNodeWithByteStringIdWithNullByte_data) + void readNodeWithByteStringIdWithNullByte(); defineDataMethod(readNS0OmitNode_data) void readNS0OmitNode(); defineDataMethod(readInvalidNode_data) @@ -1235,6 +1237,17 @@ QVERIFY(node == nullptr); } +void Tst_QOpcUaClient::readNodeWithByteStringIdWithNullByte() +{ + QFETCH(QOpcUaClient*, opcuaClient); + OpcuaConnector connector(opcuaClient, m_endpoint); + + QScopedPointer<QOpcUaNode> node(opcuaClient->node("ns=1;b=AAABAAIADoo=")); + QVERIFY(node); + + READ_MANDATORY_VARIABLE_NODE(node); +} + void Tst_QOpcUaClient::readNS0OmitNode() { QFETCH(QOpcUaClient*, opcuaClient); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/main.cpp new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/main.cpp --- old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/main.cpp 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/main.cpp 2025-05-29 02:20:20.000000000 +0200 @@ -314,6 +314,7 @@ server.addServerStatusTypeTestNodes(testFolder); server.addUnreadableVariableNode(testFolder); + server.addByteStringNodeIdWithNullIdVariableNode(testFolder); // Add test nodes for the generic type decoder auto result = server.addEncoderTestModel(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/testserver.cpp new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/testserver.cpp --- old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/testserver.cpp 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/testserver.cpp 2025-05-29 02:20:20.000000000 +0200 @@ -1516,6 +1516,39 @@ return result; } +UA_StatusCode TestServer::addByteStringNodeIdWithNullIdVariableNode(const UA_NodeId &parent) +{ + UA_VariableAttributes attr = UA_VariableAttributes_default; + attr.value = QOpen62541ValueConverter::toOpen62541Variant(42, QOpcUa::Int32); + attr.displayName = UA_LOCALIZEDTEXT_ALLOC("en-US", "VariableWithByteStringWithNullByteId"); + attr.dataType = attr.value.type->typeId; + attr.accessLevel = UA_ACCESSLEVELMASK_READ; + + UA_QualifiedName variableName; + variableName.namespaceIndex = parent.namespaceIndex; + variableName.name = attr.displayName.text; + + UA_NodeId nodeId = UA_NODEID_NULL; + nodeId.namespaceIndex = 1; + nodeId.identifierType = UA_NODEIDTYPE_BYTESTRING; + const auto bytes = QByteArray::fromBase64(QStringLiteral("AAABAAIADoo=").toLatin1()); + UA_ByteString_allocBuffer(&nodeId.identifier.byteString, bytes.length()); + memcpy(nodeId.identifier.byteString.data, bytes.constData(), bytes.length()); + + UA_StatusCode result = UA_Server_addVariableNode(m_server, + nodeId, + parent, + UA_NODEID_NUMERIC(0, UA_NS0ID_ORGANIZES), + variableName, + UA_NODEID_NULL, + attr, + nullptr, + nullptr); + UA_NodeId_clear(&nodeId); + UA_VariableAttributes_clear(&attr); + return result; +} + UA_StatusCode TestServer::addEventHistorian(const UA_NodeId &parent) { UA_ObjectAttributes attr = UA_ObjectAttributes_default; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/testserver.h new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/testserver.h --- old/qtopcua-everywhere-src-6.9.0/tests/open62541-testserver/testserver.h 2025-03-29 00:19:23.000000000 +0100 +++ new/qtopcua-everywhere-src-6.9.1/tests/open62541-testserver/testserver.h 2025-05-29 02:20:20.000000000 +0200 @@ -92,6 +92,8 @@ UA_StatusCode addUnreadableVariableNode(const UA_NodeId &parent); + UA_StatusCode addByteStringNodeIdWithNullIdVariableNode(const UA_NodeId &parent); + static UA_StatusCode multiplyMethod(UA_Server *server, const UA_NodeId *sessionId, void *sessionHandle, const UA_NodeId *methodId, void *methodContext, const UA_NodeId *objectId, void *objectContext,