- Add security fix (CVE-2025-23050, boo#1236237)
* 0001-QLowEnergyControllerPrivateBluez-guard-against-malfo.patch OBS-URL: https://build.opensuse.org/package/show/KDE:Qt6/qt6-connectivity?expand=0&rev=52
This commit is contained in:
commit
9ad0fd585a
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
226
0001-QLowEnergyControllerPrivateBluez-guard-against-malfo.patch
Normal file
226
0001-QLowEnergyControllerPrivateBluez-guard-against-malfo.patch
Normal file
@ -0,0 +1,226 @@
|
|||||||
|
From 465e3f3112a9c158aa6dd2f8b9439ae6c2de336f Mon Sep 17 00:00:00 2001
|
||||||
|
From: Ivan Solovev <ivan.solovev@qt.io>
|
||||||
|
Date: Thu, 2 Jan 2025 16:48:49 +0100
|
||||||
|
Subject: [PATCH] QLowEnergyControllerPrivateBluez: guard against malformed
|
||||||
|
replies
|
||||||
|
|
||||||
|
The QLowEnergyControllerPrivateBluez::l2cpReadyRead() slot reads the
|
||||||
|
data from a Bluetooth L2CAP socket and then tries to process it
|
||||||
|
according to ATT protocol specs.
|
||||||
|
|
||||||
|
However, the code was missing length and sanity checks at some
|
||||||
|
codepaths in processUnsolicitedReply() and processReply() helper
|
||||||
|
methods, simply relying on the data to be in the proper format.
|
||||||
|
|
||||||
|
This patch adds some minimal checks to make sure that we do not read
|
||||||
|
past the end of the received array and do not divide by zero.
|
||||||
|
|
||||||
|
This problem was originally pointed out by Marc Mutz in an unrelated
|
||||||
|
patch.
|
||||||
|
|
||||||
|
Pick-to: 6.5 5.15
|
||||||
|
Change-Id: I8dcfe031f70ad61fa3d87dc9d771c3fabc6d0edc
|
||||||
|
Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
|
||||||
|
Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
|
||||||
|
(cherry picked from commit aecbd657c841a2a8c74631ceac96b8ff1f03ab5c)
|
||||||
|
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
||||||
|
(cherry picked from commit 53e991671f725c136e9aa824c59ec13934c63fb4)
|
||||||
|
---
|
||||||
|
src/bluetooth/qlowenergycontroller_bluez.cpp | 75 +++++++++++++++++---
|
||||||
|
1 file changed, 66 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp
|
||||||
|
index 6f0c9858..2bd0cb68 100644
|
||||||
|
--- a/src/bluetooth/qlowenergycontroller_bluez.cpp
|
||||||
|
+++ b/src/bluetooth/qlowenergycontroller_bluez.cpp
|
||||||
|
@@ -64,14 +64,15 @@ using namespace QBluetooth;
|
||||||
|
|
||||||
|
const int maxPrepareQueueSize = 1024;
|
||||||
|
|
||||||
|
-static void dumpErrorInformation(const QByteArray &response)
|
||||||
|
+/* returns false if the format is incorrect */
|
||||||
|
+static bool dumpErrorInformation(const QByteArray &response)
|
||||||
|
{
|
||||||
|
const char *data = response.constData();
|
||||||
|
if (response.size() != 5
|
||||||
|
|| (static_cast<QBluezConst::AttCommand>(data[0])
|
||||||
|
!= QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE)) {
|
||||||
|
qCWarning(QT_BT_BLUEZ) << QLatin1String("Not a valid error response");
|
||||||
|
- return;
|
||||||
|
+ return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
QBluezConst::AttCommand lastCommand = static_cast<QBluezConst::AttCommand>(data[1]);
|
||||||
|
@@ -126,6 +127,8 @@ static void dumpErrorInformation(const QByteArray &response)
|
||||||
|
|
||||||
|
qCDebug(QT_BT_BLUEZ) << "Error:" << errorCode << "Error description:" << errorString
|
||||||
|
<< "last command:" << lastCommand << "handle:" << handle;
|
||||||
|
+
|
||||||
|
+ return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int getUuidSize(const QBluetoothUuid &uuid)
|
||||||
|
@@ -903,6 +906,7 @@ QLowEnergyHandle parseReadByTypeCharDiscovery(
|
||||||
|
{
|
||||||
|
Q_ASSERT(charData);
|
||||||
|
Q_ASSERT(data);
|
||||||
|
+ Q_ASSERT(elementLength >= 5);
|
||||||
|
|
||||||
|
QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]);
|
||||||
|
charData->properties =
|
||||||
|
@@ -912,7 +916,7 @@ QLowEnergyHandle parseReadByTypeCharDiscovery(
|
||||||
|
// Bluetooth LE data comes as little endian
|
||||||
|
if (elementLength == 7) // 16 bit uuid
|
||||||
|
charData->uuid = QBluetoothUuid(bt_get_le16(&data[5]));
|
||||||
|
- else
|
||||||
|
+ else if (elementLength == 21) // 128 bit uuid
|
||||||
|
charData->uuid = QUuid::fromBytes(&data[5], QSysInfo::LittleEndian);
|
||||||
|
|
||||||
|
qCDebug(QT_BT_BLUEZ) << "Found handle:" << Qt::hex << attributeHandle
|
||||||
|
@@ -929,6 +933,7 @@ QLowEnergyHandle parseReadByTypeIncludeDiscovery(
|
||||||
|
{
|
||||||
|
Q_ASSERT(foundServices);
|
||||||
|
Q_ASSERT(data);
|
||||||
|
+ Q_ASSERT(elementLength >= 6);
|
||||||
|
|
||||||
|
QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]);
|
||||||
|
|
||||||
|
@@ -938,9 +943,14 @@ QLowEnergyHandle parseReadByTypeIncludeDiscovery(
|
||||||
|
// data[2] -> included service start handle
|
||||||
|
// data[4] -> included service end handle
|
||||||
|
|
||||||
|
+ // TODO: Spec v. 5.3, Vol. 3, Part G, 4.5.1 mentions that only
|
||||||
|
+ // 16-bit UUID can be returned here. If the UUID is 128-bit,
|
||||||
|
+ // then it is omitted from the response, and should be requested
|
||||||
|
+ // separately with the ATT_READ_REQ command.
|
||||||
|
+
|
||||||
|
if (elementLength == 8) //16 bit uuid
|
||||||
|
foundServices->append(QBluetoothUuid(bt_get_le16(&data[6])));
|
||||||
|
- else
|
||||||
|
+ else if (elementLength == 22) // 128 bit uuid
|
||||||
|
foundServices->append(QUuid::fromBytes(&data[6], QSysInfo::LittleEndian));
|
||||||
|
|
||||||
|
qCDebug(QT_BT_BLUEZ) << "Found included service: " << Qt::hex
|
||||||
|
@@ -949,17 +959,29 @@ QLowEnergyHandle parseReadByTypeIncludeDiscovery(
|
||||||
|
return attributeHandle;
|
||||||
|
}
|
||||||
|
|
||||||
|
+Q_DECL_COLD_FUNCTION
|
||||||
|
+static void reportMalformedData(QBluezConst::AttCommand cmd, const QByteArray &response)
|
||||||
|
+{
|
||||||
|
+ qCDebug(QT_BT_BLUEZ, "%s malformed data: %s", qt_getEnumName(cmd),
|
||||||
|
+ response.toHex().constData());
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
void QLowEnergyControllerPrivateBluez::processReply(
|
||||||
|
const Request &request, const QByteArray &response)
|
||||||
|
{
|
||||||
|
Q_Q(QLowEnergyController);
|
||||||
|
|
||||||
|
+ // We already have an isEmpty() check at the only calling site that reads
|
||||||
|
+ // incoming data, so Q_ASSERT is enough.
|
||||||
|
+ Q_ASSERT(!response.isEmpty());
|
||||||
|
+
|
||||||
|
QBluezConst::AttCommand command = static_cast<QBluezConst::AttCommand>(response.constData()[0]);
|
||||||
|
|
||||||
|
bool isErrorResponse = false;
|
||||||
|
// if error occurred 2. byte is previous request type
|
||||||
|
if (command == QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE) {
|
||||||
|
- dumpErrorInformation(response);
|
||||||
|
+ if (!dumpErrorInformation(response))
|
||||||
|
+ return;
|
||||||
|
command = static_cast<QBluezConst::AttCommand>(response.constData()[1]);
|
||||||
|
isErrorResponse = true;
|
||||||
|
}
|
||||||
|
@@ -972,6 +994,10 @@ void QLowEnergyControllerPrivateBluez::processReply(
|
||||||
|
if (isErrorResponse) {
|
||||||
|
mtuSize = ATT_DEFAULT_LE_MTU;
|
||||||
|
} else {
|
||||||
|
+ if (response.size() < 3) {
|
||||||
|
+ reportMalformedData(command, response);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
const char *data = response.constData();
|
||||||
|
quint16 mtu = bt_get_le16(&data[1]);
|
||||||
|
mtuSize = mtu;
|
||||||
|
@@ -1000,8 +1026,15 @@ void QLowEnergyControllerPrivateBluez::processReply(
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // response[1] == elementLength. According to the spec it should be
|
||||||
|
+ // at least 4 bytes. See Spec v5.3, Vol 3, Part F, 3.4.4.10
|
||||||
|
+ if (response.size() < 2 || response[1] < 4) {
|
||||||
|
+ reportMalformedData(command, response);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
QLowEnergyHandle start = 0, end = 0;
|
||||||
|
- const quint16 elementLength = response.constData()[1];
|
||||||
|
+ const quint16 elementLength = response.constData()[1]; // value checked above
|
||||||
|
const quint16 numElements = (response.size() - 2) / elementLength;
|
||||||
|
quint16 offset = 2;
|
||||||
|
const char *data = response.constData();
|
||||||
|
@@ -1077,16 +1110,25 @@ void QLowEnergyControllerPrivateBluez::processReply(
|
||||||
|
}
|
||||||
|
|
||||||
|
/* packet format:
|
||||||
|
- * if GATT_CHARACTERISTIC discovery
|
||||||
|
+ * if GATT_CHARACTERISTIC discovery (Spec 5.3, Vol. 3, Part G, 4.6)
|
||||||
|
* <opcode><elementLength>
|
||||||
|
* [<handle><property><charHandle><uuid>]+
|
||||||
|
+ * The minimum elementLength is 7 bytes (uuid is always included)
|
||||||
|
*
|
||||||
|
- * if GATT_INCLUDE discovery
|
||||||
|
+ * if GATT_INCLUDE discovery (Spec 5.3, Vol. 3, Part G, 4.5.1)
|
||||||
|
* <opcode><elementLength>
|
||||||
|
* [<handle><startHandle_included><endHandle_included><uuid>]+
|
||||||
|
+ * The minimum elementLength is 6 bytes (uuid can be omitted).
|
||||||
|
*
|
||||||
|
* The uuid can be 16 or 128 bit.
|
||||||
|
*/
|
||||||
|
+
|
||||||
|
+ const quint8 minimumElementLength = attributeType == GATT_CHARACTERISTIC ? 7 : 6;
|
||||||
|
+ if (response.size() < 2 || response[1] < minimumElementLength) {
|
||||||
|
+ reportMalformedData(command, response);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
QLowEnergyHandle lastHandle;
|
||||||
|
const quint16 elementLength = response.constData()[1];
|
||||||
|
const quint16 numElements = (response.size() - 2) / elementLength;
|
||||||
|
@@ -1283,6 +1325,12 @@ void QLowEnergyControllerPrivateBluez::processReply(
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Spec 5.3, Vol. 3, Part F, 3.4.3.2
|
||||||
|
+ if (response.size() < 6) {
|
||||||
|
+ reportMalformedData(command, response);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
const quint8 format = response[1];
|
||||||
|
quint16 elementLength;
|
||||||
|
switch (format) {
|
||||||
|
@@ -1720,9 +1768,18 @@ void QLowEnergyControllerPrivateBluez::discoverServiceDescriptors(
|
||||||
|
|
||||||
|
void QLowEnergyControllerPrivateBluez::processUnsolicitedReply(const QByteArray &payload)
|
||||||
|
{
|
||||||
|
+ Q_ASSERT(!payload.isEmpty());
|
||||||
|
+
|
||||||
|
const char *data = payload.constData();
|
||||||
|
- bool isNotification = (static_cast<QBluezConst::AttCommand>(data[0])
|
||||||
|
+ const auto command = static_cast<QBluezConst::AttCommand>(data[0]);
|
||||||
|
+ bool isNotification = (command
|
||||||
|
== QBluezConst::AttCommand::ATT_OP_HANDLE_VAL_NOTIFICATION);
|
||||||
|
+
|
||||||
|
+ if (payload.size() < 3) {
|
||||||
|
+ reportMalformedData(command, payload);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
const QLowEnergyHandle changedHandle = bt_get_le16(&data[1]);
|
||||||
|
|
||||||
|
if (QT_BT_BLUEZ().isDebugEnabled()) {
|
||||||
|
--
|
||||||
|
2.48.1
|
||||||
|
|
4
_multibuild
Normal file
4
_multibuild
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<multibuild>
|
||||||
|
<flavor>docs</flavor>
|
||||||
|
</multibuild>
|
||||||
|
|
5
qt6-connectivity-rpmlintrc
Normal file
5
qt6-connectivity-rpmlintrc
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# using fdupes on include directories means looking for troubles
|
||||||
|
addFilter("files-duplicate .*")
|
||||||
|
|
||||||
|
# library and development package names don't match
|
||||||
|
addFilter("no-dependency-on .*")
|
199
qt6-connectivity.changes
Normal file
199
qt6-connectivity.changes
Normal file
@ -0,0 +1,199 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jan 22 09:08:10 UTC 2025 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Add security fix (CVE-2025-23050, boo#1236237)
|
||||||
|
* 0001-QLowEnergyControllerPrivateBluez-guard-against-malfo.patch
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Dec 2 13:01:59 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.8.1:
|
||||||
|
* https://www.qt.io/blog/qt-6.8.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 8 09:29:41 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.8.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.8-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 28 08:22:56 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.7.3
|
||||||
|
* https://www.qt.io/blog/qt-6.7.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Jun 19 07:25:40 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.7.2:
|
||||||
|
* https://www.qt.io/blog/qt-6.7.2-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue May 21 08:31:26 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.7.1:
|
||||||
|
* https://www.qt.io/blog/qt-6.7.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 2 13:39:37 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.7.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.7-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 26 14:25:30 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.6.3:
|
||||||
|
* https://www.qt.io/blog/qt-6.6.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Feb 14 16:53:11 UTC 2024 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.6.2
|
||||||
|
* https://www.qt.io/blog/qt-6.6.2-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Nov 27 14:00:07 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.6.1:
|
||||||
|
* https://www.qt.io/blog/qt-6.6.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 10 09:39:49 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.6.0
|
||||||
|
* https://www.qt.io/blog/qt-6.6-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 28 07:34:08 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.5.3
|
||||||
|
* https://www.qt.io/blog/qt-6.5.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jul 20 08:44:02 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.5.2
|
||||||
|
* https://www.qt.io/blog/qt-6.5.2-released-1
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 30 15:13:08 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update subpackages requirements
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed May 24 07:45:35 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.5.1
|
||||||
|
* https://www.qt.io/blog/qt-6.5.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 3 10:01:53 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.5.0
|
||||||
|
* https://www.qt.io/blog/qt-6.5-lts-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Mar 16 09:59:59 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.4.3:
|
||||||
|
* https://www.qt.io/blog/qt-6.4.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 6 16:46:38 UTC 2023 - Christophe Marin <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.4.2:
|
||||||
|
* https://www.qt.io/blog/qt-6.4.2-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Nov 15 11:53:09 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.4.1:
|
||||||
|
* https://www.qt.io/blog/qt-6.4.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 29 10:35:50 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.4.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.4-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 16 08:29:04 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.4.0 RC
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Sep 9 12:41:34 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.3.2:
|
||||||
|
* https://www.qt.io/blog/qt-6.3.2-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 17 15:15:05 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.3.1:
|
||||||
|
* https://www.qt.io/blog/qt-6.3.1-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Apr 8 11:56:52 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.3.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Mar 29 12:28:31 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.3.0-rc
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Mar 21 08:46:40 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.4
|
||||||
|
* https://www.qt.io/blog/qt-6.2.4-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Jan 31 08:54:26 UTC 2022 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.3:
|
||||||
|
* https://www.qt.io/blog/qt-6.2.3-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 1 10:05:59 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.2
|
||||||
|
* https://www.qt.io/blog/qt-6.2.2-released
|
||||||
|
- Make sure all dependencies are present when installing devel
|
||||||
|
packages. Qt >= 6.2.2 is much less permissive.
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Oct 26 11:22:34 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.1
|
||||||
|
* https://www.qt.io/blog/qt-6.2.1-released
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 30 12:26:51 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0:
|
||||||
|
* https://www.qt.io/blog/qt-6.2-lts-released
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Sep 25 07:18:34 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-rc2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 16 14:07:36 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-rc
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Sep 9 14:05:00 UTC 2021 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Update to 6.2.0-beta4
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Feb 1 14:35:48 UTC 2020 - Christophe Giboudeaux <christophe@krop.fr>
|
||||||
|
|
||||||
|
- Add qt6-connectivity
|
163
qt6-connectivity.spec
Normal file
163
qt6-connectivity.spec
Normal file
@ -0,0 +1,163 @@
|
|||||||
|
#
|
||||||
|
# spec file for package qt6-connectivity
|
||||||
|
#
|
||||||
|
# Copyright (c) 2024 SUSE LLC
|
||||||
|
#
|
||||||
|
# All modifications and additions to the file contributed by third parties
|
||||||
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
|
# upon. The license for this file, and modifications and additions to the
|
||||||
|
# file, is the same license as for the pristine package itself (unless the
|
||||||
|
# license for the pristine package is not an Open Source License, in which
|
||||||
|
# case the license is the MIT License). An "Open Source License" is a
|
||||||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
||||||
|
# published by the Open Source Initiative.
|
||||||
|
|
||||||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
%define real_version 6.8.1
|
||||||
|
%define short_version 6.8
|
||||||
|
%define tar_name qtconnectivity-everywhere-src
|
||||||
|
%define tar_suffix %{nil}
|
||||||
|
#
|
||||||
|
%global qt6_flavor @BUILD_FLAVOR@%{nil}
|
||||||
|
%if "%{qt6_flavor}" == "docs"
|
||||||
|
%define pkg_suffix -docs
|
||||||
|
%endif
|
||||||
|
#
|
||||||
|
Name: qt6-connectivity%{?pkg_suffix}
|
||||||
|
Version: 6.8.1
|
||||||
|
Release: 0
|
||||||
|
Summary: Qt 6 connectivity tools and libraries
|
||||||
|
License: LGPL-3.0-only OR (GPL-2.0-only OR GPL-3.0-or-later)
|
||||||
|
URL: https://www.qt.io
|
||||||
|
Source0: https://download.qt.io/official_releases/qt/%{short_version}/%{real_version}%{tar_suffix}/submodules/%{tar_name}-%{real_version}%{tar_suffix}.tar.xz
|
||||||
|
Source99: qt6-connectivity-rpmlintrc
|
||||||
|
# PATCH-FIX-UPSTREAM
|
||||||
|
Patch0: 0001-QLowEnergyControllerPrivateBluez-guard-against-malfo.patch
|
||||||
|
BuildRequires: pkgconfig
|
||||||
|
BuildRequires: qt6-core-private-devel
|
||||||
|
BuildRequires: qt6-network-private-devel
|
||||||
|
BuildRequires: cmake(Qt6Core) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6DBus) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6Gui) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6Network) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6Quick) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6QuickControls2) = %{real_version}
|
||||||
|
BuildRequires: cmake(Qt6Widgets) = %{real_version}
|
||||||
|
BuildRequires: pkgconfig(bluez)
|
||||||
|
BuildRequires: pkgconfig(libpcsclite)
|
||||||
|
%if "%{qt6_flavor}" == "docs"
|
||||||
|
BuildRequires: qt6-tools
|
||||||
|
%{qt6_doc_packages}
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%description
|
||||||
|
Qt 6 connectivity tools and libraries.
|
||||||
|
|
||||||
|
%if !%{qt6_docs_flavor}
|
||||||
|
|
||||||
|
%package -n libQt6Bluetooth6
|
||||||
|
Summary: Qt 6 bluetooth library
|
||||||
|
|
||||||
|
%description -n libQt6Bluetooth6
|
||||||
|
Provides access to Bluetooth hardware.
|
||||||
|
|
||||||
|
%package -n libQt6Nfc6
|
||||||
|
Summary: Qt 6 NFC library
|
||||||
|
|
||||||
|
%description -n libQt6Nfc6
|
||||||
|
Provides access to NFC hardware.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: Qt 6 connectivity libraries - Development files
|
||||||
|
Requires: libQt6Bluetooth6 = %{version}
|
||||||
|
Requires: libQt6Nfc6 = %{version}
|
||||||
|
# sdoscanner in required by Qt6BluetoothToolsTargets.cmake
|
||||||
|
Requires: qt6-connectivity = %{version}
|
||||||
|
Requires: cmake(Qt6DBus) = %{real_version}
|
||||||
|
Requires: cmake(Qt6Network) = %{real_version}
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Development files for the Qt6 connectivity libraries.
|
||||||
|
|
||||||
|
%package private-devel
|
||||||
|
Summary: Non-ABI stable API for the Qt 6 connectivity libraries
|
||||||
|
Requires: cmake(Qt6Bluetooth) = %{real_version}
|
||||||
|
Requires: cmake(Qt6Nfc) = %{real_version}
|
||||||
|
%requires_eq qt6-core-private-devel
|
||||||
|
%requires_eq qt6-network-private-devel
|
||||||
|
|
||||||
|
%description private-devel
|
||||||
|
This package provides private headers of qt6-connectivity that are normally
|
||||||
|
not used by application development and that do not have any ABI or
|
||||||
|
API guarantees.
|
||||||
|
The packages that build against these have to require the exact Qt version.
|
||||||
|
|
||||||
|
%{qt6_examples_package}
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -p1 -n %{tar_name}-%{real_version}%{tar_suffix}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%cmake_qt6 \
|
||||||
|
-DQT_GENERATE_SBOM:BOOL=FALSE
|
||||||
|
|
||||||
|
%{qt6_build}
|
||||||
|
|
||||||
|
%install
|
||||||
|
%{qt6_install}
|
||||||
|
|
||||||
|
%if !%{qt6_docs_flavor}
|
||||||
|
|
||||||
|
%ldconfig_scriptlets -n libQt6Bluetooth6
|
||||||
|
%ldconfig_scriptlets -n libQt6Nfc6
|
||||||
|
|
||||||
|
%files
|
||||||
|
%{_qt6_libexecdir}/sdpscanner
|
||||||
|
|
||||||
|
%files -n libQt6Bluetooth6
|
||||||
|
%license LICENSES/*
|
||||||
|
%{_qt6_libdir}/libQt6Bluetooth.so.*
|
||||||
|
|
||||||
|
%files -n libQt6Nfc6
|
||||||
|
%license LICENSES/*
|
||||||
|
%{_qt6_libdir}/libQt6Nfc.so.*
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindBlueZ.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6/FindPCSCLITE.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6Bluetooth/
|
||||||
|
%{_qt6_cmakedir}/Qt6BuildInternals/StandaloneTests/QtConnectivityTestsConfig.cmake
|
||||||
|
%{_qt6_cmakedir}/Qt6Nfc/
|
||||||
|
%{_qt6_descriptionsdir}/Bluetooth.json
|
||||||
|
%{_qt6_descriptionsdir}/Nfc.json
|
||||||
|
%{_qt6_includedir}/QtBluetooth/
|
||||||
|
%{_qt6_includedir}/QtNfc/
|
||||||
|
%{_qt6_libdir}/libQt6Bluetooth.prl
|
||||||
|
%{_qt6_libdir}/libQt6Bluetooth.so
|
||||||
|
%{_qt6_libdir}/libQt6Nfc.prl
|
||||||
|
%{_qt6_libdir}/libQt6Nfc.so
|
||||||
|
%{_qt6_metatypesdir}/qt6bluetooth*_metatypes.json
|
||||||
|
%{_qt6_metatypesdir}/qt6nfc_*_metatypes.json
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_bluetooth.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_nfc.pri
|
||||||
|
%{_qt6_pkgconfigdir}/Qt6Bluetooth.pc
|
||||||
|
%{_qt6_pkgconfigdir}/Qt6Nfc.pc
|
||||||
|
%exclude %{_qt6_includedir}/QtBluetooth/%{real_version}/
|
||||||
|
%exclude %{_qt6_includedir}/QtNfc/%{real_version}/
|
||||||
|
|
||||||
|
%files private-devel
|
||||||
|
%dir %{_qt6_includedir}/QtBluetooth
|
||||||
|
%dir %{_qt6_includedir}/QtNfc
|
||||||
|
%{_qt6_includedir}/QtBluetooth/%{real_version}/
|
||||||
|
%{_qt6_includedir}/QtNfc/%{real_version}/
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_bluetooth_private.pri
|
||||||
|
%{_qt6_mkspecsdir}/modules/qt_lib_nfc_private.pri
|
||||||
|
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%changelog
|
BIN
qtconnectivity-everywhere-src-6.7.2.tar.xz
(Stored with Git LFS)
Normal file
BIN
qtconnectivity-everywhere-src-6.7.2.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
qtconnectivity-everywhere-src-6.7.3.tar.xz
Normal file
3
qtconnectivity-everywhere-src-6.7.3.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:80f99b2f097b79107d4b35ed9c5c82451148364ffd814d7ae0aaf206e5b2fcc5
|
||||||
|
size 1062684
|
3
qtconnectivity-everywhere-src-6.8.0.tar.xz
Normal file
3
qtconnectivity-everywhere-src-6.8.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:bbbefb6cc07507fcc961362b3380553eba6400aa15480600126793ba3dc21788
|
||||||
|
size 1066392
|
3
qtconnectivity-everywhere-src-6.8.1.tar.xz
Normal file
3
qtconnectivity-everywhere-src-6.8.1.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:ccfd46e7ad2290710788274e145fb1f224d8a5ce360764ec10824b5908a6441c
|
||||||
|
size 1067952
|
Loading…
x
Reference in New Issue
Block a user