Replace one of the usual hacks by a call to getexecpath().

Index: Makefile
===================================================================
RCS file: /cvs/ports/devel/protobuf/Makefile,v
diff -u -p -r1.113 Makefile
--- Makefile    7 Sep 2026 16:28:19 -0000       1.113
+++ Makefile    10 Sep 2026 17:12:01 -0000
@@ -2,7 +2,7 @@ COMMENT =               c++ protocol buffers
 
 CPPMAJOR =             7
 PROTOBUF_VERSION =     36.1
-REVISION =             0
+REVISION =             1
 
 # Keep PROTOBUF_VERSION in devel/py-protobuf and devel/protobuf-java
 # in sync with this port.
@@ -77,8 +77,5 @@ CONFIGURE_ARGS +=     -Dprotobuf_BUILD_SHARE
 # Tests have been broken for a long time.
 CONFIGURE_ARGS +=      -Dprotobuf_BUILD_TESTS=OFF
 NO_TEST =              Yes
-
-pre-configure:
-       ${SUBST_CMD} 
${WRKSRC}/src/google/protobuf/compiler/command_line_interface.cc
 
 .include <bsd.port.mk>
Index: patches/patch-src_google_protobuf_compiler_command_line_interface_cc
===================================================================
RCS file: 
/cvs/ports/devel/protobuf/patches/patch-src_google_protobuf_compiler_command_line_interface_cc,v
diff -u -p -r1.6 patch-src_google_protobuf_compiler_command_line_interface_cc
--- patches/patch-src_google_protobuf_compiler_command_line_interface_cc        
10 Mar 2026 15:09:27 -0000      1.6
+++ patches/patch-src_google_protobuf_compiler_command_line_interface_cc        
10 Sep 2026 17:10:53 -0000
@@ -1,15 +1,16 @@
 Index: src/google/protobuf/compiler/command_line_interface.cc
 --- src/google/protobuf/compiler/command_line_interface.cc.orig
 +++ src/google/protobuf/compiler/command_line_interface.cc
-@@ -235,6 +235,11 @@ bool GetProtocAbsolutePath(std::string* path) {
+@@ -235,6 +235,12 @@ bool GetProtocAbsolutePath(std::string* path) {
    if (sysctl(mib, 4, &buffer, &len, nullptr, 0) != 0) {
      len = 0;
    }
 +#elif defined(__OpenBSD__)
-+  std::string protocpath("${LOCALBASE}/bin/protoc");
 +  char buffer[PATH_MAX]{};
-+  protocpath.copy(buffer, sizeof buffer - 1);
-+  int len = protocpath.length();
++  size_t len = 0;
++  if (getexecpath(buffer, sizeof buffer) == 0) {
++    len = strlen(buffer);
++  }
  #else
    char buffer[PATH_MAX];
    int len = readlink("/proc/self/exe", buffer, PATH_MAX);

Reply via email to