buildtools: remove assumption about current work dir
Checks
Commit Message
According to meson documentation, we should not make any assumptions as
to what directory a script is called from[1]. The use of "relpath" when
processing the output of directory globbing is therefore unsafe, as it
was stripping off paths relative to the current directory - which just
happened to be the same as the root directory we were processing.
To improve safety, and support meson clones (like muon) which
don't always run things from the currently processed path, we need to
explicitly specify that the start parameter for relpath() should be
"root" value.
[1] https://mesonbuild.com/Reference-manual_functions.html#run_command
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
buildtools/list-dir-globs.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Comments
On Wed, Jun 14, 2023 at 03:47:28PM +0100, Bruce Richardson wrote:
> According to meson documentation, we should not make any assumptions as
> to what directory a script is called from[1]. The use of "relpath" when
> processing the output of directory globbing is therefore unsafe, as it
> was stripping off paths relative to the current directory - which just
> happened to be the same as the root directory we were processing.
>
> To improve safety, and support meson clones (like muon) which
> don't always run things from the currently processed path, we need to
> explicitly specify that the start parameter for relpath() should be
> "root" value.
>
> [1] https://mesonbuild.com/Reference-manual_functions.html#run_command
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
15/06/2023 22:24, Tyler Retzlaff:
> On Wed, Jun 14, 2023 at 03:47:28PM +0100, Bruce Richardson wrote:
> > According to meson documentation, we should not make any assumptions as
> > to what directory a script is called from[1]. The use of "relpath" when
> > processing the output of directory globbing is therefore unsafe, as it
> > was stripping off paths relative to the current directory - which just
> > happened to be the same as the root directory we were processing.
> >
> > To improve safety, and support meson clones (like muon) which
> > don't always run things from the currently processed path, we need to
> > explicitly specify that the start parameter for relpath() should be
> > "root" value.
> >
> > [1] https://mesonbuild.com/Reference-manual_functions.html#run_command
> >
> > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> > ---
> Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
Applied, thanks.
@@ -17,4 +17,4 @@
if path:
for p in iglob(os.path.join(root, path)):
if os.path.isdir(p):
- print(os.path.relpath(p).replace('\\', '/'))
+ print(os.path.relpath(p, start=root).replace('\\', '/'))