paho-mqtt-cpp: Upgrade 1.4.1 -> 1.5.3

Upgrade to release 1.5.3:

- Fix the bundled Paho C build foc C23 compilers by forcing C99
  compliance in CMake build
- Code base updated to to C++17
- Now a C++17 compiler is required to compile the library
- CMake minimum required version raised to v3.13
- Need a fairly recent CMake for C++17 support (>= v3.12)
- CMake v3.13 allows INSTALL(TARGETS) to work outside the current
  directory.
- Clients always created for v5 persistence format, making it
  universal for any connection.
- If the application specifies a version it is kept as a hint for
  default connections.
- The version for the connection should be specified in the connect
  options.
- The create_options now have all the parameters to create a client.
- Can specify Server URL, Client ID, and persistence in the create
  options.
- New client constructor that takes just the options object
- The client caches a const create_options struct with all the
  creation parameters
- Client creation internally simplified without breaking the public
  API
- Expanded the message constmer to be a full client "event" consumer.
- The events are for connected, connection_lost, disconnected,
  message arrived, and application shutdown.
- The application can get client state change notifications without
  resorting to callbacks.
- There's a new persistence_type (std::variant) that can hold any
  of the persistence specifiers (none, file directory, or user
  interface).
- Most of the class static constants are now constexpr.
- Removed the fake ReasonCode::MQTTPP_V3_CODE. Now all reason codes
  in a v3 connection are SUCCESS.
- The mqtt::exception checks if the 'rc' return code actually
  contains a reason code error, amd if so, sets it as the reason
  code.
- property can now report the typeid of its contained value.
- The properties list implements a const iterator
- Added a to_string() and operator<<() for reason codes.
- thread_queue is now closable.
- Added documentation for UNIX domain sockets coming in with Paho
  C v1.3.14
- Removed the manual implementation of make_unique<>()
- Added create_options assignment operators.
- Fixed some corner cases for topic_filter::matches()
- Cleaned up and fixed a number of example apps.
- Most apps now except a server URI from the command line
- 'data_publish' example uses C++17 std::filesystem for creating
  a file-based encrypted persistence for messages.
- Updated local CI (buildtst.sh) for current compilers and unit tests.
- Reorganized the source repository
- Completely reformat the sources and added a .clang-format file (a
  project master and a slightly-different one for headers).

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Leon Anavi 2025-06-20 19:06:19 +03:00 committed by Khem Raj
parent 71eef026d9
commit eebf8c78db
No known key found for this signature in database
GPG Key ID: BB053355919D3314
2 changed files with 1 additions and 58 deletions

View File

@ -1,53 +0,0 @@
From 2a0dd2b300242230faa92cf8e26ccd70231bc9ef Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 19 Mar 2022 23:37:58 -0700
Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_BINDIR
This ensures the install paths are not hardcoded.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
Upstream-Status: Pending
---
cmake/CMakeLists.txt | 4 ++--
src/samples/CMakeLists.txt | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -34,7 +34,7 @@ export(EXPORT ${package_name}
)
install(EXPORT ${package_name}
- DESTINATION lib/cmake/${package_name}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}
FILE ${package_name}Targets.cmake
NAMESPACE ${package_name}::
)
@@ -42,5 +42,5 @@ install(EXPORT ${package_name}
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake"
- DESTINATION lib/cmake/${package_name}
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}
)
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -65,7 +65,7 @@ endforeach()
## install binaries
install(TARGETS ${EXECUTABLES} EXPORT PahoMqttCppSamples
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION {CMAKE_INSTALL_BINDIR}
)
## Build the SSL/TLS samples, if selected
@@ -80,7 +80,7 @@ if(PAHO_WITH_SSL)
endforeach()
install(TARGETS ${SSL_EXECUTABLES} EXPORT PahoMqttCppSamples
- RUNTIME DESTINATION bin
+ RUNTIME DESTINATION {CMAKE_INSTALL_BINDIR}
)
endif()

View File

@ -10,11 +10,7 @@ LIC_FILES_CHKSUM = " \
file://epl-v20;md5=d9fc0efef5228704e7f5b37f27192723 \
"
SRC_URI = "gitsm://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=v1.4.x \
file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch \
"
SRCREV = "ac1b023eab789e829656144f12b248602c40e37b"
PV .= "+git"
SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=master;tag=v${PV}"
DEPENDS = "openssl paho-mqtt-c"