diff --git a/ports/hazelcast-cpp-client/boost-1-86-fix.patch b/ports/hazelcast-cpp-client/boost-1-86-fix.patch new file mode 100644 index 00000000000000..28fc082207f704 --- /dev/null +++ b/ports/hazelcast-cpp-client/boost-1-86-fix.patch @@ -0,0 +1,145 @@ +diff --git a/hazelcast/include/hazelcast/client/protocol/ClientMessage.h b/hazelcast/include/hazelcast/client/protocol/ClientMessage.h +index 4df3620dc..bf0340f47 100644 +--- a/hazelcast/include/hazelcast/client/protocol/ClientMessage.h ++++ b/hazelcast/include/hazelcast/client/protocol/ClientMessage.h +@@ -56,6 +56,11 @@ + namespace hazelcast { + namespace util { + class ByteBuffer; ++ ++template ++struct is_trivial_or_uuid : std::is_trivial {}; ++template<> ++struct is_trivial_or_uuid : std::true_type {}; + } + + namespace cp { +@@ -594,7 +599,7 @@ public: + std::is_same, + typename T::value_type>::value && +- std::is_trivial::value && ++ hazelcast::util::is_trivial_or_uuid::value && + std::is_trivial::value, + T>::type + get() +@@ -625,7 +630,7 @@ public: + std::is_same, + typename T::value_type>::value && +- std::is_trivial::value && ++ hazelcast::util::is_trivial_or_uuid::value && + !std::is_trivial::value, + T>::type + get() +@@ -1246,12 +1251,11 @@ public: + set(nil); + if (!nil) { + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(uuid.data)); ++ *reinterpret_cast(&uuid.data[0])); + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(uuid.data + +- util::Bits::LONG_SIZE_IN_BYTES)); ++ *reinterpret_cast(&uuid.data[util::Bits::LONG_SIZE_IN_BYTES])); + std::memcpy(wr_ptr(sizeof(boost::uuids::uuid)), +- uuid.data, ++ &uuid.data[0], + sizeof(boost::uuids::uuid)); + } else { + wr_ptr(sizeof(boost::uuids::uuid)); +@@ -1525,13 +1529,13 @@ private: + boost::uuids::uuid get_uuid() + { + boost::uuids::uuid u; +- memcpy(&u.data, ++ memcpy(&u.data[0], + rd_ptr(sizeof(boost::uuids::uuid)), + sizeof(boost::uuids::uuid)); + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(u.data)); ++ *reinterpret_cast(&u.data[0])); + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(u.data + util::Bits::LONG_SIZE_IN_BYTES)); ++ *reinterpret_cast(&u.data[util::Bits::LONG_SIZE_IN_BYTES])); + return u; + } + +diff --git a/hazelcast/include/hazelcast/client/serialization/pimpl/data_input.h b/hazelcast/include/hazelcast/client/serialization/pimpl/data_input.h +index 9e678f54d..88a2f14c0 100644 +--- a/hazelcast/include/hazelcast/client/serialization/pimpl/data_input.h ++++ b/hazelcast/include/hazelcast/client/serialization/pimpl/data_input.h +@@ -182,11 +182,11 @@ public: + { + check_available(util::Bits::UUID_SIZE_IN_BYTES); + boost::uuids::uuid u; +- std::memcpy(&u.data, &buffer_[pos_], util::Bits::UUID_SIZE_IN_BYTES); ++ std::memcpy(&u.data[0], &buffer_[pos_], util::Bits::UUID_SIZE_IN_BYTES); + pos_ += util::Bits::UUID_SIZE_IN_BYTES; + if (byte_order_ == boost::endian::order::little) { + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(u.data)); ++ *reinterpret_cast(&u.data[0])); + boost::endian::endian_reverse_inplace( + *reinterpret_cast( + &u.data[util::Bits::LONG_SIZE_IN_BYTES])); +diff --git a/hazelcast/include/hazelcast/client/spi/impl/ClientInvocation.h b/hazelcast/include/hazelcast/client/spi/impl/ClientInvocation.h +index 5b3186347..625c642b2 100644 +--- a/hazelcast/include/hazelcast/client/spi/impl/ClientInvocation.h ++++ b/hazelcast/include/hazelcast/client/spi/impl/ClientInvocation.h +@@ -210,22 +210,7 @@ private: + const std::string& name, + int partition = UNASSIGNED_PARTITION, + const std::shared_ptr& conn = nullptr, +- boost::uuids::uuid uuid = { 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0, +- 0x0 }); ++ boost::uuids::uuid uuid = {}); + + void invoke_on_selection(); + +diff --git a/hazelcast/src/hazelcast/client/protocol.cpp b/hazelcast/src/hazelcast/client/protocol.cpp +index cfc67f26f..934d9da4b 100644 +--- a/hazelcast/src/hazelcast/client/protocol.cpp ++++ b/hazelcast/src/hazelcast/client/protocol.cpp +@@ -376,7 +376,7 @@ operator<<(std::ostream& os, const ClientMessage& msg) + void + ClientMessage::set(unsigned char* /* memory */, boost::uuids::uuid uuid) + { +- std::memcpy(wr_ptr(uuid.size()), uuid.data, uuid.size()); ++ std::memcpy(wr_ptr(uuid.size()), &uuid.data[0], uuid.size()); + } + + void +diff --git a/hazelcast/src/hazelcast/client/serialization.cpp b/hazelcast/src/hazelcast/client/serialization.cpp +index 071772fec..8dcb6ccf0 100644 +--- a/hazelcast/src/hazelcast/client/serialization.cpp ++++ b/hazelcast/src/hazelcast/client/serialization.cpp +@@ -731,12 +731,12 @@ data_output::write(boost::uuids::uuid v) + } + if (byte_order_ == boost::endian::order::little) { + boost::endian::endian_reverse_inplace( +- *reinterpret_cast(v.data)); ++ *reinterpret_cast(&v.data[0])); + boost::endian::endian_reverse_inplace( + *reinterpret_cast(&v.data[util::Bits::LONG_SIZE_IN_BYTES])); + } + output_stream_.insert( +- output_stream_.end(), v.data, v.data + util::Bits::UUID_SIZE_IN_BYTES); ++ output_stream_.end(), &v.data[0], &v.data[util::Bits::LONG_SIZE_IN_BYTES]); + } + + template<> diff --git a/ports/hazelcast-cpp-client/portfile.cmake b/ports/hazelcast-cpp-client/portfile.cmake index 4e4e3da5bef0f6..040be5081dc11c 100644 --- a/ports/hazelcast-cpp-client/portfile.cmake +++ b/ports/hazelcast-cpp-client/portfile.cmake @@ -4,6 +4,8 @@ vcpkg_from_github( REF "v${VERSION}" SHA512 9f6668fe88b1e10e1c91fea26acb12efab464f652d9008e43b06d92413a7bc4b66cd0ef00c0643ddf12c8d29b099cd767209a096e609fa214233dcc3288d194e HEAD_REF master + PATCHES + boost-1-86-fix.patch # https://github.com/hazelcast/hazelcast-cpp-client/pull/1247 ) vcpkg_check_features( diff --git a/ports/hazelcast-cpp-client/vcpkg.json b/ports/hazelcast-cpp-client/vcpkg.json index 4f49b1c36a48f5..3b20a043709a75 100644 --- a/ports/hazelcast-cpp-client/vcpkg.json +++ b/ports/hazelcast-cpp-client/vcpkg.json @@ -1,6 +1,7 @@ { "name": "hazelcast-cpp-client", "version": "5.3.0", + "port-version": 1, "description": "C++ client library for Hazelcast in-memory database.", "homepage": "https://github.com/hazelcast/hazelcast-cpp-client", "documentation": "http://hazelcast.github.io/hazelcast-cpp-client/index.html", diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index f111a08115071c..50a73637c6216f 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -447,18 +447,6 @@ gz-tools2:x64-android=fail gz-tools2:arm64-android=fail gz-gui7:x64-osx=fail halide:x64-windows-static=fail -# hazelcast-cpp-client fails to build with Boost 1.86 -hazelcast-cpp-client:x86-windows=fail -hazelcast-cpp-client:x64-windows=fail -hazelcast-cpp-client:x64-windows-static=fail -hazelcast-cpp-client:x64-windows-static-md=fail -hazelcast-cpp-client:arm64-windows=fail -hazelcast-cpp-client:x64-osx=fail -hazelcast-cpp-client:arm64-osx=fail -hazelcast-cpp-client:x64-linux=fail -hazelcast-cpp-client:arm-neon-android=fail -hazelcast-cpp-client:arm64-android=fail -hazelcast-cpp-client:x64-android=fail hexl:x64-android=fail highs:arm-neon-android=fail highs:arm64-android=fail diff --git a/versions/baseline.json b/versions/baseline.json index 9b3b193a969a11..16ed1af518a433 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3426,7 +3426,7 @@ }, "hazelcast-cpp-client": { "baseline": "5.3.0", - "port-version": 0 + "port-version": 1 }, "hdf5": { "baseline": "1.14.4.3", diff --git a/versions/h-/hazelcast-cpp-client.json b/versions/h-/hazelcast-cpp-client.json index c3b71d6c4f6e45..9955f503a61813 100644 --- a/versions/h-/hazelcast-cpp-client.json +++ b/versions/h-/hazelcast-cpp-client.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "c85557c281b86c8aabb762d79c45775ccea9c0b9", + "version": "5.3.0", + "port-version": 1 + }, { "git-tree": "4940909398dd70e7610c314749ca143bb0c23918", "version": "5.3.0",