serg First off: lame excuses: Apologies for a delay in responses. Paid work, holidays and a nice bit of viral infections are eating my available time on porting. I wake up mostly on the quarterly security updates :/.
You mean akin to the /debian/* structure? If that is what make the Debian packages that would be swell!
Can we assume that mariadb port files are basically the same in all supported FreeBSD version? Will we need some FreeBSD-version-specific checks in the Makefile or somewhere?
We sure can! And I would be all for it! There's issues with the current build infra where FreeBSD behaves very different from Linux packaging. We'd need to resolve these:
1. FreeBSD builds the "parts" separately. I.e. it should actually build `databases/mariadb-connector-c`, then build `databases/mariadb[0-9]-client` which depends on the correct connector-c port and then build `databases/mariadb[0-9]-server' port which depends on the correct mariadb-client port. If this requires a versioned `mariadb-connector-c` port, I believe it does, this WILL happen. I'm insufficiently skilled in CMake to rip apart these parts to properly make them depend out-of-source to e.g. `/usr/local/lib/`. I believe the Linux distros build the whole thing (libraries/client/server) and then split the resulting files in separate packages: FreeBSD fails on this feature. Many kloc of CMake code make MariaDB not an easy entry to CMake (GUIDE ME!)
2. FreeBSD ports must stay away from bundled software. Any library (e.g. any of the compression libraries lzo, lzma, zstd) must be consumed as a dependency, not built from the MariaDB tarball. The recent releases seem to deal with these dependencies a lot better.
3. VM's will depend on the supported FreeBSD versions and architectures indeed. Currently that would be 12.4 and 13.0. CI would be appreciated.
FWIW. I managed to reduce the number of patches required for MariaDB significantly by ignoring/commenting the server/client specific files in the package. You can clearly see this when you compare the number of patches required at the expense of maintaining "what files are client, which are server?" in the pkg-list.
https://github.com/freebsd/freebsd-ports/tree/main/databases/mysql80-server/files
https://github.com/freebsd/freebsd-ports/tree/main/databases/mariadb105-server/files
I very much hope this doesn't sound like an insurmountable list of requirements to you. I could really do with some help here! In return you can count on me to support you with all the FreeBSD port intricacies.
Cheers, Bernard.
MDEV-11791
We need this already if we want CI with ports.
For example, a patch for wsrep_sst_mariabackup.sh in 10.3-10.5 ports doesn't apply after
MDEV-27524.I've made it work for now by "patching the patch" directly in the buildbot step, but of course it's not sustainable and meaningless.
Otherwise, 10.3+ builds from ports / main MTR tests have been added to buildbot with a few extra tweaks:
MDEV-15795is needed for 10.3-10.4. It's been fixed in 10.5+. Buildbot now adds a one-line version of the patch to ports at runtime, but to continue, we need either to backport the fix to 10.3-10.4, or add it to ports for real, or give up on 10.3-10.4 and only run 10.5+. Otherwise MTR fails almost inevitably with weird errors which are in fact illegal instruction aborts;The buildbot runs FreeBSD 13.0 for all 10.3+ branches and FreeBSD 12.3 for main 10.3+ branches unless we decide otherwise.
The builders are currently in experimental, waiting for
MDEV-28224to be merged up to all versions.With
MDEV-28224fix in place, 10-20 MTR tests fail for each version, the failures need to be addressed separately, most of them seem technical at the first glance.MTR failures as of April 13:
10.3
MDEV-28303
MDEV-28304MDEV-28309
MDEV-23920
MDEV-27727
MDEV-24058
10.4
MDEV-28303
MDEV-27724
MDEV-28309
MDEV-23920
MDEV-27727
MDEV-24058
10.5,10.6,10.7
MDEV-28303
MDEV-27724
MDEV-23920
MDEV-27727