diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2021-01-08 20:27:48 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-01-09 09:22:26 +0900 |
commit | a412ec571467609aba433ae568dc856ed7924150 (patch) | |
tree | 11817b821e752b0c42c8913789ef73586dbe4cd8 | |
parent | 66bf4617b11aa3d2a385576e00d394831915bd77 (diff) | |
download | systemd-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.build | 7 | ||||
-rw-r--r-- | test/fuzz/meson.build | 3 | ||||
-rw-r--r-- | test/meson.build | 1 |
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') |