<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/cfcc2b283101bb2b63dd67a1f9ff308d5cf240a6">https://github.com/macports/macports-ports/commit/cfcc2b283101bb2b63dd67a1f9ff308d5cf240a6</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new cfcc2b28310 protobuf5-cpp: keep Protobuf 5.x as a separate port
</span>cfcc2b28310 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit cfcc2b283101bb2b63dd67a1f9ff308d5cf240a6
</span>Author: Suhail Khan <26044674+suhailskhan@users.noreply.github.com>
AuthorDate: Wed Apr 9 11:41:00 2025 -0700

<span style='display:block; white-space:pre;color:#404040;'>    protobuf5-cpp: keep Protobuf 5.x as a separate port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Re: https://trac.macports.org/ticket/72315
</span>---
 devel/protobuf5-cpp/Portfile                      | 137 ++++++++++++++++++++++
 devel/protobuf5-cpp/files/cmake-zlib-include.diff |  10 ++
 devel/protobuf5-cpp/files/patch-unbreak-time.diff |  20 ++++
 3 files changed, 167 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/protobuf5-cpp/Portfile b/devel/protobuf5-cpp/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..647bd8de13e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/protobuf5-cpp/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,137 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem      1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       github 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       cmake 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup       legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clock_gettime needed for abseil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/macports/macports-ports/pull/19905#issuecomment-1680281240
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set release_version \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                29.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name            protobuf5-cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup    protocolbuffers protobuf 5.${release_version} v
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git.branch      v${release_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision        0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories      devel
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers     nomaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license         BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description     Encode data in an efficient yet extensible format.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                Google Protocol Buffers are a flexible, efficient, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                automated mechanism for serializing structured data -- \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                think XML, but smaller, faster, and simpler.  You \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                define how you want your data to be structured once, \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                then you can use special generated source code to \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                easily write and read your structured data to and from \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                a variety of data streams and using a variety of \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                languages.  You can even update your data structure \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                without breaking deployed programs that are compiled \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                against the "old" format.  You specify how you want \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                the information you're serializing to be structured by \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                defining protocol buffer message types in .proto \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                files.  Each protocol buffer message is a small \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                logical record of information, containing a series of \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                name-value pairs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage        https://protobuf.dev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums       rmd160  3a8a4c815f22f23c5d8363d5fd7972b005d971a9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                sha256  6bd9dcc91b17ef25c26adf86db71c67ec02431dc92e9589eaf82e22889230496 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                size    9350942
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.tarball_from releases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname        protobuf-${release_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+dist_subdir     protobuf5-cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+worksrcdir      protobuf-${release_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Upstream adds zlib include - which is ${prefix}/include - before search path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# of 3rd-party components, like gtest, gmock, etc. That causes the external
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# versions of those to be pulled in, and the build fails.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# So don't let the project cmake add zlib; already added (last) by base.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append cmake-zlib-include.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Revert a breakage from dropping mach_time in:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/protocolbuffers/protobuf/commit/a8a9bd2e4990fd5e0f0098bdfbe62bc00783eab7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-unbreak-time.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard   2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.thread_local_storage   yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# error: constexpr constructor never produces a constant expression [-Winvalid-constexpr]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist {clang < 900}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { [string match *clang* ${configure.compiler}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Quiet deprecation warnings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxxflags-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Wno-deprecated-declarations \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Wno-error=unknown-warning-option \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Wno-unknown-warning-option
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Clear optflags; controlled by project, via cmake build type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.optflags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[variant_isset debug]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    cmake.build_type Debug
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    cmake.build_type RelWithDebInfo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cmake.install_prefix \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${prefix}/libexec/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                port:abseil \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -DBUILD_SHARED_LIBS:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_ABSL_PROVIDER=package \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_BUILD_LIBPROTOC:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_BUILD_PROTOC_BINARIES:BOOL=ON \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_BUILD_TESTS:BOOL=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set docdir ${destroot}${prefix}/share/doc/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d -m 755 ${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f {CONTRIBUTING.md CONTRIBUTORS.txt LICENSE README.md SECURITY.md editors examples} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        file copy ${worksrcpath}/${f} ${docdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc port_test_ver_check {p_name p_ver p_rev} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { [catch {set port_ver_info [lindex [registry_active ${p_name}] 0]}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        error "Tests require that ${p_name} be active; install, then re-run tests"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set test_ver ${p_ver}_${p_rev}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set port_ver [lindex ${port_ver_info} 1]_[lindex ${port_ver_info} 2]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_info "port_test_ver_check: ${p_name}: test_ver: ${test_ver}; port_ver: ${port_ver}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { [vercmp ${port_ver} ${test_ver}] != 0 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            error "Tests require installed version of ${p_name} to match port; update, then re-run tests"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant tests description {Build with tests enabled} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    pre-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port_test_ver_check ${subport} ${version} ${revision}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_BUILD_TESTS:BOOL=OFF \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                -Dprotobuf_BUILD_TESTS:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.run    yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    test.target check
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+livecheck.version       ${release_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.livecheck.regex  {(2[6-9]\.[0-9]+)}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/protobuf5-cpp/files/cmake-zlib-include.diff b/devel/protobuf5-cpp/files/cmake-zlib-include.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..e680d34435b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/protobuf5-cpp/files/cmake-zlib-include.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- CMakeLists.txt.orig    2023-06-01 13:13:50.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ CMakeLists.txt 2023-06-01 13:14:05.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -296,7 +296,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif (MSVC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ include_directories(
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ${ZLIB_INCLUDE_DIRECTORIES}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ${protobuf_BINARY_DIR}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ${protobuf_SOURCE_DIR}/src)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/protobuf5-cpp/files/patch-unbreak-time.diff b/devel/protobuf5-cpp/files/patch-unbreak-time.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..6ebc02487e5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/protobuf5-cpp/files/patch-unbreak-time.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/google/protobuf/map.h      2024-08-29 00:12:09.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/google/protobuf/map.h      2024-09-01 16:22:53.000000000 +0800
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,7 +26,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <utility>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if !defined(GOOGLE_PROTOBUF_NO_RDTSC) && defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <time.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <mach/mach_time.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "google/protobuf/stubs/common.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -709,7 +709,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(__APPLE__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Use a commpage-based fast time function on Apple environments (MacOS,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // iOS, tvOS, watchOS, etc).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    s = clock_gettime_nsec_np(CLOCK_UPTIME_RAW);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    s = mach_absolute_time();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #elif defined(__x86_64__) && defined(__GNUC__)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     uint32_t hi, lo;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     asm volatile("rdtsc" : "=a"(lo), "=d"(hi));
</span></pre><pre style='margin:0'>

</pre>