From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: Andy Shevchenko <andriy.shevchenko@intel.com>,
airlied@gmail.com, corbet@lwn.net,
dmitry.baryshkov@oss.qualcomm.com,
dri-devel@lists.freedesktop.org, intel-gfx@lists.freedesktop.org,
jani.nikula@linux.intel.com, joonas.lahtinen@linux.intel.com,
linux-doc@vger.kernel.org, linux-kbuild@vger.kernel.org,
linux-kernel@vger.kernel.org, maarten.lankhorst@linux.intel.com,
masahiroy@kernel.org, mripard@kernel.org, nathan@kernel.org,
nicolas.schier@linux.dev, rodrigo.vivi@intel.com,
simona@ffwll.ch, tursulin@ursulin.net, tzimmermann@suse.de
Subject: Re: [PATCH v3 0/2] Don't create Python bytecode when building the kernel
Date: Thu, 24 Apr 2025 15:44:41 +0800 [thread overview]
Message-ID: <20250424154441.3d4aed6e@sal.lan> (raw)
In-Reply-To: <20250424152648.0979054f@sal.lan>
Em Thu, 24 Apr 2025 15:26:48 +0800
Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu:
> Em Thu, 24 Apr 2025 11:07:05 +0900
> Akira Yokosawa <akiyks@gmail.com> escreveu:
>
> > On Wed, 23 Apr 2025 19:31:36 +0300, Andy Shevchenko wrote:
> > > On Wed, Apr 23, 2025 at 06:30:48PM +0900, Akira Yokosawa wrote:
> > >> On Tue, 22 Apr 2025 10:57:33 +0300, Andy Shevchenko wrote:
> > >>> On Mon, Apr 21, 2025 at 10:35:29AM -0600, Jonathan Corbet wrote:
> > >>>> Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> writes:
> > >
> > > [...]
> > >
> > >>>>> Would it be possible to properly support O= and create pyc / pycache
> > >>>>> inside the object/output dir?
> > >>>>
> > >>>> I have to confess, I've been wondering if we should be treating the .pyc
> > >>>> files like we treat .o files or other intermediate products. Rather
> > >>>> than trying to avoid their creation entirely, perhaps we should just be
> > >>>> sure they end up in the right place and are properly cleaned up...?
> > >>>>
> > >>>> To answer Dmitry's question, it seems that setting PYTHONPYCACHEPREFIX
> > >>>> should do the trick?
> > >>>
> > >>> It's not so easy. The Python is written in a way that it thinks it will never
> > >>> runs object files separately from the source. Hence that variable sets only
> > >>> the folder per script as _home_ for the cache. It's completely unusable. They
> > >>> took it wrong. It still can be _painfully_ used, but it will make Makefiles
> > >>> uglier.
> > >>
> > >> But, PYTHONPYCACHEPREFIX can be set as an environment variable.
> > >>
> > >> For example, try:
> > >>
> > >> export PYTHONPYCACHEPREFIX="$HOME/.cache/__pycache__"
> > >>
> > >> Wouldn't it be good enough for you?
> > >
> > > Of course not. We have _many_ scripts in python in kernel and having a cache
> > > there for _all_ of them is simply WRONG. You never know what clashes can be
> > > there with two complicated enough scripts which may have same module names,
> > > etc.
> > >
> >
> > Interesting...
> >
> > I'm suspecting you replied without having tried the setting...
> >
> > FYI, this is an excerpt from list of .pyc files under __pycache__ after
> > building defconfig kernel and "make htmldocs"; and running
> >
> > $ find . -name *.pyc" -print" under ~/.cache/__pycache__
> > ---------------------------------------------------------------------
> > ./home/.../git/linux/scripts/lib/kdoc/kdoc_files.cpython-312.pyc
> > ./home/.../git/linux/scripts/lib/kdoc/kdoc_parser.cpython-312.pyc
> > ./home/.../git/linux/scripts/lib/kdoc/kdoc_re.cpython-312.pyc
> > ./home/.../git/linux/scripts/lib/kdoc/kdoc_output.cpython-312.pyc
> > [...]
> > ./usr/lib/python3.12/xml/__init__.cpython-312.pyc
> > ./usr/lib/python3.12/xml/parsers/expat.cpython-312.pyc
> > ./usr/lib/python3.12/xml/parsers/__init__.cpython-312.pyc
> > ./usr/lib/python3.12/xml/etree/ElementPath.cpython-312.pyc
> > ./usr/lib/python3.12/xml/etree/__init__.cpython-312.pyc
> > ./usr/lib/python3.12/xml/etree/cElementTree.cpython-312.pyc
> > ./usr/lib/python3.12/xml/etree/ElementTree.cpython-312.pyc
> > ./usr/lib/python3.12/mimetypes.cpython-312.pyc
> > [...]
> > ./usr/lib/python3/dist-packages/sphinx/deprecation.cpython-312.pyc
> > ./usr/lib/python3/dist-packages/sphinx/highlighting.cpython-312.pyc
> > ./usr/lib/python3/dist-packages/sphinx/pycode/ast.cpython-312.pyc
> > ./usr/lib/python3/dist-packages/sphinx/pycode/__init__.cpython-312.pyc
> > ./usr/lib/python3/dist-packages/sphinx/pycode/parser.cpython-312.pyc
> > ./usr/lib/python3/dist-packages/sphinx/config.cpython-312.pyc
> > [...]
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/deprecation.cpython-312.pyc
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/highlighting.cpython-312.pyc
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/pycode/ast.cpython-312.pyc
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/pycode/__init__.cpython-312.pyc
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/pycode/parser.cpython-312.pyc
> > ./home/.../sphinx-WIP/lib/python3.12/site-packages/sphinx/config.cpython-312.pyc
> > [...]
> > -------------------------------------------------------------------------
> >
> > As you see, each of them are stored at a path corresponding to its original
> > .py file. The final part of the excerpt came from me running in-development
> > Sphinx in a python venv with the same PYTHONPYCACHEPREFIX setting.
> >
> > I don't see any possibility of clashes as you mentioned above,
>
> I didn't test it, but it sounds good enough for me. Could you please send
> us a patch on the top of:
>
> https://lore.kernel.org/linux-doc/cover.1745453655.git.mchehab+huawei@kernel.org/T/#t
>
> for us to test it? The idea is to set PYTHONPYCACHEPREFIX only when O=
> is used.
Heh, I did a quick test here with Sphinx build. It Worked!
Patch is after my patch series, and it is just for Sphinx build.
We need something similar for the other places where the script is
used.
Regards,
Mauro
---
[PATCH] docs: Makefile: store __pycache__ at the output directory
Instead of blocking creation of *.pyc cache, store python
cache under Documentation/output/__pycache__
Documentation/output/__pycache__/
├── new_devel
│ └── v4l
│ └── docs
│ ├── Documentation
│ │ └── sphinx
│ │ ├── automarkup.cpython-313.pyc
│ │ ├── kernel_abi.cpython-313.pyc
│ │ ├── kerneldoc.cpython-313.pyc
│ │ ├── kernel_feat.cpython-313.pyc
│ │ ├── kernel_include.cpython-313.pyc
│ │ ├── kfigure.cpython-313.pyc
│ │ ├── load_config.cpython-313.pyc
│ │ ├── maintainers_include.cpython-313.pyc
│ │ ├── rstFlatTable.cpython-313.pyc
│ │ └── translations.cpython-313.pyc
│ └── scripts
│ └── lib
│ ├── abi
│ │ ├── abi_parser.cpython-313.pyc
│ │ └── helpers.cpython-313.pyc
│ └── kdoc
│ ├── kdoc_files.cpython-313.pyc
│ ├── kdoc_output.cpython-313.pyc
│ ├── kdoc_parser.cpython-313.pyc
│ └── kdoc_re.cpython-313.pyc
└── usr
├── lib
│ └── python3.13
│ └── site-packages
│ ├── abrt_exception_handler3.cpython-313.pyc
│ ├── alabaster
│ │ └── __init__.cpython-313.pyc
│ ├── babel
│ │ ├── core.cpython-313.pyc
│ │ ├── dates.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── localedata.cpython-313.pyc
│ │ ├── localtime
│ │ │ ├── _fallback.cpython-313.pyc
│ │ │ ├── _helpers.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── _unix.cpython-313.pyc
│ │ ├── messages
│ │ │ ├── catalog.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── mofile.cpython-313.pyc
│ │ │ ├── plurals.cpython-313.pyc
│ │ │ └── pofile.cpython-313.pyc
│ │ ├── plural.cpython-313.pyc
│ │ └── util.cpython-313.pyc
│ ├── chardet
│ │ ├── big5freq.cpython-313.pyc
│ │ ├── big5prober.cpython-313.pyc
│ │ ├── chardistribution.cpython-313.pyc
│ │ ├── charsetgroupprober.cpython-313.pyc
│ │ ├── charsetprober.cpython-313.pyc
│ │ ├── codingstatemachine.cpython-313.pyc
│ │ ├── codingstatemachinedict.cpython-313.pyc
│ │ ├── cp949prober.cpython-313.pyc
│ │ ├── enums.cpython-313.pyc
│ │ ├── escprober.cpython-313.pyc
│ │ ├── escsm.cpython-313.pyc
│ │ ├── eucjpprober.cpython-313.pyc
│ │ ├── euckrfreq.cpython-313.pyc
│ │ ├── euckrprober.cpython-313.pyc
│ │ ├── euctwfreq.cpython-313.pyc
│ │ ├── euctwprober.cpython-313.pyc
│ │ ├── gb2312freq.cpython-313.pyc
│ │ ├── gb2312prober.cpython-313.pyc
│ │ ├── hebrewprober.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── jisfreq.cpython-313.pyc
│ │ ├── johabfreq.cpython-313.pyc
│ │ ├── johabprober.cpython-313.pyc
│ │ ├── jpcntx.cpython-313.pyc
│ │ ├── langbulgarianmodel.cpython-313.pyc
│ │ ├── langgreekmodel.cpython-313.pyc
│ │ ├── langhebrewmodel.cpython-313.pyc
│ │ ├── langrussianmodel.cpython-313.pyc
│ │ ├── langthaimodel.cpython-313.pyc
│ │ ├── langturkishmodel.cpython-313.pyc
│ │ ├── latin1prober.cpython-313.pyc
│ │ ├── macromanprober.cpython-313.pyc
│ │ ├── mbcharsetprober.cpython-313.pyc
│ │ ├── mbcsgroupprober.cpython-313.pyc
│ │ ├── mbcssm.cpython-313.pyc
│ │ ├── resultdict.cpython-313.pyc
│ │ ├── sbcharsetprober.cpython-313.pyc
│ │ ├── sbcsgroupprober.cpython-313.pyc
│ │ ├── sjisprober.cpython-313.pyc
│ │ ├── universaldetector.cpython-313.pyc
│ │ ├── utf1632prober.cpython-313.pyc
│ │ ├── utf8prober.cpython-313.pyc
│ │ └── version.cpython-313.pyc
│ ├── charset_normalizer
│ │ ├── api.cpython-313.pyc
│ │ ├── cd.cpython-313.pyc
│ │ ├── constant.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── legacy.cpython-313.pyc
│ │ ├── md.cpython-313.pyc
│ │ ├── models.cpython-313.pyc
│ │ ├── utils.cpython-313.pyc
│ │ └── version.cpython-313.pyc
│ ├── defusedxml
│ │ ├── common.cpython-313.pyc
│ │ ├── ElementTree.cpython-313.pyc
│ │ └── __init__.cpython-313.pyc
│ ├── _distutils_hack
│ │ └── __init__.cpython-313.pyc
│ ├── docutils
│ │ ├── core.cpython-313.pyc
│ │ ├── frontend.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── io.cpython-313.pyc
│ │ ├── languages
│ │ │ ├── en.cpython-313.pyc
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── nodes.cpython-313.pyc
│ │ ├── parsers
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── rst
│ │ │ ├── directives
│ │ │ │ ├── admonitions.cpython-313.pyc
│ │ │ │ ├── body.cpython-313.pyc
│ │ │ │ ├── images.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── misc.cpython-313.pyc
│ │ │ │ ├── parts.cpython-313.pyc
│ │ │ │ └── tables.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── languages
│ │ │ │ ├── en.cpython-313.pyc
│ │ │ │ └── __init__.cpython-313.pyc
│ │ │ ├── roles.cpython-313.pyc
│ │ │ ├── states.cpython-313.pyc
│ │ │ └── tableparser.cpython-313.pyc
│ │ ├── readers
│ │ │ ├── doctree.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── standalone.cpython-313.pyc
│ │ ├── statemachine.cpython-313.pyc
│ │ ├── transforms
│ │ │ ├── frontmatter.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── misc.cpython-313.pyc
│ │ │ ├── parts.cpython-313.pyc
│ │ │ ├── references.cpython-313.pyc
│ │ │ ├── universal.cpython-313.pyc
│ │ │ └── writer_aux.cpython-313.pyc
│ │ ├── utils
│ │ │ ├── code_analyzer.cpython-313.pyc
│ │ │ ├── error_reporting.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── math
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── latex2mathml.cpython-313.pyc
│ │ │ │ ├── math2html.cpython-313.pyc
│ │ │ │ ├── tex2mathml_extern.cpython-313.pyc
│ │ │ │ ├── tex2unichar.cpython-313.pyc
│ │ │ │ └── unichar2tex.cpython-313.pyc
│ │ │ ├── punctuation_chars.cpython-313.pyc
│ │ │ ├── roman.cpython-313.pyc
│ │ │ ├── smartquotes.cpython-313.pyc
│ │ │ └── urischemes.cpython-313.pyc
│ │ └── writers
│ │ ├── docutils_xml.cpython-313.pyc
│ │ ├── html4css1
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── html5_polyglot
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── _html_base.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── latex2e
│ │ │ └── __init__.cpython-313.pyc
│ │ └── manpage.cpython-313.pyc
│ ├── idna
│ │ ├── core.cpython-313.pyc
│ │ ├── idnadata.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── intranges.cpython-313.pyc
│ │ └── package_data.cpython-313.pyc
│ ├── imagesize
│ │ ├── imagesize.cpython-313.pyc
│ │ └── __init__.cpython-313.pyc
│ ├── jinja2
│ │ ├── async_utils.cpython-313.pyc
│ │ ├── bccache.cpython-313.pyc
│ │ ├── compiler.cpython-313.pyc
│ │ ├── defaults.cpython-313.pyc
│ │ ├── environment.cpython-313.pyc
│ │ ├── exceptions.cpython-313.pyc
│ │ ├── ext.cpython-313.pyc
│ │ ├── filters.cpython-313.pyc
│ │ ├── _identifier.cpython-313.pyc
│ │ ├── idtracking.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── lexer.cpython-313.pyc
│ │ ├── loaders.cpython-313.pyc
│ │ ├── nodes.cpython-313.pyc
│ │ ├── optimizer.cpython-313.pyc
│ │ ├── parser.cpython-313.pyc
│ │ ├── runtime.cpython-313.pyc
│ │ ├── sandbox.cpython-313.pyc
│ │ ├── tests.cpython-313.pyc
│ │ ├── utils.cpython-313.pyc
│ │ └── visitor.cpython-313.pyc
│ ├── packaging
│ │ ├── _elffile.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── _manylinux.cpython-313.pyc
│ │ ├── _musllinux.cpython-313.pyc
│ │ ├── specifiers.cpython-313.pyc
│ │ ├── _structures.cpython-313.pyc
│ │ ├── tags.cpython-313.pyc
│ │ ├── utils.cpython-313.pyc
│ │ └── version.cpython-313.pyc
│ ├── pygments
│ │ ├── filter.cpython-313.pyc
│ │ ├── filters
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── formatter.cpython-313.pyc
│ │ ├── formatters
│ │ │ ├── html.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── latex.cpython-313.pyc
│ │ │ └── _mapping.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── lexer.cpython-313.pyc
│ │ ├── lexers
│ │ │ ├── c_cpp.cpython-313.pyc
│ │ │ ├── _css_builtins.cpython-313.pyc
│ │ │ ├── css.cpython-313.pyc
│ │ │ ├── data.cpython-313.pyc
│ │ │ ├── html.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── javascript.cpython-313.pyc
│ │ │ ├── jvm.cpython-313.pyc
│ │ │ ├── _lilypond_builtins.cpython-313.pyc
│ │ │ ├── lilypond.cpython-313.pyc
│ │ │ ├── lisp.cpython-313.pyc
│ │ │ ├── _mapping.cpython-313.pyc
│ │ │ ├── markup.cpython-313.pyc
│ │ │ ├── python.cpython-313.pyc
│ │ │ ├── ruby.cpython-313.pyc
│ │ │ ├── _scheme_builtins.cpython-313.pyc
│ │ │ └── special.cpython-313.pyc
│ │ ├── modeline.cpython-313.pyc
│ │ ├── plugin.cpython-313.pyc
│ │ ├── regexopt.cpython-313.pyc
│ │ ├── style.cpython-313.pyc
│ │ ├── styles
│ │ │ ├── friendly.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── _mapping.cpython-313.pyc
│ │ ├── token.cpython-313.pyc
│ │ ├── unistring.cpython-313.pyc
│ │ └── util.cpython-313.pyc
│ ├── pytz
│ │ ├── exceptions.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── lazy.cpython-313.pyc
│ │ ├── tzfile.cpython-313.pyc
│ │ └── tzinfo.cpython-313.pyc
│ ├── requests
│ │ ├── adapters.cpython-313.pyc
│ │ ├── api.cpython-313.pyc
│ │ ├── auth.cpython-313.pyc
│ │ ├── certs.cpython-313.pyc
│ │ ├── compat.cpython-313.pyc
│ │ ├── cookies.cpython-313.pyc
│ │ ├── exceptions.cpython-313.pyc
│ │ ├── hooks.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── _internal_utils.cpython-313.pyc
│ │ ├── models.cpython-313.pyc
│ │ ├── packages.cpython-313.pyc
│ │ ├── sessions.cpython-313.pyc
│ │ ├── status_codes.cpython-313.pyc
│ │ ├── structures.cpython-313.pyc
│ │ ├── utils.cpython-313.pyc
│ │ └── __version__.cpython-313.pyc
│ ├── snowballstemmer
│ │ ├── among.cpython-313.pyc
│ │ ├── arabic_stemmer.cpython-313.pyc
│ │ ├── armenian_stemmer.cpython-313.pyc
│ │ ├── basestemmer.cpython-313.pyc
│ │ ├── basque_stemmer.cpython-313.pyc
│ │ ├── catalan_stemmer.cpython-313.pyc
│ │ ├── danish_stemmer.cpython-313.pyc
│ │ ├── dutch_stemmer.cpython-313.pyc
│ │ ├── english_stemmer.cpython-313.pyc
│ │ ├── finnish_stemmer.cpython-313.pyc
│ │ ├── french_stemmer.cpython-313.pyc
│ │ ├── german_stemmer.cpython-313.pyc
│ │ ├── greek_stemmer.cpython-313.pyc
│ │ ├── hindi_stemmer.cpython-313.pyc
│ │ ├── hungarian_stemmer.cpython-313.pyc
│ │ ├── indonesian_stemmer.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── irish_stemmer.cpython-313.pyc
│ │ ├── italian_stemmer.cpython-313.pyc
│ │ ├── lithuanian_stemmer.cpython-313.pyc
│ │ ├── nepali_stemmer.cpython-313.pyc
│ │ ├── norwegian_stemmer.cpython-313.pyc
│ │ ├── porter_stemmer.cpython-313.pyc
│ │ ├── portuguese_stemmer.cpython-313.pyc
│ │ ├── romanian_stemmer.cpython-313.pyc
│ │ ├── russian_stemmer.cpython-313.pyc
│ │ ├── serbian_stemmer.cpython-313.pyc
│ │ ├── spanish_stemmer.cpython-313.pyc
│ │ ├── swedish_stemmer.cpython-313.pyc
│ │ ├── tamil_stemmer.cpython-313.pyc
│ │ ├── turkish_stemmer.cpython-313.pyc
│ │ └── yiddish_stemmer.cpython-313.pyc
│ ├── socks.cpython-313.pyc
│ ├── sphinx
│ │ ├── addnodes.cpython-313.pyc
│ │ ├── application.cpython-313.pyc
│ │ ├── builders
│ │ │ ├── changes.cpython-313.pyc
│ │ │ ├── dirhtml.cpython-313.pyc
│ │ │ ├── dummy.cpython-313.pyc
│ │ │ ├── epub3.cpython-313.pyc
│ │ │ ├── _epub_base.cpython-313.pyc
│ │ │ ├── gettext.cpython-313.pyc
│ │ │ ├── html
│ │ │ │ ├── _assets.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ └── transforms.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── latex
│ │ │ │ ├── constants.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── nodes.cpython-313.pyc
│ │ │ │ ├── theming.cpython-313.pyc
│ │ │ │ ├── transforms.cpython-313.pyc
│ │ │ │ └── util.cpython-313.pyc
│ │ │ ├── linkcheck.cpython-313.pyc
│ │ │ ├── manpage.cpython-313.pyc
│ │ │ ├── singlehtml.cpython-313.pyc
│ │ │ ├── texinfo.cpython-313.pyc
│ │ │ ├── text.cpython-313.pyc
│ │ │ └── xml.cpython-313.pyc
│ │ ├── cmd
│ │ │ ├── build.cpython-313.pyc
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── config.cpython-313.pyc
│ │ ├── deprecation.cpython-313.pyc
│ │ ├── directives
│ │ │ ├── code.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── other.cpython-313.pyc
│ │ │ └── patches.cpython-313.pyc
│ │ ├── domains
│ │ │ ├── c
│ │ │ │ ├── _ast.cpython-313.pyc
│ │ │ │ ├── _ids.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── _parser.cpython-313.pyc
│ │ │ │ └── _symbol.cpython-313.pyc
│ │ │ ├── changeset.cpython-313.pyc
│ │ │ ├── citation.cpython-313.pyc
│ │ │ ├── cpp
│ │ │ │ ├── _ast.cpython-313.pyc
│ │ │ │ ├── _ids.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── _parser.cpython-313.pyc
│ │ │ │ └── _symbol.cpython-313.pyc
│ │ │ ├── index.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── javascript.cpython-313.pyc
│ │ │ ├── math.cpython-313.pyc
│ │ │ ├── python
│ │ │ │ ├── _annotations.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ └── _object.cpython-313.pyc
│ │ │ ├── rst.cpython-313.pyc
│ │ │ └── std
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── environment
│ │ │ ├── adapters
│ │ │ │ ├── asset.cpython-313.pyc
│ │ │ │ ├── indexentries.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ └── toctree.cpython-313.pyc
│ │ │ ├── collectors
│ │ │ │ ├── asset.cpython-313.pyc
│ │ │ │ ├── dependencies.cpython-313.pyc
│ │ │ │ ├── __init__.cpython-313.pyc
│ │ │ │ ├── metadata.cpython-313.pyc
│ │ │ │ ├── title.cpython-313.pyc
│ │ │ │ └── toctree.cpython-313.pyc
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── errors.cpython-313.pyc
│ │ ├── events.cpython-313.pyc
│ │ ├── ext
│ │ │ ├── autosectionlabel.cpython-313.pyc
│ │ │ ├── doctest.cpython-313.pyc
│ │ │ ├── ifconfig.cpython-313.pyc
│ │ │ ├── imgmath.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── mathjax.cpython-313.pyc
│ │ ├── extension.cpython-313.pyc
│ │ ├── highlighting.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── io.cpython-313.pyc
│ │ ├── jinja2glue.cpython-313.pyc
│ │ ├── locale
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── parsers.cpython-313.pyc
│ │ ├── project.cpython-313.pyc
│ │ ├── pycode
│ │ │ ├── ast.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ └── parser.cpython-313.pyc
│ │ ├── pygments_styles.cpython-313.pyc
│ │ ├── registry.cpython-313.pyc
│ │ ├── roles.cpython-313.pyc
│ │ ├── search
│ │ │ ├── en.cpython-313.pyc
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── theming.cpython-313.pyc
│ │ ├── transforms
│ │ │ ├── compact_bullet_list.cpython-313.pyc
│ │ │ ├── i18n.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── post_transforms
│ │ │ │ ├── code.cpython-313.pyc
│ │ │ │ ├── images.cpython-313.pyc
│ │ │ │ └── __init__.cpython-313.pyc
│ │ │ └── references.cpython-313.pyc
│ │ ├── util
│ │ │ ├── build_phase.cpython-313.pyc
│ │ │ ├── cfamily.cpython-313.pyc
│ │ │ ├── console.cpython-313.pyc
│ │ │ ├── display.cpython-313.pyc
│ │ │ ├── docfields.cpython-313.pyc
│ │ │ ├── docutils.cpython-313.pyc
│ │ │ ├── exceptions.cpython-313.pyc
│ │ │ ├── fileutil.cpython-313.pyc
│ │ │ ├── http_date.cpython-313.pyc
│ │ │ ├── i18n.cpython-313.pyc
│ │ │ ├── images.cpython-313.pyc
│ │ │ ├── index_entries.cpython-313.pyc
│ │ │ ├── __init__.cpython-313.pyc
│ │ │ ├── inspect.cpython-313.pyc
│ │ │ ├── inventory.cpython-313.pyc
│ │ │ ├── _io.cpython-313.pyc
│ │ │ ├── logging.cpython-313.pyc
│ │ │ ├── matching.cpython-313.pyc
│ │ │ ├── math.cpython-313.pyc
│ │ │ ├── nodes.cpython-313.pyc
│ │ │ ├── osutil.cpython-313.pyc
│ │ │ ├── parallel.cpython-313.pyc
│ │ │ ├── _pathlib.cpython-313.pyc
│ │ │ ├── png.cpython-313.pyc
│ │ │ ├── requests.cpython-313.pyc
│ │ │ ├── rst.cpython-313.pyc
│ │ │ ├── tags.cpython-313.pyc
│ │ │ ├── template.cpython-313.pyc
│ │ │ ├── texescape.cpython-313.pyc
│ │ │ └── typing.cpython-313.pyc
│ │ ├── versioning.cpython-313.pyc
│ │ └── writers
│ │ ├── html5.cpython-313.pyc
│ │ ├── html.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── latex.cpython-313.pyc
│ │ ├── manpage.cpython-313.pyc
│ │ ├── texinfo.cpython-313.pyc
│ │ ├── text.cpython-313.pyc
│ │ └── xml.cpython-313.pyc
│ ├── sphinxcontrib
│ │ ├── devhelp
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── htmlhelp
│ │ │ └── __init__.cpython-313.pyc
│ │ ├── qthelp
│ │ │ └── __init__.cpython-313.pyc
│ │ └── serializinghtml
│ │ ├── __init__.cpython-313.pyc
│ │ └── jsonimpl.cpython-313.pyc
│ └── urllib3
│ ├── _collections.cpython-313.pyc
│ ├── connection.cpython-313.pyc
│ ├── connectionpool.cpython-313.pyc
│ ├── contrib
│ │ ├── _appengine_environ.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ └── socks.cpython-313.pyc
│ ├── exceptions.cpython-313.pyc
│ ├── fields.cpython-313.pyc
│ ├── filepost.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── packages
│ │ ├── __init__.cpython-313.pyc
│ │ └── six.cpython-313.pyc
│ ├── poolmanager.cpython-313.pyc
│ ├── request.cpython-313.pyc
│ ├── response.cpython-313.pyc
│ ├── util
│ │ ├── connection.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── proxy.cpython-313.pyc
│ │ ├── queue.cpython-313.pyc
│ │ ├── request.cpython-313.pyc
│ │ ├── response.cpython-313.pyc
│ │ ├── retry.cpython-313.pyc
│ │ ├── ssl_.cpython-313.pyc
│ │ ├── ssl_match_hostname.cpython-313.pyc
│ │ ├── ssltransport.cpython-313.pyc
│ │ ├── timeout.cpython-313.pyc
│ │ ├── url.cpython-313.pyc
│ │ └── wait.cpython-313.pyc
│ └── _version.cpython-313.pyc
└── lib64
└── python3.13
├── argparse.cpython-313.pyc
├── ast.cpython-313.pyc
├── base64.cpython-313.pyc
├── bdb.cpython-313.pyc
├── bisect.cpython-313.pyc
├── bz2.cpython-313.pyc
├── calendar.cpython-313.pyc
├── cmd.cpython-313.pyc
├── code.cpython-313.pyc
├── codeop.cpython-313.pyc
├── collections
│ └── __init__.cpython-313.pyc
├── _colorize.cpython-313.pyc
├── _compat_pickle.cpython-313.pyc
├── _compression.cpython-313.pyc
├── configparser.cpython-313.pyc
├── contextlib.cpython-313.pyc
├── contextvars.cpython-313.pyc
├── copy.cpython-313.pyc
├── copyreg.cpython-313.pyc
├── csv.cpython-313.pyc
├── dataclasses.cpython-313.pyc
├── datetime.cpython-313.pyc
├── decimal.cpython-313.pyc
├── difflib.cpython-313.pyc
├── dis.cpython-313.pyc
├── doctest.cpython-313.pyc
├── email
│ ├── base64mime.cpython-313.pyc
│ ├── charset.cpython-313.pyc
│ ├── _encoded_words.cpython-313.pyc
│ ├── encoders.cpython-313.pyc
│ ├── errors.cpython-313.pyc
│ ├── feedparser.cpython-313.pyc
│ ├── header.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── iterators.cpython-313.pyc
│ ├── message.cpython-313.pyc
│ ├── _parseaddr.cpython-313.pyc
│ ├── parser.cpython-313.pyc
│ ├── _policybase.cpython-313.pyc
│ ├── quoprimime.cpython-313.pyc
│ └── utils.cpython-313.pyc
├── encodings
│ ├── aliases.cpython-313.pyc
│ ├── idna.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── unicode_escape.cpython-313.pyc
│ ├── utf_8.cpython-313.pyc
│ └── utf_8_sig.cpython-313.pyc
├── enum.cpython-313.pyc
├── filecmp.cpython-313.pyc
├── fnmatch.cpython-313.pyc
├── functools.cpython-313.pyc
├── __future__.cpython-313.pyc
├── gettext.cpython-313.pyc
├── glob.cpython-313.pyc
├── gzip.cpython-313.pyc
├── hashlib.cpython-313.pyc
├── heapq.cpython-313.pyc
├── hmac.cpython-313.pyc
├── html
│ ├── entities.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ └── parser.cpython-313.pyc
├── http
│ ├── client.cpython-313.pyc
│ ├── cookiejar.cpython-313.pyc
│ ├── cookies.cpython-313.pyc
│ └── __init__.cpython-313.pyc
├── importlib
│ ├── _abc.cpython-313.pyc
│ ├── abc.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── metadata
│ │ ├── _collections.cpython-313.pyc
│ │ ├── _functools.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── _itertools.cpython-313.pyc
│ │ └── _meta.cpython-313.pyc
│ └── resources
│ ├── abc.cpython-313.pyc
│ ├── _common.cpython-313.pyc
│ ├── _functional.cpython-313.pyc
│ └── __init__.cpython-313.pyc
├── inspect.cpython-313.pyc
├── ipaddress.cpython-313.pyc
├── json
│ ├── decoder.cpython-313.pyc
│ ├── encoder.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ └── scanner.cpython-313.pyc
├── keyword.cpython-313.pyc
├── linecache.cpython-313.pyc
├── locale.cpython-313.pyc
├── logging
│ ├── handlers.cpython-313.pyc
│ └── __init__.cpython-313.pyc
├── lzma.cpython-313.pyc
├── _markupbase.cpython-313.pyc
├── mimetypes.cpython-313.pyc
├── multiprocessing
│ ├── connection.cpython-313.pyc
│ ├── context.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── popen_fork.cpython-313.pyc
│ ├── process.cpython-313.pyc
│ ├── reduction.cpython-313.pyc
│ └── util.cpython-313.pyc
├── numbers.cpython-313.pyc
├── opcode.cpython-313.pyc
├── _opcode_metadata.cpython-313.pyc
├── operator.cpython-313.pyc
├── optparse.cpython-313.pyc
├── pathlib
│ ├── _abc.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ └── _local.cpython-313.pyc
├── pdb.cpython-313.pyc
├── pickle.cpython-313.pyc
├── platform.cpython-313.pyc
├── pprint.cpython-313.pyc
├── queue.cpython-313.pyc
├── quopri.cpython-313.pyc
├── random.cpython-313.pyc
├── re
│ ├── _casefix.cpython-313.pyc
│ ├── _compiler.cpython-313.pyc
│ ├── _constants.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ └── _parser.cpython-313.pyc
├── reprlib.cpython-313.pyc
├── rlcompleter.cpython-313.pyc
├── selectors.cpython-313.pyc
├── shutil.cpython-313.pyc
├── signal.cpython-313.pyc
├── site-packages
│ ├── markupsafe
│ │ └── __init__.cpython-313.pyc
│ └── PIL
│ ├── _binary.cpython-313.pyc
│ ├── _deprecate.cpython-313.pyc
│ ├── ExifTags.cpython-313.pyc
│ ├── Image.cpython-313.pyc
│ ├── ImageMode.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── TiffTags.cpython-313.pyc
│ ├── _typing.cpython-313.pyc
│ ├── _util.cpython-313.pyc
│ └── _version.cpython-313.pyc
├── socket.cpython-313.pyc
├── ssl.cpython-313.pyc
├── string.cpython-313.pyc
├── stringprep.cpython-313.pyc
├── struct.cpython-313.pyc
├── subprocess.cpython-313.pyc
├── sysconfig
│ └── __init__.cpython-313.pyc
├── _sysconfigdata__linux_x86_64-linux-gnu.cpython-313.pyc
├── tempfile.cpython-313.pyc
├── textwrap.cpython-313.pyc
├── threading.cpython-313.pyc
├── token.cpython-313.pyc
├── tokenize.cpython-313.pyc
├── tomllib
│ ├── __init__.cpython-313.pyc
│ ├── _parser.cpython-313.pyc
│ ├── _re.cpython-313.pyc
│ └── _types.cpython-313.pyc
├── traceback.cpython-313.pyc
├── types.cpython-313.pyc
├── typing.cpython-313.pyc
├── unittest
│ ├── case.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── loader.cpython-313.pyc
│ ├── main.cpython-313.pyc
│ ├── result.cpython-313.pyc
│ ├── runner.cpython-313.pyc
│ ├── signals.cpython-313.pyc
│ ├── suite.cpython-313.pyc
│ └── util.cpython-313.pyc
├── urllib
│ ├── error.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── parse.cpython-313.pyc
│ ├── request.cpython-313.pyc
│ └── response.cpython-313.pyc
├── uuid.cpython-313.pyc
├── warnings.cpython-313.pyc
├── weakref.cpython-313.pyc
├── _weakrefset.cpython-313.pyc
├── xml
│ ├── dom
│ │ ├── domreg.cpython-313.pyc
│ │ ├── __init__.cpython-313.pyc
│ │ ├── minicompat.cpython-313.pyc
│ │ ├── minidom.cpython-313.pyc
│ │ ├── NodeFilter.cpython-313.pyc
│ │ └── xmlbuilder.cpython-313.pyc
│ ├── etree
│ │ ├── ElementPath.cpython-313.pyc
│ │ ├── ElementTree.cpython-313.pyc
│ │ └── __init__.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── parsers
│ │ ├── expat.cpython-313.pyc
│ │ └── __init__.cpython-313.pyc
│ └── sax
│ ├── _exceptions.cpython-313.pyc
│ ├── expatreader.cpython-313.pyc
│ ├── handler.cpython-313.pyc
│ ├── __init__.cpython-313.pyc
│ ├── saxutils.cpython-313.pyc
│ └── xmlreader.cpython-313.pyc
├── zipfile
│ ├── __init__.cpython-313.pyc
│ └── _path
│ ├── glob.cpython-313.pyc
│ └── __init__.cpython-313.pyc
└── zoneinfo
├── _common.cpython-313.pyc
├── __init__.cpython-313.pyc
└── _tzpath.cpython-313.pyc
109 directories, 634 files
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 8c1f6a3dfc44..59e95ebae786 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -84,7 +84,7 @@ loop_cmd = $(echo-cmd) $(cmd_$(1)) || exit;
quiet_cmd_sphinx = SPHINX $@ --> file://$(abspath $(BUILDDIR)/$3/$4)
cmd_sphinx = $(MAKE) BUILDDIR=$(abspath $(BUILDDIR)) $(build)=Documentation/userspace-api/media $2 && \
- PYTHONDONTWRITEBYTECODE=1 \
+ PYTHONPYCACHEPREFIX=$(abspath $(BUILDDIR)/__pycache__) \
BUILDDIR=$(abspath $(BUILDDIR)) SPHINX_CONF=$(abspath $(src)/$5/$(SPHINX_CONF)) \
$(PYTHON3) $(srctree)/scripts/jobserver-exec \
$(CONFIG_SHELL) $(srctree)/Documentation/sphinx/parallel-wrapper.sh \
next prev parent reply other threads:[~2025-04-24 7:44 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-16 7:51 [PATCH v3 0/2] Don't create Python bytecode when building the kernel Mauro Carvalho Chehab
2025-04-16 7:51 ` [PATCH v3 1/2] scripts/kernel-doc.py: don't create *.pyc files Mauro Carvalho Chehab
2025-04-16 8:34 ` Jani Nikula
2025-04-16 9:19 ` Mauro Carvalho Chehab
2025-04-16 9:23 ` Andy Shevchenko
2025-04-16 9:29 ` Mauro Carvalho Chehab
2025-04-16 9:36 ` Andy Shevchenko
2025-04-17 6:31 ` Mauro Carvalho Chehab
2025-04-16 9:38 ` Mauro Carvalho Chehab
2025-04-16 9:41 ` Andy Shevchenko
2025-04-18 23:51 ` Mauro Carvalho Chehab
2025-04-16 9:39 ` Andy Shevchenko
2025-04-17 7:58 ` kernel test robot
2025-04-18 18:12 ` kernel test robot
2025-04-16 7:51 ` [PATCH v3 2/2] .gitignore: ignore Python compiled bytecode Mauro Carvalho Chehab
2025-04-16 9:18 ` Andy Shevchenko
2025-04-21 8:38 ` [PATCH v3 0/2] Don't create Python bytecode when building the kernel Dmitry Baryshkov
2025-04-21 16:35 ` Jonathan Corbet
2025-04-22 7:57 ` Andy Shevchenko
2025-04-23 9:30 ` Akira Yokosawa
2025-04-23 16:31 ` Andy Shevchenko
2025-04-24 2:07 ` Akira Yokosawa
2025-04-24 7:26 ` Mauro Carvalho Chehab
2025-04-24 7:44 ` Mauro Carvalho Chehab [this message]
2025-04-24 9:28 ` Andy Shevchenko
2025-04-24 0:31 ` Mauro Carvalho Chehab
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250424154441.3d4aed6e@sal.lan \
--to=mchehab+huawei@kernel.org \
--cc=airlied@gmail.com \
--cc=akiyks@gmail.com \
--cc=andriy.shevchenko@intel.com \
--cc=corbet@lwn.net \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=intel-gfx@lists.freedesktop.org \
--cc=jani.nikula@linux.intel.com \
--cc=joonas.lahtinen@linux.intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=masahiroy@kernel.org \
--cc=mripard@kernel.org \
--cc=nathan@kernel.org \
--cc=nicolas.schier@linux.dev \
--cc=rodrigo.vivi@intel.com \
--cc=simona@ffwll.ch \
--cc=tursulin@ursulin.net \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).