From: Thomas Frohwein Subject: devel/gn: getexecpath To: ports@openbsd.org Date: Fri, 18 Sep 2026 09:00:57 -0700 Hi, Diff to use getexecpath(3) rather than the hardcoded path workaround. (make update-patches also regenerated patch-build_gen_py FYI.) ok? Index: Makefile =================================================================== RCS file: /cvs/ports/devel/gn/Makefile,v diff -u -p -r1.7 Makefile --- Makefile 6 May 2026 16:40:28 -0000 1.7 +++ Makefile 18 Sep 2026 15:31:31 -0000 @@ -9,6 +9,7 @@ DATE = 20251214 VERSION = 0.0.${DATE} DISTNAME = gn-${DATE} PKGNAME = gn-${VERSION} +REVISION = 0 # gn.googlesource.com does not provide stable snapshots SITES = https://codeberg.org/vlkrs/gn/archive/ @@ -34,8 +35,7 @@ WRKDIST = ${WRKDIR}/gn WANTLIB += ${COMPILER_LIBCXX} c m post-patch: - ${SUBST_CMD} ${WRKSRC}/src/util/exe_path.cc \ - ${WRKSRC}/src/gn/command_format_unittest.cc + ${SUBST_CMD} ${WRKSRC}/src/gn/command_format_unittest.cc do-build: ${SETENV} ${MAKE_ENV} ninja -C${WRKSRC}/out -j${MAKE_JOBS} -v Index: patches/patch-build_gen_py =================================================================== RCS file: /cvs/ports/devel/gn/patches/patch-build_gen_py,v diff -u -p -r1.2 patch-build_gen_py --- patches/patch-build_gen_py 21 Mar 2025 22:33:25 -0000 1.2 +++ patches/patch-build_gen_py 18 Sep 2026 15:31:31 -0000 @@ -3,7 +3,7 @@ Set version based on port version, remov Index: build/gen.py --- build/gen.py.orig +++ build/gen.py -@@ -241,25 +241,16 @@ def is_gcc(cxx): +@@ -245,25 +245,16 @@ def is_gcc(cxx): return ret.returncode == 0 and "#define __GNUC__" in ret.stdout and not "#define __clang__" in ret.stdout def GenerateLastCommitPosition(host, header): @@ -31,7 +31,7 @@ Index: build/gen.py # Only write/touch this file if the commit position has changed. old_contents = '' -@@ -432,10 +423,8 @@ def WriteGNNinja(path, platform, host, options, args_l +@@ -441,10 +432,8 @@ def WriteGNNinja(path, platform, host, options, args_l cflags.extend(['-D_LIBCPP_DEBUG=1', '-D_GLIBCXX_DEBUG=1']) else: cflags.append('-DNDEBUG') Index: patches/patch-src_util_exe_path_cc =================================================================== RCS file: /cvs/ports/devel/gn/patches/patch-src_util_exe_path_cc,v diff -u -p -r1.1.1.1 patch-src_util_exe_path_cc --- patches/patch-src_util_exe_path_cc 3 May 2023 12:30:17 -0000 1.1.1.1 +++ patches/patch-src_util_exe_path_cc 18 Sep 2026 15:31:31 -0000 @@ -1,20 +1,19 @@ -Use hardcoded path to gn binary - Index: src/util/exe_path.cc --- src/util/exe_path.cc.orig +++ src/util/exe_path.cc -@@ -117,13 +117,7 @@ base::FilePath GetExePath() { - #else - - base::FilePath GetExePath() { -- base::FilePath result; -- const char kProcSelfExe[] = "/proc/self/exe"; -- if (!ReadSymbolicLink(base::FilePath(kProcSelfExe), &result)) { -- NOTREACHED() << "Unable to resolve " << kProcSelfExe << "."; -- return base::FilePath(); -- } -- return result; -+ return base::FilePath("${LOCALBASE}/bin/gn"); +@@ -81,6 +81,15 @@ base::FilePath GetExePath() { + return base::FilePath(buf); } - #endif ++#elif defined(OS_OPENBSD) ++ ++base::FilePath GetExePath() { ++ char execpath[PATH_MAX]; ++ if (getexecpath(execpath, sizeof(execpath)) != 0) ++ return base::FilePath(); ++ return base::FilePath(execpath); ++} ++ + #elif defined(OS_HAIKU) + + base::FilePath GetExePath() {