From 5f0f30bf342cd2b13f98513c39fd8f17351b1a2f Mon Sep 17 00:00:00 2001
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date: Tue, 7 Mar 2017 22:29:20 +0100
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>
---
 Makefile.pre.in |  6 +++++-
 configure.ac    | 18 +++++++++++++-----
 setup.py        |  2 +-
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/Makefile.pre.in b/Makefile.pre.in
index bd537d9..e5d0dd7 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1046,7 +1046,7 @@ LIBSUBDIRS=	site-packages \
 		logging bsddb csv importlib wsgiref \
 		ctypes ctypes/macholib \
 		idlelib idlelib/Icons \
-		distutils distutils/command $(XMLLIBSUBDIRS) \
+		distutils distutils/command \
 		multiprocessing multiprocessing/dummy \
 		unittest \
 		lib-old \
@@ -1096,6 +1096,10 @@ ifeq (@CURSES@,yes)
 LIBSUBDIRS += curses
 endif
 
+ifeq (@EXPAT@,yes)
+LIBSUBDIRS += $(XMLLIBSUBDIRS)
+endif
+
 libinstall:	build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
 	@for i in $(SCRIPTDIR) $(LIBDEST); \
 	do \
diff --git a/configure.ac b/configure.ac
index ab081bc..63ee545 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2470,13 +2470,21 @@ PKG_PROG_PKG_CONFIG
 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]),
+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)
+
+if test "$with_expat" != "none"; then
+   EXPAT=yes
+else
+   DISABLED_EXTENSIONS="${DISABLED_EXTENSIONS} pyexpat"
+   EXPAT=no
+fi
+AC_SUBST(EXPAT)
 
 # Check for use of the system libffi library
 AC_MSG_CHECKING(for --with-system-ffi)
diff --git a/setup.py b/setup.py
index f51ef8c..c68f6b4 100644
--- a/setup.py
+++ b/setup.py
@@ -1483,7 +1483,7 @@ class PyBuildExt(build_ext):
         #
         # More information on Expat can be found at www.libexpat.org.
         #
-        if '--with-system-expat' in sysconfig.get_config_var("CONFIG_ARGS"):
+        if '--with-expat=system' in sysconfig.get_config_var("CONFIG_ARGS"):
             expat_inc = []
             define_macros = []
             expat_lib = ['expat']
-- 
2.7.4

