Re: Completely do away with MySQL dependencies after migrating to MariaDB

From: Matthew Seaman <matthew_at_FreeBSD.org>
Date: Fri, 19 Dec 2025 12:18:35 UTC
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