On Mon, Sep 21, 2026 at 11:05 AM <[email protected]> wrote:
>
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
> to consider:
> - [Medium] perf: root filesystem pollution or build failure due to stray 
> slash in PYTHONPYCACHEPREFIX
> --
>
> commit 3de8bc01d44a9b11e10c327ec26bbff8605926df
> Author: Ben Hutchings <[email protected]>
>
> perf tools: Put Python bytecode in output directory
>
> This commit sets the PYTHONPYCACHEPREFIX environment variable to relocate
> the Python bytecode cache directory to the output directory during out-of-tree
> builds. It also updates the python-clean rule to remove the new cache 
> directory
> and perf.pyi.
>
> > diff --git a/tools/perf/Makefile.perf b/tools/perf/Makefile.perf
> > index a0b23d20d005c..50bde95c78a54 100644
> > --- a/tools/perf/Makefile.perf
> > +++ b/tools/perf/Makefile.perf
> > @@ -397,7 +397,8 @@ PYTHON_EXTBUILD_LIB := $(PYTHON_EXTBUILD)lib/
> >  PYTHON_EXTBUILD_TMP := $(PYTHON_EXTBUILD)tmp/
> >  export PYTHON_EXTBUILD_LIB PYTHON_EXTBUILD_TMP
> >
> > -python-clean := $(call QUIET_CLEAN, python) $(RM) -r $(PYTHON_EXTBUILD) 
> > $(OUTPUT)python/perf*.so
> > +# Put Python bytecode in output directory
> > +export PYTHONPYCACHEPREFIX := $(OUTPUT)/__pycache__
>
> [Severity: Medium]
> For in-tree builds where $(OUTPUT) is empty, does the unconditional inclusion
> of the slash cause this to evaluate to the absolute path /__pycache__?
>
> When Python 3.8+ runs during the build, it appears it would attempt to write
> bytecode files to the root of the filesystem. Could this cause a regression
> by breaking the build with permission errors for unprivileged users, or
> silently pollute the root filesystem if executed as root?

This is already the behavior. The difference now is that instead of
multiple __pycache__ directories for the directory the python script
is within, there is a single top-level __pycache__ directory that is
handled by the clean step.

> [ ... ]
>
> > @@ -919,7 +920,12 @@ $(INSTALL_DOC_TARGETS):
> >  ### Cleaning rules
> >
> >  python-clean:
> > -     $(python-clean)
> > +     $(call QUIET_CLEAN, python) $(RM) -r $(PYTHON_EXTBUILD) 
> > $(OUTPUT)__pycache__ \
>
> [Severity: Medium]
> Since $(OUTPUT)__pycache__ would evaluate to __pycache__ in the current
> directory during in-tree builds, would this fail to clean the incorrectly
> placed bytecode directory at the root of the filesystem?

Same issue; yes, the build would fail but the build would already be
failing if this were a problem.

Thanks,
Ian

> > +             $(OUTPUT)python/perf*.so
> > +     @if [ "$(abspath python/perf.pyi)" != "$(abspath 
> > $(OUTPUT)python/perf.pyi)" ]; \
> > +     then \
> > +             $(RM) $(OUTPUT)python/perf.pyi; \
> > +     fi
>
> --
> Sashiko AI review · 
> https://sashiko.dev/#/patchset/[email protected]?part=2

Reply via email to