[Rpm-ecosystem] Using RPM with NDB on macOS

Neal Gompa ngompa13 at gmail.com
Sun Oct 20 00:47:52 UTC 2019

Hey all,

As I had alluded to in the pull request adding the SQLite rpmdb
backend[1], I have been doing some work every once in a while for the
past few years on rpm for macOS.

A point of frustration has been having a working bdb package, and
maintaining bdb is functionally impossible for me, as I have no
capability to fix bugs there.

I had been experimenting with LMDB since it was introduced.
Unfortunately, it turned out to be more problematic than I expected.
Originally, NDB didn't work on macOS because of its usage of mremap()
(which does not exist on macOS)[2]. Thankfully, Michael Schroeder
recently fixed this in git master[3], so I gave it another try.

After a minor issue[4] and a backport of the ndb fixes to rpm 4.15[5],
I was able to transition to ndb and start trying it.

I've gotten rpm itself working with ndb, and it seems like all the
basic actions work perfectly fine with ndb. I'm working on building up
a package manager stack so that I can start doing some more
interesting tests, but there are issues with libsolv where it makes
the assumption about where the rpmdb path is and what type of rpmdb it

My current plan is to at least get to the point where I can try
working with the solv(1) demo program included in libsolv, and then
proceed from there. At least with the DNF stack, there's still the
problem that it assumes bdb[6] and specific rpmdb paths. I'd like to
get to the point that I could use MicroDNF[7]...

[1]: https://github.com/rpm-software-management/rpm/pull/899#issuecomment-543129651
[2]: https://github.com/rpm-software-management/rpm/issues/334
[3]: https://github.com/rpm-software-management/rpm/commit/3625ca14c752fa229c79891fcc6374df40b5b588
[4]: https://github.com/rpm-software-management/rpm/pull/907
[5]: https://github.com/rpm-software-management/rpm/compare/rpm-4.15.x...Conan-Kudo:rpm-4.15.0-osx-ndb
[6]: https://github.com/rpm-software-management/libdnf/issues/362
[7]: https://github.com/rpm-software-management/microdnf

真実はいつも一つ!/ Always, there's only one truth!

More information about the Rpm-ecosystem mailing list