external/python3/ExternalPackage_python3.mk | 2 + external/python3/ExternalProject_python3.mk | 4 ++ external/python3/UnpackedTarball_python3.mk | 1 external/python3/lzma.patch.1 | 40 +++++++++++++++++++++ external/python3/python-3.5.4-msvc-disable.patch.1 | 17 -------- pyuno/qa/pytests/testimports.py | 7 +++ 6 files changed, 55 insertions(+), 16 deletions(-)
New commits: commit 6408a49ac5e4c9236b2f9fe88534b6bc9c8e58b9 Author: Xisco Fauli <[email protected]> AuthorDate: Mon Nov 10 12:18:23 2025 +0100 Commit: Xisco Fauli <[email protected]> CommitDate: Tue Nov 11 21:40:00 2025 +0100 tdf#168513: python3: bundle lzma Change-Id: I7b9729cd293aea781b204888236c3aa5aa858eaa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/193739 Reviewed-by: Xisco Fauli <[email protected]> Tested-by: Jenkins diff --git a/external/python3/ExternalPackage_python3.mk b/external/python3/ExternalPackage_python3.mk index 088bf96a0d4d..8c436f8b5916 100644 --- a/external/python3/ExternalPackage_python3.mk +++ b/external/python3/ExternalPackage_python3.mk @@ -35,6 +35,7 @@ python3_EXTENSION_MODULES= \ PCbuild/$(python_arch_subdir)_decimal$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ PCbuild/$(python_arch_subdir)_elementtree$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ PCbuild/$(python_arch_subdir)_hashlib$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ + PCbuild/$(python_arch_subdir)_lzma$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ PCbuild/$(python_arch_subdir)_msi$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ PCbuild/$(python_arch_subdir)_multiprocessing$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ PCbuild/$(python_arch_subdir)_overlapped$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \ @@ -103,6 +104,7 @@ python3_EXTENSION_MODULES= \ Modules/_heapq.$(python3_EXTENSION_MODULE_SUFFIX).so \ Modules/_json.$(python3_EXTENSION_MODULE_SUFFIX).so \ Modules/_lsprof.$(python3_EXTENSION_MODULE_SUFFIX).so \ + Modules/_lzma.$(python3_EXTENSION_MODULE_SUFFIX).so \ Modules/math.$(python3_EXTENSION_MODULE_SUFFIX).so \ Modules/_md5.$(python3_EXTENSION_MODULE_SUFFIX).so \ Modules/mmap.$(python3_EXTENSION_MODULE_SUFFIX).so \ diff --git a/external/python3/ExternalProject_python3.mk b/external/python3/ExternalProject_python3.mk index 20754553b443..fec57e264307 100644 --- a/external/python3/ExternalProject_python3.mk +++ b/external/python3/ExternalProject_python3.mk @@ -12,6 +12,7 @@ $(eval $(call gb_ExternalProject_ExternalProject,python3)) $(eval $(call gb_ExternalProject_use_externals,python3,\ bzip2 \ expat \ + $(if $(filter-out WNT,$(OS)),$(call gb_Helper_optional,LZMA,lzma)) \ $(if $(filter WNT LINUX,$(OS)),libffi) \ openssl \ $(if $(filter LINUX,$(OS)),$(call gb_Helper_optional,SQLITE3,sqlite3)) \ @@ -44,6 +45,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) : /p:opensslOutDir=$(gb_UnpackedTarball_workdir)/openssl \ /p:zlibDir=$(gb_UnpackedTarball_workdir)/zlib \ /p:sqlite3Dir=$(gb_UnpackedTarball_workdir)/sqlite3 \ + /p:lzmaDir=$(gb_UnpackedTarball_workdir)/lzma/ \ /p:libffiOutDir=$(gb_UnpackedTarball_workdir)/libffi/$(HOST_PLATFORM)/.libs \ /p:libffiIncludeDir=$(gb_UnpackedTarball_workdir)/libffi/$(HOST_PLATFORM)/include \ /maxcpucount \ @@ -115,6 +117,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) : $(if $(SYSTEM_BZIP2),,-I$(gb_UnpackedTarball_workdir)/bzip2) \ $(if $(SYSTEM_EXPAT),,-I$(gb_UnpackedTarball_workdir)/expat/lib) \ $(if $(SYSTEM_SQLITE3),,-I$(gb_UnpackedTarball_workdir)/sqlite3) \ + $(if $(SYSTEM_LZMA),,-I$(gb_UnpackedTarball_workdir)/lzma/src/liblzma/api) \ $(if $(SYSBASE), -I$(SYSBASE)/usr/include) \ )" \ $(if $(python3_cflags),CFLAGS='$(python3_cflags)') \ @@ -125,6 +128,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) : $(if $(SYSTEM_EXPAT),,-L$(gb_StaticLibrary_WORKDIR)) \ $(if $(SYSTEM_ZLIB),,-L$(gb_StaticLibrary_WORKDIR)) \ $(if $(SYSTEM_SQLITE3),,-L$(gb_StaticLibrary_WORKDIR)) \ + $(if $(SYSTEM_LZMA),,-L$(gb_StaticLibrary_WORKDIR)) \ $(if $(SYSBASE), -L$(SYSBASE)/usr/lib) \ $(gb_LTOFLAGS) \ )" \ diff --git a/external/python3/UnpackedTarball_python3.mk b/external/python3/UnpackedTarball_python3.mk index e47088eb256b..3f69563d1604 100644 --- a/external/python3/UnpackedTarball_python3.mk +++ b/external/python3/UnpackedTarball_python3.mk @@ -43,6 +43,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\ external/python3/init-sys-streams-cant-initialize-stdin.patch.0 \ external/python3/setuptools.patch.1 \ external/python3/sqlite3.patch.1 \ + external/python3/lzma.patch.1 \ )) ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD SOLARIS,$(OS)),) diff --git a/external/python3/lzma.patch.1 b/external/python3/lzma.patch.1 new file mode 100644 index 000000000000..87ab1d706855 --- /dev/null +++ b/external/python3/lzma.patch.1 @@ -0,0 +1,40 @@ +--- python3/PCbuild/liblzma.vcxproj 2025-11-11 15:48:28.599417380 +0100 ++++ python3/PCbuild/liblzma.vcxproj 2025-11-11 15:56:54.184573039 +0100 +@@ -91,8 +91,8 @@ + </PropertyGroup> + <ItemDefinitionGroup> + <ClCompile> +- <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> +- <AdditionalIncludeDirectories>$(lzmaDir)windows/vs2019;$(lzmaDir)src/liblzma/common;$(lzmaDir)src/common;$(lzmaDir)src/liblzma/api;$(lzmaDir)src/liblzma/check;$(lzmaDir)src/liblzma/delta;$(lzmaDir)src/liblzma/lz;$(lzmaDir)src/liblzma/lzma;$(lzmaDir)src/liblzma/rangecoder;$(lzmaDir)src/liblzma/simple;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> ++ <PreprocessorDefinitions>WIN32;HAVE_CONFIG_H;MYTHREAD_VISTA;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions> ++ <AdditionalIncludeDirectories>$(lzmaDir)dos;$(lzmaDir)src/liblzma/common;$(lzmaDir)src/common;$(lzmaDir)src/liblzma/api;$(lzmaDir)src/liblzma/check;$(lzmaDir)src/liblzma/delta;$(lzmaDir)src/liblzma/lz;$(lzmaDir)src/liblzma/lzma;$(lzmaDir)src/liblzma/rangecoder;$(lzmaDir)src/liblzma/simple;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <DisableSpecificWarnings>4028;4113;4133;4244;4267;4996;%(DisableSpecificWarnings)</DisableSpecificWarnings> + </ClCompile> + </ItemDefinitionGroup> +@@ -101,9 +101,7 @@ + <ClCompile Include="$(lzmaDir)src+ <ClCompile Include="$(lzmaDir)src\liblzma+ <ClCompile Include="$(lzmaDir)src\liblzma+- <ClCompile Include="$(lzmaDir)src\liblzma+ <ClCompile Include="$(lzmaDir)src\liblzma+- <ClCompile Include="$(lzmaDir)src\liblzma+ <ClCompile Include="$(lzmaDir)src\liblzma+ <ClCompile Include="$(lzmaDir)src\liblzma+ <ClCompile Include="$(lzmaDir)src\liblzma+@@ -162,6 +161,7 @@ + <ClCompile Include="$(lzmaDir)src\liblzma\lz\lz_encoder_mf.c" /> + <ClCompile Include="$(lzmaDir)src\liblzma angecoder\price_table.c" /> + <ClCompile Include="$(lzmaDir)src\liblzma\simplerm.c" /> ++ <ClCompile Include="$(lzmaDir)src\liblzma\simplerm64.c" /> + <ClCompile Include="$(lzmaDir)src\liblzma\simplermthumb.c" /> + <ClCompile Include="$(lzmaDir)src\liblzma\simple\ia64.c" /> + <ClCompile Include="$(lzmaDir)src\liblzma\simple\powerpc.c" /> +@@ -238,7 +238,7 @@ + <ClInclude Include="$(lzmaDir)src\liblzma\simple\simple_decoder.h" /> + <ClInclude Include="$(lzmaDir)src\liblzma\simple\simple_encoder.h" /> + <ClInclude Include="$(lzmaDir)src\liblzma\simple\simple_private.h" /> +- <ClInclude Include="$(lzmaDir)windowss2019++ <ClInclude Include="$(lzmaDir)dos+ </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> diff --git a/external/python3/python-3.5.4-msvc-disable.patch.1 b/external/python3/python-3.5.4-msvc-disable.patch.1 index 4807706a5a07..1f906f35fcdf 100644 --- a/external/python3/python-3.5.4-msvc-disable.patch.1 +++ b/external/python3/python-3.5.4-msvc-disable.patch.1 @@ -24,7 +24,7 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln {FDB84CBB-2FB6-47C8-A2D6-091E0833239D} = {FDB84CBB-2FB6-47C8-A2D6-091E0833239D} {73FCD2BD-F133-46B7-8EC1-144CD82A59D5} = {73FCD2BD-F133-46B7-8EC1-144CD82A59D5} {2097F1C1-597C-4167-93E3-656A7D6339B2} = {2097F1C1-597C-4167-93E3-656A7D6339B2} -@@ -85,14 +80,10 @@ +@@ -85,8 +80,6 @@ EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testimportmultiple", "_testimportmultiple.vcxproj", "{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}" EndProject @@ -33,21 +33,6 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_bz2", "_bz2.vcxproj", "{73FCD2BD-F133-46B7-8EC1-144CD82A59D5}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "select", "select.vcxproj", "{18CAE28C-B454-46C1-87A0-493D91D97F03}" - EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_lzma", "_lzma.vcxproj", "{F9D71780-F393-11E0-BE50-0800200C9A66}" --EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicodedata", "unicodedata.vcxproj", "{ECC7CEAC-A5E5-458E-BB9E-2413CC847881}" - EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pyexpat", "pyexpat.vcxproj", "{D06B6426-4762-44CC-8BAD-D79052507F2F}" -@@ -139,8 +119,6 @@ - EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_queue", "_queue.vcxproj", "{78D80A15-BD8C-44E2-B49E-1F05B0A0A687}" - EndProject --Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblzma", "liblzma.vcxproj", "{12728250-16EC-4DC6-94D7-E21DD88947F8}" --EndProject - Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python_uwp", "python_uwp.vcxproj", "{9DE9E23D-C8D4-4817-92A9-920A8B1FE5FF}" - ProjectSection(ProjectDependencies) = postProject - {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} = {B11D750F-CD1F-4A96-85CE-E69A5C5259F9} @@ -151,9 +129,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "venvwlauncher", "venvwlauncher.vcxproj", "{FDB84CBB-2FB6-47C8-A2D6-091E0833239D}" EndProject diff --git a/pyuno/qa/pytests/testimports.py b/pyuno/qa/pytests/testimports.py index 05e709aa7c9c..29b147364ff1 100644 --- a/pyuno/qa/pytests/testimports.py +++ b/pyuno/qa/pytests/testimports.py @@ -61,5 +61,12 @@ class ImportsTest(unittest.TestCase): with open(os.devnull, "w") as devnull: print(str(_hashlib), file=devnull) + def test_lzma_import(self): + import lzma + + # use imported lzma module for pyflakes + with open(os.devnull, "w") as devnull: + print(str(lzma), file=devnull) + if __name__ == '__main__': unittest.main()
