[pypy-commit] pypy default: _sqlite3_cffi

arigo noreply at buildbot.pypy.org
Tue May 19 22:02:35 CEST 2015


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r77411:22f620c32cda
Date: 2015-05-19 22:02 +0200
http://bitbucket.org/pypy/pypy/changeset/22f620c32cda/

Log:	_sqlite3_cffi

diff --git a/lib_pypy/_sqlite3.py b/lib_pypy/_sqlite3.py
--- a/lib_pypy/_sqlite3.py
+++ b/lib_pypy/_sqlite3.py
@@ -47,243 +47,7 @@
 else:
     _BLOB_TYPE = buffer
 
-from cffi import FFI as _FFI
-
-_ffi = _FFI()
-
-_ffi.cdef("""
-#define SQLITE_OK ...
-#define SQLITE_ERROR ...
-#define SQLITE_INTERNAL ...
-#define SQLITE_PERM ...
-#define SQLITE_ABORT ...
-#define SQLITE_BUSY ...
-#define SQLITE_LOCKED ...
-#define SQLITE_NOMEM ...
-#define SQLITE_READONLY ...
-#define SQLITE_INTERRUPT ...
-#define SQLITE_IOERR ...
-#define SQLITE_CORRUPT ...
-#define SQLITE_NOTFOUND ...
-#define SQLITE_FULL ...
-#define SQLITE_CANTOPEN ...
-#define SQLITE_PROTOCOL ...
-#define SQLITE_EMPTY ...
-#define SQLITE_SCHEMA ...
-#define SQLITE_TOOBIG ...
-#define SQLITE_CONSTRAINT ...
-#define SQLITE_MISMATCH ...
-#define SQLITE_MISUSE ...
-#define SQLITE_NOLFS ...
-#define SQLITE_AUTH ...
-#define SQLITE_FORMAT ...
-#define SQLITE_RANGE ...
-#define SQLITE_NOTADB ...
-#define SQLITE_ROW ...
-#define SQLITE_DONE ...
-#define SQLITE_INTEGER ...
-#define SQLITE_FLOAT ...
-#define SQLITE_BLOB ...
-#define SQLITE_NULL ...
-#define SQLITE_TEXT ...
-#define SQLITE3_TEXT ...
-
-#define SQLITE_TRANSIENT ...
-#define SQLITE_UTF8 ...
-
-#define SQLITE_DENY ...
-#define SQLITE_IGNORE ...
-
-#define SQLITE_CREATE_INDEX ...
-#define SQLITE_CREATE_TABLE ...
-#define SQLITE_CREATE_TEMP_INDEX ...
-#define SQLITE_CREATE_TEMP_TABLE ...
-#define SQLITE_CREATE_TEMP_TRIGGER ...
-#define SQLITE_CREATE_TEMP_VIEW ...
-#define SQLITE_CREATE_TRIGGER ...
-#define SQLITE_CREATE_VIEW ...
-#define SQLITE_DELETE ...
-#define SQLITE_DROP_INDEX ...
-#define SQLITE_DROP_TABLE ...
-#define SQLITE_DROP_TEMP_INDEX ...
-#define SQLITE_DROP_TEMP_TABLE ...
-#define SQLITE_DROP_TEMP_TRIGGER ...
-#define SQLITE_DROP_TEMP_VIEW ...
-#define SQLITE_DROP_TRIGGER ...
-#define SQLITE_DROP_VIEW ...
-#define SQLITE_INSERT ...
-#define SQLITE_PRAGMA ...
-#define SQLITE_READ ...
-#define SQLITE_SELECT ...
-#define SQLITE_TRANSACTION ...
-#define SQLITE_UPDATE ...
-#define SQLITE_ATTACH ...
-#define SQLITE_DETACH ...
-#define SQLITE_ALTER_TABLE ...
-#define SQLITE_REINDEX ...
-#define SQLITE_ANALYZE ...
-#define SQLITE_CREATE_VTABLE ...
-#define SQLITE_DROP_VTABLE ...
-#define SQLITE_FUNCTION ...
-
-const char *sqlite3_libversion(void);
-
-typedef ... sqlite3;
-typedef ... sqlite3_stmt;
-typedef ... sqlite3_context;
-typedef ... sqlite3_value;
-typedef int64_t sqlite3_int64;
-typedef uint64_t sqlite3_uint64;
-
-int sqlite3_open(
-    const char *filename,   /* Database filename (UTF-8) */
-    sqlite3 **ppDb          /* OUT: SQLite db handle */
-);
-
-int sqlite3_close(sqlite3 *);
-
-int sqlite3_busy_timeout(sqlite3*, int ms);
-int sqlite3_prepare_v2(
-    sqlite3 *db,            /* Database handle */
-    const char *zSql,       /* SQL statement, UTF-8 encoded */
-    int nByte,              /* Maximum length of zSql in bytes. */
-    sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
-    const char **pzTail     /* OUT: Pointer to unused portion of zSql */
-);
-int sqlite3_finalize(sqlite3_stmt *pStmt);
-int sqlite3_data_count(sqlite3_stmt *pStmt);
-int sqlite3_column_count(sqlite3_stmt *pStmt);
-const char *sqlite3_column_name(sqlite3_stmt*, int N);
-int sqlite3_get_autocommit(sqlite3*);
-int sqlite3_reset(sqlite3_stmt *pStmt);
-int sqlite3_step(sqlite3_stmt*);
-int sqlite3_errcode(sqlite3 *db);
-const char *sqlite3_errmsg(sqlite3*);
-int sqlite3_changes(sqlite3*);
-
-int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*));
-int sqlite3_bind_double(sqlite3_stmt*, int, double);
-int sqlite3_bind_int(sqlite3_stmt*, int, int);
-int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
-int sqlite3_bind_null(sqlite3_stmt*, int);
-int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));
-int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*));
-int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
-int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
-
-const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
-int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
-double sqlite3_column_double(sqlite3_stmt*, int iCol);
-int sqlite3_column_int(sqlite3_stmt*, int iCol);
-sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
-const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
-const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
-int sqlite3_column_type(sqlite3_stmt*, int iCol);
-const char *sqlite3_column_decltype(sqlite3_stmt*,int);
-
-void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
-int sqlite3_create_collation(
-    sqlite3*,
-    const char *zName,
-    int eTextRep,
-    void*,
-    int(*xCompare)(void*,int,const void*,int,const void*)
-);
-int sqlite3_set_authorizer(
-    sqlite3*,
-    int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
-    void *pUserData
-);
-int sqlite3_create_function(
-    sqlite3 *db,
-    const char *zFunctionName,
-    int nArg,
-    int eTextRep,
-    void *pApp,
-    void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
-    void (*xStep)(sqlite3_context*,int,sqlite3_value**),
-    void (*xFinal)(sqlite3_context*)
-);
-void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
-
-sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
-int sqlite3_bind_parameter_count(sqlite3_stmt*);
-const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int);
-int sqlite3_total_changes(sqlite3*);
-
-int sqlite3_prepare(
-    sqlite3 *db,            /* Database handle */
-    const char *zSql,       /* SQL statement, UTF-8 encoded */
-    int nByte,              /* Maximum length of zSql in bytes. */
-    sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
-    const char **pzTail     /* OUT: Pointer to unused portion of zSql */
-);
-
-void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*));
-void sqlite3_result_double(sqlite3_context*, double);
-void sqlite3_result_error(sqlite3_context*, const char*, int);
-void sqlite3_result_error16(sqlite3_context*, const void*, int);
-void sqlite3_result_error_toobig(sqlite3_context*);
-void sqlite3_result_error_nomem(sqlite3_context*);
-void sqlite3_result_error_code(sqlite3_context*, int);
-void sqlite3_result_int(sqlite3_context*, int);
-void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
-void sqlite3_result_null(sqlite3_context*);
-void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*));
-void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*));
-void sqlite3_result_text16le(sqlite3_context*,const void*, int,void(*)(void*));
-void sqlite3_result_text16be(sqlite3_context*,const void*, int,void(*)(void*));
-void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
-void sqlite3_result_zeroblob(sqlite3_context*, int n);
-
-const void *sqlite3_value_blob(sqlite3_value*);
-int sqlite3_value_bytes(sqlite3_value*);
-int sqlite3_value_bytes16(sqlite3_value*);
-double sqlite3_value_double(sqlite3_value*);
-int sqlite3_value_int(sqlite3_value*);
-sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
-const unsigned char *sqlite3_value_text(sqlite3_value*);
-const void *sqlite3_value_text16(sqlite3_value*);
-const void *sqlite3_value_text16le(sqlite3_value*);
-const void *sqlite3_value_text16be(sqlite3_value*);
-int sqlite3_value_type(sqlite3_value*);
-int sqlite3_value_numeric_type(sqlite3_value*);
-""")
-
-def _has_load_extension():
-    """Only available since 3.3.6"""
-    unverified_ffi = _FFI()
-    unverified_ffi.cdef("""
-    typedef ... sqlite3;
-    int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
-    """)
-    libname = 'sqlite3'
-    if sys.platform == 'win32':
-        import os
-        _libname = os.path.join(os.path.dirname(sys.executable), libname)
-        if os.path.exists(_libname + '.dll'):
-            libname = _libname
-    unverified_lib = unverified_ffi.dlopen(libname)
-    return hasattr(unverified_lib, 'sqlite3_enable_load_extension')
-
-if _has_load_extension():
-    _ffi.cdef("int sqlite3_enable_load_extension(sqlite3 *db, int onoff);")
-
-if sys.platform.startswith('freebsd'):
-    import os
-    import os.path
-    _localbase = os.environ.get('LOCALBASE', '/usr/local')
-    _lib = _ffi.verify("""
-    #include <sqlite3.h>
-    """, libraries=['sqlite3'],
-         include_dirs=[os.path.join(_localbase, 'include')],
-         library_dirs=[os.path.join(_localbase, 'lib')]
-    )
-else:
-    _lib = _ffi.verify("""
-    #include <sqlite3.h>
-    """, libraries=['sqlite3']
-    )
+from _sqlite3_cffi import ffi as _ffi, lib as _lib
 
 exported_sqlite_symbols = [
     'SQLITE_ALTER_TABLE',
@@ -322,7 +86,7 @@
 for symbol in exported_sqlite_symbols:
     globals()[symbol] = getattr(_lib, symbol)
 
-_SQLITE_TRANSIENT = _ffi.cast('void *', _lib.SQLITE_TRANSIENT)
+_SQLITE_TRANSIENT = _lib.SQLITE_TRANSIENT
 
 # pysqlite version information
 version = "2.6.0"
diff --git a/lib_pypy/_sqlite3_build.py b/lib_pypy/_sqlite3_build.py
new file mode 100644
--- /dev/null
+++ b/lib_pypy/_sqlite3_build.py
@@ -0,0 +1,265 @@
+#-*- coding: utf-8 -*-
+# pysqlite2/dbapi.py: pysqlite DB-API module
+#
+# Copyright (C) 2007-2008 Gerhard Häring <gh at ghaering.de>
+#
+# This file is part of pysqlite.
+#
+# This software is provided 'as-is', without any express or implied
+# warranty.  In no event will the authors be held liable for any damages
+# arising from the use of this software.
+#
+# Permission is granted to anyone to use this software for any purpose,
+# including commercial applications, and to alter it and redistribute it
+# freely, subject to the following restrictions:
+#
+# 1. The origin of this software must not be misrepresented; you must not
+#    claim that you wrote the original software. If you use this software
+#    in a product, an acknowledgment in the product documentation would be
+#    appreciated but is not required.
+# 2. Altered source versions must be plainly marked as such, and must not be
+#    misrepresented as being the original software.
+# 3. This notice may not be removed or altered from any source distribution.
+#
+# Note: This software has been modified for use in PyPy.
+
+import sys, os
+from cffi import FFI as _FFI
+
+_ffi = _FFI()
+
+_ffi.cdef("""
+#define SQLITE_OK ...
+#define SQLITE_ERROR ...
+#define SQLITE_INTERNAL ...
+#define SQLITE_PERM ...
+#define SQLITE_ABORT ...
+#define SQLITE_BUSY ...
+#define SQLITE_LOCKED ...
+#define SQLITE_NOMEM ...
+#define SQLITE_READONLY ...
+#define SQLITE_INTERRUPT ...
+#define SQLITE_IOERR ...
+#define SQLITE_CORRUPT ...
+#define SQLITE_NOTFOUND ...
+#define SQLITE_FULL ...
+#define SQLITE_CANTOPEN ...
+#define SQLITE_PROTOCOL ...
+#define SQLITE_EMPTY ...
+#define SQLITE_SCHEMA ...
+#define SQLITE_TOOBIG ...
+#define SQLITE_CONSTRAINT ...
+#define SQLITE_MISMATCH ...
+#define SQLITE_MISUSE ...
+#define SQLITE_NOLFS ...
+#define SQLITE_AUTH ...
+#define SQLITE_FORMAT ...
+#define SQLITE_RANGE ...
+#define SQLITE_NOTADB ...
+#define SQLITE_ROW ...
+#define SQLITE_DONE ...
+#define SQLITE_INTEGER ...
+#define SQLITE_FLOAT ...
+#define SQLITE_BLOB ...
+#define SQLITE_NULL ...
+#define SQLITE_TEXT ...
+#define SQLITE3_TEXT ...
+
+static void *const SQLITE_TRANSIENT;
+#define SQLITE_UTF8 ...
+
+#define SQLITE_DENY ...
+#define SQLITE_IGNORE ...
+
+#define SQLITE_CREATE_INDEX ...
+#define SQLITE_CREATE_TABLE ...
+#define SQLITE_CREATE_TEMP_INDEX ...
+#define SQLITE_CREATE_TEMP_TABLE ...
+#define SQLITE_CREATE_TEMP_TRIGGER ...
+#define SQLITE_CREATE_TEMP_VIEW ...
+#define SQLITE_CREATE_TRIGGER ...
+#define SQLITE_CREATE_VIEW ...
+#define SQLITE_DELETE ...
+#define SQLITE_DROP_INDEX ...
+#define SQLITE_DROP_TABLE ...
+#define SQLITE_DROP_TEMP_INDEX ...
+#define SQLITE_DROP_TEMP_TABLE ...
+#define SQLITE_DROP_TEMP_TRIGGER ...
+#define SQLITE_DROP_TEMP_VIEW ...
+#define SQLITE_DROP_TRIGGER ...
+#define SQLITE_DROP_VIEW ...
+#define SQLITE_INSERT ...
+#define SQLITE_PRAGMA ...
+#define SQLITE_READ ...
+#define SQLITE_SELECT ...
+#define SQLITE_TRANSACTION ...
+#define SQLITE_UPDATE ...
+#define SQLITE_ATTACH ...
+#define SQLITE_DETACH ...
+#define SQLITE_ALTER_TABLE ...
+#define SQLITE_REINDEX ...
+#define SQLITE_ANALYZE ...
+#define SQLITE_CREATE_VTABLE ...
+#define SQLITE_DROP_VTABLE ...
+#define SQLITE_FUNCTION ...
+
+const char *sqlite3_libversion(void);
+
+typedef ... sqlite3;
+typedef ... sqlite3_stmt;
+typedef ... sqlite3_context;
+typedef ... sqlite3_value;
+typedef int64_t sqlite3_int64;
+typedef uint64_t sqlite3_uint64;
+
+int sqlite3_open(
+    const char *filename,   /* Database filename (UTF-8) */
+    sqlite3 **ppDb          /* OUT: SQLite db handle */
+);
+
+int sqlite3_close(sqlite3 *);
+
+int sqlite3_busy_timeout(sqlite3*, int ms);
+int sqlite3_prepare_v2(
+    sqlite3 *db,            /* Database handle */
+    const char *zSql,       /* SQL statement, UTF-8 encoded */
+    int nByte,              /* Maximum length of zSql in bytes. */
+    sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
+    const char **pzTail     /* OUT: Pointer to unused portion of zSql */
+);
+int sqlite3_finalize(sqlite3_stmt *pStmt);
+int sqlite3_data_count(sqlite3_stmt *pStmt);
+int sqlite3_column_count(sqlite3_stmt *pStmt);
+const char *sqlite3_column_name(sqlite3_stmt*, int N);
+int sqlite3_get_autocommit(sqlite3*);
+int sqlite3_reset(sqlite3_stmt *pStmt);
+int sqlite3_step(sqlite3_stmt*);
+int sqlite3_errcode(sqlite3 *db);
+const char *sqlite3_errmsg(sqlite3*);
+int sqlite3_changes(sqlite3*);
+
+int sqlite3_bind_blob(sqlite3_stmt*, int, const void*, int n, void(*)(void*));
+int sqlite3_bind_double(sqlite3_stmt*, int, double);
+int sqlite3_bind_int(sqlite3_stmt*, int, int);
+int sqlite3_bind_int64(sqlite3_stmt*, int, sqlite3_int64);
+int sqlite3_bind_null(sqlite3_stmt*, int);
+int sqlite3_bind_text(sqlite3_stmt*, int, const char*, int n, void(*)(void*));
+int sqlite3_bind_text16(sqlite3_stmt*, int, const void*, int, void(*)(void*));
+int sqlite3_bind_value(sqlite3_stmt*, int, const sqlite3_value*);
+int sqlite3_bind_zeroblob(sqlite3_stmt*, int, int n);
+
+const void *sqlite3_column_blob(sqlite3_stmt*, int iCol);
+int sqlite3_column_bytes(sqlite3_stmt*, int iCol);
+double sqlite3_column_double(sqlite3_stmt*, int iCol);
+int sqlite3_column_int(sqlite3_stmt*, int iCol);
+sqlite3_int64 sqlite3_column_int64(sqlite3_stmt*, int iCol);
+const unsigned char *sqlite3_column_text(sqlite3_stmt*, int iCol);
+const void *sqlite3_column_text16(sqlite3_stmt*, int iCol);
+int sqlite3_column_type(sqlite3_stmt*, int iCol);
+const char *sqlite3_column_decltype(sqlite3_stmt*,int);
+
+void sqlite3_progress_handler(sqlite3*, int, int(*)(void*), void*);
+int sqlite3_create_collation(
+    sqlite3*,
+    const char *zName,
+    int eTextRep,
+    void*,
+    int(*xCompare)(void*,int,const void*,int,const void*)
+);
+int sqlite3_set_authorizer(
+    sqlite3*,
+    int (*xAuth)(void*,int,const char*,const char*,const char*,const char*),
+    void *pUserData
+);
+int sqlite3_create_function(
+    sqlite3 *db,
+    const char *zFunctionName,
+    int nArg,
+    int eTextRep,
+    void *pApp,
+    void (*xFunc)(sqlite3_context*,int,sqlite3_value**),
+    void (*xStep)(sqlite3_context*,int,sqlite3_value**),
+    void (*xFinal)(sqlite3_context*)
+);
+void *sqlite3_aggregate_context(sqlite3_context*, int nBytes);
+
+sqlite3_int64 sqlite3_last_insert_rowid(sqlite3*);
+int sqlite3_bind_parameter_count(sqlite3_stmt*);
+const char *sqlite3_bind_parameter_name(sqlite3_stmt*, int);
+int sqlite3_total_changes(sqlite3*);
+
+int sqlite3_prepare(
+    sqlite3 *db,            /* Database handle */
+    const char *zSql,       /* SQL statement, UTF-8 encoded */
+    int nByte,              /* Maximum length of zSql in bytes. */
+    sqlite3_stmt **ppStmt,  /* OUT: Statement handle */
+    const char **pzTail     /* OUT: Pointer to unused portion of zSql */
+);
+
+void sqlite3_result_blob(sqlite3_context*, const void*, int, void(*)(void*));
+void sqlite3_result_double(sqlite3_context*, double);
+void sqlite3_result_error(sqlite3_context*, const char*, int);
+void sqlite3_result_error16(sqlite3_context*, const void*, int);
+void sqlite3_result_error_toobig(sqlite3_context*);
+void sqlite3_result_error_nomem(sqlite3_context*);
+void sqlite3_result_error_code(sqlite3_context*, int);
+void sqlite3_result_int(sqlite3_context*, int);
+void sqlite3_result_int64(sqlite3_context*, sqlite3_int64);
+void sqlite3_result_null(sqlite3_context*);
+void sqlite3_result_text(sqlite3_context*, const char*, int, void(*)(void*));
+void sqlite3_result_text16(sqlite3_context*, const void*, int, void(*)(void*));
+void sqlite3_result_text16le(sqlite3_context*,const void*, int,void(*)(void*));
+void sqlite3_result_text16be(sqlite3_context*,const void*, int,void(*)(void*));
+void sqlite3_result_value(sqlite3_context*, sqlite3_value*);
+void sqlite3_result_zeroblob(sqlite3_context*, int n);
+
+const void *sqlite3_value_blob(sqlite3_value*);
+int sqlite3_value_bytes(sqlite3_value*);
+int sqlite3_value_bytes16(sqlite3_value*);
+double sqlite3_value_double(sqlite3_value*);
+int sqlite3_value_int(sqlite3_value*);
+sqlite3_int64 sqlite3_value_int64(sqlite3_value*);
+const unsigned char *sqlite3_value_text(sqlite3_value*);
+const void *sqlite3_value_text16(sqlite3_value*);
+const void *sqlite3_value_text16le(sqlite3_value*);
+const void *sqlite3_value_text16be(sqlite3_value*);
+int sqlite3_value_type(sqlite3_value*);
+int sqlite3_value_numeric_type(sqlite3_value*);
+""")
+
+def _has_load_extension():
+    """Only available since 3.3.6"""
+    unverified_ffi = _FFI()
+    unverified_ffi.cdef("""
+    typedef ... sqlite3;
+    int sqlite3_enable_load_extension(sqlite3 *db, int onoff);
+    """)
+    libname = 'sqlite3'
+    if sys.platform == 'win32':
+        import os
+        _libname = os.path.join(os.path.dirname(sys.executable), libname)
+        if os.path.exists(_libname + '.dll'):
+            libname = _libname
+    unverified_lib = unverified_ffi.dlopen(libname)
+    return hasattr(unverified_lib, 'sqlite3_enable_load_extension')
+
+if _has_load_extension():
+    _ffi.cdef("int sqlite3_enable_load_extension(sqlite3 *db, int onoff);")
+
+if sys.platform.startswith('freebsd'):
+    _localbase = os.environ.get('LOCALBASE', '/usr/local')
+    extra_args = dict(
+        libraries=['sqlite3'],
+        include_dirs=[os.path.join(_localbase, 'include')],
+        library_dirs=[os.path.join(_localbase, 'lib')]
+    )
+else:
+    extra_args = dict(
+        libraries=['sqlite3']
+    )
+
+_ffi.set_source("_sqlite3_cffi", "#include <sqlite3.h>", **extra_args)
+
+
+if __name__ == "__main__":
+    _ffi.compile()
diff --git a/pypy/tool/release/package.py b/pypy/tool/release/package.py
--- a/pypy/tool/release/package.py
+++ b/pypy/tool/release/package.py
@@ -53,7 +53,7 @@
 def create_cffi_import_libraries(pypy_c, options, basedir):
     shutil.rmtree(str(basedir.join('lib_pypy', '__pycache__')),
                   ignore_errors=True)
-    modules = ['_sqlite3', '_audioop_build.py']
+    modules = ['_sqlite3_build.py', '_audioop_build.py']
     if not sys.platform == 'win32':
         modules += ['_curses_build.py', '_syslog_build.py', '_gdbm_build.py']
     if not options.no_tk:


More information about the pypy-commit mailing list