From 10ec09025d6f52f2c1d0ba6b7e6943a603a386d9 Mon Sep 17 00:00:00 2001 From: Paul Elder Date: Wed, 10 Jul 2019 20:29:44 +0900 Subject: libcamera: skip auto version generation when building for Chromium OS Commit b817bcec6b53 ("libcamera: Auto generate version information") causes the build to fail in the Chromium OS build environment, because git update-index tries to take a lock (ie. write) in the git repo that is outside of the build directory. The solution is to simply skip git update-index if we are building in the Chromium OS build environment, and this decision is made if the build directory is not a subdirectory of the source directory. Signed-off-by: Paul Elder Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart --- utils/gen-version.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'utils/gen-version.sh') diff --git a/utils/gen-version.sh b/utils/gen-version.sh index 708c01d3..7f7872ce 100755 --- a/utils/gen-version.sh +++ b/utils/gen-version.sh @@ -3,13 +3,11 @@ # SPDX-License-Identifier: GPL-2.0-or-later # Generate a version string using git describe -if [ -n "$1" ] -then - cd "$1" 2>/dev/null || exit 1 -fi +build_dir="$1" # Bail out if the directory isn't under git control -git rev-parse --git-dir >/dev/null 2>&1 || exit 1 +src_dir=$(git rev-parse --git-dir 2>&1) || exit 1 +src_dir=$(readlink -f "$src_dir/..") # Get a short description from the tree. version=$(git describe --abbrev=8 --match "v[0-9]*" 2>/dev/null) @@ -24,7 +22,10 @@ fi # Append a '-dirty' suffix if the working tree is dirty. Prevent false # positives due to changed timestamps by running git update-index. -git update-index --refresh > /dev/null 2>&1 +if [ -z "$build_dir" ] || (echo "$build_dir" | grep -q "$src_dir") +then + git update-index --refresh > /dev/null 2>&1 +fi git diff-index --quiet HEAD || version="$version-dirty" # Replace first '-' with a '+' to denote build metadata, strip the 'g' in from -- cgit v1.2.1