fix(bookmarks): force libsqlite3-sys bundled via explicit feature gate
The chroot build of owlry-2.0.0 failed at link time with every sqlite3_*
symbol undefined — libsqlite3-sys's build.rs was taking the
'build_linked' branch (which links to system libsqlite3) instead of
'build_bundled' (which compiles sqlite3.c statically). The host build
worked only because /usr/lib/libsqlite3.so happens to be installed.
The original Cargo.toml had:
rusqlite = { version = "0.39", features = ["bundled"], optional = true }
In theory this activates rusqlite/bundled which pulls libsqlite3-sys/bundled.
In practice — apparently a Cargo resolver edge case with optional deps in
edition 2024 — the bundled feature did not flow into the resolved feature
graph in a clean chroot build.
Fixed by declaring rusqlite without inline features and wiring the bundled
flag explicitly in the bookmarks feature row:
[dependencies]
rusqlite = { version = "0.39", optional = true }
[features]
bookmarks = ["dep:rusqlite", "rusqlite/bundled"]
Verified via 'cargo tree --features full -i libsqlite3-sys -e features':
the libsqlite3-sys 'bundled' feature now traces back to owlry/full ->
owlry/bookmarks -> rusqlite/bundled.
This commit is contained in:
@@ -60,8 +60,11 @@ signal-hook = "0.3"
|
||||
expr-solver-lib = "1"
|
||||
reqwest = { version = "0.13", default-features = false, features = ["native-tls", "json", "blocking"] }
|
||||
|
||||
# Optional providers (gated by cargo features below)
|
||||
rusqlite = { version = "0.39", features = ["bundled"], optional = true }
|
||||
# Optional providers (gated by cargo features below).
|
||||
# Features declared on the bookmarks feature row, not inline here, so the
|
||||
# `bundled` flag propagates cleanly to libsqlite3-sys regardless of how
|
||||
# downstream consumers compose features.
|
||||
rusqlite = { version = "0.39", optional = true }
|
||||
|
||||
# Async oneshot channel (background thread -> main loop)
|
||||
futures-channel = "0.3"
|
||||
@@ -81,7 +84,7 @@ dev-logging = []
|
||||
|
||||
# Optional providers (compiled in when enabled).
|
||||
# The AUR PKGBUILD builds with --features "full" to ship everything.
|
||||
bookmarks = ["dep:rusqlite"]
|
||||
bookmarks = ["dep:rusqlite", "rusqlite/bundled"]
|
||||
clipboard = []
|
||||
emoji = []
|
||||
filesearch = []
|
||||
|
||||
Reference in New Issue
Block a user