From c9a2ea3edacf57746517600ccc11c254a9fd6c48 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).

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>
---
 Makefile.pre.in |  5 ++++-
 configure.ac    | 20 ++++++++++++++------
 2 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index 8e879b35c6..80d617cf7f 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1925,7 +1925,6 @@ LIBSUBDIRS=	asyncio \
 		urllib \
 		venv venv/scripts venv/scripts/common venv/scripts/posix \
 		wsgiref \
-		$(XMLLIBSUBDIRS) \
 		xmlrpc \
 		zoneinfo \
 		__phello__
@@ -2027,6 +2026,10 @@ ifeq (@CURSES@,yes)
 LIBSUBDIRS += curses
 endif
 
+ifeq (@EXPAT@,yes)
+LIBSUBDIRS += $(XMLLIBSUBDIRS)
+endif
+
 TEST_MODULES=@TEST_MODULES@
 libinstall:	all $(srcdir)/Modules/xxmodule.c
 	@for i in $(SCRIPTDIR) $(LIBDEST); \
diff --git a/configure.ac b/configure.ac
index 0ae9863cd6..201cad0bfc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3565,15 +3565,23 @@ LIBS="$withval $LIBS"
 AC_SUBST(DISABLED_EXTENSIONS)
 
 # 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)]),
+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_system_expat="no"])
+            [with_expat="builtin"])
 
-AC_MSG_RESULT($with_system_expat)
+AC_MSG_RESULT($with_expat)
 
-AS_VAR_IF([with_system_expat], [yes], [
+if test "$with_expat" != "none"; then
+   EXPAT=yes
+else
+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
+   EXPAT=no
+fi
+AC_SUBST(EXPAT)
+
+AS_VAR_IF([with_expat], [system], [
   LIBEXPAT_CFLAGS=${LIBEXPAT_CFLAGS-""}
   LIBEXPAT_LDFLAGS=${LIBEXPAT_LDFLAGS-"-lexpat"}
   LIBEXPAT_INTERNAL=
-- 
2.34.1

