Build fails at Arch Linux with "could not replace build ID: exactly one match for old build ID expected, got 0"
I am trying to build the official Arch Linux package with following instructions:
cd gitaly-$_tag
pushd ruby
bundle-2.7 config force_ruby_platform true # build from sources as some prebuilt gems are not available for newer ruby
bundle-2.7 install --path vendor/bundle
popd
make V=1 BUILD_TAGS="tracer_static tracer_static_jaeger"
And it fails with the following error. For some reason, praefect
does not handle the BUILD_ID replacement well. The previous gitlab version builds fine.
-- Performing Test IS_WNO_MISSING_FIELD_INITIALIZERS_SUPPORTED - Success
-- Performing Test IS_WMISSING_DECLARATIONS_SUPPORTED
-- Performing Test IS_WMISSING_DECLARATIONS_SUPPORTED - Success
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-wrapper" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-wrapper" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-wrapper" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-wrapper" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-wrapper"; \
fi
-- Performing Test IS_WSTRICT_ALIASING_SUPPORTED - Success
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED
-- Performing Test IS_WSTRICT_PROTOTYPES_SUPPORTED - Success
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED
-- Performing Test IS_WDECLARATION_AFTER_STATEMENT_SUPPORTED - Success
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-debug" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-debug" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-debug" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-debug" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-debug"; \
fi
-- Performing Test IS_WSHIFT_COUNT_OVERFLOW_SUPPORTED - Success
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-blackbox" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-blackbox" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-blackbox" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-blackbox" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-blackbox"; \
fi
-- Performing Test IS_WUNUSED_CONST_VARIABLE_SUPPORTED - Success
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED
-- Performing Test IS_WUNUSED_FUNCTION_SUPPORTED - Success
-- Performing Test IS_WINT_CONVERSION_SUPPORTED
-- Performing Test IS_WINT_CONVERSION_SUPPORTED - Success
-- Performing Test IS_WC11_EXTENSIONS_SUPPORTED
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-ssh" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-ssh" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-ssh" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-ssh" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-ssh"; \
fi
-- Performing Test IS_WC11_EXTENSIONS_SUPPORTED - Failed
-- Performing Test IS_WC99_C11_COMPAT_SUPPORTED
-- Performing Test IS_WC99_C11_COMPAT_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SUPPORTED
-- Performing Test IS_WFORMAT_SUPPORTED - Success
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED
-- Performing Test IS_WFORMAT_SECURITY_SUPPORTED - Success
-- Found GSSAPI: /usr/lib/libgssapi_krb5.so;/usr/lib/libkrb5.so;/usr/lib/libk5crypto.so;/usr/lib/libcom_err.so
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.0.7")
-- http-parser version 2 was not found or disabled; using bundled 3rd-party sources.
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED
-- Performing Test IS_WIMPLICIT_FALLTHROUGH_1_SUPPORTED - Success
-- Found PCRE: /usr/lib/libpcre.so
-- Looking for dirent.h
-- Looking for dirent.h - found
-- Looking for stdint.h
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-lfs-smudge" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-lfs-smudge" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-lfs-smudge" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-lfs-smudge" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-lfs-smudge"; \
fi
-- Looking for stdint.h - found
-- Looking for inttypes.h
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-hooks" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-hooks" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-hooks" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-hooks" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-hooks"; \
fi
-- Looking for inttypes.h - found
-- Looking for sys/stat.h
-- Looking for sys/stat.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for windows.h
-- Looking for windows.h - not found
-- Looking for bcopy
-- Looking for bcopy - found
-- Looking for memmove
-- Looking for memmove - found
-- Looking for strerror
-- Looking for strerror - found
-- Looking for strtoll
-- Looking for strtoll - found
-- Looking for strtoq
-- Looking for strtoq - found
-- Looking for _strtoi64
-- Looking for _strtoi64 - not found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of long long
-- Check size of long long - done
-- Check size of unsigned long long
-- Check size of unsigned long long - done
-- Performing Test IS_WNO_UNUSED_FUNCTION_SUPPORTED
-- Performing Test IS_WNO_UNUSED_FUNCTION_SUPPORTED - Success
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED
-- Performing Test IS_WNO_IMPLICIT_FALLTHROUGH_SUPPORTED - Success
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.
-- Checking prototype qsort_r for GIT_QSORT_R_BSD
-- Checking prototype qsort_r for GIT_QSORT_R_BSD - False
-- Checking prototype qsort_r for GIT_QSORT_R_GNU
-- Checking prototype qsort_r for GIT_QSORT_R_GNU - True
-- Looking for qsort_s
-- Looking for qsort_s - not found
-- Looking for getentropy
-- Looking for getentropy - found
-- Looking for getloadavg
-- Looking for getloadavg - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - found
-- Enabled features:
* nanoseconds, support nanosecond precision file mtimes and ctimes
* SHA1, using CollisionDetection
* SHA256, using Builtin
* http-parser, http-parser support (bundled)
* regex, using bundled PCRE
* zlib, using bundled zlib
* futimens, futimens support
* threadsafe, threadsafe support
-- Disabled features:
* debugpool, debug pool allocator
* debugalloc, debug strict allocators
* debugopen, path validation in open
* SPNEGO, SPNEGO authentication support
* HTTPS
* SSH, SSH transport support
* ntlmclient, NTLM authentication support for Unix
* iconv, iconv encoding conversion support
-- Configuring done
-- Generating done
-- Build files have been written to: /build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build
CMAKE_BUILD_PARALLEL_LEVEL=8 cmake --build /build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build --target install
make[1]: warning: -j8 forced in submake: resetting jobserver mode.
make[1]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[2]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
[ 0%] Building C object src/util/CMakeFiles/util.dir/allocators/failalloc.c.o
[ 0%] Building C object deps/http-parser/CMakeFiles/http-parser.dir/http_parser.c.o
[ 1%] Building C object deps/zlib/CMakeFiles/zlib.dir/adler32.c.o
[ 2%] Building C object src/util/CMakeFiles/util.dir/alloc.c.o
[ 3%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_byte_order.c.o
make[3]: Entering directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
[ 4%] Building C object src/util/CMakeFiles/util.dir/allocators/stdalloc.c.o
[ 4%] Building C object deps/zlib/CMakeFiles/zlib.dir/crc32.c.o
[ 4%] Building C object src/libgit2/CMakeFiles/libgit2.dir/annotated_commit.c.o
[ 5%] Building C object src/libgit2/CMakeFiles/libgit2.dir/apply.c.o
[ 5%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_chartables.c.o
[ 5%] Building C object src/libgit2/CMakeFiles/libgit2.dir/attr.c.o
[ 5%] Building C object src/util/CMakeFiles/util.dir/allocators/win32_leakcheck.c.o
[ 6%] Building C object src/libgit2/CMakeFiles/libgit2.dir/attr_file.c.o
[ 7%] Building C object deps/pcre/CMakeFiles/pcre.dir/pcre_compile.c.o
[ 7%] Building C object src/libgit2/CMakeFiles/libgit2.dir/attrcache.c.o
[ 8%] Building C object deps/zlib/CMakeFiles/zlib.dir/deflate.c.o
[ 9%] Building C object src/util/CMakeFiles/util.dir/date.c.o
[ 9%] Building C object deps/zlib/CMakeFiles/zlib.dir/infback.c.o
[ 10%] Building C object src/libgit2/CMakeFiles/libgit2.dir/blame.c.o
[ 10%] Building C object src/util/CMakeFiles/util.dir/filebuf.c.o
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-backup" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-backup" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-backup" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/gitaly-backup" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-backup"; \
fi
[ 10%] Building C object src/libgit2/CMakeFiles/libgit2.dir/blame_git.c.o
[ 11%] Building C object src/util/CMakeFiles/util.dir/fs_path.c.o
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/build'
[ 11%] Built target http-parser
[ 11%] Building C object src/libgit2/CMakeFiles/libgit2.dir/branch.c.o
[ 12%] Building C object src/libgit2/CMakeFiles/libgit2.dir/blob.c.o
[ 13%] Building C object deps/zlib/CMakeFiles/zlib.dir/inffast.c.o
[ 14%] Building C object src/libgit2/CMakeFiles/libgit2.dir/buf.c.o
[ 14%] Building C object deps/zlib/CMakeFiles/zlib.dir/inflate.c.o
[ 14%] Building C object src/libgit2/CMakeFiles/libgit2.dir/cache.c.o
[ 15%] Building C object src/libgit2/CMakeFiles/libgit2.dir/checkout.c.o
[ 15%] Building C object src/libgit2/CMakeFiles/libgit2.dir/cherrypick.c.o
[ 16%] Building C object src/libgit2/CMakeFiles/libgit2.dir/clone.c.o
[ 17%] Building C object deps/zlib/CMakeFiles/zlib.dir/inftrees.c.o
GO_BUILD_ID=$(go tool buildid "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/praefect" || openssl rand -hex 32) && \
GNU_BUILD_ID=$(echo $GO_BUILD_ID | sha1sum | cut -d' ' -f1) && \
if test "Linux" = "Linux"; then \
go run "/build/gitlab-gitaly/src/gitaly-v15.6.0"/tools/replace-buildid \
-input "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/praefect" -input-build-id "54454D505F474954414C595F4255494C445F4944" \
-output "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/praefect" -output-build-id "$GNU_BUILD_ID"; \
else \
install "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/intermediate/praefect" "/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/praefect"; \
fi
could not replace build ID: exactly one match for old build ID expected, got 0
[ 17%] Building C object deps/zlib/CMakeFiles/zlib.dir/trees.c.o
/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/source/src/util/fs_path.c: In function ‘git_fs_path_owner_is’:
/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/source/src/util/fs_path.c:1990:45: warning: ‘sudo_uid’ may be used uninitialized [-Wmaybe-uninitialized]
1988 | if ((owner_type & GIT_FS_PATH_OWNER_RUNNING_SUDO) != 0 &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1989 | euid == 0 &&
| ~~~~~~~~~~~~
1990 | sudo_uid_lookup(&sudo_uid) == 0 &&
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
1991 | st.st_uid == sudo_uid) {
| ~~~~~~~~~~~~~~~~~~~~~
/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/deps/libgit2/source/src/util/fs_path.c:1959:21: note: ‘sudo_uid’ was declared here
1959 | uid_t euid, sudo_uid;
| ^~~~~~~~
exit status 1
make: *** [Makefile:585: /build/gitlab-gitaly/src/gitaly-v15.6.0/_build/bin/gitaly-backup] Error 1
make: *** Waiting for unfinished jobs....
At top level:
cc1: note: unrecognized command-line option ‘-Wno-documentation-deprecated-sync’ may have been intended to silence earlier diagnostics
[ 17%] Building C object src/util/CMakeFiles/util.dir/futils.c.o
[ 18%] Building C object deps/zlib/CMakeFiles/zlib.dir/zutil.c.o
[ 18%] Building C object src/libgit2/CMakeFiles/libgit2.dir/commit.c.o
[ 18%] Building C object src/libgit2/CMakeFiles/libgit2.dir/commit_list.c.o
[ 19%] Building C object src/libgit2/CMakeFiles/libgit2.dir/commit_graph.c.o
[ 20%] Building C object src/util/CMakeFiles/util.dir/hash.c.o
[ 21%] Building C object src/libgit2/CMakeFiles/libgit2.dir/config.c.o
[ 21%] Building C object src/util/CMakeFiles/util.dir/net.c.o
[ 22%] Building C object src/util/CMakeFiles/util.dir/pool.c.o
make[3]: Leaving directory '/build/gitlab-gitaly/src/gitaly-v15.6.0/_build/dep