From 2a7412e43554830ffbc831454de8df903e765b73 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 bfb6cb65354..7a662ea4b32 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -2342,7 +2342,6 @@ LIBSUBDIRS=	asyncio \
 		urllib \
 		venv venv/scripts venv/scripts/common venv/scripts/posix \
 		wsgiref \
-		$(XMLLIBSUBDIRS) \
 		xmlrpc \
 		zipfile zipfile/_path \
 		zoneinfo \
@@ -2508,6 +2507,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 0895dc57808..34e4d5dd244 100644
--- a/configure.ac
+++ b/configure.ac
@@ -4058,17 +4058,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.50.1

