databases/mysql*-server: make the rc script service jail aware
Set a default of net_basic for the service jail options, so mysqld
can use IPv4/IPv6 when it is started in a service jail. The default
can be overridden via rc.conf.
PR: 279672
Sponsored by: Netzkommune GmbH
databases/mysql97-server: Add maintainer note per new ports policy
The maintainer load and port lifecycle policy only excludes a port from the
outdated ratio when the reason is documented in the port itself:
https://wiki.freebsd.org/Ports/MaintainerLoadAndPortLifecyclePolicy
repology merges every MySQL release series into a single project and measures
each of them against the newest train upstream ships. At the time of writing it
lists 26.7.0 as the newest MySQL and therefore reports this port as outdated,
although it carries 9.7.2, the latest release of its own series. The 26.x train
is not packaged in the tree at all, so this is a measurement artifact rather
than a pending update.
No functional change, comment only.
Sponsored by: Netzkommune GmbH
databases/mysql{80,84,97}-server: Fix build on CPUs without SSE4.2
The crc32 code declares target("sse4.2"), but the _mm_crc32_* intrinsics
require the crc32 feature. With -mno-crc32, as emitted by -march=native
on a CPU without the instruction, sse4.2 no longer implies crc32 and the
build fails. Declare crc32 instead, including the two flatten wrappers that
inline those intrinsics.
PR: 275404
Sponsored by: Netzkommune GmbH
databases/mysql{80,84,97}-server: Add rc script and user for MySQL Router
All three server ports build and install MySQL Router, but it was never
usable out of the box: there is no mysqlrouter user, no rc script, no
configuration directory, and no log, runtime or data directory. The only
trace of an integration was etc/logrotate.d/mysqlrouter, whose
"create 600 mysqlrouter mysqlrouter" refers to an account that no port
creates, so logrotate(8) skipped that entry with an error and exited
non-zero.
Upstream names that account itself: scripts/CMakeLists.txt sets
MYSQLROUTER_USER to "mysqlrouter", the built-in help of mysqlrouter
suggests --user=mysqlrouter, and the systemd unit shipped for Linux runs
the service under it.
Add the user and group, an rc script, and a configuration sample in
etc/mysqlrouter. mysqlrouter does not detach itself, so it runs under
daemon(8), which also writes the PID file that the postrotate script in
etc/logrotate.d/mysqlrouter expects. The runtime, log and data
directories
are created by the rc script, and only when they are missing, so a host
that already runs MySQL Router under a different account keeps working
untouched. This matches the init script in upstream's own packaging.
The service is off by default.
PR: 253245
Sponsored by: Netzkommune GmbH
databases/mysql*-server: Fix plist issue
Move LICENSE.router and README.router from ${PREFIX} to ${DOCSDIR},
where they belong according to hier(7).
PR: 290283
Reported by: se
Sponsored by: Netzkommune GmbH
databases/mysql97-{client,server}: Update to 9.7.2
This release contains the security fixes of the Oracle Critical
Patch Update of July 2026. 43 of the 54 MySQL issues apply to the
9.7 series and to the MySQL Router built from this port.
Drop patch-libs_mysql_gtid_tag__plain.h, the type_traits include
is upstream as of 9.7.2.
Changes:
https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-2.html
Security: 10f5f76e-90a5-11f1-bc30-3497f65b111b
Sponsored by: Netzkommune GmbH
databases/mysql{84,97}: Install man pages, clean up dependencies
Re-enable installation of the man pages shipped in the source tarball
and register them in pkg-plist, split between the client and server
packages. Same approach as databases/mysql80-client in PR 279234.
Rework the dependencies based on actual linkage: libfido2 is only used
by the client, curl, icu and liblz4 only by the server. Drop libhidapi
entirely, it is a transitive dependency of libfido2.
While here, fix the CONFLICTS_INSTALL pattern of mysql84-client not
matching mysql80-client and update the mysql84 pkg-message.
Sponsored by: Netzkommune GmbH
databases/mysql97: Fix build with llvm 21, directory ownership and cleanup
- Add upstream patches for missing #include <type_traits> and <cstdlib>,
fixing the build with clang/libc++ 21 [1] [2]
- Register MY_SECDIR and MY_TMPDIR with mysql:mysql 0750 in pkg-plist,
so mysqld no longer fails to start after package upgrades reset the
ownership to root [3]
- Fix CONFLICTS_INSTALL pattern in the client not matching
mysql80-client
and align it with the wildcard style used by the server
- Update pkg-message for 9.x: mysql_upgrade no longer exists, the server
performs upgrade tasks itself; fix version reference and quoting
- Drop duplicate -DWITH_LZ4=system, remove a stale line continuation,
whitespace fixes
- Rename patch-sql_server_component_mysql__file__imp.cc to follow the
patch naming convention
PR: 296439 [1], 296443 [2], 296758 [3]
Reported by: Trond Endrestøl [1] [2], Alexander Ushakov [3]
sponsored by: Netzkommune GmbH
databases/mysql97-{server|client}: add new Ports
Welcome MySQL 9.7 - the LTS Version from MySQL 9
What is new in MySQL9.7: https://dev.mysql.com/doc/relnotes/mysql/9.7/en/news-9-7-0.html
Sponsored by: Netzkommune GmbH