On 19/12/2025 11:49, Washington Odhiambo wrote:
> I my /etc/make.conf, I have:
> DEFAULT_VERSIONS+= python=3.11 python3=3.11 pgsql=15 ssl=openssl
> mysql=11.4m mariadb=11.4
>
> I still suffer from some pkgs wanting to install MySQL client libraries by
> force :-)
>
> How do I stop them once and for all?
>
>
> root@gw:/home/wash # pkg upgrade
> Updating FreeBSD-ports-kmods repository catalogue...
> Fetching data.pkg: 100% 34 KiB 35.1kB/s 00:01
> Processing entries: 100%
> FreeBSD-ports-kmods repository update completed. 238 packages processed.
> Updating FreeBSD-base repository catalogue...
> Fetching data.pkg: 100% 80 KiB 81.5kB/s 00:01
> Processing entries: 100%
> FreeBSD-base repository update completed. 496 packages processed.
> Updating FreeBSD-ports repository catalogue...
Setting DEFAULT_VERSIONS in make.conf has no effect on pkgs installed
from the central package repositories -- those will have whatever the
default DEFAULT_VERSIONS settings are compiled into them.
If you want to switch to everything depending on mariadb, rather than
Oracle-flavoured mysql you're going to need to compile your own packages
I'm afraid. It's not particularly difficult to spin up a poudriere
instance and so long as you don't need anything depending on rust or
llvm or various other tedious-to-compile packages, you can get away with
suprisingly few system resources.
Poudriere allows setting a custom make.conf for your home-brewed
packages and custom options choices for the packages you build. Also,
if you use poudriere-devel you can set it to download dependency
packages from the main repositories when remote settings do not conflict
with your local changes.
This 'compiled-in' inflexibility of pkgs is a recognised problem, but
fixing it requires some radical changes to the way ports works and also
needs modifications to pkg(8).
Cheers,
Matthew