external/lxml/UnpackedTarball_lxml.mk                   |    6 
 external/lxml/replace-setuptools-with-distutils.patch.1 |   12 
 external/python3/ExternalPackage_python3.mk             |  983 +++++++++++++++-
 external/python3/UnpackedTarball_python3.mk             |   16 
 external/python3/generateExternalPackage.py             |    2 
 pyuno/Module_pyuno.mk                                   |    6 
 pyuno/PythonTest_pyuno_pytests_testpip.mk               |   16 
 pyuno/qa/pytests/testpip.py                             |   14 
 8 files changed, 1009 insertions(+), 46 deletions(-)

New commits:
commit 47e110fc66292e76152252a90a0e20580c33c13d
Author:     Xisco Fauli <xiscofa...@libreoffice.org>
AuthorDate: Wed Jan 15 11:24:06 2025 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Jan 21 22:05:50 2025 +0100

    tdf#162786, tdf#161947: Add support for setuptools and pip
    
    For that, just unzip the wheel files to the Lib directory
    
    Change-Id: I3998e427aeadb840b626ebbb6ce91938de47d2b2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/180271
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>
    Tested-by: Jenkins

diff --git a/external/lxml/UnpackedTarball_lxml.mk 
b/external/lxml/UnpackedTarball_lxml.mk
index b0e564a6c4bd..083ee6c961a7 100644
--- a/external/lxml/UnpackedTarball_lxml.mk
+++ b/external/lxml/UnpackedTarball_lxml.mk
@@ -13,10 +13,4 @@ $(eval $(call 
gb_UnpackedTarball_set_tarball,lxml,$(LXML_TARBALL)))
 
 $(eval $(call gb_UnpackedTarball_set_patchlevel,lxml,0))
 
-ifneq ($(OS),MACOSX)
-$(eval $(call gb_UnpackedTarball_add_patches,lxml, \
-       external/lxml/replace-setuptools-with-distutils.patch.1 \
-))
-endif
-
 # vim: set noet sw=4 ts=4:
diff --git a/external/lxml/replace-setuptools-with-distutils.patch.1 
b/external/lxml/replace-setuptools-with-distutils.patch.1
deleted file mode 100644
index 17fb51278d81..000000000000
--- a/external/lxml/replace-setuptools-with-distutils.patch.1
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur lxml.org/setupinfo.py lxml/setupinfo.py
---- lxml.org/setupinfo.py      2023-10-20 10:32:17.921500435 +0200
-+++ lxml/setupinfo.py  2023-10-20 10:33:40.303323572 +0200
-@@ -4,7 +4,7 @@
- import os.path
- import subprocess
-
--from setuptools.command.build_ext import build_ext as _build_ext
-+from distutils.command.build_ext import build_ext as _build_ext
- from distutils.core import Extension
- from distutils.errors import CompileError, DistutilsOptionError
- from versioninfo import get_base_dir
diff --git a/external/python3/ExternalPackage_python3.mk 
b/external/python3/ExternalPackage_python3.mk
index c948de3a7513..c22c10ff4f7c 100644
--- a/external/python3/ExternalPackage_python3.mk
+++ b/external/python3/ExternalPackage_python3.mk
@@ -363,6 +363,11 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/__phello__/ham/eggs.py \
 ))
 
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/_distutils_hack,\
+       Lib/_distutils_hack/__init__.py \
+       Lib/_distutils_hack/override.py \
+))
+
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/asyncio,\
        Lib/asyncio/__init__.py \
        Lib/asyncio/__main__.py \
@@ -424,17 +429,13 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 ))
 
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ctypes/macholib,\
-       Lib/ctypes/macholib/README.ctypes \
        Lib/ctypes/macholib/__init__.py \
        Lib/ctypes/macholib/dyld.py \
        Lib/ctypes/macholib/dylib.py \
-       Lib/ctypes/macholib/fetch_macholib \
-       Lib/ctypes/macholib/fetch_macholib.bat \
        Lib/ctypes/macholib/framework.py \
 ))
 
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/distutils,\
-       Lib/distutils/README \
        Lib/distutils/__init__.py \
        Lib/distutils/_msvccompiler.py \
        Lib/distutils/archive_util.py \
@@ -477,7 +478,6 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/distutils/command/build_scripts.py \
        Lib/distutils/command/check.py \
        Lib/distutils/command/clean.py \
-       Lib/distutils/command/command_template \
        Lib/distutils/command/config.py \
        Lib/distutils/command/install.py \
        Lib/distutils/command/install_data.py \
@@ -496,7 +496,6 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/email/_header_value_parser.py \
        Lib/email/_parseaddr.py \
        Lib/email/_policybase.py \
-       Lib/email/architecture.rst \
        Lib/email/base64mime.py \
        Lib/email/charset.py \
        Lib/email/contentmanager.py \
@@ -657,11 +656,6 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/ensurepip/_uninstall.py \
 ))
 
-$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/ensurepip/_bundled,\
-       Lib/ensurepip/_bundled/pip-24.0-py3-none-any.whl \
-       Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl \
-))
-
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/html,\
        Lib/html/__init__.py \
        Lib/html/entities.py \
@@ -718,8 +712,6 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
 ))
 
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/lib2to3,\
-       Lib/lib2to3/Grammar.txt \
-       Lib/lib2to3/PatternGrammar.txt \
        Lib/lib2to3/__init__.py \
        Lib/lib2to3/__main__.py \
        Lib/lib2to3/btm_matcher.py \
