diff options
| author | Carlos O'Ryan <coryan@users.noreply.github.com> | 2021-09-22 13:09:55 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-09-22 13:09:55 -0700 |
| commit | b29f8ef37edb1cedd5c2e403dbcb355443b939f6 (patch) | |
| tree | 4ccc9c0b3655d54b05c41e88f3e129125eac1800 | |
| parent | 93885afd50ff1a1408e1785dceffb01ff648c7d9 (diff) | |
| download | vcpkg-b29f8ef37edb1cedd5c2e403dbcb355443b939f6.tar.gz vcpkg-b29f8ef37edb1cedd5c2e403dbcb355443b939f6.zip | |
[protobuf] upgrade to latest release (v3.18.0) (#20208)
* [protobuf] upgrade to latest release (v3.18.0)
This requires patching OpenCV as it uses a function removed in the
latest version of protobuf (FWIW, upstream OpenCV has a similar patch).
* The arcus port also needs a patch
* The caffe2 port also needs a patch
* The brpc port also needs a patch
| -rw-r--r-- | ports/arcus/0001-fix-protobuf-deprecated.patch | 13 | ||||
| -rw-r--r-- | ports/arcus/portfile.cmake | 2 | ||||
| -rw-r--r-- | ports/arcus/vcpkg.json | 1 | ||||
| -rw-r--r-- | ports/brpc/fix-protobuf-deprecated.patch | 13 | ||||
| -rw-r--r-- | ports/brpc/portfile.cmake | 1 | ||||
| -rw-r--r-- | ports/brpc/vcpkg.json | 2 | ||||
| -rw-r--r-- | ports/caffe2/fix-protobuf-deprecated.patch | 26 | ||||
| -rw-r--r-- | ports/caffe2/portfile.cmake | 1 | ||||
| -rw-r--r-- | ports/caffe2/vcpkg.json | 2 | ||||
| -rw-r--r-- | ports/opencv4/0011-fix-caffe-io.patch | 13 | ||||
| -rw-r--r-- | ports/opencv4/portfile.cmake | 1 | ||||
| -rw-r--r-- | ports/opencv4/vcpkg.json | 2 | ||||
| -rw-r--r-- | ports/protobuf/fix-static-build.patch | 10 | ||||
| -rw-r--r-- | ports/protobuf/fix-uwp-build.patch | 13 | ||||
| -rw-r--r-- | ports/protobuf/port_def.patch | 14 | ||||
| -rw-r--r-- | ports/protobuf/portfile.cmake | 8 | ||||
| -rw-r--r-- | ports/protobuf/vcpkg.json | 3 | ||||
| -rw-r--r-- | versions/a-/arcus.json | 5 | ||||
| -rw-r--r-- | versions/b-/brpc.json | 5 | ||||
| -rw-r--r-- | versions/baseline.json | 12 | ||||
| -rw-r--r-- | versions/c-/caffe2.json | 5 | ||||
| -rw-r--r-- | versions/o-/opencv4.json | 5 | ||||
| -rw-r--r-- | versions/p-/protobuf.json | 5 |
23 files changed, 128 insertions, 34 deletions
diff --git a/ports/arcus/0001-fix-protobuf-deprecated.patch b/ports/arcus/0001-fix-protobuf-deprecated.patch new file mode 100644 index 000000000..a40da846d --- /dev/null +++ b/ports/arcus/0001-fix-protobuf-deprecated.patch @@ -0,0 +1,13 @@ +diff --git a/src/Socket_p.h b/src/Socket_p.h +index 9c3c084..9ccabda 100644 +--- a/src/Socket_p.h ++++ b/src/Socket_p.h +@@ -548,7 +548,7 @@ namespace Arcus + + google::protobuf::io::ArrayInputStream array(wire_message->data, wire_message->size); + google::protobuf::io::CodedInputStream stream(&array); +- stream.SetTotalBytesLimit(message_size_maximum, message_size_warning); ++ stream.SetTotalBytesLimit(message_size_maximum); + if(!message->ParseFromCodedStream(&stream)) + { + error(ErrorCode::ParseFailedError, "Failed to parse message:" + std::string(wire_message->data)); diff --git a/ports/arcus/portfile.cmake b/ports/arcus/portfile.cmake index d22a64d30..d2777742b 100644 --- a/ports/arcus/portfile.cmake +++ b/ports/arcus/portfile.cmake @@ -6,6 +6,8 @@ vcpkg_from_github( REF 617f6f71572090f73cb44592b12f49567b539e5b #v4.10.0
SHA512 cf0954d8b10d9f94165aa5c086d0e58c2925464f9fbe4252535c36d7e6bb12b767d89efb816c9e642f9cd7f0ec0d66d61ca21c5121a05340499d38d5d851f73b
HEAD_REF master
+ PATCHES
+ 0001-fix-protobuf-deprecated.patch
)
string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" ENABLE_STATIC)
diff --git a/ports/arcus/vcpkg.json b/ports/arcus/vcpkg.json index bb3d46b35..bf7b6b4db 100644 --- a/ports/arcus/vcpkg.json +++ b/ports/arcus/vcpkg.json @@ -1,6 +1,7 @@ { "name": "arcus", "version-semver": "4.10.0", + "port-version": 1, "description": "This library contains C++ bindings for creating a socket in a thread and using this socket to send and receive messages based on the Protocol Buffers library.", "homepage": "https://github.com/Ultimaker/libArcus", "supports": "!uwp", diff --git a/ports/brpc/fix-protobuf-deprecated.patch b/ports/brpc/fix-protobuf-deprecated.patch new file mode 100644 index 000000000..564724c63 --- /dev/null +++ b/ports/brpc/fix-protobuf-deprecated.patch @@ -0,0 +1,13 @@ +diff --git a/src/brpc/protocol.cpp b/src/brpc/protocol.cpp +index 11297ea..c998edb 100644 +--- a/src/brpc/protocol.cpp ++++ b/src/brpc/protocol.cpp +@@ -203,7 +203,7 @@ BUTIL_FORCE_INLINE bool ParsePbFromZeroCopyStreamInlined( + // According to source code of pb, SetTotalBytesLimit is not a simple set, + // avoid calling the function when the limit is definitely unreached. + if (PB_TOTAL_BYETS_LIMITS < FLAGS_max_body_size) { +- decoder.SetTotalBytesLimit(INT_MAX, -1); ++ decoder.SetTotalBytesLimit(INT_MAX); + } + return msg->ParseFromCodedStream(&decoder) && decoder.ConsumedEntireMessage(); + } diff --git a/ports/brpc/portfile.cmake b/ports/brpc/portfile.cmake index 3a1c1dce7..3547c6423 100644 --- a/ports/brpc/portfile.cmake +++ b/ports/brpc/portfile.cmake @@ -9,6 +9,7 @@ vcpkg_from_github( PATCHES fix_boost_ptr.patch fix_thrift.patch + fix-protobuf-deprecated.patch ) vcpkg_configure_cmake( diff --git a/ports/brpc/vcpkg.json b/ports/brpc/vcpkg.json index 61c1d27a3..2b2e15689 100644 --- a/ports/brpc/vcpkg.json +++ b/ports/brpc/vcpkg.json @@ -1,7 +1,7 @@ { "name": "brpc", "version-string": "0.9.7", - "port-version": 1, + "port-version": 2, "description": "Industrial-grade RPC framework used throughout Baidu, with 1,000,000+ instances and thousands kinds of services, called \"baidu-rpc\" inside Baidu.", "homepage": "https://github.com/apache/incubator-brpc", "supports": "!windows", diff --git a/ports/caffe2/fix-protobuf-deprecated.patch b/ports/caffe2/fix-protobuf-deprecated.patch new file mode 100644 index 000000000..4f594d430 --- /dev/null +++ b/ports/caffe2/fix-protobuf-deprecated.patch @@ -0,0 +1,26 @@ +diff --git a/caffe2/utils/proto_utils.cc b/caffe2/utils/proto_utils.cc +index ab2d756..2c36ec4 100644 +--- a/caffe2/utils/proto_utils.cc ++++ b/caffe2/utils/proto_utils.cc +@@ -102,10 +102,9 @@ bool ReadProtoFromBinaryFile(const char* filename, MessageLite* proto) { + ::google::protobuf::io::CopyingInputStreamAdaptor stream( + new IfstreamInputStream(filename)); + stream.SetOwnsCopyingStream(true); +- // Total bytes hard limit / warning limit are set to 1GB and 512MB +- // respectively. ++ // Total bytes hard limit is set to 1GB. + ::google::protobuf::io::CodedInputStream coded_stream(&stream); +- coded_stream.SetTotalBytesLimit(1024LL << 20, 512LL << 20); ++ coded_stream.SetTotalBytesLimit(1024LL << 20); + return proto->ParseFromCodedStream(&coded_stream); + } + +@@ -155,7 +154,7 @@ bool ReadProtoFromBinaryFile(const char* filename, MessageLite* proto) { + std::unique_ptr<CodedInputStream> coded_input( + new CodedInputStream(raw_input.get())); + // A hack to manually allow using very large protocol buffers. +- coded_input->SetTotalBytesLimit(1073741824, 536870912); ++ coded_input->SetTotalBytesLimit(1073741824); + bool success = proto->ParseFromCodedStream(coded_input.get()); + coded_input.reset(); + raw_input.reset(); diff --git a/ports/caffe2/portfile.cmake b/ports/caffe2/portfile.cmake index 0b19b9eb9..d7ec68e6a 100644 --- a/ports/caffe2/portfile.cmake +++ b/ports/caffe2/portfile.cmake @@ -13,6 +13,7 @@ vcpkg_from_github( PATCHES msvc-fixes.patch fix-space.patch + fix-protobuf-deprecated.patch ) if(VCPKG_CRT_LINKAGE STREQUAL static) diff --git a/ports/caffe2/vcpkg.json b/ports/caffe2/vcpkg.json index 1f4f34d63..eeecad531 100644 --- a/ports/caffe2/vcpkg.json +++ b/ports/caffe2/vcpkg.json @@ -1,7 +1,7 @@ { "name": "caffe2", "version-string": "0.8.1", - "port-version": 4, + "port-version": 5, "description": "Caffe2 is a lightweight, modular, and scalable deep learning framework.", "homepage": "https://github.com/caffe2/caffe2", "supports": "!x86", diff --git a/ports/opencv4/0011-fix-caffe-io.patch b/ports/opencv4/0011-fix-caffe-io.patch new file mode 100644 index 000000000..ee33ea63f --- /dev/null +++ b/ports/opencv4/0011-fix-caffe-io.patch @@ -0,0 +1,13 @@ +diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp +index 2fc4d84..779d0dd 100644 +--- a/modules/dnn/src/caffe/caffe_io.cpp ++++ b/modules/dnn/src/caffe/caffe_io.cpp +@@ -1111,7 +1111,7 @@ static const int kProtoReadBytesLimit = INT_MAX; // Max size of 2 GB minus 1 by + + bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) { + CodedInputStream coded_input(input); +- coded_input.SetTotalBytesLimit(kProtoReadBytesLimit, 536870912); ++ coded_input.SetTotalBytesLimit(kProtoReadBytesLimit); + + return proto->ParseFromCodedStream(&coded_input); + } diff --git a/ports/opencv4/portfile.cmake b/ports/opencv4/portfile.cmake index e965dd2a0..760cfbea7 100644 --- a/ports/opencv4/portfile.cmake +++ b/ports/opencv4/portfile.cmake @@ -24,6 +24,7 @@ vcpkg_from_github( 0008-devendor-quirc.patch 0009-fix-protobuf.patch 0010-fix-uwp-tiff-imgcodecs.patch + 0011-fix-caffe-io.patch ) if(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64") diff --git a/ports/opencv4/vcpkg.json b/ports/opencv4/vcpkg.json index dce331bf1..54ae37008 100644 --- a/ports/opencv4/vcpkg.json +++ b/ports/opencv4/vcpkg.json @@ -1,7 +1,7 @@ { "name": "opencv4", "version": "4.5.3", - "port-version": 1, + "port-version": 2, "description": "computer vision library", "homepage": "https://github.com/opencv/opencv", "dependencies": [ diff --git a/ports/protobuf/fix-static-build.patch b/ports/protobuf/fix-static-build.patch index 0ba4982fe..fec980a93 100644 --- a/ports/protobuf/fix-static-build.patch +++ b/ports/protobuf/fix-static-build.patch @@ -1,11 +1,11 @@ diff --git a/cmake/install.cmake b/cmake/install.cmake -index 4091bc8..9850018 100644 +index ef5bb13..e2d4acb 100644 --- a/cmake/install.cmake +++ b/cmake/install.cmake -@@ -31,7 +31,7 @@ endforeach() - if (protobuf_BUILD_PROTOC_BINARIES) - install(TARGETS protoc EXPORT protobuf-targets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT protoc) +@@ -33,7 +33,7 @@ if (protobuf_BUILD_PROTOC_BINARIES) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT protoc) - if (UNIX AND NOT APPLE) + if (UNIX AND NOT APPLE AND NOT protobuf_MSVC_STATIC_RUNTIME) set_property(TARGET protoc diff --git a/ports/protobuf/fix-uwp-build.patch b/ports/protobuf/fix-uwp-build.patch new file mode 100644 index 000000000..ca806ebd1 --- /dev/null +++ b/ports/protobuf/fix-uwp-build.patch @@ -0,0 +1,13 @@ +diff --git a/src/google/protobuf/descriptor.cc b/src/google/protobuf/descriptor.cc +index b6c31fd..8b77c3d 100644 +--- a/src/google/protobuf/descriptor.cc ++++ b/src/google/protobuf/descriptor.cc +@@ -794,7 +794,7 @@ class TableArena { + size = RoundUp(size); + + Block* to_relocate = nullptr; +- Block* to_use; ++ Block* to_use = nullptr; + + for (size_t i = 0; i < kSmallSizes.size(); ++i) { + if (small_size_blocks_[i] != nullptr && size <= kSmallSizes[i]) { diff --git a/ports/protobuf/port_def.patch b/ports/protobuf/port_def.patch deleted file mode 100644 index 31d71531d..000000000 --- a/ports/protobuf/port_def.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/src/google/protobuf/port_def.inc b/src/google/protobuf/port_def.inc -index f7b64a080..3493d9082 100644 ---- a/src/google/protobuf/port_def.inc -+++ b/src/google/protobuf/port_def.inc -@@ -564,7 +564,8 @@ - - // Our use of constinit does not yet work with GCC: - // https://github.com/protocolbuffers/protobuf/issues/8310 --#if defined(__cpp_constinit) && !defined(__GNUC__) -+// Does not work yet with Visual Studio 2019 Update 16.10 -+#if defined(__cpp_constinit) && !defined(__GNUC__) && !defined(_MSC_VER) - #define PROTOBUF_CONSTINIT constinit - #elif defined(__has_cpp_attribute) - #if __has_cpp_attribute(clang::require_constant_initialization) diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index a645866c9..8395eeae5 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -1,13 +1,13 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO protocolbuffers/protobuf - REF 436bd7880e458532901c58f4d9d1ea23fa7edd52 #v3.15.8 - SHA512 88bb9a965bccfe11a07aee2c0c16eb9cc1845ea2d7500ef6def3e1c0a8155ac4eadd0ceef4b12552960dffe95a0fc82549d1abba71ca073ab86ec5de57d9cafb + REF v3.18.0 + SHA512 2c8ff451b54120e4670f7ea8c92c0c7d70f4bb781979f74f59ddcb7c9cc74fe3e8910fc579d2686fb0e1aafa35fb9548ccab667accf2358c71cfd17ba38d7826 HEAD_REF master PATCHES fix-static-build.patch fix-default-proto-file-path.patch - port_def.patch + fix-uwp-build.patch ) string(COMPARE EQUAL "${TARGET_TRIPLET}" "${HOST_TRIPLET}" protobuf_BUILD_PROTOC_BINARIES) @@ -79,7 +79,7 @@ if(protobuf_BUILD_PROTOC_BINARIES) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_copy_tools(TOOL_NAMES protoc AUTO_CLEAN) else() - vcpkg_copy_tools(TOOL_NAMES protoc protoc-3.15.8.0 AUTO_CLEAN) + vcpkg_copy_tools(TOOL_NAMES protoc protoc-3.18.0.0 AUTO_CLEAN) endif() else() file(COPY ${CURRENT_HOST_INSTALLED_DIR}/tools/${PORT} DESTINATION ${CURRENT_PACKAGES_DIR}/tools) diff --git a/ports/protobuf/vcpkg.json b/ports/protobuf/vcpkg.json index 40b557dd3..c75206275 100644 --- a/ports/protobuf/vcpkg.json +++ b/ports/protobuf/vcpkg.json @@ -1,7 +1,6 @@ { "name": "protobuf", - "version-semver": "3.15.8", - "port-version": 4, + "version-semver": "3.18.0", "description": "Protocol Buffers - Google's data interchange format", "homepage": "https://github.com/protocolbuffers/protobuf", "dependencies": [ diff --git a/versions/a-/arcus.json b/versions/a-/arcus.json index c222d1ef0..47d36bb4d 100644 --- a/versions/a-/arcus.json +++ b/versions/a-/arcus.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "0aeec8ed7245362e90ef531d8ecaf4ca315e85e5", + "version-semver": "4.10.0", + "port-version": 1 + }, + { "git-tree": "76f86c7d5993d59f58a0863b9e2ca439db88efba", "version-semver": "4.10.0", "port-version": 0 diff --git a/versions/b-/brpc.json b/versions/b-/brpc.json index 409ee5598..d625bae51 100644 --- a/versions/b-/brpc.json +++ b/versions/b-/brpc.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "0b89b1bee5f50f8bdb551ae2373feb51b144fbc2", + "version-string": "0.9.7", + "port-version": 2 + }, + { "git-tree": "8d3ba620eff30244f2ca27af0814f78ce9049308", "version-string": "0.9.7", "port-version": 1 diff --git a/versions/baseline.json b/versions/baseline.json index 9e66a9973..1b5c1145e 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -122,7 +122,7 @@ }, "arcus": { "baseline": "4.10.0", - "port-version": 0 + "port-version": 1 }, "argagg": { "baseline": "0.4.6", @@ -1118,7 +1118,7 @@ }, "brpc": { "baseline": "0.9.7", - "port-version": 1 + "port-version": 2 }, "brunocodutra-metal": { "baseline": "2.1.1", @@ -1174,7 +1174,7 @@ }, "caffe2": { "baseline": "0.8.1", - "port-version": 4 + "port-version": 5 }, "cairo": { "baseline": "1.17.4", @@ -4766,7 +4766,7 @@ }, "opencv4": { "baseline": "4.5.3", - "port-version": 1 + "port-version": 2 }, "opendnp3": { "baseline": "3.1.0", @@ -5221,8 +5221,8 @@ "port-version": 0 }, "protobuf": { - "baseline": "3.15.8", - "port-version": 4 + "baseline": "3.18.0", + "port-version": 0 }, "protobuf-c": { "baseline": "1.3.2", diff --git a/versions/c-/caffe2.json b/versions/c-/caffe2.json index 60aff5c5b..53fb01084 100644 --- a/versions/c-/caffe2.json +++ b/versions/c-/caffe2.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "e4ebcedb57e572959c4f8e30c2885cda2367e0a7", + "version-string": "0.8.1", + "port-version": 5 + }, + { "git-tree": "e50097be149d80e1397e95280aecd5160961d286", "version-string": "0.8.1", "port-version": 4 diff --git a/versions/o-/opencv4.json b/versions/o-/opencv4.json index 2b404d7c4..9493353a5 100644 --- a/versions/o-/opencv4.json +++ b/versions/o-/opencv4.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "6b5539ab3cd468944f8d46698c610285319bf0f7", + "version": "4.5.3", + "port-version": 2 + }, + { "git-tree": "9d18da7f0c17619f7912a5d53b0316c7a18d625a", "version": "4.5.3", "port-version": 1 diff --git a/versions/p-/protobuf.json b/versions/p-/protobuf.json index bc2dcdead..a91d6210a 100644 --- a/versions/p-/protobuf.json +++ b/versions/p-/protobuf.json @@ -1,6 +1,11 @@ { "versions": [ { + "git-tree": "19c2bf45c235e6126161bae36aa7ff7e1fcda479", + "version-semver": "3.18.0", + "port-version": 0 + }, + { "git-tree": "6204194eaf9d8ff0fe78d498f77fee57cd19ce59", "version-semver": "3.15.8", "port-version": 4 |
