`uname -r` does not always contain `-`
I recently got this error in our CI:
(10:42:13) ERROR: An error occurred during the fetch of repository 'toolchain_utils~~_repo_rules~local':
Traceback (most recent call last):
File "/home/gitlab-runner/.cache/bazel/_bazel_gitlab-runner/1a64f9a919458f38e6c35411a5d31b1a/external/toolchain_utils~/toolchain/local/triplet/repository.bzl", line 22, column 21, in implementation
triplet = detect(rctx)
File "/home/gitlab-runner/.cache/bazel/_bazel_gitlab-runner/1a64f9a919458f38e6c35411a5d31b1a/external/toolchain_utils~/toolchain/local/triplet/detect.bzl", line 11, column 11, in detect
os(rctx).value,
File "/home/gitlab-runner/.cache/bazel/_bazel_gitlab-runner/1a64f9a919458f38e6c35411a5d31b1a/external/toolchain_utils~/toolchain/local/triplet/os.bzl", line 173, column 22, in os
return _uname(rctx, path)
File "/home/gitlab-runner/.cache/bazel/_bazel_gitlab-runner/1a64f9a919458f38e6c35411a5d31b1a/external/toolchain_utils~/toolchain/local/triplet/os.bzl", line 109, column 16, in _uname
version, _ = result.stdout.split("-", 1)
Error: too few values to unpack (got 1, want 2)
The code in question assumes that uname -r
contains a -
:
result = rctx.execute((path, "-r"))
if result.return_code != 0:
fail("Failed to get `uname` release: {}".format(result.stderr))
version, _ = result.stdout.split("-", 1)
in our CI, it doesn't. simply the kernel version.
I guess this should fix it (untested):
version = result.stdout.strip().split("-", 1)[0]
Edited by Peter Kolloch