@@ -845,9 +837,743 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/multiprocessing/dummy/connection.py \
 ))
 
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip,\
+       Lib/pip/__init__.py \
+       Lib/pip/__main__.py \
+       Lib/pip/__pip-runner__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal,\
+       Lib/pip/_internal/__init__.py \
+       Lib/pip/_internal/build_env.py \
+       Lib/pip/_internal/cache.py \
+       Lib/pip/_internal/configuration.py \
+       Lib/pip/_internal/exceptions.py \
+       Lib/pip/_internal/main.py \
+       Lib/pip/_internal/pyproject.py \
+       Lib/pip/_internal/self_outdated_check.py \
+       Lib/pip/_internal/wheel_builder.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/cli,\
+       Lib/pip/_internal/cli/__init__.py \
+       Lib/pip/_internal/cli/autocompletion.py \
+       Lib/pip/_internal/cli/base_command.py \
+       Lib/pip/_internal/cli/cmdoptions.py \
+       Lib/pip/_internal/cli/command_context.py \
+       Lib/pip/_internal/cli/main.py \
+       Lib/pip/_internal/cli/main_parser.py \
+       Lib/pip/_internal/cli/parser.py \
+       Lib/pip/_internal/cli/progress_bars.py \
+       Lib/pip/_internal/cli/req_command.py \
+       Lib/pip/_internal/cli/spinners.py \
+       Lib/pip/_internal/cli/status_codes.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/commands,\
+       Lib/pip/_internal/commands/__init__.py \
+       Lib/pip/_internal/commands/cache.py \
+       Lib/pip/_internal/commands/check.py \
+       Lib/pip/_internal/commands/completion.py \
+       Lib/pip/_internal/commands/configuration.py \
+       Lib/pip/_internal/commands/debug.py \
+       Lib/pip/_internal/commands/download.py \
+       Lib/pip/_internal/commands/freeze.py \
+       Lib/pip/_internal/commands/hash.py \
+       Lib/pip/_internal/commands/help.py \
+       Lib/pip/_internal/commands/index.py \
+       Lib/pip/_internal/commands/inspect.py \
+       Lib/pip/_internal/commands/install.py \
+       Lib/pip/_internal/commands/list.py \
+       Lib/pip/_internal/commands/search.py \
+       Lib/pip/_internal/commands/show.py \
+       Lib/pip/_internal/commands/uninstall.py \
+       Lib/pip/_internal/commands/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/distributions,\
+       Lib/pip/_internal/distributions/__init__.py \
+       Lib/pip/_internal/distributions/base.py \
+       Lib/pip/_internal/distributions/installed.py \
+       Lib/pip/_internal/distributions/sdist.py \
+       Lib/pip/_internal/distributions/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/index,\
+       Lib/pip/_internal/index/__init__.py \
+       Lib/pip/_internal/index/collector.py \
+       Lib/pip/_internal/index/package_finder.py \
+       Lib/pip/_internal/index/sources.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/locations,\
+       Lib/pip/_internal/locations/__init__.py \
+       Lib/pip/_internal/locations/_distutils.py \
+       Lib/pip/_internal/locations/_sysconfig.py \
+       Lib/pip/_internal/locations/base.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/metadata,\
+       Lib/pip/_internal/metadata/__init__.py \
+       Lib/pip/_internal/metadata/_json.py \
+       Lib/pip/_internal/metadata/base.py \
+       Lib/pip/_internal/metadata/pkg_resources.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/metadata/importlib,\
+       Lib/pip/_internal/metadata/importlib/__init__.py \
+       Lib/pip/_internal/metadata/importlib/_compat.py \
+       Lib/pip/_internal/metadata/importlib/_dists.py \
+       Lib/pip/_internal/metadata/importlib/_envs.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/models,\
+       Lib/pip/_internal/models/__init__.py \
+       Lib/pip/_internal/models/candidate.py \
+       Lib/pip/_internal/models/direct_url.py \
+       Lib/pip/_internal/models/format_control.py \
+       Lib/pip/_internal/models/index.py \
+       Lib/pip/_internal/models/installation_report.py \
+       Lib/pip/_internal/models/link.py \
+       Lib/pip/_internal/models/scheme.py \
+       Lib/pip/_internal/models/search_scope.py \
+       Lib/pip/_internal/models/selection_prefs.py \
+       Lib/pip/_internal/models/target_python.py \
+       Lib/pip/_internal/models/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/network,\
+       Lib/pip/_internal/network/__init__.py \
+       Lib/pip/_internal/network/auth.py \
+       Lib/pip/_internal/network/cache.py \
+       Lib/pip/_internal/network/download.py \
+       Lib/pip/_internal/network/lazy_wheel.py \
+       Lib/pip/_internal/network/session.py \
+       Lib/pip/_internal/network/utils.py \
+       Lib/pip/_internal/network/xmlrpc.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations,\
+       Lib/pip/_internal/operations/__init__.py \
+       Lib/pip/_internal/operations/check.py \
+       Lib/pip/_internal/operations/freeze.py \
+       Lib/pip/_internal/operations/prepare.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations/build,\
+       Lib/pip/_internal/operations/build/__init__.py \
+       Lib/pip/_internal/operations/build/build_tracker.py \
+       Lib/pip/_internal/operations/build/metadata.py \
+       Lib/pip/_internal/operations/build/metadata_editable.py \
+       Lib/pip/_internal/operations/build/metadata_legacy.py \
+       Lib/pip/_internal/operations/build/wheel.py \
+       Lib/pip/_internal/operations/build/wheel_editable.py \
+       Lib/pip/_internal/operations/build/wheel_legacy.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/operations/install,\
+       Lib/pip/_internal/operations/install/__init__.py \
+       Lib/pip/_internal/operations/install/editable_legacy.py \
+       Lib/pip/_internal/operations/install/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/req,\
+       Lib/pip/_internal/req/__init__.py \
+       Lib/pip/_internal/req/constructors.py \
+       Lib/pip/_internal/req/req_file.py \
+       Lib/pip/_internal/req/req_install.py \
+       Lib/pip/_internal/req/req_set.py \
+       Lib/pip/_internal/req/req_uninstall.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution,\
+       Lib/pip/_internal/resolution/__init__.py \
+       Lib/pip/_internal/resolution/base.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution/legacy,\
+       Lib/pip/_internal/resolution/legacy/__init__.py \
+       Lib/pip/_internal/resolution/legacy/resolver.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/resolution/resolvelib,\
+       Lib/pip/_internal/resolution/resolvelib/__init__.py \
+       Lib/pip/_internal/resolution/resolvelib/base.py \
+       Lib/pip/_internal/resolution/resolvelib/candidates.py \
+       Lib/pip/_internal/resolution/resolvelib/factory.py \
+       Lib/pip/_internal/resolution/resolvelib/found_candidates.py \
+       Lib/pip/_internal/resolution/resolvelib/provider.py \
+       Lib/pip/_internal/resolution/resolvelib/reporter.py \
+       Lib/pip/_internal/resolution/resolvelib/requirements.py \
+       Lib/pip/_internal/resolution/resolvelib/resolver.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/utils,\
+       Lib/pip/_internal/utils/__init__.py \
+       Lib/pip/_internal/utils/_jaraco_text.py \
+       Lib/pip/_internal/utils/_log.py \
+       Lib/pip/_internal/utils/appdirs.py \
+       Lib/pip/_internal/utils/compat.py \
+       Lib/pip/_internal/utils/compatibility_tags.py \
+       Lib/pip/_internal/utils/datetime.py \
+       Lib/pip/_internal/utils/deprecation.py \
+       Lib/pip/_internal/utils/direct_url_helpers.py \
+       Lib/pip/_internal/utils/egg_link.py \
+       Lib/pip/_internal/utils/encoding.py \
+       Lib/pip/_internal/utils/entrypoints.py \
+       Lib/pip/_internal/utils/filesystem.py \
+       Lib/pip/_internal/utils/filetypes.py \
+       Lib/pip/_internal/utils/glibc.py \
+       Lib/pip/_internal/utils/hashes.py \
+       Lib/pip/_internal/utils/logging.py \
+       Lib/pip/_internal/utils/misc.py \
+       Lib/pip/_internal/utils/models.py \
+       Lib/pip/_internal/utils/packaging.py \
+       Lib/pip/_internal/utils/setuptools_build.py \
+       Lib/pip/_internal/utils/subprocess.py \
+       Lib/pip/_internal/utils/temp_dir.py \
+       Lib/pip/_internal/utils/unpacking.py \
+       Lib/pip/_internal/utils/urls.py \
+       Lib/pip/_internal/utils/virtualenv.py \
+       Lib/pip/_internal/utils/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_internal/vcs,\
+       Lib/pip/_internal/vcs/__init__.py \
+       Lib/pip/_internal/vcs/bazaar.py \
+       Lib/pip/_internal/vcs/git.py \
+       Lib/pip/_internal/vcs/mercurial.py \
+       Lib/pip/_internal/vcs/subversion.py \
+       Lib/pip/_internal/vcs/versioncontrol.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor,\
+       Lib/pip/_vendor/__init__.py \
+       Lib/pip/_vendor/six.py \
+       Lib/pip/_vendor/typing_extensions.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/cachecontrol,\
+       Lib/pip/_vendor/cachecontrol/__init__.py \
+       Lib/pip/_vendor/cachecontrol/_cmd.py \
+       Lib/pip/_vendor/cachecontrol/adapter.py \
+       Lib/pip/_vendor/cachecontrol/cache.py \
+       Lib/pip/_vendor/cachecontrol/controller.py \
+       Lib/pip/_vendor/cachecontrol/filewrapper.py \
+       Lib/pip/_vendor/cachecontrol/heuristics.py \
+       Lib/pip/_vendor/cachecontrol/serialize.py \
+       Lib/pip/_vendor/cachecontrol/wrapper.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/cachecontrol/caches,\
+       Lib/pip/_vendor/cachecontrol/caches/__init__.py \
+       Lib/pip/_vendor/cachecontrol/caches/file_cache.py \
+       Lib/pip/_vendor/cachecontrol/caches/redis_cache.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/certifi,\
+       Lib/pip/_vendor/certifi/__init__.py \
+       Lib/pip/_vendor/certifi/__main__.py \
+       Lib/pip/_vendor/certifi/core.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet,\
+       Lib/pip/_vendor/chardet/__init__.py \
+       Lib/pip/_vendor/chardet/big5freq.py \
+       Lib/pip/_vendor/chardet/big5prober.py \
+       Lib/pip/_vendor/chardet/chardistribution.py \
+       Lib/pip/_vendor/chardet/charsetgroupprober.py \
+       Lib/pip/_vendor/chardet/charsetprober.py \
+       Lib/pip/_vendor/chardet/codingstatemachine.py \
+       Lib/pip/_vendor/chardet/codingstatemachinedict.py \
+       Lib/pip/_vendor/chardet/cp949prober.py \
+       Lib/pip/_vendor/chardet/enums.py \
+       Lib/pip/_vendor/chardet/escprober.py \
+       Lib/pip/_vendor/chardet/escsm.py \
+       Lib/pip/_vendor/chardet/eucjpprober.py \
+       Lib/pip/_vendor/chardet/euckrfreq.py \
+       Lib/pip/_vendor/chardet/euckrprober.py \
+       Lib/pip/_vendor/chardet/euctwfreq.py \
+       Lib/pip/_vendor/chardet/euctwprober.py \
+       Lib/pip/_vendor/chardet/gb2312freq.py \
+       Lib/pip/_vendor/chardet/gb2312prober.py \
+       Lib/pip/_vendor/chardet/hebrewprober.py \
+       Lib/pip/_vendor/chardet/jisfreq.py \
+       Lib/pip/_vendor/chardet/johabfreq.py \
+       Lib/pip/_vendor/chardet/johabprober.py \
+       Lib/pip/_vendor/chardet/jpcntx.py \
+       Lib/pip/_vendor/chardet/langbulgarianmodel.py \
+       Lib/pip/_vendor/chardet/langgreekmodel.py \
+       Lib/pip/_vendor/chardet/langhebrewmodel.py \
+       Lib/pip/_vendor/chardet/langhungarianmodel.py \
+       Lib/pip/_vendor/chardet/langrussianmodel.py \
+       Lib/pip/_vendor/chardet/langthaimodel.py \
+       Lib/pip/_vendor/chardet/langturkishmodel.py \
+       Lib/pip/_vendor/chardet/latin1prober.py \
+       Lib/pip/_vendor/chardet/macromanprober.py \
+       Lib/pip/_vendor/chardet/mbcharsetprober.py \
+       Lib/pip/_vendor/chardet/mbcsgroupprober.py \
+       Lib/pip/_vendor/chardet/mbcssm.py \
+       Lib/pip/_vendor/chardet/resultdict.py \
+       Lib/pip/_vendor/chardet/sbcharsetprober.py \
+       Lib/pip/_vendor/chardet/sbcsgroupprober.py \
+       Lib/pip/_vendor/chardet/sjisprober.py \
+       Lib/pip/_vendor/chardet/universaldetector.py \
+       Lib/pip/_vendor/chardet/utf1632prober.py \
+       Lib/pip/_vendor/chardet/utf8prober.py \
+       Lib/pip/_vendor/chardet/version.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet/cli,\
+       Lib/pip/_vendor/chardet/cli/__init__.py \
+       Lib/pip/_vendor/chardet/cli/chardetect.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/chardet/metadata,\
+       Lib/pip/_vendor/chardet/metadata/__init__.py \
+       Lib/pip/_vendor/chardet/metadata/languages.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/colorama,\
+       Lib/pip/_vendor/colorama/__init__.py \
+       Lib/pip/_vendor/colorama/ansi.py \
+       Lib/pip/_vendor/colorama/ansitowin32.py \
+       Lib/pip/_vendor/colorama/initialise.py \
+       Lib/pip/_vendor/colorama/win32.py \
+       Lib/pip/_vendor/colorama/winterm.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/distlib,\
+       Lib/pip/_vendor/distlib/__init__.py \
+       Lib/pip/_vendor/distlib/compat.py \
+       Lib/pip/_vendor/distlib/database.py \
+       Lib/pip/_vendor/distlib/index.py \
+       Lib/pip/_vendor/distlib/locators.py \
+       Lib/pip/_vendor/distlib/manifest.py \
+       Lib/pip/_vendor/distlib/markers.py \
+       Lib/pip/_vendor/distlib/metadata.py \
+       Lib/pip/_vendor/distlib/resources.py \
+       Lib/pip/_vendor/distlib/scripts.py \
+       Lib/pip/_vendor/distlib/util.py \
+       Lib/pip/_vendor/distlib/version.py \
+       Lib/pip/_vendor/distlib/wheel.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/distro,\
+       Lib/pip/_vendor/distro/__init__.py \
+       Lib/pip/_vendor/distro/__main__.py \
+       Lib/pip/_vendor/distro/distro.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/idna,\
+       Lib/pip/_vendor/idna/__init__.py \
+       Lib/pip/_vendor/idna/codec.py \
+       Lib/pip/_vendor/idna/compat.py \
+       Lib/pip/_vendor/idna/core.py \
+       Lib/pip/_vendor/idna/idnadata.py \
+       Lib/pip/_vendor/idna/intranges.py \
+       Lib/pip/_vendor/idna/package_data.py \
+       Lib/pip/_vendor/idna/uts46data.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/msgpack,\
+       Lib/pip/_vendor/msgpack/__init__.py \
+       Lib/pip/_vendor/msgpack/exceptions.py \
+       Lib/pip/_vendor/msgpack/ext.py \
+       Lib/pip/_vendor/msgpack/fallback.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/packaging,\
+       Lib/pip/_vendor/packaging/__about__.py \
+       Lib/pip/_vendor/packaging/__init__.py \
+       Lib/pip/_vendor/packaging/_manylinux.py \
+       Lib/pip/_vendor/packaging/_musllinux.py \
+       Lib/pip/_vendor/packaging/_structures.py \
+       Lib/pip/_vendor/packaging/markers.py \
+       Lib/pip/_vendor/packaging/requirements.py \
+       Lib/pip/_vendor/packaging/specifiers.py \
+       Lib/pip/_vendor/packaging/tags.py \
+       Lib/pip/_vendor/packaging/utils.py \
+       Lib/pip/_vendor/packaging/version.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pkg_resources,\
+       Lib/pip/_vendor/pkg_resources/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/platformdirs,\
+       Lib/pip/_vendor/platformdirs/__init__.py \
+       Lib/pip/_vendor/platformdirs/__main__.py \
+       Lib/pip/_vendor/platformdirs/android.py \
+       Lib/pip/_vendor/platformdirs/api.py \
+       Lib/pip/_vendor/platformdirs/macos.py \
+       Lib/pip/_vendor/platformdirs/unix.py \
+       Lib/pip/_vendor/platformdirs/version.py \
+       Lib/pip/_vendor/platformdirs/windows.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments,\
+       Lib/pip/_vendor/pygments/__init__.py \
+       Lib/pip/_vendor/pygments/__main__.py \
+       Lib/pip/_vendor/pygments/cmdline.py \
+       Lib/pip/_vendor/pygments/console.py \
+       Lib/pip/_vendor/pygments/filter.py \
+       Lib/pip/_vendor/pygments/formatter.py \
+       Lib/pip/_vendor/pygments/lexer.py \
+       Lib/pip/_vendor/pygments/modeline.py \
+       Lib/pip/_vendor/pygments/plugin.py \
+       Lib/pip/_vendor/pygments/regexopt.py \
+       Lib/pip/_vendor/pygments/scanner.py \
+       Lib/pip/_vendor/pygments/sphinxext.py \
+       Lib/pip/_vendor/pygments/style.py \
+       Lib/pip/_vendor/pygments/token.py \
+       Lib/pip/_vendor/pygments/unistring.py \
+       Lib/pip/_vendor/pygments/util.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/filters,\
+       Lib/pip/_vendor/pygments/filters/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/formatters,\
+       Lib/pip/_vendor/pygments/formatters/__init__.py \
+       Lib/pip/_vendor/pygments/formatters/_mapping.py \
+       Lib/pip/_vendor/pygments/formatters/bbcode.py \
+       Lib/pip/_vendor/pygments/formatters/groff.py \
+       Lib/pip/_vendor/pygments/formatters/html.py \
+       Lib/pip/_vendor/pygments/formatters/img.py \
+       Lib/pip/_vendor/pygments/formatters/irc.py \
+       Lib/pip/_vendor/pygments/formatters/latex.py \
+       Lib/pip/_vendor/pygments/formatters/other.py \
+       Lib/pip/_vendor/pygments/formatters/pangomarkup.py \
+       Lib/pip/_vendor/pygments/formatters/rtf.py \
+       Lib/pip/_vendor/pygments/formatters/svg.py \
+       Lib/pip/_vendor/pygments/formatters/terminal.py \
+       Lib/pip/_vendor/pygments/formatters/terminal256.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/lexers,\
+       Lib/pip/_vendor/pygments/lexers/__init__.py \
+       Lib/pip/_vendor/pygments/lexers/_mapping.py \
+       Lib/pip/_vendor/pygments/lexers/python.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pygments/styles,\
+       Lib/pip/_vendor/pygments/styles/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyparsing,\
+       Lib/pip/_vendor/pyparsing/__init__.py \
+       Lib/pip/_vendor/pyparsing/actions.py \
+       Lib/pip/_vendor/pyparsing/common.py \
+       Lib/pip/_vendor/pyparsing/core.py \
+       Lib/pip/_vendor/pyparsing/exceptions.py \
+       Lib/pip/_vendor/pyparsing/helpers.py \
+       Lib/pip/_vendor/pyparsing/results.py \
+       Lib/pip/_vendor/pyparsing/testing.py \
+       Lib/pip/_vendor/pyparsing/unicode.py \
+       Lib/pip/_vendor/pyparsing/util.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyparsing/diagram,\
+       Lib/pip/_vendor/pyparsing/diagram/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyproject_hooks,\
+       Lib/pip/_vendor/pyproject_hooks/__init__.py \
+       Lib/pip/_vendor/pyproject_hooks/_compat.py \
+       Lib/pip/_vendor/pyproject_hooks/_impl.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/pyproject_hooks/_in_process,\
+       Lib/pip/_vendor/pyproject_hooks/_in_process/__init__.py \
+       Lib/pip/_vendor/pyproject_hooks/_in_process/_in_process.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/requests,\
+       Lib/pip/_vendor/requests/__init__.py \
+       Lib/pip/_vendor/requests/__version__.py \
+       Lib/pip/_vendor/requests/_internal_utils.py \
+       Lib/pip/_vendor/requests/adapters.py \
+       Lib/pip/_vendor/requests/api.py \
+       Lib/pip/_vendor/requests/auth.py \
+       Lib/pip/_vendor/requests/certs.py \
+       Lib/pip/_vendor/requests/compat.py \
+       Lib/pip/_vendor/requests/cookies.py \
+       Lib/pip/_vendor/requests/exceptions.py \
+       Lib/pip/_vendor/requests/help.py \
+       Lib/pip/_vendor/requests/hooks.py \
+       Lib/pip/_vendor/requests/models.py \
+       Lib/pip/_vendor/requests/packages.py \
+       Lib/pip/_vendor/requests/sessions.py \
+       Lib/pip/_vendor/requests/status_codes.py \
+       Lib/pip/_vendor/requests/structures.py \
+       Lib/pip/_vendor/requests/utils.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/resolvelib,\
+       Lib/pip/_vendor/resolvelib/__init__.py \
+       Lib/pip/_vendor/resolvelib/providers.py \
+       Lib/pip/_vendor/resolvelib/reporters.py \
+       Lib/pip/_vendor/resolvelib/resolvers.py \
+       Lib/pip/_vendor/resolvelib/structs.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/resolvelib/compat,\
+       Lib/pip/_vendor/resolvelib/compat/__init__.py \
+       Lib/pip/_vendor/resolvelib/compat/collections_abc.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/rich,\
+       Lib/pip/_vendor/rich/__init__.py \
+       Lib/pip/_vendor/rich/__main__.py \
+       Lib/pip/_vendor/rich/_cell_widths.py \
+       Lib/pip/_vendor/rich/_emoji_codes.py \
+       Lib/pip/_vendor/rich/_emoji_replace.py \
+       Lib/pip/_vendor/rich/_export_format.py \
+       Lib/pip/_vendor/rich/_extension.py \
+       Lib/pip/_vendor/rich/_fileno.py \
+       Lib/pip/_vendor/rich/_inspect.py \
+       Lib/pip/_vendor/rich/_log_render.py \
+       Lib/pip/_vendor/rich/_loop.py \
+       Lib/pip/_vendor/rich/_null_file.py \
+       Lib/pip/_vendor/rich/_palettes.py \
+       Lib/pip/_vendor/rich/_pick.py \
+       Lib/pip/_vendor/rich/_ratio.py \
+       Lib/pip/_vendor/rich/_spinners.py \
+       Lib/pip/_vendor/rich/_stack.py \
+       Lib/pip/_vendor/rich/_timer.py \
+       Lib/pip/_vendor/rich/_win32_console.py \
+       Lib/pip/_vendor/rich/_windows.py \
+       Lib/pip/_vendor/rich/_windows_renderer.py \
+       Lib/pip/_vendor/rich/_wrap.py \
+       Lib/pip/_vendor/rich/abc.py \
+       Lib/pip/_vendor/rich/align.py \
+       Lib/pip/_vendor/rich/ansi.py \
+       Lib/pip/_vendor/rich/bar.py \
+       Lib/pip/_vendor/rich/box.py \
+       Lib/pip/_vendor/rich/cells.py \
+       Lib/pip/_vendor/rich/color.py \
+       Lib/pip/_vendor/rich/color_triplet.py \
+       Lib/pip/_vendor/rich/columns.py \
+       Lib/pip/_vendor/rich/console.py \
+       Lib/pip/_vendor/rich/constrain.py \
+       Lib/pip/_vendor/rich/containers.py \
+       Lib/pip/_vendor/rich/control.py \
+       Lib/pip/_vendor/rich/default_styles.py \
+       Lib/pip/_vendor/rich/diagnose.py \
+       Lib/pip/_vendor/rich/emoji.py \
+       Lib/pip/_vendor/rich/errors.py \
+       Lib/pip/_vendor/rich/file_proxy.py \
+       Lib/pip/_vendor/rich/filesize.py \
+       Lib/pip/_vendor/rich/highlighter.py \
+       Lib/pip/_vendor/rich/json.py \
+       Lib/pip/_vendor/rich/jupyter.py \
+       Lib/pip/_vendor/rich/layout.py \
+       Lib/pip/_vendor/rich/live.py \
+       Lib/pip/_vendor/rich/live_render.py \
+       Lib/pip/_vendor/rich/logging.py \
+       Lib/pip/_vendor/rich/markup.py \
+       Lib/pip/_vendor/rich/measure.py \
+       Lib/pip/_vendor/rich/padding.py \
+       Lib/pip/_vendor/rich/pager.py \
+       Lib/pip/_vendor/rich/palette.py \
+       Lib/pip/_vendor/rich/panel.py \
+       Lib/pip/_vendor/rich/pretty.py \
+       Lib/pip/_vendor/rich/progress.py \
+       Lib/pip/_vendor/rich/progress_bar.py \
+       Lib/pip/_vendor/rich/prompt.py \
+       Lib/pip/_vendor/rich/protocol.py \
+       Lib/pip/_vendor/rich/region.py \
+       Lib/pip/_vendor/rich/repr.py \
+       Lib/pip/_vendor/rich/rule.py \
+       Lib/pip/_vendor/rich/scope.py \
+       Lib/pip/_vendor/rich/screen.py \
+       Lib/pip/_vendor/rich/segment.py \
+       Lib/pip/_vendor/rich/spinner.py \
+       Lib/pip/_vendor/rich/status.py \
+       Lib/pip/_vendor/rich/style.py \
+       Lib/pip/_vendor/rich/styled.py \
+       Lib/pip/_vendor/rich/syntax.py \
+       Lib/pip/_vendor/rich/table.py \
+       Lib/pip/_vendor/rich/terminal_theme.py \
+       Lib/pip/_vendor/rich/text.py \
+       Lib/pip/_vendor/rich/theme.py \
+       Lib/pip/_vendor/rich/themes.py \
+       Lib/pip/_vendor/rich/traceback.py \
+       Lib/pip/_vendor/rich/tree.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/tenacity,\
+       Lib/pip/_vendor/tenacity/__init__.py \
+       Lib/pip/_vendor/tenacity/_asyncio.py \
+       Lib/pip/_vendor/tenacity/_utils.py \
+       Lib/pip/_vendor/tenacity/after.py \
+       Lib/pip/_vendor/tenacity/before.py \
+       Lib/pip/_vendor/tenacity/before_sleep.py \
+       Lib/pip/_vendor/tenacity/nap.py \
+       Lib/pip/_vendor/tenacity/retry.py \
+       Lib/pip/_vendor/tenacity/stop.py \
+       Lib/pip/_vendor/tenacity/tornadoweb.py \
+       Lib/pip/_vendor/tenacity/wait.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/tomli,\
+       Lib/pip/_vendor/tomli/__init__.py \
+       Lib/pip/_vendor/tomli/_parser.py \
+       Lib/pip/_vendor/tomli/_re.py \
+       Lib/pip/_vendor/tomli/_types.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/truststore,\
+       Lib/pip/_vendor/truststore/__init__.py \
+       Lib/pip/_vendor/truststore/_api.py \
+       Lib/pip/_vendor/truststore/_macos.py \
+       Lib/pip/_vendor/truststore/_openssl.py \
+       Lib/pip/_vendor/truststore/_ssl_constants.py \
+       Lib/pip/_vendor/truststore/_windows.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3,\
+       Lib/pip/_vendor/urllib3/__init__.py \
+       Lib/pip/_vendor/urllib3/_collections.py \
+       Lib/pip/_vendor/urllib3/_version.py \
+       Lib/pip/_vendor/urllib3/connection.py \
+       Lib/pip/_vendor/urllib3/connectionpool.py \
+       Lib/pip/_vendor/urllib3/exceptions.py \
+       Lib/pip/_vendor/urllib3/fields.py \
+       Lib/pip/_vendor/urllib3/filepost.py \
+       Lib/pip/_vendor/urllib3/poolmanager.py \
+       Lib/pip/_vendor/urllib3/request.py \
+       Lib/pip/_vendor/urllib3/response.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/contrib,\
+       Lib/pip/_vendor/urllib3/contrib/__init__.py \
+       Lib/pip/_vendor/urllib3/contrib/_appengine_environ.py \
+       Lib/pip/_vendor/urllib3/contrib/appengine.py \
+       Lib/pip/_vendor/urllib3/contrib/ntlmpool.py \
+       Lib/pip/_vendor/urllib3/contrib/pyopenssl.py \
+       Lib/pip/_vendor/urllib3/contrib/securetransport.py \
+       Lib/pip/_vendor/urllib3/contrib/socks.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/contrib/_securetransport,\
+       Lib/pip/_vendor/urllib3/contrib/_securetransport/__init__.py \
+       Lib/pip/_vendor/urllib3/contrib/_securetransport/bindings.py \
+       Lib/pip/_vendor/urllib3/contrib/_securetransport/low_level.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/packages,\
+       Lib/pip/_vendor/urllib3/packages/__init__.py \
+       Lib/pip/_vendor/urllib3/packages/six.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/packages/backports,\
+       Lib/pip/_vendor/urllib3/packages/backports/__init__.py \
+       Lib/pip/_vendor/urllib3/packages/backports/makefile.py \
+       Lib/pip/_vendor/urllib3/packages/backports/weakref_finalize.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/urllib3/util,\
+       Lib/pip/_vendor/urllib3/util/__init__.py \
+       Lib/pip/_vendor/urllib3/util/connection.py \
+       Lib/pip/_vendor/urllib3/util/proxy.py \
+       Lib/pip/_vendor/urllib3/util/queue.py \
+       Lib/pip/_vendor/urllib3/util/request.py \
+       Lib/pip/_vendor/urllib3/util/response.py \
+       Lib/pip/_vendor/urllib3/util/retry.py \
+       Lib/pip/_vendor/urllib3/util/ssl_.py \
+       Lib/pip/_vendor/urllib3/util/ssl_match_hostname.py \
+       Lib/pip/_vendor/urllib3/util/ssltransport.py \
+       Lib/pip/_vendor/urllib3/util/timeout.py \
+       Lib/pip/_vendor/urllib3/util/url.py \
+       Lib/pip/_vendor/urllib3/util/wait.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pip/_vendor/webencodings,\
+       Lib/pip/_vendor/webencodings/__init__.py \
+       Lib/pip/_vendor/webencodings/labels.py \
+       Lib/pip/_vendor/webencodings/mklabels.py \
+       Lib/pip/_vendor/webencodings/tests.py \
+       Lib/pip/_vendor/webencodings/x_user_defined.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources,\
+       Lib/pkg_resources/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor,\
+       Lib/pkg_resources/_vendor/__init__.py \
+       Lib/pkg_resources/_vendor/appdirs.py \
+       Lib/pkg_resources/_vendor/zipp.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/importlib_resources,\
+       Lib/pkg_resources/_vendor/importlib_resources/__init__.py \
+       Lib/pkg_resources/_vendor/importlib_resources/_adapters.py \
+       Lib/pkg_resources/_vendor/importlib_resources/_common.py \
+       Lib/pkg_resources/_vendor/importlib_resources/_compat.py \
+       Lib/pkg_resources/_vendor/importlib_resources/_itertools.py \
+       Lib/pkg_resources/_vendor/importlib_resources/_legacy.py \
+       Lib/pkg_resources/_vendor/importlib_resources/abc.py \
+       Lib/pkg_resources/_vendor/importlib_resources/readers.py \
+       Lib/pkg_resources/_vendor/importlib_resources/simple.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/jaraco,\
+       Lib/pkg_resources/_vendor/jaraco/__init__.py \
+       Lib/pkg_resources/_vendor/jaraco/context.py \
+       Lib/pkg_resources/_vendor/jaraco/functools.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/jaraco/text,\
+       Lib/pkg_resources/_vendor/jaraco/text/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/more_itertools,\
+       Lib/pkg_resources/_vendor/more_itertools/__init__.py \
+       Lib/pkg_resources/_vendor/more_itertools/more.py \
+       Lib/pkg_resources/_vendor/more_itertools/recipes.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/packaging,\
+       Lib/pkg_resources/_vendor/packaging/__about__.py \
+       Lib/pkg_resources/_vendor/packaging/__init__.py \
+       Lib/pkg_resources/_vendor/packaging/_manylinux.py \
+       Lib/pkg_resources/_vendor/packaging/_musllinux.py \
+       Lib/pkg_resources/_vendor/packaging/_structures.py \
+       Lib/pkg_resources/_vendor/packaging/markers.py \
+       Lib/pkg_resources/_vendor/packaging/requirements.py \
+       Lib/pkg_resources/_vendor/packaging/specifiers.py \
+       Lib/pkg_resources/_vendor/packaging/tags.py \
+       Lib/pkg_resources/_vendor/packaging/utils.py \
+       Lib/pkg_resources/_vendor/packaging/version.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/pyparsing,\
+       Lib/pkg_resources/_vendor/pyparsing/__init__.py \
+       Lib/pkg_resources/_vendor/pyparsing/actions.py \
+       Lib/pkg_resources/_vendor/pyparsing/common.py \
+       Lib/pkg_resources/_vendor/pyparsing/core.py \
+       Lib/pkg_resources/_vendor/pyparsing/exceptions.py \
+       Lib/pkg_resources/_vendor/pyparsing/helpers.py \
+       Lib/pkg_resources/_vendor/pyparsing/results.py \
+       Lib/pkg_resources/_vendor/pyparsing/testing.py \
+       Lib/pkg_resources/_vendor/pyparsing/unicode.py \
+       Lib/pkg_resources/_vendor/pyparsing/util.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/_vendor/pyparsing/diagram,\
+       Lib/pkg_resources/_vendor/pyparsing/diagram/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pkg_resources/extern,\
+       Lib/pkg_resources/extern/__init__.py \
+))
+
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/pydoc_data,\
        Lib/pydoc_data/__init__.py \
