diff options
author | Christian Heimes <christian@python.org> | 2021-11-06 09:30:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-06 09:30:37 (GMT) |
commit | e9594f6747eaaaa848c26e2bf67d467aabfd62b3 (patch) | |
tree | 6e0cc5e3aa0a4fb9f924537842dc9b4987d46544 | |
parent | a4774f42e35861c4bb16928cffb011c2d8a285ac (diff) | |
download | cpython-e9594f6747eaaaa848c26e2bf67d467aabfd62b3.zip cpython-e9594f6747eaaaa848c26e2bf67d467aabfd62b3.tar.gz cpython-e9594f6747eaaaa848c26e2bf67d467aabfd62b3.tar.bz2 |
bpo-45731: Handle --enable-loadable-sqlite-extensions in configure (GH-29434)
-rw-r--r-- | Misc/NEWS.d/next/Build/2021-11-05-20-56-29.bpo-45731.9SDnDf.rst | 1 | ||||
-rw-r--r-- | Modules/_sqlite/clinic/connection.c.h | 10 | ||||
-rw-r--r-- | Modules/_sqlite/connection.c | 2 | ||||
-rwxr-xr-x | configure | 11 | ||||
-rw-r--r-- | configure.ac | 8 | ||||
-rw-r--r-- | pyconfig.h.in | 3 | ||||
-rw-r--r-- | setup.py | 8 |
7 files changed, 30 insertions, 13 deletions
diff --git a/Misc/NEWS.d/next/Build/2021-11-05-20-56-29.bpo-45731.9SDnDf.rst b/Misc/NEWS.d/next/Build/2021-11-05-20-56-29.bpo-45731.9SDnDf.rst new file mode 100644 index 0000000..1e490fa --- /dev/null +++ b/Misc/NEWS.d/next/Build/2021-11-05-20-56-29.bpo-45731.9SDnDf.rst @@ -0,0 +1 @@ +``configure --enable-loadable-sqlite-extensions`` is now handled by new ``PY_SQLITE_ENABLE_LOAD_EXTENSION`` macro instead of logic in setup.py. diff --git a/Modules/_sqlite/clinic/connection.c.h b/Modules/_sqlite/clinic/connection.c.h index f9323eb..4e5ee50 100644 --- a/Modules/_sqlite/clinic/connection.c.h +++ b/Modules/_sqlite/clinic/connection.c.h @@ -367,7 +367,7 @@ exit: return return_value; } -#if !defined(SQLITE_OMIT_LOAD_EXTENSION) +#if defined(PY_SQLITE_ENABLE_LOAD_EXTENSION) PyDoc_STRVAR(pysqlite_connection_enable_load_extension__doc__, "enable_load_extension($self, enable, /)\n" @@ -398,9 +398,9 @@ exit: return return_value; } -#endif /* !defined(SQLITE_OMIT_LOAD_EXTENSION) */ +#endif /* defined(PY_SQLITE_ENABLE_LOAD_EXTENSION) */ -#if !defined(SQLITE_OMIT_LOAD_EXTENSION) +#if defined(PY_SQLITE_ENABLE_LOAD_EXTENSION) PyDoc_STRVAR(pysqlite_connection_load_extension__doc__, "load_extension($self, name, /)\n" @@ -440,7 +440,7 @@ exit: return return_value; } -#endif /* !defined(SQLITE_OMIT_LOAD_EXTENSION) */ +#endif /* defined(PY_SQLITE_ENABLE_LOAD_EXTENSION) */ PyDoc_STRVAR(pysqlite_connection_execute__doc__, "execute($self, sql, parameters=<unrepresentable>, /)\n" @@ -834,4 +834,4 @@ exit: #ifndef PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF #define PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF #endif /* !defined(PYSQLITE_CONNECTION_LOAD_EXTENSION_METHODDEF) */ -/*[clinic end generated code: output=0c3901153a3837a5 input=a9049054013a1b77]*/ +/*[clinic end generated code: output=d71bf16bef67878f input=a9049054013a1b77]*/ diff --git a/Modules/_sqlite/connection.c b/Modules/_sqlite/connection.c index f913267..964673a 100644 --- a/Modules/_sqlite/connection.c +++ b/Modules/_sqlite/connection.c @@ -1225,7 +1225,7 @@ pysqlite_connection_set_trace_callback_impl(pysqlite_Connection *self, Py_RETURN_NONE; } -#ifndef SQLITE_OMIT_LOAD_EXTENSION +#ifdef PY_SQLITE_ENABLE_LOAD_EXTENSION /*[clinic input] _sqlite3.Connection.enable_load_extension as pysqlite_connection_enable_load_extension @@ -10913,13 +10913,20 @@ $as_echo_n "checking for --enable-loadable-sqlite-extensions... " >&6; } if test "${enable_loadable_sqlite_extensions+set}" = set; then : enableval=$enable_loadable_sqlite_extensions; else - enable_loadable_sqlite_extensions="no" + enable_loadable_sqlite_extensions=no fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_loadable_sqlite_extensions" >&5 $as_echo "$enable_loadable_sqlite_extensions" >&6; } +if test "x$enable_loadable_sqlite_extensions" = xyes; then : + + +$as_echo "#define PY_SQLITE_ENABLE_LOAD_EXTENSION 1" >>confdefs.h + + +fi + # Check for --with-tcltk-includes=path and --with-tcltk-libs=path diff --git a/configure.ac b/configure.ac index ea11908..8895818 100644 --- a/configure.ac +++ b/configure.ac @@ -3199,10 +3199,14 @@ AC_ARG_ENABLE(loadable-sqlite-extensions, AS_HELP_STRING([--enable-loadable-sqlite-extensions], [support loadable extensions in _sqlite module, see Doc/library/sqlite3.rst (default is no)]), [], - [enable_loadable_sqlite_extensions="no"]) - + [enable_loadable_sqlite_extensions=no]) AC_MSG_RESULT($enable_loadable_sqlite_extensions) +AS_VAR_IF([enable_loadable_sqlite_extensions], [yes], [ + AC_DEFINE(PY_SQLITE_ENABLE_LOAD_EXTENSION, 1, + [Define to 1 to build the sqlite module with loadable extensions support.]) +]) + # Check for --with-tcltk-includes=path and --with-tcltk-libs=path AC_SUBST(TCLTK_INCLUDES) AC_SUBST(TCLTK_LIBS) diff --git a/pyconfig.h.in b/pyconfig.h.in index b89377d..0c149e2 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -1395,6 +1395,9 @@ /* Define to printf format modifier for Py_ssize_t */ #undef PY_FORMAT_SIZE_T +/* Define to 1 to build the sqlite module with loadable extensions support. */ +#undef PY_SQLITE_ENABLE_LOAD_EXTENSION + /* Default cipher suites list for ssl module. 1: Python's preferred selection, 2: leave OpenSSL defaults untouched, 0: custom string */ #undef PY_SSL_DEFAULT_CIPHERS @@ -1602,9 +1602,11 @@ class PyBuildExt(build_ext): # Enable support for loadable extensions in the sqlite3 module # if --enable-loadable-sqlite-extensions configure option is used. - if '--enable-loadable-sqlite-extensions' not in sysconfig.get_config_var("CONFIG_ARGS"): - sqlite_defines.append(("SQLITE_OMIT_LOAD_EXTENSION", "1")) - elif MACOS and sqlite_incdir == os.path.join(MACOS_SDK_ROOT, "usr/include"): + if ( + MACOS and + sqlite_incdir == os.path.join(MACOS_SDK_ROOT, "usr/include") and + sysconfig.get_config_var("PY_SQLITE_ENABLE_LOAD_EXTENSION") + ): raise DistutilsError("System version of SQLite does not support loadable extensions") if MACOS: |