How do I know if I need to do the recent lmdb-related stuff mentioned in UPDATING?

/usr/ports/UPDATING has a recent message for databases/lmdb, indicating that the newly released 1.0 is incompatible with some on-disk format used by 0.9. So, before updating to 1.0, you have to dump the old files (using 0.9's "mdb_dump" utility). Only then should you upgrade to 1.0, after which you migrate them using 1.0's "mdb_load".

I know this because "pkg updating" told me so. The fact that it did implies that I do have databases/lmdb installed. OK. The main issue here, though, is that I know nothing about this port; it almost certainly was installed by some other port, not directly installed by me specifically. So, first, I tried to figure out what's using it:

# pkg info -r lmdb
lmdb-0.9.35,1:
samba423-4.23.8
samba423-4.23.8 (liblmdb.so.0)
OK, so Samba depends on it. And I do use Samba. But...

... how am I supposed to know if Samba -- my Samba -- is actually using it? And furthermore, if it's actually using it in a way that is affected by this change? That is, using it by storing something on disk? And what/where would those things stored on disk be?
 
Yeah, except for some widespread things that I've got turned off for all ports via OPTIONS_UNSET (e.g. CUPS, DEBUG, X11), I only have a single port for which I customize the options. That port is not Samba, and my Samba definitely pulls it in.
 
pkg info -r lmdb
should tell you what packages are dependent on lmdb
What I did (and usually do) is pkg query %ro databases/lmdb.
Should be (actually) the same result in different format, but yours are more detailed.
Code:
% pkg info -r lmdb
lmdb-0.9.35,1:
    samba416-4.16.11_11
    kf6-baloo-6.26.0
    libetpan-1.10_1
    bogofilter-1.3.0.r1_1
    kf5-baloo-5.116.0_1
    kf5-baloo-5.116.0_1 (liblmdb.so.0)
    bogofilter-1.3.0.r1_1 (liblmdb.so.0)
    libetpan-1.10_1 (liblmdb.so.0)
    kf6-baloo-6.26.0 (liblmdb.so.0)
    samba416-4.16.11_11 (liblmdb.so.0)
% pkg query %ro databases/lmdb
net/samba416
sysutils/kf6-baloo
mail/libetpan
mail/bogofilter
sysutils/kf5-baloo
%
 
so that's why my postfix kept complaining about lmdb:verify_cache being unreadable after the upgrade ...

I just removed the file and let postfix rebuild it so normality restored.
 
And now we have lmdb and lmdb0 (I saw in freshports.org). And If I run pkg upgrade I think it will choose lmdb? Am I wright?
I depend just
mail/libetpan
Thank you.
Maybe you'll need to deinstall databases/lmdb first on acutal upgrades, as CONFLICTS_INSTALL is set. databases/lmdb0 would be pulled in on following pkg upgrade.

Anyway, you'll need to wait (at least for 15.x, but maybe others, too) until correlated builds are finished for commit ports 7a7dea44149e (for latest) or later.
Code:
# pkg search -r FreeBSD-ports lmdb
dlmdb-1.0.0.20260306           Datalevin fork of OpenLDAP Lightning Memory-Mapped Database
lmdb-1.0.0,1                   OpenLDAP Lightning Memory-Mapped Database
lmdbg-1.3.0_1                  Lightweight malloc debugger
py312-lmdb-2.2.0               Python bindings for LMDB
rubygem-lmdb-0.7.0             Ruby bindings for OpenLDAP's LMDB
rubygem-opentelemetry-instrumentation-lmdb-0.26.0 LMDB instrumentation for the OpenTelemetry framework
rubygem-opentelemetry-instrumentation-lmdb-gitlab-0.25.0 LMDB instrumentation for the OpenTelemetry framework
tcl-lmdb-0.5.0                 Tcl interface to the Lightning Memory-Mapped Database
#
 
FWIW, I now get an error when building (in a clean environment) the latest net/samba423 (which has been changed to use the new databases/lmdb0). The build does in fact install databases/lmdb0, but then fails because it can't find lmdb. Bugzilla thread here.
 
FWIW, I now get an error when building (in a clean environment) the latest net/samba423 (which has been changed to use the new databases/lmdb0). The build does in fact install databases/lmdb0, but then fails because it can't find lmdb. Bugzilla thread here.
At which commit you're on?
There are 2 commits fixing it.
The first is done as parts of adding databases/lmdb0 at commit ports 5f9d389f299a.
And some of them, including net/samba423, got another fix afterwards at commit ports 7a7dea44149e by another committer.
If you're at some point before the latter, try updating again.
And if it works fine, close the PR.
 
It's weird because according to what I read in the postfix mailing list, my postfix should be failing with lmdb 1.0 and it doesn't. After deleting my postscreen cache (which then postfix recreates), I can simply query it with postmap -s lmdb:/var/db/postfix/postscreen_cache and it gives me proper results.

With that said, I've compiled my own postfix from the ports tree. What I see from the ports tree it, with the next compilation I'll get lmdb 0.9.3 back so that file will need to be deleted again. Not looking forward to it.
 
At which commit you're on?
There are 2 commits fixing it.
The first is done as parts of adding databases/lmdb0 at commit ports 5f9d389f299a.
And some of them, including net/samba423, got another fix afterwards at commit ports 7a7dea44149e by another committer.
If you're at some point before the latter, try updating again.
And if it works fine, close the PR.
4.23.8_1. Unfortunately, both of the commits you mentioned are (at least according to FreshPorts) called 4.23.8_1.

I'm pretty sure that when I updated, only the first existed (or, similarly, at least only the first existed according to FreshPorts). In any case, I'll try again and see what happens. Thanks.
 
Maybe you'll need to deinstall databases/lmdb first on acutal upgrades, as CONFLICTS_INSTALL is set. databases/lmdb0 would be pulled in on following pkg upgrade.

Anyway, you'll need to wait (at least for 15.x, but maybe others, too) until correlated builds are finished for commit ports 7a7dea44149e (for latest) or later.
Code:
# pkg search -r FreeBSD-ports lmdb
dlmdb-1.0.0.20260306           Datalevin fork of OpenLDAP Lightning Memory-Mapped Database
lmdb-1.0.0,1                   OpenLDAP Lightning Memory-Mapped Database
lmdbg-1.3.0_1                  Lightweight malloc debugger
py312-lmdb-2.2.0               Python bindings for LMDB
rubygem-lmdb-0.7.0             Ruby bindings for OpenLDAP's LMDB
rubygem-opentelemetry-instrumentation-lmdb-0.26.0 LMDB instrumentation for the OpenTelemetry framework
rubygem-opentelemetry-instrumentation-lmdb-gitlab-0.25.0 LMDB instrumentation for the OpenTelemetry framework
tcl-lmdb-0.5.0                 Tcl interface to the Lightning Memory-Mapped Database
#
I have locked packages for
mail/libetpan and
databases//lmdb and will wait...
 
Back
Top