Skip to content
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

Merged
merged 3 commits into from Feb 3, 2021

Conversation

pmatilai
Copy link
Member

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.

@pmatilai pmatilai force-pushed the sqlitedef-pr branch 3 times, most recently from a2be4a8 to 85bd36b Compare January 29, 2021 11:57
@pmatilai
Copy link
Member Author

removing BDB itself now is a simple act

...or it should be. I had it all done locally but must've messed up something with git. Sigh.

Copy link
Member

@Conan-Kudo Conan-Kudo left a 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...

@Conan-Kudo
Copy link
Member

@pmatilai Squash your fixup commit into the other one, and I think it's good to go.

@pmatilai
Copy link
Member Author

With the way this is going, I suspect there's one or two more BDB references lurking about somewhere 😅

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.
@pmatilai
Copy link
Member Author

pmatilai commented Feb 1, 2021

Two more BDB references, plus updated the configure script default for sqlite too.

@Conan-Kudo
Copy link
Member

@pmatilai Actually, shouldn't there be a SQLite requires in the rpm.pc file?

@pmatilai
Copy link
Member Author

pmatilai commented Feb 1, 2021

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)

@Conan-Kudo
Copy link
Member

Since SQLite provides a pkgconfig file, it would use Requires.private instead, but I guess it can be handled outside of this.

@pmatilai
Copy link
Member Author

pmatilai commented Feb 1, 2021

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.

@Conan-Kudo
Copy link
Member

@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.
@ffesti ffesti merged commit 551e66f into rpm-software-management:master Feb 3, 2021
@pmatilai
Copy link
Member Author

pmatilai commented Feb 3, 2021

🎆 🎉

@Conan-Kudo
Copy link
Member

🥳 🎆 🎉 🍾

@pmatilai pmatilai deleted the sqlitedef-pr branch February 3, 2021 13:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants