[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1033029: libsqlite3-0: please declare a Breaks against old crowdsec versions



Package: libsqlite3-0
Version: 3.34.1-3
Severity: important
Tags: patch
X-Debbugs-Cc: debian-go@lists.debian.org

Hi,

With my crowdsec maintainer hat on: while preparing the final crowdsec
upload(s) for bookworm, I've spotted that the crowdsec package from
bullseye doesn't start on a bookworm system:

    time="16-03-2023 00:19:45" level=fatal msg="api server init: unable to run local API: unable to init database client: failed creating schema resources: sql/schema: invalid type \"INTEGER\" for column \"events_count\""

While crowdsec is a Go package, relying on the Ent package to deal with
SQLite, the latter leverages golang-github-mattn-go-sqlite3-dev, which
ends up building against the system SQLite library.

That's how crowdsec 1.0.9-2(+b4) in bullseye ends up depending on
libsqlite3-0 (>= 3.7.15).

The service starts fine with all libsqlite3-0 versions between 3.34.1-3
and 3.36.0-2, and no longer starts with 3.37.0-1 and later. While I was
contemplating the documented changes for 3.37.0 (and finding nothing
relevant), my very kind upstream found this Ent issue:
  https://github.com/ent/ent/issues/2209

In short, Ent's expectations are no longer fulfilled, and crowdsec no
longer starts with newer versions.

To support partial upgrades from bullseye to bookworm, it would be best
if libsqlite3-0 would break old crowdsec versions, so that we don't run
into this issue (either because admins are performing partial upgrades
on purpose, or because apt broke down the upgrade into smaller chunks
with a combination of crowdsec/libsqlite3-0 packages that cannot work).

Patch attached, thanks for considering!


Cheers,
-- 
Cyril Brulebois -- Debian Consultant @ DEBAMAX -- https://debamax.com/
diff -Nru sqlite3-3.40.1/debian/changelog sqlite3-3.40.1/debian/changelog
--- sqlite3-3.40.1/debian/changelog	2022-12-31 09:41:40.000000000 +0100
+++ sqlite3-3.40.1/debian/changelog	2023-03-16 00:51:04.000000000 +0100
@@ -1,3 +1,10 @@
+sqlite3 (3.40.1-2) UNRELEASED; urgency=medium
+
+  * Add Breaks against crowdsec as found in bullseye, as it relies on a
+    particular table_info format, which changes between 3.36.0 and 3.37.0.
+
+ -- Cyril Brulebois <cyril@debamax.com>  Wed, 15 Mar 2023 23:51:04 +0000
+
 sqlite3 (3.40.1-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru sqlite3-3.40.1/debian/control sqlite3-3.40.1/debian/control
--- sqlite3-3.40.1/debian/control	2022-12-31 09:41:40.000000000 +0100
+++ sqlite3-3.40.1/debian/control	2023-03-16 00:50:52.000000000 +0100
@@ -52,7 +52,7 @@
 Section: libs
 Architecture: any
 Depends: ${shlibs:Depends}, ${misc:Depends}
-Breaks: python-migrate (<< 0.11.0-4~), python3-migrate (<< 0.11.0-4~)
+Breaks: python-migrate (<< 0.11.0-4~), python3-migrate (<< 0.11.0-4~), crowdsec (<< 1.4)
 Multi-Arch: same
 Pre-Depends: ${misc:Pre-Depends}
 Description: SQLite 3 shared library

Reply to: