The problem:
I set
in make.conf in order to force upgrade to databases/db18 from databases/db5. This immediately caused problems. When building updated ports with
would not build, claiming that no compatible version was available.
The solution:
Add
to make.conf.
The reason:
In file /usr/ports/Mk/Uses/bdb.mk version 18 is not appended to the variable
without this variable being set.
When building from the ports tree, if databases/db18 is already installed it is detected and there is no problem. Likewise, if the port Makefile specifies version 18 it also works. Since
IDK if it's a bug or works as intended. However, this is the easy fix for anyone trying to do what I did.
I set
Code:
DEFAULT_VERSIONS+=BDB=18
poudriere
, ports which depended on bdb via
Code:
USES= bdb
The solution:
Add
Code:
WITH_BDB6_PERMITTED=yes
The reason:
In file /usr/ports/Mk/Uses/bdb.mk version 18 is not appended to the variable
Code:
_DB_DEFAULTS
Code:
_DB_PORTS= 5 18
_DB_DEFAULTS= 5
#
# Since 2020-12-02, this name is not fitting too much but
# retained for now for compatibility. The name of this variable
# is subject to change especially once db6 were removed.
. if defined(WITH_BDB6_PERMITTED) || ${_bdb_ARGS} == 18
_DB_DEFAULTS+= 18
. endif
When building from the ports tree, if databases/db18 is already installed it is detected and there is no problem. Likewise, if the port Makefile specifies version 18 it also works. Since
poudriere
will attempt to install required packages from its repository, bdb.mk will generate an error and the build will fail without this additional variable being set. IDK if it's a bug or works as intended. However, this is the easy fix for anyone trying to do what I did.