external/python3/ExternalPackage_python3.mk |    8 +++++++-
 external/python3/ExternalProject_python3.mk |    2 --
 external/python3/generateExternalPackage.py |    2 +-
 pyuno/qa/pytests/testimports.py             |    7 +++++++
 4 files changed, 15 insertions(+), 4 deletions(-)

New commits:
commit 3d57e6a9b5cdfa5b8912828de2caef0026fa912a
Author:     Xisco Fauli <[email protected]>
AuthorDate: Wed Oct 29 14:56:52 2025 +0100
Commit:     Xisco Fauli <[email protected]>
CommitDate: Wed Oct 29 18:58:53 2025 +0100

    tdf#132074: python3: bundle dbm
    
    Change-Id: I1ed3c6e834f486cc8753513dfb03a2a0d4a8cfd4
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193155
    Reviewed-by: Xisco Fauli <[email protected]>
    Tested-by: Jenkins

diff --git a/external/python3/ExternalPackage_python3.mk 
b/external/python3/ExternalPackage_python3.mk
index 5653aa89857b..5da5553e3210 100644
--- a/external/python3/ExternalPackage_python3.mk
+++ b/external/python3/ExternalPackage_python3.mk
@@ -176,7 +176,6 @@ endif
 
 
 # packages not shipped:
-# dbm - need some database stuff
 # curses - need curses to build the C module
 # idlelib, tkinter, turtledemo - need Tk to build the C module
 # test - probably unnecessary? was explicitly removed #i116738#
@@ -432,6 +431,13 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/ctypes/macholib/framework.py \
 ))
 
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/dbm,\
+       Lib/dbm/__init__.py \
+       Lib/dbm/dumb.py \
+       Lib/dbm/gnu.py \
+       Lib/dbm/ndbm.py \
+))
+
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/email,\
        Lib/email/__init__.py \
        Lib/email/_encoded_words.py \
diff --git a/external/python3/ExternalProject_python3.mk 
b/external/python3/ExternalProject_python3.mk
index 30a8cdcbd7ba..6175e7a7efb5 100644
--- a/external/python3/ExternalProject_python3.mk
+++ b/external/python3/ExternalProject_python3.mk
@@ -206,14 +206,12 @@ $(call 
gb_ExternalProject_get_state_target,python3,executables) : $(call gb_Exte
 
 $(call gb_ExternalProject_get_state_target,python3,removeunnecessarystuff) : 
$(call gb_ExternalProject_get_state_target,python3,build)
        $(call gb_Output_announce,python3 - remove the stuff we don't need to 
ship,build,CUS,5)
-       rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/dbm
        rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/curses
        rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/idlelib
        rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/tkinter
        rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/turtledemo
        rm -r 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/test
        # Then the binary libraries
-       rm 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_dbm.$(python3_EXTENSION_MODULE_SUFFIX).so
        rm 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses.$(python3_EXTENSION_MODULE_SUFFIX).so
        rm 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_curses_panel.$(python3_EXTENSION_MODULE_SUFFIX).so
        rm 
$(python3_fw_prefix)/lib/python$(PYTHON_VERSION_MAJOR).$(PYTHON_VERSION_MINOR)/lib-dynload/_test*.$(python3_EXTENSION_MODULE_SUFFIX).so
diff --git a/external/python3/generateExternalPackage.py 
b/external/python3/generateExternalPackage.py
index 18fe5af3e10b..46c8af591818 100755
--- a/external/python3/generateExternalPackage.py
+++ b/external/python3/generateExternalPackage.py
@@ -10,7 +10,7 @@ from os import path, walk
 
 if __name__ == '__main__':
 
-    ignoredPackages = ["dbm", "curses", "test", "tkinter", "turtledemo", 
"idlelib"]
+    ignoredPackages = ["curses", "test", "tkinter", "turtledemo", "idlelib"]
 
     coreDir = path.dirname(path.dirname(path.dirname(path.abspath(__file__))))
     pythonDir = path.join(coreDir, "workdir/UnpackedTarball/python3")
diff --git a/pyuno/qa/pytests/testimports.py b/pyuno/qa/pytests/testimports.py
index 8d58f97abc03..32c8e42af280 100644
--- a/pyuno/qa/pytests/testimports.py
+++ b/pyuno/qa/pytests/testimports.py
@@ -47,5 +47,12 @@ class ImportsTest(unittest.TestCase):
         with open(os.devnull, "w") as devnull:
             print(str(venv), file=devnull)
 
+    def test_dbm_import(self):
+        import dbm
+
+        # use imported dbm module for pyflakes
+        with open(os.devnull, "w") as devnull:
+            print(str(dbm), file=devnull)
+
 if __name__ == '__main__':
     unittest.main()

Reply via email to