tdf#168512: python3: bundle sqlite3
Add sqlite3.patch.1 since sqlite3.vcxproj expects the sqlite version in the path Change-Id: Ieb262b5401447cc9cc8c8d68197b3ec492c6ed94 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/191394 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
This commit is contained in:
+11
-1
@@ -22,6 +22,7 @@ endif
|
||||
|
||||
$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/bin/python.exe,PCbuild/$(python_arch_subdir)python$(if $(MSVC_USE_DEBUG_RUNTIME),_d).exe))
|
||||
$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(MSVC_USE_DEBUG_RUNTIME),_d).dll,PCbuild/$(python_arch_subdir)python$(PYTHON_VERSION_MAJOR)$(PYTHON_VERSION_MINOR)$(if $(MSVC_USE_DEBUG_RUNTIME),_d).dll))
|
||||
$(eval $(call gb_ExternalPackage_add_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib,PCbuild/$(python_arch_subdir)sqlite3$(if $(MSVC_USE_DEBUG_RUNTIME),_d).dll))
|
||||
ifeq ($(MSVC_USE_DEBUG_RUNTIME),)
|
||||
$(eval $(call gb_ExternalPackage_add_file,python3,$(LIBO_BIN_FOLDER)/python$(PYTHON_VERSION_MAJOR).dll,PCbuild/$(python_arch_subdir)python$(PYTHON_VERSION_MAJOR).dll))
|
||||
endif
|
||||
@@ -36,6 +37,7 @@ python3_EXTENSION_MODULES= \
|
||||
PCbuild/$(python_arch_subdir)_overlapped$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_queue$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_socket$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_sqlite3$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_ssl$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_uuid$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
PCbuild/$(python_arch_subdir)_zoneinfo$(if $(MSVC_USE_DEBUG_RUNTIME),_d).pyd \
|
||||
@@ -117,6 +119,7 @@ python3_EXTENSION_MODULES= \
|
||||
Modules/_sha2.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
Modules/_sha3.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
Modules/_socket.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
Modules/_sqlite3.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
Modules/spwd.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
$(if $(ENABLE_OPENSSL), \
|
||||
Modules/_ssl.$(python3_EXTENSION_MODULE_SUFFIX).so \
|
||||
@@ -173,7 +176,7 @@ endif
|
||||
|
||||
|
||||
# packages not shipped:
|
||||
# dbm, sqlite3 - need some database stuff
|
||||
# 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#
|
||||
@@ -1726,6 +1729,13 @@ $(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
|
||||
Lib/site-packages/README.txt \
|
||||
))
|
||||
|
||||
$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/sqlite3,\
|
||||
Lib/sqlite3/__init__.py \
|
||||
Lib/sqlite3/__main__.py \
|
||||
Lib/sqlite3/dbapi2.py \
|
||||
Lib/sqlite3/dump.py \
|
||||
))
|
||||
|
||||
$(eval $(call gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/tomllib,\
|
||||
Lib/tomllib/__init__.py \
|
||||
Lib/tomllib/_parser.py \
|
||||
|
||||
+4
-2
@@ -14,6 +14,7 @@ $(eval $(call gb_ExternalProject_use_externals,python3,\
|
||||
expat \
|
||||
$(if $(filter WNT LINUX,$(OS)),libffi) \
|
||||
openssl \
|
||||
$(if $(ENABLE_SQLITE3),sqlite3) \
|
||||
zlib \
|
||||
))
|
||||
|
||||
@@ -42,6 +43,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
|
||||
/p:opensslIncludeDir=$(gb_UnpackedTarball_workdir)/openssl/include \
|
||||
/p:opensslOutDir=$(gb_UnpackedTarball_workdir)/openssl \
|
||||
/p:zlibDir=$(gb_UnpackedTarball_workdir)/zlib \
|
||||
/p:sqlite3Dir=$(gb_UnpackedTarball_workdir)/sqlite3 \
|
||||
/p:libffiOutDir=$(gb_UnpackedTarball_workdir)/libffi/$(HOST_PLATFORM)/.libs \
|
||||
/p:libffiIncludeDir=$(gb_UnpackedTarball_workdir)/libffi/$(HOST_PLATFORM)/include \
|
||||
/maxcpucount \
|
||||
@@ -112,6 +114,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
|
||||
$(if $(filter -fsanitize=undefined,$(CC)),-fno-sanitize=function) \
|
||||
$(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 $(SYSBASE), -I$(SYSBASE)/usr/include) \
|
||||
)" \
|
||||
$(if $(python3_cflags),CFLAGS='$(python3_cflags)') \
|
||||
@@ -121,6 +124,7 @@ $(call gb_ExternalProject_get_state_target,python3,build) :
|
||||
$(if $(SYSTEM_BZIP2),,-L$(gb_UnpackedTarball_workdir)/bzip2) \
|
||||
$(if $(SYSTEM_EXPAT),,-L$(gb_StaticLibrary_WORKDIR)) \
|
||||
$(if $(SYSTEM_ZLIB),,-L$(gb_StaticLibrary_WORKDIR)) \
|
||||
$(if $(SYSTEM_SQLITE3),,-L$(gb_StaticLibrary_WORKDIR)) \
|
||||
$(if $(SYSBASE), -L$(SYSBASE)/usr/lib) \
|
||||
$(gb_LTOFLAGS) \
|
||||
)" \
|
||||
@@ -203,7 +207,6 @@ $(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)/sqlite3
|
||||
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
|
||||
@@ -211,7 +214,6 @@ $(call gb_ExternalProject_get_state_target,python3,removeunnecessarystuff) : $(c
|
||||
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/_sqlite3.$(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
|
||||
|
||||
+1
@@ -42,6 +42,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,python3,\
|
||||
external/python3/ubsan.patch.0 \
|
||||
external/python3/init-sys-streams-cant-initialize-stdin.patch.0 \
|
||||
external/python3/setuptools.patch.1 \
|
||||
external/python3/sqlite3.patch.1 \
|
||||
))
|
||||
|
||||
ifneq ($(filter DRAGONFLY FREEBSD LINUX NETBSD OPENBSD SOLARIS,$(OS)),)
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ from os import path, walk
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
ignoredPackages = ["dbm", "curses", "test", "tkinter", "turtledemo", "sqlite3", "idlelib"]
|
||||
ignoredPackages = ["dbm", "curses", "test", "tkinter", "turtledemo", "idlelib"]
|
||||
|
||||
coreDir = path.dirname(path.dirname(path.dirname(path.abspath(__file__))))
|
||||
pythonDir = path.join(coreDir, "workdir/UnpackedTarball/python3")
|
||||
|
||||
+3
-14
@@ -36,16 +36,7 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "winsound", "winsound.vcxproj", "{28B5D777-DDF2-4B6B-B34F-31D938813856}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_decimal", "_decimal.vcxproj", "{0E9791DB-593A-465F-98BC-681011311617}"
|
||||
@@ -73,8 +63,6 @@
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_socket", "_socket.vcxproj", "{86937F53-C189-40EF-8CE8-8759D8E7D480}"
|
||||
EndProject
|
||||
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_sqlite3", "_sqlite3.vcxproj", "{13CECB97-4119-4316-9D42-8534019A5A44}"
|
||||
-EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_ssl", "_ssl.vcxproj", "{C6E20F84-3247-4AD6-B051-B073268F73BA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testcapi", "_testcapi.vcxproj", "{6901D91C-6E48-4BB7-9FEC-700C8131DF1D}"
|
||||
@@ -85,22 +73,14 @@
|
||||
@@ -75,20 +75,14 @@
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_testimportmultiple", "_testimportmultiple.vcxproj", "{36D0C52C-DF4E-45D0-8BC7-E294C3ABC781}"
|
||||
EndProject
|
||||
@@ -63,11 +54,9 @@ diff -ru python3.orig/PCbuild/pcbuild.sln python3/PCbuild/pcbuild.sln
|
||||
EndProject
|
||||
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_hashlib", "_hashlib.vcxproj", "{447F05A8-F581-4CAC-A466-5AC7936E207E}"
|
||||
-EndProject
|
||||
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcxproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}"
|
||||
-EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sqlite3", "sqlite3.vcxproj", "{A1A295E5-463C-437F-81CA-1F32367685DA}"
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python3dll", "python3dll.vcxproj", "{885D4898-D08D-4091-9C40-C700CFE3FC5A}"
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_multiprocessing", "_multiprocessing.vcxproj", "{9E48B300-37D1-11DD-8C41-005056C00008}"
|
||||
@@ -139,8 +119,6 @@
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_queue", "_queue.vcxproj", "{78D80A15-BD8C-44E2-B49E-1F05B0A0A687}"
|
||||
|
||||
Vendored
+11
@@ -0,0 +1,11 @@
|
||||
--- python3/PCbuild/sqlite3.vcxproj 2025-10-28 12:15:59.386769096 +0100
|
||||
+++ python3/PCbuild/sqlite3.vcxproj 2025-10-28 12:21:58.905090639 +0100
|
||||
@@ -88,7 +88,7 @@
|
||||
<PropertyGroup Label="UserMacros" />
|
||||
<PropertyGroup>
|
||||
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
|
||||
- <_SqliteVersion>$([System.Text.RegularExpressions.Regex]::Match(`$(sqlite3Dir)`, `((\d+)\.(\d+)\.(\d+)\.(\d+))\\?$`).Groups)</_SqliteVersion>
|
||||
+ <_SqliteVersion>$([System.Text.RegularExpressions.Regex]::Match(`0.0.0.0`, `((\d+)\.(\d+)\.(\d+)\.(\d+))\\?$`).Groups)</_SqliteVersion>
|
||||
<SqliteVersion>$(_SqliteVersion.Split(`;`)[1])</SqliteVersion>
|
||||
<SqliteMajorVersion>$(_SqliteVersion.Split(`;`)[2])</SqliteMajorVersion>
|
||||
<SqliteMinorVersion>$(_SqliteVersion.Split(`;`)[3])</SqliteMinorVersion>
|
||||
@@ -49,6 +49,7 @@ $(eval $(call gb_Module_add_check_targets,pyuno, \
|
||||
PythonTest_pyuno_pytests_testbz2 \
|
||||
PythonTest_pyuno_pytests_testpip \
|
||||
PythonTest_pyuno_pytests_testsetuptools \
|
||||
PythonTest_pyuno_pytests_testsqlite3 \
|
||||
PythonTest_pyuno_pytests_testvenv \
|
||||
))
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
|
||||
#
|
||||
# This file is part of the LibreOffice project.
|
||||
#
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
#
|
||||
|
||||
$(eval $(call gb_PythonTest_PythonTest,pyuno_pytests_testsqlite3))
|
||||
|
||||
$(eval $(call gb_PythonTest_add_modules,pyuno_pytests_testsqlite3,$(SRCDIR)/pyuno/qa/pytests,\
|
||||
testsqlite3 \
|
||||
))
|
||||
|
||||
# vim: set noet sw=4 ts=4:
|
||||
@@ -0,0 +1,14 @@
|
||||
import os
|
||||
import unittest
|
||||
|
||||
# I want to ensure that import sqlite3 works on all platforms
|
||||
class SQLITE3Test(unittest.TestCase):
|
||||
def test_sqlite3_import(self):
|
||||
import sqlite3
|
||||
|
||||
# use imported sqlite3 module for pyflakes
|
||||
with open(os.devnull, "w") as devnull:
|
||||
print(str(sqlite3), file=devnull)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user