lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250424154441.3d4aed6e@sal.lan>
Date: Thu, 24 Apr 2025 15:44:41 +0800
From: Mauro Carvalho Chehab <mchehab+huawei@...nel.org>
To: Akira Yokosawa <akiyks@...il.com>
Cc: Andy Shevchenko <andriy.shevchenko@...el.com>, airlied@...il.com,
 corbet@....net, dmitry.baryshkov@....qualcomm.com,
 dri-devel@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org,
 jani.nikula@...ux.intel.com, joonas.lahtinen@...ux.intel.com,
 linux-doc@...r.kernel.org, linux-kbuild@...r.kernel.org,
 linux-kernel@...r.kernel.org, maarten.lankhorst@...ux.intel.com,
 masahiroy@...nel.org, mripard@...nel.org, nathan@...nel.org,
 nicolas.schier@...ux.dev, rodrigo.vivi@...el.com, simona@...ll.ch,
 tursulin@...ulin.net, tzimmermann@...e.de
Subject: Re: [PATCH v3 0/2] Don't create Python bytecode when building the
 kernel

Em Thu, 24 Apr 2025 15:26:48 +0800
Mauro Carvalho Chehab <mchehab+huawei@...nel.org> escreveu:

> Em Thu, 24 Apr 2025 11:07:05 +0900
> Akira Yokosawa <akiyks@...il.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@....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@...nel.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 \




Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