-       Lib/pydoc_data/_pydoc.css \
        Lib/pydoc_data/topics.py \
 ))
 
@@ -859,8 +1585,233 @@ $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/p
        Lib/re/_parser.py \
 ))
 
-$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/site-packages,\
-       Lib/site-packages/README.txt \
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools,\
+       Lib/setuptools/__init__.py \
+       Lib/setuptools/_deprecation_warning.py \
+       Lib/setuptools/_entry_points.py \
+       Lib/setuptools/_imp.py \
+       Lib/setuptools/_importlib.py \
+       Lib/setuptools/_itertools.py \
+       Lib/setuptools/_path.py \
+       Lib/setuptools/_reqs.py \
+       Lib/setuptools/archive_util.py \
+       Lib/setuptools/build_meta.py \
+       Lib/setuptools/dep_util.py \
+       Lib/setuptools/depends.py \
+       Lib/setuptools/discovery.py \
+       Lib/setuptools/dist.py \
+       Lib/setuptools/errors.py \
+       Lib/setuptools/extension.py \
+       Lib/setuptools/glob.py \
+       Lib/setuptools/installer.py \
+       Lib/setuptools/launch.py \
+       Lib/setuptools/logging.py \
+       Lib/setuptools/monkey.py \
+       Lib/setuptools/msvc.py \
+       Lib/setuptools/namespaces.py \
+       Lib/setuptools/package_index.py \
+       Lib/setuptools/py34compat.py \
+       Lib/setuptools/sandbox.py \
+       Lib/setuptools/unicode_utils.py \
+       Lib/setuptools/version.py \
+       Lib/setuptools/wheel.py \
+       Lib/setuptools/windows_support.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_distutils,\
+       Lib/setuptools/_distutils/__init__.py \
+       Lib/setuptools/_distutils/_collections.py \
+       Lib/setuptools/_distutils/_functools.py \
+       Lib/setuptools/_distutils/_macos_compat.py \
+       Lib/setuptools/_distutils/_msvccompiler.py \
+       Lib/setuptools/_distutils/archive_util.py \
+       Lib/setuptools/_distutils/bcppcompiler.py \
+       Lib/setuptools/_distutils/ccompiler.py \
+       Lib/setuptools/_distutils/cmd.py \
+       Lib/setuptools/_distutils/config.py \
+       Lib/setuptools/_distutils/core.py \
+       Lib/setuptools/_distutils/cygwinccompiler.py \
+       Lib/setuptools/_distutils/debug.py \
+       Lib/setuptools/_distutils/dep_util.py \
+       Lib/setuptools/_distutils/dir_util.py \
+       Lib/setuptools/_distutils/dist.py \
+       Lib/setuptools/_distutils/errors.py \
+       Lib/setuptools/_distutils/extension.py \
+       Lib/setuptools/_distutils/fancy_getopt.py \
+       Lib/setuptools/_distutils/file_util.py \
+       Lib/setuptools/_distutils/filelist.py \
+       Lib/setuptools/_distutils/log.py \
+       Lib/setuptools/_distutils/msvc9compiler.py \
+       Lib/setuptools/_distutils/msvccompiler.py \
+       Lib/setuptools/_distutils/py38compat.py \
+       Lib/setuptools/_distutils/py39compat.py \
+       Lib/setuptools/_distutils/spawn.py \
+       Lib/setuptools/_distutils/sysconfig.py \
+       Lib/setuptools/_distutils/text_file.py \
+       Lib/setuptools/_distutils/unixccompiler.py \
+       Lib/setuptools/_distutils/util.py \
+       Lib/setuptools/_distutils/version.py \
+       Lib/setuptools/_distutils/versionpredicate.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_distutils/command,\
+       Lib/setuptools/_distutils/command/__init__.py \
+       Lib/setuptools/_distutils/command/_framework_compat.py \
+       Lib/setuptools/_distutils/command/bdist.py \
+       Lib/setuptools/_distutils/command/bdist_dumb.py \
+       Lib/setuptools/_distutils/command/bdist_rpm.py \
+       Lib/setuptools/_distutils/command/build.py \
+       Lib/setuptools/_distutils/command/build_clib.py \
+       Lib/setuptools/_distutils/command/build_ext.py \
+       Lib/setuptools/_distutils/command/build_py.py \
+       Lib/setuptools/_distutils/command/build_scripts.py \
+       Lib/setuptools/_distutils/command/check.py \
+       Lib/setuptools/_distutils/command/clean.py \
+       Lib/setuptools/_distutils/command/config.py \
+       Lib/setuptools/_distutils/command/install.py \
+       Lib/setuptools/_distutils/command/install_data.py \
+       Lib/setuptools/_distutils/command/install_egg_info.py \
+       Lib/setuptools/_distutils/command/install_headers.py \
+       Lib/setuptools/_distutils/command/install_lib.py \
+       Lib/setuptools/_distutils/command/install_scripts.py \
+       Lib/setuptools/_distutils/command/py37compat.py \
+       Lib/setuptools/_distutils/command/register.py \
+       Lib/setuptools/_distutils/command/sdist.py \
+       Lib/setuptools/_distutils/command/upload.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor,\
+       Lib/setuptools/_vendor/__init__.py \
+       Lib/setuptools/_vendor/ordered_set.py \
+       Lib/setuptools/_vendor/typing_extensions.py \
+       Lib/setuptools/_vendor/zipp.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/importlib_metadata,\
+       Lib/setuptools/_vendor/importlib_metadata/__init__.py \
+       Lib/setuptools/_vendor/importlib_metadata/_adapters.py \
+       Lib/setuptools/_vendor/importlib_metadata/_collections.py \
+       Lib/setuptools/_vendor/importlib_metadata/_compat.py \
+       Lib/setuptools/_vendor/importlib_metadata/_functools.py \
+       Lib/setuptools/_vendor/importlib_metadata/_itertools.py \
+       Lib/setuptools/_vendor/importlib_metadata/_meta.py \
+       Lib/setuptools/_vendor/importlib_metadata/_text.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/importlib_resources,\
+       Lib/setuptools/_vendor/importlib_resources/__init__.py \
+       Lib/setuptools/_vendor/importlib_resources/_adapters.py \
+       Lib/setuptools/_vendor/importlib_resources/_common.py \
+       Lib/setuptools/_vendor/importlib_resources/_compat.py \
+       Lib/setuptools/_vendor/importlib_resources/_itertools.py \
+       Lib/setuptools/_vendor/importlib_resources/_legacy.py \
+       Lib/setuptools/_vendor/importlib_resources/abc.py \
+       Lib/setuptools/_vendor/importlib_resources/readers.py \
+       Lib/setuptools/_vendor/importlib_resources/simple.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/jaraco,\
+       Lib/setuptools/_vendor/jaraco/__init__.py \
+       Lib/setuptools/_vendor/jaraco/context.py \
+       Lib/setuptools/_vendor/jaraco/functools.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/jaraco/text,\
+       Lib/setuptools/_vendor/jaraco/text/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/more_itertools,\
+       Lib/setuptools/_vendor/more_itertools/__init__.py \
+       Lib/setuptools/_vendor/more_itertools/more.py \
+       Lib/setuptools/_vendor/more_itertools/recipes.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/packaging,\
+       Lib/setuptools/_vendor/packaging/__about__.py \
+       Lib/setuptools/_vendor/packaging/__init__.py \
+       Lib/setuptools/_vendor/packaging/_manylinux.py \
+       Lib/setuptools/_vendor/packaging/_musllinux.py \
+       Lib/setuptools/_vendor/packaging/_structures.py \
+       Lib/setuptools/_vendor/packaging/markers.py \
+       Lib/setuptools/_vendor/packaging/requirements.py \
+       Lib/setuptools/_vendor/packaging/specifiers.py \
+       Lib/setuptools/_vendor/packaging/tags.py \
+       Lib/setuptools/_vendor/packaging/utils.py \
+       Lib/setuptools/_vendor/packaging/version.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/pyparsing,\
+       Lib/setuptools/_vendor/pyparsing/__init__.py \
+       Lib/setuptools/_vendor/pyparsing/actions.py \
+       Lib/setuptools/_vendor/pyparsing/common.py \
+       Lib/setuptools/_vendor/pyparsing/core.py \
+       Lib/setuptools/_vendor/pyparsing/exceptions.py \
+       Lib/setuptools/_vendor/pyparsing/helpers.py \
+       Lib/setuptools/_vendor/pyparsing/results.py \
+       Lib/setuptools/_vendor/pyparsing/testing.py \
+       Lib/setuptools/_vendor/pyparsing/unicode.py \
+       Lib/setuptools/_vendor/pyparsing/util.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/pyparsing/diagram,\
+       Lib/setuptools/_vendor/pyparsing/diagram/__init__.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/_vendor/tomli,\
+       Lib/setuptools/_vendor/tomli/__init__.py \
+       Lib/setuptools/_vendor/tomli/_parser.py \
+       Lib/setuptools/_vendor/tomli/_re.py \
+       Lib/setuptools/_vendor/tomli/_types.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/command,\
+       Lib/setuptools/command/__init__.py \
+       Lib/setuptools/command/alias.py \
+       Lib/setuptools/command/bdist_egg.py \
+       Lib/setuptools/command/bdist_rpm.py \
+       Lib/setuptools/command/build.py \
+       Lib/setuptools/command/build_clib.py \
+       Lib/setuptools/command/build_ext.py \
+       Lib/setuptools/command/build_py.py \
+       Lib/setuptools/command/develop.py \
+       Lib/setuptools/command/dist_info.py \
+       Lib/setuptools/command/easy_install.py \
+       Lib/setuptools/command/editable_wheel.py \
+       Lib/setuptools/command/egg_info.py \
+       Lib/setuptools/command/install.py \
+       Lib/setuptools/command/install_egg_info.py \
+       Lib/setuptools/command/install_lib.py \
+       Lib/setuptools/command/install_scripts.py \
+       Lib/setuptools/command/py36compat.py \
+       Lib/setuptools/command/register.py \
+       Lib/setuptools/command/rotate.py \
+       Lib/setuptools/command/saveopts.py \
+       Lib/setuptools/command/sdist.py \
+       Lib/setuptools/command/setopt.py \
+       Lib/setuptools/command/test.py \
+       Lib/setuptools/command/upload.py \
+       Lib/setuptools/command/upload_docs.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/config,\
+       Lib/setuptools/config/__init__.py \
+       Lib/setuptools/config/_apply_pyprojecttoml.py \
+       Lib/setuptools/config/expand.py \
+       Lib/setuptools/config/pyprojecttoml.py \
+       Lib/setuptools/config/setupcfg.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/config/_validate_pyproject,\
+       Lib/setuptools/config/_validate_pyproject/__init__.py \
+       Lib/setuptools/config/_validate_pyproject/error_reporting.py \
+       Lib/setuptools/config/_validate_pyproject/extra_validations.py \
+       Lib/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py \
+       Lib/setuptools/config/_validate_pyproject/fastjsonschema_validations.py 
\
+       Lib/setuptools/config/_validate_pyproject/formats.py \
+))
+
+$(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/setuptools/extern,\
+       Lib/setuptools/extern/__init__.py \
 ))
 
 $(eval $(call 
gb_ExternalPackage_add_unpacked_files,python3,$(LIBO_BIN_FOLDER)/python-core-$(PYTHON_VERSION)/lib/tomllib,\
diff --git a/external/python3/UnpackedTarball_python3.mk 
b/external/python3/UnpackedTarball_python3.mk
index 0424a8d22c0f..8c648843f01e 100644
--- a/external/python3/UnpackedTarball_python3.mk
+++ b/external/python3/UnpackedTarball_python3.mk
@@ -11,13 +11,17 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,python3))
 
 $(eval $(call 
gb_UnpackedTarball_set_tarball,python3,$(PYTHON_TARBALL),,python3))
 
