This is an automated email from the ASF dual-hosted git repository.

leginee pushed a commit to branch win10-msvc-trunk
in repository https://gitbox.apache.org/repos/asf/openoffice.git

commit ef8ddd6c4485217131eb1989656116d1c10fe332
Author: Peter Kovacs <[email protected]>
AuthorDate: Wed Aug 26 23:19:43 2026 +0200

    python: Python 3 turned stdlib modules into packages, so d.lst must list 
them
    
    d.lst copies the standard library with one wildcard per directory, and
    deliver.pl does not recurse: `Lib\*` takes only the files at the top of
    Lib.  Every package therefore needs its own mkdir and its own copy line,
    and the list was inherited from the Python 2.7 tree.
    
    Python 3 turned a number of former single-file modules into packages --
    collections, re, urllib, http, xmlrpc -- and added new ones (asyncio,
    concurrent, dbm, html, tomllib, zoneinfo, importlib.metadata,
    importlib.resources).  None of them were listed, so all of them were
    dropped from the delivered stdlib without any error.
    
    Dropping collections alone is enough to kill Python scripting outright:
    
        import uno -> import socket -> selectors
            -> from collections import namedtuple
        ModuleNotFoundError: No module named 'collections'
    
    uno.py imports socket at module scope, so `import uno` raises, and with
    it pythonscript.py; the Python script provider cannot be instantiated
    and the Scripting Framework answers every request with
    ScriptFrameworkErrorType::NOTSUPPORTED, surfacing as "The scripting
    language Python is not supported."
    
    pydoc_data is added for the same reason: pydoc.py is delivered by the
    top-level wildcard and imports it.
    
    Not architecture specific -- these lines carry no arch conditional, so
    the 32-bit build shipped the same incomplete stdlib.
    
    Co-Authored-By: Claude Opus 5 <[email protected]>
    Claude-Session: https://claude.ai/code/session_012NFKmwTogkytKnrTBX5Lax
---
 main/python/prj/d.lst | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/main/python/prj/d.lst b/main/python/prj/d.lst
index ab7f362e46..615f800cdc 100644
--- a/main/python/prj/d.lst
+++ b/main/python/prj/d.lst
@@ -27,9 +27,31 @@ mkdir: %_DEST%\lib%_EXT%\python\importlib
 mkdir: %_DEST%\lib%_EXT%\python\multiprocessing
 mkdir: %_DEST%\lib%_EXT%\python\multiprocessing\dummy
 mkdir: %_DEST%\lib%_EXT%\python\unittest
+mkdir: %_DEST%\lib%_EXT%\python\asyncio
+mkdir: %_DEST%\lib%_EXT%\python\collections
+mkdir: %_DEST%\lib%_EXT%\python\concurrent
+mkdir: %_DEST%\lib%_EXT%\python\concurrent\futures
+mkdir: %_DEST%\lib%_EXT%\python\dbm
+mkdir: %_DEST%\lib%_EXT%\python\html
+mkdir: %_DEST%\lib%_EXT%\python\http
+mkdir: %_DEST%\lib%_EXT%\python\importlib\metadata
+mkdir: %_DEST%\lib%_EXT%\python\importlib\resources
+mkdir: %_DEST%\lib%_EXT%\python\pydoc_data
+mkdir: %_DEST%\lib%_EXT%\python\re
+mkdir: %_DEST%\lib%_EXT%\python\tomllib
+mkdir: %_DEST%\lib%_EXT%\python\urllib
+mkdir: %_DEST%\lib%_EXT%\python\xmlrpc
+mkdir: %_DEST%\lib%_EXT%\python\zoneinfo
 mkdir: %_DEST%\lib%_EXT%\python\python3.11\config
 mkdir: %_DEST%\inc%_EXT%\python\cpython
 
+# The first line copies only the FILES at the top of Lib; deliver.pl does not
+# recurse.  Every stdlib PACKAGE therefore needs its own mkdir above and its 
own
+# line below, and the two lists must stay in sync.  Python 3 turned a number of
+# former single-file modules (collections, re, urllib, ...) into packages, so a
+# list inherited from a Python 2 tree silently drops them -- and dropping
+# collections alone is enough to break "import uno", which imports socket.
+# When bumping Python, diff Lib/*/ against this list.
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\* %_DEST%\lib%_EXT%\python\*
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\site-packages\* 
%_DEST%\lib%_EXT%\python\site-packages\*
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\encodings\* 
%_DEST%\lib%_EXT%\python\encodings\*
@@ -58,6 +80,21 @@ mkdir: %_DEST%\inc%_EXT%\python\cpython
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\multiprocessing\* 
%_DEST%\lib%_EXT%\python\multiprocessing\*
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\multiprocessing\dummy\* 
%_DEST%\lib%_EXT%\python\multiprocessing\dummy\*
 ..\%__SRC%\misc\build\Python-3.11.15\Lib\unittest\* 
%_DEST%\lib%_EXT%\python\unittest\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\asyncio\* 
%_DEST%\lib%_EXT%\python\asyncio\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\collections\* 
%_DEST%\lib%_EXT%\python\collections\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\concurrent\* 
%_DEST%\lib%_EXT%\python\concurrent\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\concurrent\futures\* 
%_DEST%\lib%_EXT%\python\concurrent\futures\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\dbm\* %_DEST%\lib%_EXT%\python\dbm\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\html\* %_DEST%\lib%_EXT%\python\html\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\http\* %_DEST%\lib%_EXT%\python\http\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\importlib\metadata\* 
%_DEST%\lib%_EXT%\python\importlib\metadata\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\importlib\resources\* 
%_DEST%\lib%_EXT%\python\importlib\resources\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\pydoc_data\* 
%_DEST%\lib%_EXT%\python\pydoc_data\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\re\* %_DEST%\lib%_EXT%\python\re\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\tomllib\* 
%_DEST%\lib%_EXT%\python\tomllib\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\urllib\* 
%_DEST%\lib%_EXT%\python\urllib\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\xmlrpc\* 
%_DEST%\lib%_EXT%\python\xmlrpc\*
+..\%__SRC%\misc\build\Python-3.11.15\Lib\zoneinfo\* 
%_DEST%\lib%_EXT%\python\zoneinfo\*
 ..\%__SRC%\misc\build\Python-3.11.15\Makefile 
%_DEST%\lib%_EXT%\python\python3.11\config\Makefile
 # _sysconfigdata filename is platform-mangled (e.g. 
_sysconfigdata__darwin_darwin.py on macOS,
 # _sysconfigdata__linux_x86_64-linux-gnu.py on Linux). On Linux, makefile.mk's 
BUILD_ACTION

Reply via email to