summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichal Koutný <mkoutny@suse.com>2023-03-01 22:54:06 +0100
committerLuca Boccassi <luca.boccassi@gmail.com>2023-03-02 15:04:40 +0000
commitedd84b8e4b9db4dc57345ff97dfc7c22d8a6f241 (patch)
tree24c68bb480ba45f3a5d53153a07a4f5a3897ae41
parent7a67afe33192ce4a55e6825b80554fb4ebbb4b03 (diff)
downloadsystemd-edd84b8e4b9db4dc57345ff97dfc7c22d8a6f241.tar.gz
meson: Copy files with git only in true git repository
When mkosi is run from git-worktree(1), the .git is not a repository directory but a textfile pointing to the real git dir (e.g. /home/user/systemd/.git/worktrees/systemd-worktree). This git dir is not bind mounted into build environment and it fails with: > fatal: not a git repository: /home/user/systemd/.git/worktrees/systemd-worktree > test/meson.build:190:16: ERROR: Command `/usr/bin/env -u GIT_WORK_TREE /usr/bin/git --git-dir=/root/src/.git ls-files ':/test/dmidecode-dumps/*.bin'` failed with status 128. There is already a fallback to use shell globbing instead of ls-files, use it with git worktrees as well.
-rw-r--r--meson.build2
-rw-r--r--test/fuzz/meson.build2
-rw-r--r--test/meson.build2
3 files changed, 3 insertions, 3 deletions
diff --git a/meson.build b/meson.build
index 0476d972d0..2576153536 100644
--- a/meson.build
+++ b/meson.build
@@ -815,7 +815,7 @@ endif
time_epoch = get_option('time-epoch')
if time_epoch <= 0
time_epoch = run_command(sh, '-c', 'echo "$SOURCE_DATE_EPOCH"', check : true).stdout().strip()
- if time_epoch == '' and git.found() and fs.exists('.git')
+ if time_epoch == '' and git.found() and fs.is_dir('.git')
# If we're in a git repository, use the creation time of the latest git tag.
latest_tag = run_command(git, 'describe', '--abbrev=0', '--tags',
check : false)
diff --git a/test/fuzz/meson.build b/test/fuzz/meson.build
index f7f0a6111c..a8fb71c566 100644
--- a/test/fuzz/meson.build
+++ b/test/fuzz/meson.build
@@ -50,7 +50,7 @@ sanitize_address_undefined = custom_target(
fuzz_sanitizers = [['address,undefined', sanitize_address_undefined]]
fuzz_testsdir = 'test/fuzz'
-if git.found() and fs.exists(project_source_root / '.git')
+if git.found() and fs.is_dir(project_source_root / '.git')
out = run_command(env, '-u', 'GIT_WORK_TREE',
git, '--git-dir=@0@/.git'.format(project_source_root),
'ls-files', ':/@0@/*/*'.format(fuzz_testsdir),
diff --git a/test/meson.build b/test/meson.build
index 93f0e679fe..a051f77a52 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -187,7 +187,7 @@ endif
if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())
udev_dmi_memory_id_test = find_program('udev-dmi-memory-id-test.sh')
- if git.found() and fs.exists(project_source_root / '.git')
+ if git.found() and fs.is_dir(project_source_root / '.git')
out = run_command(
env, '-u', 'GIT_WORK_TREE',
git, '--git-dir=@0@/.git'.format(project_source_root),