-# Since Python 3.11, _freeze_module.vcxproj needs python.exe to build 
deepfreeze.c
-# on Windows
-ifeq ($(OS),WNT)
+# Since Python 3.11, _freeze_module.vcxproj needs python.exe to build 
deepfreeze.c on Windows
+# Since a wheel file is just a zip file, unzil them to the Lib directory with 
the other libraries
+ifneq ($(OS),MACOSX)
 $(eval $(call gb_UnpackedTarball_set_pre_action,python3,\
-       mkdir -p externals/pythonx86 && \
-       unzip -q -d externals/pythonx86 -o 
$(gb_UnpackedTarget_TARFILE_LOCATION)/$(PYTHON_BOOTSTRAP_TARBALL) && \
-       chmod +x externals/pythonx86/tools/* \
+       $(if $(filter WNT,$(OS)), \
+               mkdir -p externals/pythonx86 && \
+               unzip -q -d externals/pythonx86 -o 
$(gb_UnpackedTarget_TARFILE_LOCATION)/$(PYTHON_BOOTSTRAP_TARBALL) && \
+               chmod +x externals/pythonx86/tools/* && \
+       ) \
+       unzip -q -d Lib/ -o 
Lib/ensurepip/_bundled/setuptools-65.5.0-py3-none-any.whl && \
+       unzip -q -d Lib/ -o Lib/ensurepip/_bundled/pip-24.0-py3-none-any.whl \
 ))
 endif
 
diff --git a/external/python3/generateExternalPackage.py 
b/external/python3/generateExternalPackage.py
index b5fe0d1e158e..a669580ed0f5 100755
--- a/external/python3/generateExternalPackage.py
+++ b/external/python3/generateExternalPackage.py
@@ -34,7 +34,7 @@ if __name__ == '__main__':
             continue
 
         for fileName in sorted(files):
-            if fileName.endswith(".pyc"):
+            if not fileName.endswith(".py"):
                 continue
             filesList.append(path.join(relPythonDir, fileName))
         if filesList:
diff --git a/pyuno/Module_pyuno.mk b/pyuno/Module_pyuno.mk
index 3a12fc68efac..849d17749d5a 100644
--- a/pyuno/Module_pyuno.mk
+++ b/pyuno/Module_pyuno.mk
@@ -49,13 +49,9 @@ endif # SYSTEM_PYTHON
 $(eval $(call gb_Module_add_check_targets,pyuno, \
     PythonTest_pyuno_pytests_testssl \
     PythonTest_pyuno_pytests_testbz2 \
-))
-
-ifeq ($(OS),MACOSX)
-$(eval $(call gb_Module_add_check_targets,pyuno, \
+    PythonTest_pyuno_pytests_testpip \
     PythonTest_pyuno_pytests_testsetuptools \
 ))
-endif
 
 $(eval $(call gb_Module_add_subsequentcheck_targets,pyuno, \
     PythonTest_pyuno_pytests_testcollections \
diff --git a/pyuno/PythonTest_pyuno_pytests_testpip.mk 
b/pyuno/PythonTest_pyuno_pytests_testpip.mk
new file mode 100644
index 000000000000..b3e2ed4fb47d
--- /dev/null
+++ b/pyuno/PythonTest_pyuno_pytests_testpip.mk
@@ -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_testpip))
+
+$(eval $(call 
gb_PythonTest_add_modules,pyuno_pytests_testpip,$(SRCDIR)/pyuno/qa/pytests,\
+    testpip \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/pyuno/qa/pytests/testpip.py b/pyuno/qa/pytests/testpip.py
new file mode 100644
index 000000000000..867af8879973
--- /dev/null
+++ b/pyuno/qa/pytests/testpip.py
@@ -0,0 +1,14 @@
+import os
+import unittest
+
+# tdf#162786: make sure importing pip works on all platforms
+class SetupToolsTest(unittest.TestCase):
+    def test_pip_import(self):
+        import pip
+
+        # use imported pip module for pyflakes
+        with open(os.devnull, "w") as devnull:
+            print(str(pip), file=devnull)
+
+if __name__ == '__main__':
+    unittest.main()

Reply via email to