From fb7d73d6e3c4cdc9cb272120845103b1aa965240 Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Wed, 22 Feb 2017 17:40:45 -0800
Subject: [PATCH] Add an option to disable expat

This patch replaces the existing --with-system-expat option with a
--with-expat={system,builtin,none} option, which allows to tell Python
whether we want to use the system expat (already installed), the expat
builtin the Python sources, or no expat at all (which disables the
installation of XML modules).

Upstream: N/A

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
[ Andrey Smirnov: ported to Python 3.6 ]
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
[ Adam Duskett: ported to Python 3.10.0 ]
Signed-off-by: Adam Duskett <aduskett@gmail.com>
[ Vincent Fazio: ported to Python 3.13.2 ]
Signed-off-by: Vincent Fazio <vfazio@gmail.com>
---
 Makefile.pre.in |  5 ++++-
 configure.ac    | 24 +++++++++++++-----------
 2 files changed, 17 insertions(+), 12 deletions(-)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index a4531d1f0fc..f6719bd19b3 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -2336,7 +2336,6 @@ LIBSUBDIRS=	asyncio \
 		urllib \
 		venv venv/scripts venv/scripts/common venv/scripts/posix \
 		wsgiref \
-		$(XMLLIBSUBDIRS) \
 		xmlrpc \
 		zipfile zipfile/_path \
 		zoneinfo \
@@ -2501,6 +2500,10 @@ ifeq (@SQLITE3@,yes)
 LIBSUBDIRS += sqlite3
 endif
 
+ifeq (@EXPAT@,yes)
+LIBSUBDIRS += $(XMLLIBSUBDIRS)
+endif
+
 TEST_MODULES=@TEST_MODULES@
 
 .PHONY: libinstall
diff --git a/configure.ac b/configure.ac
index 30ad6f1e68d..370eb94730f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3970,17 +3970,19 @@ LIBS="$withval $LIBS"
 [AC_MSG_RESULT([no])])
 
 # Check for use of the system expat library
-AC_MSG_CHECKING([for --with-system-expat])
-AC_ARG_WITH(
-  [system_expat],
-  [AS_HELP_STRING(
-     [--with-system-expat],
-     [build pyexpat module using an installed expat library, see Doc/library/pyexpat.rst (default is no)]
-  )], [], [with_system_expat="no"])
-
-AC_MSG_RESULT([$with_system_expat])
-
-AS_VAR_IF([with_system_expat], [yes], [
+AC_MSG_CHECKING(for --with-expat)
+AC_ARG_WITH(expat,
+            AS_HELP_STRING([--with-expat], [select which expat version to use: system, builtin, none]),
+            [],
+            [with_expat="builtin"])
+AC_MSG_RESULT($with_expat)
+AS_IF([test "$with_expat" != "none"],
+      [EXPAT=yes],
+      [PY_STDLIB_MOD_SET_NA([pyexpat])
+       EXPAT=no])
+AC_SUBST(EXPAT)
+
+AS_VAR_IF([with_expat], [system], [
   LIBEXPAT_CFLAGS=${LIBEXPAT_CFLAGS-""}
   LIBEXPAT_LDFLAGS=${LIBEXPAT_LDFLAGS-"-lexpat"}
   LIBEXPAT_INTERNAL=
-- 
2.34.1

