New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default to sqlite backend and remove support for BDB #1523
Conversation
a2be4a8
to
85bd36b
Compare
...or it should be. I had it all done locally but must've messed up something with git. Sigh. |
85bd36b
to
3767ec3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You beat me to it! BDB has served us well since the beginning, now it's time to say farewell...
@pmatilai Squash your fixup commit into the other one, and I think it's good to go. |
With the way this is going, I suspect there's one or two more BDB references lurking about somewhere 😅 |
7ba9793
to
20c92ee
Compare
In order to get rid of BDB, we have to pick a new default. Sqlite has a proven track record over multiple decades in terms of compatibility and longevity, and is the "nobody ever got fired for..." choice in this space really. It's also developer friendly as the database is easy to inspect and a *lot* of people are familiar with it and it's API.
Back in 2013, the Berkeley DB license was changed in a way that prevented most of open-source world to go along, rpm was no different. We now have other options and a standalone migration path from BDB for those that haven't yet done so. Whatever else might be said about this partnership, it has been a long one. Now's the time to part ways.
20c92ee
to
cd76ba4
Compare
Two more BDB references, plus updated the configure script default for sqlite too. |
@pmatilai Actually, shouldn't there be a SQLite requires in the rpm.pc file? |
It's not a requirement, it's just the default. There should be a Libs.private entry for it though (but that missing is not really related to this PR) |
Since SQLite provides a pkgconfig file, it would use |
39d73dd
to
cd76ba4
Compare
Meh, yeah - it'd be a conditional requires just like eg zstd is. I pushed and then unpushed an intermediate version - lets deal with that elsewhere, this is getting convoluted enough as it is. |
@pmatilai I'm good with that. 👍🏾 |
These knobs and tunables were only ever used by the BDB backend which exposed all manner of internals to macro configuration. With that gone, we don't needs these struct members either.
🎆 🎉 |
🥳 🎆 🎉 🍾 |
We all want to get rid of BDB, but in order to do that we have to pick a new default.
Sqlite has a proven track record over multiple decades in terms of compatibility and longevity, and is the "nobody ever got fired for..." choice in this space really. It's also developer friendly as the database is easy to inspect and a lot of people are familiar with it and it's API.
Ndb has its own benefits such as independence from external libraries for those who care about that, but the above is what matter more to me: even if the entire rpm community gets run over by a truck, there will still be plenty of people deeply familiar with sqlite around.
With the default changed, removing BDB itself now is a simple act. I wont be shedding a single tear over it, but it certainly is an end of an era.