bupstash icon indicating copy to clipboard operation
bupstash copied to clipboard

Allow build with system-provided libsqlite (dynamically linked)

Open jirutka opened this issue 2 years ago • 1 comments

This is mainly for Linux distributions that package bupstash. Linux distributions generally dislike bundled (statically linked) dependencies, both for security reasons and to save users from wasting network traffic and disk space by having dozens of copies of the same library bundled in different binaries.

Notes:

The modern_sqlite feature of rusqlite is implicitly enabled by the bundled feature, so it's not new here. This feature is needed because it enables libsqlite3-sys/bundled_bindings which is needed for src/fstx2.rs to build (it doesn't build with buildtime_bindgen, dunno why).

sqlite has a very stable API and ABI, so it's not necessary to ensure exact version matching. And it's undesirable when linking with system-provided libsqlite, because it would require rebuilding bupstash every time libsqlite is upgraded to a new patch version (e.g. with fixed security bug). However, I kept the assert and disabled it just for builds without bundled sqlite.

jirutka avatar Apr 14 '23 22:04 jirutka

Debian will need it

bastien-roucaries avatar Jun 08 '23 14:06 bastien-roucaries