summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-01-08 20:27:48 +0100
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-01-09 09:22:26 +0900
commita412ec571467609aba433ae568dc856ed7924150 (patch)
tree11817b821e752b0c42c8913789ef73586dbe4cd8
parent66bf4617b11aa3d2a385576e00d394831915bd77 (diff)
downloadsystemd-a412ec571467609aba433ae568dc856ed7924150.tar.gz
meson: fix git ls-files invocations during rebase
Normally ls-files prints the full path to files from the repo root. But when $GIT_WORK_TREE is set, ls-files prints paths relative to the current directory. When rebasing, $GIT_WORK_TREE is set in the commands executed from 'rebase -x'. This causes problems if meson config is touched and the meson reconfigures itself. ($GIT_WORK_TREE shouldn't be relevant, since the paths that ls-files reports don't depend on the work tree, but whatever.) Let's unset GIT_WORK_TREE to avoid the issue. $ (cd test; git --git-dir=$PWD/../.git ls-files ':/test/dmidecode-dumps/*.bin') test/dmidecode-dumps/HP-Z600.bin test/dmidecode-dumps/Lenovo-ThinkPad-X280.bin test/dmidecode-dumps/Lenovo-Thinkcentre-m720s.bin $ (cd test; GIT_WORK_TREE=$PWD/.. git --git-dir=$PWD/../.git ls-files ':/test/dmidecode-dumps/*.bin') dmidecode-dumps/HP-Z600.bin dmidecode-dumps/Lenovo-ThinkPad-X280.bin dmidecode-dumps/Lenovo-Thinkcentre-m720s.bin Fixes #18148.
-rw-r--r--meson.build7
-rw-r--r--test/fuzz/meson.build3
-rw-r--r--test/meson.build1
3 files changed, 7 insertions, 4 deletions
diff --git a/meson.build b/meson.build
index 6573046c43..aedde9b94e 100644
--- a/meson.build
+++ b/meson.build
@@ -3651,10 +3651,11 @@ endforeach
if git.found()
all_files = run_command(
+ 'env', '-u', 'GIT_WORK_TREE',
git,
- ['--git-dir=@0@/.git'.format(project_source_root),
- 'ls-files',
- ':/*.[ch]'])
+ '--git-dir=@0@/.git'.format(project_source_root),
+ 'ls-files', ':/*.[ch]')
+
all_files = files(all_files.stdout().split())
custom_target(
diff --git a/test/fuzz/meson.build b/test/fuzz/meson.build
index 7a83961d11..fc8033dbbe 100644
--- a/test/fuzz/meson.build
+++ b/test/fuzz/meson.build
@@ -23,9 +23,10 @@ sanitizers = [['address,undefined', sanitize_address_undefined]]
if git.found()
out = run_command(
+ 'env', '-u', 'GIT_WORK_TREE',
git,
'--git-dir=@0@/.git'.format(project_source_root),
- 'ls-files', ':/test/fuzz/*/*')
+ 'ls-files', ':/test/fuzz/*/*')
else
out = run_command(
'sh', '-c', 'ls @0@/test/fuzz/*/*'.format(project_source_root))
diff --git a/test/meson.build b/test/meson.build
index 1e8a56aa90..2785dc92a7 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -142,6 +142,7 @@ if want_tests != 'false' and dmi_arches.contains(host_machine.cpu_family())
if git.found()
out = run_command(
+ 'env', '-u', 'GIT_WORK_TREE',
git,
'--git-dir=@0@/.git'.format(project_source_root),
'ls-files', ':/test/dmidecode-dumps/*.bin')