[Bug 269966] net/vnstat: no longer works after databases/sqlite3 disabled DQS
Date: Tue, 07 Mar 2023 17:01:38 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=269966 --- Comment #5 from Joshua Kinard <freebsd@kumba.dev> --- (In reply to ~Luna from comment #4) > Hi. After a pkg update I have the same issues with vnstat. Do I understand > correctly that it would be best if vnstat would change this in their code? > > For now though I need vnstat to work so did you find out how to downgrade > sqlite3 with pkg (instead of ports)? I kinda found a way to downgrade sqlite3 via pkg. There's a site (which I don't have the URL on hand atm) that gave the mirror link to the older 3.40.1 copy. Ideally, you would install that, then lock it from being upgraded. But the fix I finally went with was to build sqlite3 from ports via 'make package', making sure to enable DQS, then, and this is the critical part, I used 'pkg add' instead of 'pkg install' to install the locally-built port, which dodges around the possible bug in pkg's solver component that gets confused. Then I locked both vnstat and sqlite3 so that pkg won't try to automatically upgrade them. It requires some manual work to watch for updates in ports and rebuild as appropriate, but I have such a small number of locally-built ports for my FreeBSD systems and jails, that it's fairly manageable. I looked through some of vnstat's code and I don't really see where they're relying on the DQS feature. Most of their core database code is in src/dbsql.c, and I am wondering if it's an issue of whether the database was initialized while DQS was enabled. I have a Gentoo Linux machine that also runs vnstat, but the ebuild there does not (and hasn't ever, I think) enabled DQS, so my vnstat database there had no issues when sqlite was updated to 3.41. Thus it may be a matter of re-initializing the vnstat.db database with DQS disabled to get a proper fix. Then one would have to dump the old DB and import it into the new DB. Totally untested, but it's a thought I had. -- You are receiving this mail because: You are the assignee for the bug.