Bug#729426: Tighten versioned dependency on SQLite3

2013-11-12 Thread Wouter Bolsterlee
Package: subversion

Hi,

It seems the subversion dependency on libsqlite3-0 (via libsvn1) needs
tighter versioning. Currently a mismatch can result in errors like
these:

svn: E200029: Couldn't perform atomic initialization
svn: E200030: SQLite compiled for 3.8.0.2, but running with
3.7.13

Regards,

— Wouter




signature.asc
Description: This is a digitally signed message part


Bug#729426: Tighten versioned dependency on SQLite3

2013-11-12 Thread Peter Samuelson

reassign 729426 libsvn1
forcemerge 721878 729426
thanks

[Wouter Bolsterlee]
 svn: E200029: Couldn't perform atomic initialization
 svn: E200030: SQLite compiled for 3.8.0.2, but running with
 3.7.13

Thanks.  The problem is that there's 3 different opinions on this
dependency, and none of them match:

(1) sqlite3 shlibs and symbols files;

(2) The configure + build process detects SQLite features and optimizes
the build to use whatever features it knows it can rely on;

(3) To be on the safe side, as it were, libsvn1 does a runtime check to
make sure the SQLite version is at least as recent as the one it was
built with.  (That's the error you see above.)

So the problem is that what we need is (2), but what we actually get is
(1) which is unsafe because it is not strict enough, and (3) which is
too strict.  At some point I patched (3) so it only cares about
'major.minor' rather than 'major.minor.patch', but as you can see, that
is still too strict.

It's been suggested we use runtime detection of SQLite features in
libsvn1, but that's not really convenient: if I remember correctly, the
build process involves compiling SQL queries which may use newer SQLite
features.  I'll try to look into it anyway - I expect upstream would be
interested.

What we will probably do instead is patch out (3), audit the (2) cases,
and hard-code a minimum SQLite version, to be adjusted every major new
Subversion release that may make use of additional SQLite features.

Peter


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#729426: Tighten versioned dependency on SQLite3

2013-11-12 Thread Wouter Bolsterlee
Peter Samuelson schreef op di 12-11-2013 om 15:27 [-0600]:
 [...]
 It's been suggested we use runtime detection of SQLite features in
 libsvn1, but that's not really convenient: if I remember correctly, the
 build process involves compiling SQL queries which may use newer SQLite
 features.  I'll try to look into it anyway - I expect upstream would be
 interested.

Oh well, that looks harder than I thought. Thanks for the detailed
analysis. Actually,
I suspected it would only be a minor change to a control file, but as
always, reality is more complex than it seems. :)

Anyway, it's not that important; the error message was pretty helpful
after all, so the issue was quickly resolved. 

— Wouter


signature.asc
Description: This is a digitally signed message part


Bug#729426: Tighten versioned dependency on SQLite3

2013-11-12 Thread James McCoy
On Tue, Nov 12, 2013 at 03:27:07PM -0600, Peter Samuelson wrote:
 [Wouter Bolsterlee]
  svn: E200029: Couldn't perform atomic initialization
  svn: E200030: SQLite compiled for 3.8.0.2, but running with
  3.7.13
 
 Thanks.  The problem is that there's 3 different opinions on this
 dependency, and none of them match:
 
 (1) sqlite3 shlibs and symbols files;
 
 (2) The configure + build process detects SQLite features and optimizes
 the build to use whatever features it knows it can rely on;
 
 (3) To be on the safe side, as it were, libsvn1 does a runtime check to
 make sure the SQLite version is at least as recent as the one it was
 built with.  (That's the error you see above.)
 
 So the problem is that what we need is (2), but what we actually get is
 (1) which is unsafe because it is not strict enough, and (3) which is
 too strict.  At some point I patched (3) so it only cares about
 'major.minor' rather than 'major.minor.patch', but as you can see, that
 is still too strict.

Upstream 1.8.x has changed to allow specifying the minimum supported
SQLite version as an argument to configure, so we could set that to
max(stable's SQLite, minimum version SVN requires) and update the
(Build-)Depends appropriately.

Cheers,
-- 
James
GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy james...@debian.org


signature.asc
Description: Digital signature