The Storage support team intends to remove support for building
Mozilla-based applications using the system provided SQLite library on
Linux (--enable-system-sqlite).



When: After the next mozilla-central merge to Nightly 75, February 10th. We
plan to unship support during the 75 cycle.



Where: https://bugzilla.mozilla.org/show_bug.cgi?id=1611386

Why:

   1.

   We have limited resources available to us. Developing new features that
   touch SQLite low level APIs have often required additional resources to
   ensure system SQLite keeps working; we are at a point where we can't afford
   those development costs.
   2.

   We had bugs due to it and the most recent of which, tracked in
   https://bugzilla.mozilla.org/show_bug.cgi?id=1607902, is due to a
   mistake we made in relying on some Sqlite internal details. The result of
   that, due to supporting system Sqlite, is that we requested the Sqlite team
   to undo some code improvements in a .1 release, and, in spite of that,
   older Firefox versions on a specific new Sqlite version will crash forever.
   We don't want to be in this situation where the Sqlite team can't improve
   their product freely.
   3.

   There is risk of losing users due to the kind of crashing bugs this can
   cause, because not everyone would be able to connect the misbehavior with
   the update of an external library, that may have been updated along with
   other packages updates. And downgrading Sqlite may not be an option if
   another software requires the new version instead.
   4.

   For quite some time we ended up enforcing our Sqlite preferences onto
   the system library (things like ‘secure_delete’ or ‘fts’, for example);
   addressing those cases requires time and resources. We don't want to
   enforce our specific choices.
   5.

   Our Web Storage team will soon start working with Sqlite encryption, in
   a way that may not be compatible with system Sqlite. Again, having to cope
   with the system library would mean a lot of additional effort, and more
   requirements for system Sqlite that may not be well digested.
   6.

   We have our own custom memory allocator, and hooking it up has
   complications we'd prefer to avoid, if possible.
   7.

   The benefits of using system SQLite so far have been minimal. We wanted
   to be good citizens by sharing as much as possible with the system, as it
   was common practice. Today the historical packaging strategies on Linux
   systems are evolving with the introduction of new packaging systems (Snap,
   Flatpak, for example) that changed the relationship with dependencies by
   packing them up with the main application.
   The remaining benefits (e.g. package size, memory) are negligible on
   today's hardware.
   The security benefits we get because the system Sqlite may be more
   up-to-date are minimal, because we don't expose Sqlite to Web content, nor
   to add-ons. Additionally, we actively track and test every new Sqlite
   release and apply them as soon as possible.



Thanks,

Marco
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to