You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Explicitly drop support for SQLite version < 3.7.3 #84921
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
assignee=Noneclosed_at=<Date2020-09-07.21:29:10.517>created_at=<Date2020-05-23.16:40:54.878>labels= ['library', '3.10']
title='Explicitly drop support for SQLite version < 3.7.3'updated_at=<Date2020-09-07.21:29:13.993>user='https://github.com/erlend-aasland'
Currently, we use sqlite3_create_function_v2() without wrapping it in any #ifdefs, so in practise the sqlite3 module will not build against sqlite3 pre 3.7.3. Despite this, we still wrap parts of the code in #ifdefs for versions 3.6.x and older.
Łukasz, pinging you, since you are the release manager of 3.9.
Without PR 20909, 3.9 will be released without explicitly requiring SQLite 3.7.3 (setup.py looks for SQLite >= 3.7.2), compiling python 3.9 against SQLite 3.7.2 will fail at build time because of commit b9a0376, and it will also be possible to compile with SQLite 3.7.3 but run with pre SQLite 3.7.3 libraries, which could end up with a core dump.
With PR 20909, we explicitly state, in the docs, that SQLite 3.7.3 is required, and we explicitly check the SQLite version at configure time (setup.py), compile time (#ifdef => #error), and run time (if sqlite3_libversion_number() < ...) to prevent CPython from being configured, build, or run against unsupported SQLite versions.
I might be overestimating the severity of this issue, but I thought you would be interested this, as the release manager of 3.9 :)
Activity
erlend-aasland commentedon May 23, 2020
Currently, we use sqlite3_create_function_v2() without wrapping it in any #ifdefs, so in practise the sqlite3 module will not build against sqlite3 pre 3.7.3. Despite this, we still wrap parts of the code in #ifdefs for versions 3.6.x and older.
Added patch drops support for sqlite3 pre 3.7.3.
erlend-aasland commentedon Jul 20, 2020
Łukasz, pinging you, since you are the release manager of 3.9.
Without PR 20909, 3.9 will be released without explicitly requiring SQLite 3.7.3 (setup.py looks for SQLite >= 3.7.2), compiling python 3.9 against SQLite 3.7.2 will fail at build time because of commit b9a0376, and it will also be possible to compile with SQLite 3.7.3 but run with pre SQLite 3.7.3 libraries, which could end up with a core dump.
With PR 20909, we explicitly state, in the docs, that SQLite 3.7.3 is required, and we explicitly check the SQLite version at configure time (setup.py), compile time (#ifdef => #error), and run time (if sqlite3_libversion_number() < ...) to prevent CPython from being configured, build, or run against unsupported SQLite versions.
I might be overestimating the severity of this issue, but I thought you would be interested this, as the release manager of 3.9 :)
pablogsal commentedon Sep 7, 2020
New changeset 207c321 by Erlend Egeberg Aasland in branch 'master':
bpo-40744: Drop support for SQLite pre 3.7.3 (GH-20909)
207c321
pablogsal commentedon Sep 7, 2020
Given the status of the 3.9 branch and given that this does not add anything new or fixes any specific bug, I would recommend to not backport this
pablogsal commentedon Sep 7, 2020
Feel free to re-open if i missed something :)