Project:Perl/maint-notes/dev-perl/DBD-SQLite

From Gentoo Wiki
Jump to: navigation, search

use system-sqlite

When bumping DBD-SQLite, one has to take care to understand:

  • The bundled DBD-SQLite version
  • The minimum dev-db/sqlite that might be supported by the code
  • The maximum dev-db/sqlite that might be supported by the code

Determining the bundled version is easy:

grep "define SQLITE_VERSION" sqlite3.c 
#define SQLITE_VERSION        "3.22.0"
#define SQLITE_VERSION_NUMBER 3022000

And determining the upstream stated absolute minimum is easy:

grep "[$]version >=" Makefile.PL 
		unless ( $version && ($version >= 3006000) ) {

However, one may note upstream doesn't necessarily target as wide a variety of versions as we do, so extra care must be taken for system-sqlite.

For instance, DBD-SQLite 1.540.0 indicated:

  • Ships with 3.13.0
  • Min supported 3.6.0

However, reality bug #640724 indicated a stricter window was necessary.

Subsequently

  • Don't ever downgrade the min requirement for sqlite, assume it will only get worse.
  • Leave the upper bound empty after bumping, then tighten it down when compat issues appear.
  • Where possible, set min-sqlite to the same as the shipped one. Where not possible to do that, depend on the largest possible one in proximity.

The objective being to let bundled and non-bundled behaviour vary as little as possible.