[Tts-project] Migration from Berkeley DB

Samuel Thibault sthibault at debian.org
Sat Jul 18 20:16:40 BST 2026


Hello,

Igor B. Poretsky, le sam. 18 juil. 2026 19:54:44 +0300, a ecrit:
> >>>>> "Samuel" == Samuel Thibault <sthibault at debian.org> writes:
> 
>     Samuel> Sure, but we don't have the choice if we keep just one place
>     Samuel> for the arch-dependent database: we then cannot co-install
>     Samuel> several architectural variants of librulexdb2, since the
>     Samuel> last postinst call would create the database, and only that
>     Samuel> variant of librulexdb2 will be able to use it and others
>     Samuel> won't.
> 
> But rulex-data is a separate package and librulexdb2 doesn't strictly
> depend on it, though recommends.

Ah, indeed, which makes the situation even more tricky :)

It's actually the lmdb-utils architecture that determines the format of
the database, and thus librulesdb2 needs to have the same architecture
as lmdb-utils, to be able to re-read it.

>     >> And making rulex-data package architecture dependent would
>     >> complicate cross-building.
> 
>     Samuel> Which cross-building?
> 
>     Samuel> By "making it architecture dependent", do you mean putting
>     Samuel> the database in arch-dependent paths? This can be encoded in
>     Samuel> the compiled binaries, that's a very common thing with
>     Samuel> multiarch support.
> 
> But in any case it would be necessary to run foreign executable to
> generate the database file during package building, that in turn would
> require additional foreign architecture emulation means, like qemu, for
> instance, thus, build dependencies complication. Or I miss something?

That is it. But that's a common thing to do. And notably on
architectures which can natively run both 32b and 64b variants. Setting
multi-arch tells people they can really run both versions concurrently.

Samuel



More information about the Tts-project mailing list