diff --git a/Mk/Uses/mysql.mk b/Mk/Uses/mysql.mk index 6805867a0076..eb8419f56b59 100644 --- a/Mk/Uses/mysql.mk +++ b/Mk/Uses/mysql.mk @@ -1,172 +1,173 @@ # Provide support for MySQL # Feature: mysql # Usage: USES=mysql or USES=mysql:args # Valid ARGS: , client, server, embedded # # version If no version is given (by the maintainer via the port), try to # find the currently installed version. Fall back to default if # necessary (MySQL-8.0 = 80, look at bsd.default-versions.mk for # possible values). # client Depends on the libmysqlclient library (default) # server/embedded # Depend on the server at run/build time. If none of these is # set, depends on the client. # # IGNORE_WITH_MYSQL # This variable can be defined if the ports does not support one # or more versions of MySQL. # WITH_MYSQL_VER # User defined variable to set MySQL version. # MYSQL_VER # Detected MySQL version. # # MAINTAINER: ports@FreeBSD.org .if !defined(_INCLUDE_USES_MYSQL_MK) _INCLUDE_USES_MYSQL_MK= yes . if !empty(mysql_ARGS) .undef _WANT_MYSQL_VER .undef _WANT_MYSQL_SERVER .undef _WANT_MYSQL_EMBEDDED _MYSQL_ARGS= ${mysql_ARGS:S/,/ /g} . if ${_MYSQL_ARGS:Mserver} _WANT_MYSQL_SERVER= yes _MYSQL_ARGS:= ${_MYSQL_ARGS:Nserver} . endif . if ${_MYSQL_ARGS:Membedded} _WANT_MYSQL_EMBEDDED= yes _MYSQL_ARGS:= ${_MYSQL_ARGS:Nembedded} . endif . if ${_MYSQL_ARGS:Mclient} _WANT_MYSQL_CLIENT= yes _MYSQL_ARGS:= ${_MYSQL_ARGS:Nclient} . endif # Port requested a version . if !empty(_MYSQL_ARGS) _WANT_MYSQL_VER= ${_MYSQL_ARGS} . if (${_WANT_MYSQL_VER:C/[0-9]*//} == "m") _WANT_MYSQL_FLAVOUR= mariadb . elif (${_WANT_MYSQL_VER:C/[0-9]*//} == "p") _WANT_MYSQL_FLAVOUR= percona . else _WANT_MYSQL_FLAVOUR= mysql . endif . endif . endif # !empty(mysql_ARGS) . if defined(DEFAULT_MYSQL_VER) WARNING+= "DEFAULT_MYSQL_VER is defined, consider using DEFAULT_VERSIONS=mysql=${DEFAULT_MYSQL_VER} instead" . endif DEFAULT_MYSQL_VER?= ${MYSQL_DEFAULT:S/.//} # MySQL client version currently supported. # When adding a version, please keep the comment in # Mk/bsd.default-versions.mk in sync. MYSQL57_LIBVER= 20 MYSQL57p_LIBVER= 20 MYSQL80_LIBVER= 21 +MYSQL81_LIBVER= 22 . for v in 5 6 11 MYSQL10${v}m_LIBVER= 3 . endfor # Setting/finding MySQL version we want. . if exists(${LOCALBASE}/bin/mysql) _MYSQL!= ${LOCALBASE}/bin/mysql_config --version | ${SED} -e 's/\([0-9]\{1,2\}\)\.\([0-9]*\).*/\1\2/' _PERCONA!= ${LOCALBASE}/bin/mysql --version | ${GREP} Percona | wc -l _MARIADB!= ${LOCALBASE}/bin/mysql --version | ${GREP} MariaDB | wc -l . if ${_PERCONA} == 1 _MYSQL_VER= ${_MYSQL}p _MYSQL_FLAVOUR= percona . elif ${_MARIADB} == 1 _MYSQL_VER= ${_MYSQL}m _MYSQL_FLAVOUR= mariadb . else _MYSQL_VER= ${_MYSQL} _MYSQL_FLAVOUR= mysql . endif . endif . if defined(_WANT_MYSQL_VER) . if defined(WITH_MYSQL_VER) && (${WITH_MYSQL_VER:C/[0-9]*//} == "m") WITH_MYSQL_FLAVOUR= mariadb . elif defined(WITH_MYSQL_VER) && (${WITH_MYSQL_VER:C/[0-9]*//} == "p") WITH_MYSQL_FLAVOUR= percona . else WITH_MYSQL_FLAVOUR= mysql . endif . if defined(WITH_MYSQL_VER) && ${WITH_MYSQL_VER} != ${_WANT_MYSQL_VER} IGNORE= cannot install: the port wants ${_WANT_MYSQL_FLAVOUR}${_WANT_MYSQL_VER:C/[mpw]//}-client and you try to install ${WITH_MYSQL_FLAVOUR}${WITH_MYSQL_VER:C/[mpw]//}-client . endif MYSQL_VER= ${_WANT_MYSQL_VER} . elif defined(WITH_MYSQL_VER) MYSQL_VER= ${WITH_MYSQL_VER} . else . if defined(_MYSQL_VER) MYSQL_VER= ${_MYSQL_VER} . else MYSQL_VER= ${DEFAULT_MYSQL_VER} . endif . endif # _WANT_MYSQL_VER . if ${MYSQL_VER:C/[0-9]*//} == "m" MYSQL_FLAVOUR= mariadb . elif ${MYSQL_VER:C/[0-9]*//} == "p" MYSQL_FLAVOUR= percona . else MYSQL_FLAVOUR= mysql . endif . if defined(_MYSQL_VER) . if ${_MYSQL_VER} != ${MYSQL_VER} IGNORE= cannot install: MySQL versions mismatch: ${_MYSQL_FLAVOUR}${_MYSQL_VER:C/[mpw]//}-client is installed and wanted version is ${MYSQL_FLAVOUR}${MYSQL_VER:C/[mpw]//}-client . endif . endif _MYSQL_SHLIB= libmysqlclient . if (${MYSQL_VER:C/[0-9]*//} == "m") _MYSQL_SERVER_FLAVOUR= mariadb _MYSQL_CLIENT_FLAVOUR= mariadb . if ${MYSQL_VER:C/m//} >= 105 _MYSQL_SHLIB= libmariadb . endif . elif (${MYSQL_VER:C/[0-9]*//} == "p") _MYSQL_SERVER_FLAVOUR= percona _MYSQL_CLIENT_FLAVOUR= percona . elif (${MYSQL_VER:C/[0-9]*//} == "w") _MYSQL_SERVER_FLAVOUR= mysqlwsrep _MYSQL_CLIENT_FLAVOUR= mysql . else _MYSQL_SERVER_FLAVOUR= mysql _MYSQL_CLIENT_FLAVOUR= mysql . endif _MYSQL_CLIENT= databases/${_MYSQL_CLIENT_FLAVOUR}${MYSQL_VER:C/[mp]//}-client _MYSQL_SERVER= databases/${_MYSQL_SERVER_FLAVOUR}${MYSQL_VER:C/[mp]//}-server # And now we are checking if we can use it . if defined(MYSQL${MYSQL_VER}_LIBVER) . if defined(IGNORE_WITH_MYSQL) . for VER in ${IGNORE_WITH_MYSQL} . if (${MYSQL_VER} == "${VER}") IGNORE= cannot install: does not work with MySQL version ${MYSQL_VER} (MySQL ${IGNORE_WITH_MYSQL} not supported) . endif . endfor . endif # IGNORE_WITH_MYSQL . if defined(_WANT_MYSQL_SERVER) || defined(_WANT_MYSQL_EMBEDDED) RUN_DEPENDS+= ${LOCALBASE}/libexec/mysqld:${_MYSQL_SERVER} . if defined(_WANT_MYSQL_EMBEDDED) BUILD_DEPENDS+= ${LOCALBASE}/lib/mysql/libmysqld.a:${_MYSQL_SERVER} . endif . endif . if defined(_WANT_MYSQL_CLIENT) || \ !(defined(_WANT_MYSQL_SERVER) || defined(_WANT_MYSQL_EMBEDDED)) LIB_DEPENDS+= ${_MYSQL_SHLIB}.so.${MYSQL${MYSQL_VER}_LIBVER}:${_MYSQL_CLIENT} . endif . else IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER} . endif # Check for correct libs .endif diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 580a5be8c7c8..1c185478f6d9 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -1,192 +1,192 @@ # MAINTAINER: ports@FreeBSD.org # # Note: before committing to this file, contact portmgr to arrange for an # experimental ports run. Untested commits may be backed out at portmgr's # discretion. # # Provide default versions for ports with multiple versions selectable # by the user. # # Users who want to override these defaults can easily do so by defining # DEFAULT_VERSIONS in their make.conf as follows: # # DEFAULT_VERSIONS= perl5=5.20 ruby=3.1 .if !defined(_INCLUDE_BSD_DEFAULT_VERSIONS_MK) _INCLUDE_BSD_DEFAULT_VERSIONS_MK= yes LOCALBASE?= /usr/local . for lang in APACHE BDB COROSYNC EBUR128 EMACS FIREBIRD FORTRAN FPC GCC \ GHOSTSCRIPT GL GO GUILE IMAGEMAGICK JAVA LAZARUS LIBRSVG2 LINUX LLVM \ LUA LUAJIT MONO MYSQL NINJA NODEJS OPENLDAP PERL5 PGSQL PHP \ PYCRYPTOGRAPHY PYTHON PYTHON2 RUBY RUST SAMBA SSL TCLTK VARNISH . if defined(${lang}_DEFAULT) ERROR+= "The variable ${lang}_DEFAULT is set and it should only be defined through DEFAULT_VERSIONS+=${lang:tl}=${${lang}_DEFAULT} in /etc/make.conf" . endif #.undef ${lang}_DEFAULT . endfor . for lang in ${DEFAULT_VERSIONS} _l= ${lang:C/=.*//g} ${_l:tu}_DEFAULT= ${lang:C/.*=//g} . endfor # Possible values: 2.4 APACHE_DEFAULT?= 2.4 # Possible values: 5, 18 BDB_DEFAULT?= 5 # Possible values: 2, 3 COROSYNC_DEFAULT?= 3 # Possible values: rust, legacy . if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64) EBUR128_DEFAULT?= rust . else EBUR128_DEFAULT?= legacy . endif # Possible_values: full canna nox devel_full devel_nox #EMACS_DEFAULT?= let the flavor be the default if not explicitly set # Possible values: 3.0, 4.0 FIREBIRD_DEFAULT?= 3.0 # Possible values: gfortran FORTRAN_DEFAULT?= gfortran # Possible values: 3.2.2, 3.3.1 . if !defined(WANT_FPC_DEVEL) FPC_DEFAULT?= 3.2.2 . else FPC_DEFAULT?= 3.3.1 . endif # Possible values: 8 (last to support powerpcspe), 9, 10, 11, 12 # (Any other version is completely unsupported and not meant for general use.) . if ${ARCH} == "powerpcspe" GCC_DEFAULT?= 8 . else GCC_DEFAULT?= 12 . endif # Possible values: 9, agpl, 10 GHOSTSCRIPT_DEFAULT?= 10 # Possible values: mesa-libs, mesa-devel GL_DEFAULT?= mesa-libs # Possible values: 1.19, 1.20, 1.21, 1.22-devel GO_DEFAULT?= 1.20 # Possible values: 1.8, 2.2, 3.0 GUILE_DEFAULT?= 2.2 # Possible versions: 6, 7 # Possible flavors: x11, nox11 # (defaults to x11 when not specified) # Format: version[-flavor] # Examples: 6-nox11, 7 IMAGEMAGICK_DEFAULT?= 7 # Possible values: 8, 11, 17, 18, 19, 20, 21 JAVA_DEFAULT?= 8 # Possible values: 2.2.6, 3.0.0 . if !defined(WANT_LAZARUS_DEVEL) LAZARUS_DEFAULT?= 2.2.6 . else LAZARUS_DEFAULT?= 3.0.0 . endif # Possible values: rust, legacy . if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64) LIBRSVG2_DEFAULT?= rust . else LIBRSVG2_DEFAULT?= legacy . endif # Possible values: c7 LINUX_DEFAULT?= c7 # Possible values: 10, 11, 12, 13, 14, 15, 16, 17, -devel (to be used when non-base compiler is required) LLVM_DEFAULT?= 15 # Possible values: 5.1, 5.2, 5.3, 5.4 LUA_DEFAULT?= 5.4 # Possible values: luajit, luajit-devel, luajit-openresty . if ${ARCH:Mpowerpc64*} LUAJIT_DEFAULT?= luajit-openresty . else LUAJIT_DEFAULT?= luajit-devel . endif # Possible values: 5.10, 5.20, 6.8 MONO_DEFAULT?= 5.20 -# Possible values: 5.7, 8.0, 10.5m, 10.6m, 10.11m, 5.7p, 5.7w +# Possible values: 5.7, 8.0, 8.1, 10.5m, 10.6m, 10.11m, 5.7p, 5.7w MYSQL_DEFAULT?= 8.0 # Possible values: ninja, samurai NINJA_DEFAULT?= ninja # Possible value: 16, 18, 20, 21, current, lts (Note: current = 21 and lts = 20) NODEJS_DEFAULT?= lts # Possible value: 25, 26 OPENLDAP_DEFAULT?= 26 # Possible values: 5.34, 5.36, 5.38, devel . if !exists(${LOCALBASE}/bin/perl) || (!defined(_PORTS_ENV_CHECK) && \ defined(PACKAGE_BUILDING)) PERL5_DEFAULT?= 5.36 . elif !defined(PERL5_DEFAULT) # There's no need to replace development versions, like "5.23" with "devel" # because 1) nobody is supposed to use it outside of poudriere, and 2) it must # be set manually in /etc/make.conf in the first place, and we're never getting # in here. . if !defined(_PERL5_FROM_BIN) _PERL5_FROM_BIN!= ${LOCALBASE}/bin/perl -e 'printf "%vd\n", $$^V;' . endif _EXPORTED_VARS+= _PERL5_FROM_BIN PERL5_DEFAULT:= ${_PERL5_FROM_BIN:R} . endif # Possible values: 11, 12, 13, 14, 15, 16 PGSQL_DEFAULT?= 15 # Possible values: 8.0, 8.1, 8.2, 8.3 PHP_DEFAULT?= 8.2 # Possible values: rust, legacy . if empty(ARCH:Naarch64:Namd64:Narmv7:Ni386:Npowerpc64:Npowerpc64le:Npowerpc:Nriscv64) PYCRYPTOGRAPHY_DEFAULT?= rust . else PYCRYPTOGRAPHY_DEFAULT?= legacy . endif # Possible values: 3.8, 3.9, 3.10, 3.11 PYTHON_DEFAULT?= 3.9 # Possible values: 2.7 PYTHON2_DEFAULT?= 2.7 # Possible values: 3.0, 3.1, 3.2, 3.3 RUBY_DEFAULT?= 3.1 # Possible values: rust, rust-nightly RUST_DEFAULT?= rust # Possible values: 4.13, 4.16 SAMBA_DEFAULT?= 4.13 # Possible values: base, openssl, openssl111, openssl31, openssl32, libressl, libressl-devel . if !defined(SSL_DEFAULT) # If no preference was set, check for an installed base version # but give an installed port preference over it. . if !defined(SSL_DEFAULT) && \ !exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so) && \ exists(${DESTDIR}/usr/include/openssl/opensslv.h) SSL_DEFAULT= base . else . if exists(${DESTDIR}/${LOCALBASE}/lib/libcrypto.so) . if defined(PKG_BIN) # find installed port and use it for dependency . if !defined(OPENSSL_INSTALLED) . if defined(DESTDIR) PKGARGS= -c ${DESTDIR} . else PKGARGS= . endif OPENSSL_INSTALLED!= ${PKG_BIN} ${PKGARGS} which -qo ${LOCALBASE}/lib/libcrypto.so || : . endif . if defined(OPENSSL_INSTALLED) && !empty(OPENSSL_INSTALLED) SSL_DEFAULT:= ${OPENSSL_INSTALLED:T} WARNING+= "You have ${OPENSSL_INSTALLED} installed but do not have DEFAULT_VERSIONS+=ssl=${SSL_DEFAULT} set in your make.conf" . endif . else check-makevars:: @${ECHO_MSG} "You have a ${LOCALBASE}/lib/libcrypto.so file installed, but the framework is unable" @${ECHO_MSG} "to determine what port it comes from." @${ECHO_MSG} "Add DEFAULT_VERSIONS+=ssl= to your /etc/make.conf and try again." @${FALSE} . endif . endif . endif # Make sure we have a default in the end SSL_DEFAULT?= base . endif # Possible values: 8.5, 8.6, 8.7 TCLTK_DEFAULT?= 8.6 # Possible values: 6, 7 VARNISH_DEFAULT?= 6 .endif diff --git a/databases/Makefile b/databases/Makefile index aa34af96a0e6..1419b72701ea 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -1,1089 +1,1091 @@ COMMENT = Databases and related software SUBDIR += R-cran-DBI SUBDIR += R-cran-RMySQL SUBDIR += R-cran-RPostgreSQL SUBDIR += R-cran-RSQLite SUBDIR += R-cran-cachem SUBDIR += R-cran-fastmap SUBDIR += R-cran-sqldf SUBDIR += WWWdb SUBDIR += adminer SUBDIR += adodb5 SUBDIR += akonadi SUBDIR += apache-commons-dbutils SUBDIR += arrow SUBDIR += arrow-glib SUBDIR += ateam_mysql57_ldap_auth SUBDIR += autobackupmysql SUBDIR += automysqlbackup SUBDIR += bbdb SUBDIR += beansdb SUBDIR += buzhug SUBDIR += c3p0 SUBDIR += cassandra-cpp-driver SUBDIR += cassandra3 SUBDIR += cassandra4 SUBDIR += casstcl SUBDIR += cayley SUBDIR += cdb SUBDIR += cego SUBDIR += cegobridge SUBDIR += clickhouse SUBDIR += closql SUBDIR += closql-devel SUBDIR += cockroach SUBDIR += couchdb3 SUBDIR += courier-authlib-mysql SUBDIR += courier-authlib-pgsql SUBDIR += courier-authlib-sqlite SUBDIR += courier-authlib-userdb SUBDIR += courier-authlib-usergdbm SUBDIR += cppdb SUBDIR += credis SUBDIR += cutelyst-asql SUBDIR += dalmp SUBDIR += datasette SUBDIR += db SUBDIR += db18 SUBDIR += db5 SUBDIR += dbf SUBDIR += dbh SUBDIR += dbixx SUBDIR += dbow SUBDIR += dbtool SUBDIR += dbview SUBDIR += diesel SUBDIR += duckdb SUBDIR += ejdb SUBDIR += emacs-sqlite3-api SUBDIR += emacsql SUBDIR += emacsql-devel SUBDIR += erlfdb SUBDIR += evolution-data-server SUBDIR += fastdb SUBDIR += firebird30-client SUBDIR += firebird30-server SUBDIR += firebird40-client SUBDIR += firebird40-server SUBDIR += fortytwo-bdb SUBDIR += foundationdb SUBDIR += frece SUBDIR += freetds SUBDIR += freetds-devel SUBDIR += frontbase-jdbc SUBDIR += futuresql SUBDIR += galera SUBDIR += galera26 SUBDIR += gdbm SUBDIR += geoserver-mysql-plugin SUBDIR += gigabase SUBDIR += gmdb2 SUBDIR += gnats4 SUBDIR += gnatsweb4 SUBDIR += go-carbon SUBDIR += go-pgweb SUBDIR += gobang SUBDIR += gom SUBDIR += goose SUBDIR += gqlplus SUBDIR += grass7 SUBDIR += grass8 SUBDIR += hashtypes SUBDIR += hiredis SUBDIR += hsqldb SUBDIR += immudb SUBDIR += imposm3 SUBDIR += influxdb SUBDIR += influxdb2-cli SUBDIR += innotop SUBDIR += iowow SUBDIR += ip4r SUBDIR += ipa_sdb SUBDIR += iplike SUBDIR += isql-viewer SUBDIR += jdb SUBDIR += jdbc-oracle11g SUBDIR += jetbrains-datagrip SUBDIR += jlog SUBDIR += jrobin SUBDIR += jrrd SUBDIR += kbibtex SUBDIR += kdb SUBDIR += kexi SUBDIR += keydb SUBDIR += kyotocabinet SUBDIR += kyototycoon SUBDIR += ldb15 SUBDIR += ldb20 SUBDIR += ldb21 SUBDIR += ldb22 SUBDIR += leo_center SUBDIR += leofs SUBDIR += leveldb SUBDIR += libcouchbase SUBDIR += libdbi SUBDIR += libdbi-drivers SUBDIR += libdrizzle SUBDIR += libdrizzle-redux SUBDIR += libgda5 SUBDIR += libgda5-jdbc SUBDIR += libgda5-ldap SUBDIR += libgda5-mysql SUBDIR += libgda5-postgresql SUBDIR += libgda5-ui SUBDIR += libgdamm5 SUBDIR += libhsclient SUBDIR += libiodbc SUBDIR += libmemcache SUBDIR += libmemcached SUBDIR += libmongo-client SUBDIR += libmongocrypt SUBDIR += libmswstr SUBDIR += libnvpair SUBDIR += libodbc++ SUBDIR += libpbl SUBDIR += libpg_query SUBDIR += libpqtypes SUBDIR += libsdb SUBDIR += libzdb SUBDIR += linux-c7-sqlite3 SUBDIR += linux-c7-unixODBC SUBDIR += linux-oracle-instantclient-basic SUBDIR += linux-oracle-instantclient-sdk SUBDIR += liquibase SUBDIR += litestream SUBDIR += lmdb SUBDIR += lua-lsqlite3 SUBDIR += lua-pgsql SUBDIR += lua-resty-redis SUBDIR += lua-xapian SUBDIR += luadbi SUBDIR += luasql-firebird SUBDIR += luasql-mysql SUBDIR += luasql-odbc SUBDIR += luasql-postgres SUBDIR += luasql-sqlite3 SUBDIR += mantis SUBDIR += mariadb-connector-c SUBDIR += mariadb-connector-odbc SUBDIR += mariadb1011-client SUBDIR += mariadb1011-server SUBDIR += mariadb105-client SUBDIR += mariadb105-server SUBDIR += mariadb106-client SUBDIR += mariadb106-server SUBDIR += mdbtools SUBDIR += mdbx SUBDIR += mdcached SUBDIR += memcached SUBDIR += metabase SUBDIR += mongodb-tools SUBDIR += mongodb44 SUBDIR += mongodb50 SUBDIR += mongodb60 SUBDIR += mongodb70 SUBDIR += movine SUBDIR += mroonga SUBDIR += mtop SUBDIR += mydumper SUBDIR += mysql++ SUBDIR += mysql-connector-c++ SUBDIR += mysql-connector-j SUBDIR += mysql-connector-java51 SUBDIR += mysql-connector-odbc-80 SUBDIR += mysql-udf SUBDIR += mysql2pgsql SUBDIR += mysql57-client SUBDIR += mysql57-server SUBDIR += mysql80-client SUBDIR += mysql80-server + SUBDIR += mysql81-client + SUBDIR += mysql81-server SUBDIR += mysqlbackup SUBDIR += mysqldump-secure SUBDIR += mysqlreport SUBDIR += mysqlsla SUBDIR += mysqltcl SUBDIR += mysqltuner SUBDIR += mysqlwsrep57-server SUBDIR += mytop SUBDIR += nagios-check_mongodb SUBDIR += nagios-check_postgres_replication SUBDIR += nagios-check_redis SUBDIR += namazu2 SUBDIR += nanodbc SUBDIR += neo4j SUBDIR += ocaml-dbm SUBDIR += ocaml-mysql SUBDIR += ocaml-sqlite3 SUBDIR += octosql SUBDIR += odbc-cpp-wrapper SUBDIR += ods2sql SUBDIR += opendbviewer SUBDIR += opendbx SUBDIR += ora2pg SUBDIR += oracle8-client SUBDIR += p5-Amazon-SimpleDB SUBDIR += p5-Amon2-DBI SUBDIR += p5-AnyEvent-BDB SUBDIR += p5-AnyEvent-CouchDB SUBDIR += p5-AnyEvent-DBD-Pg SUBDIR += p5-AnyEvent-Memcached SUBDIR += p5-AnyEvent-Redis SUBDIR += p5-App-Sqitch SUBDIR += p5-AsciiDB-TagFile SUBDIR += p5-BDB SUBDIR += p5-BSON SUBDIR += p5-BSON-XS SUBDIR += p5-BerkeleyDB SUBDIR += p5-Bucardo SUBDIR += p5-CDB_File SUBDIR += p5-CDB_File-Generator SUBDIR += p5-CGI-Session-Driver-memcached SUBDIR += p5-CHI-Driver-Memcached SUBDIR += p5-CHI-Driver-Redis SUBDIR += p5-CHI-Driver-TokyoTyrant SUBDIR += p5-Cache-BDB SUBDIR += p5-Cache-Memcached SUBDIR += p5-Cache-Memcached-Fast SUBDIR += p5-Cache-Memcached-Managed SUBDIR += p5-Cache-Memcached-XS SUBDIR += p5-Cache-Memcached-libmemcached SUBDIR += p5-Class-DBI SUBDIR += p5-Class-DBI-AbstractSearch SUBDIR += p5-Class-DBI-AsForm SUBDIR += p5-Class-DBI-AutoLoader SUBDIR += p5-Class-DBI-BaseDSN SUBDIR += p5-Class-DBI-DATA-Schema SUBDIR += p5-Class-DBI-DDL SUBDIR += p5-Class-DBI-FromCGI SUBDIR += p5-Class-DBI-LazyInflate SUBDIR += p5-Class-DBI-Loader SUBDIR += p5-Class-DBI-Loader-Relationship SUBDIR += p5-Class-DBI-Oracle SUBDIR += p5-Class-DBI-Pager SUBDIR += p5-Class-DBI-Pg SUBDIR += p5-Class-DBI-Plugin SUBDIR += p5-Class-DBI-Plugin-AbstractCount SUBDIR += p5-Class-DBI-Plugin-DeepAbstractSearch SUBDIR += p5-Class-DBI-Plugin-Iterator SUBDIR += p5-Class-DBI-Plugin-Pager SUBDIR += p5-Class-DBI-Plugin-RetrieveAll SUBDIR += p5-Class-DBI-Plugin-Senna SUBDIR += p5-Class-DBI-Plugin-Type SUBDIR += p5-Class-DBI-Replication SUBDIR += p5-Class-DBI-SAK SUBDIR += p5-Class-DBI-SQLite SUBDIR += p5-Class-DBI-Sweet SUBDIR += p5-Class-DBI-ToSax SUBDIR += p5-Class-DBI-Untaint SUBDIR += p5-Class-DBI-mysql SUBDIR += p5-Class-Inflate SUBDIR += p5-CouchDB-View SUBDIR += p5-DBD-AnyData SUBDIR += p5-DBD-CSV SUBDIR += p5-DBD-Excel SUBDIR += p5-DBD-Google SUBDIR += p5-DBD-InterBase SUBDIR += p5-DBD-LDAP SUBDIR += p5-DBD-MariaDB SUBDIR += p5-DBD-Mock SUBDIR += p5-DBD-Multi SUBDIR += p5-DBD-ODBC SUBDIR += p5-DBD-Oracle SUBDIR += p5-DBD-Pg SUBDIR += p5-DBD-PgLite SUBDIR += p5-DBD-PgPP SUBDIR += p5-DBD-SQLite SUBDIR += p5-DBD-SQLite2 SUBDIR += p5-DBD-Sybase SUBDIR += p5-DBD-XBase SUBDIR += p5-DBD-cego SUBDIR += p5-DBD-mysql SUBDIR += p5-DBI SUBDIR += p5-DBI-Shell SUBDIR += p5-DBICx-Deploy SUBDIR += p5-DBICx-MapMaker SUBDIR += p5-DBICx-Sugar SUBDIR += p5-DBICx-TestDatabase SUBDIR += p5-DBICx-TxnInsert SUBDIR += p5-DBIWrapper SUBDIR += p5-DBIx-Abstract SUBDIR += p5-DBIx-Admin-CreateTable SUBDIR += p5-DBIx-Admin-DSNManager SUBDIR += p5-DBIx-Admin-TableInfo SUBDIR += p5-DBIx-AnyDBD SUBDIR += p5-DBIx-Browse SUBDIR += p5-DBIx-Class SUBDIR += p5-DBIx-Class-AsFdat SUBDIR += p5-DBIx-Class-AuditLog SUBDIR += p5-DBIx-Class-BitField SUBDIR += p5-DBIx-Class-Candy SUBDIR += p5-DBIx-Class-Cursor-Cached SUBDIR += p5-DBIx-Class-CustomPrefetch SUBDIR += p5-DBIx-Class-DateTime-Epoch SUBDIR += p5-DBIx-Class-DeploymentHandler SUBDIR += p5-DBIx-Class-DigestColumns SUBDIR += p5-DBIx-Class-DynamicDefault SUBDIR += p5-DBIx-Class-DynamicSubclass SUBDIR += p5-DBIx-Class-EncodeColumns SUBDIR += p5-DBIx-Class-EncodedColumn SUBDIR += p5-DBIx-Class-Fixtures SUBDIR += p5-DBIx-Class-FrozenColumns SUBDIR += p5-DBIx-Class-Helpers SUBDIR += p5-DBIx-Class-InflateColumn-Authen-Passphrase SUBDIR += p5-DBIx-Class-InflateColumn-FS SUBDIR += p5-DBIx-Class-InflateColumn-IP SUBDIR += p5-DBIx-Class-InflateColumn-Serializer SUBDIR += p5-DBIx-Class-IntrospectableM2M SUBDIR += p5-DBIx-Class-Loader SUBDIR += p5-DBIx-Class-Migration SUBDIR += p5-DBIx-Class-MooseColumns SUBDIR += p5-DBIx-Class-PassphraseColumn SUBDIR += p5-DBIx-Class-QueryLog SUBDIR += p5-DBIx-Class-QueryProfiler SUBDIR += p5-DBIx-Class-ResultSet-HashRef SUBDIR += p5-DBIx-Class-ResultSet-RecursiveUpdate SUBDIR += p5-DBIx-Class-Schema-Config SUBDIR += p5-DBIx-Class-Schema-Loader SUBDIR += p5-DBIx-Class-Schema-PopulateMore SUBDIR += p5-DBIx-Class-Storage-TxnEndHook SUBDIR += p5-DBIx-Class-TimeStamp SUBDIR += p5-DBIx-Class-Tree SUBDIR += p5-DBIx-Class-Tree-NestedSet SUBDIR += p5-DBIx-Class-UUIDColumns SUBDIR += p5-DBIx-Class-VirtualColumns SUBDIR += p5-DBIx-Class-WebForm SUBDIR += p5-DBIx-Connector SUBDIR += p5-DBIx-ContextualFetch SUBDIR += p5-DBIx-Custom SUBDIR += p5-DBIx-DBHResolver SUBDIR += p5-DBIx-DBSchema SUBDIR += p5-DBIx-DataSource SUBDIR += p5-DBIx-DisconnectAll SUBDIR += p5-DBIx-Dump SUBDIR += p5-DBIx-HA SUBDIR += p5-DBIx-Handler SUBDIR += p5-DBIx-Inspector SUBDIR += p5-DBIx-Introspector SUBDIR += p5-DBIx-Lite SUBDIR += p5-DBIx-Log4perl SUBDIR += p5-DBIx-MySQLSequence SUBDIR += p5-DBIx-NoSQL SUBDIR += p5-DBIx-Password SUBDIR += p5-DBIx-Perlish SUBDIR += p5-DBIx-QueryLog SUBDIR += p5-DBIx-QuickDB SUBDIR += p5-DBIx-Recordset SUBDIR += p5-DBIx-RetryOverDisconnects SUBDIR += p5-DBIx-SQLEngine SUBDIR += p5-DBIx-SQLite-Simple SUBDIR += p5-DBIx-Safe SUBDIR += p5-DBIx-SearchBuilder SUBDIR += p5-DBIx-Sequence SUBDIR += p5-DBIx-Simple SUBDIR += p5-DBIx-Skinny SUBDIR += p5-DBIx-Skinny-InflateColumn-DateTime SUBDIR += p5-DBIx-Skinny-Mixin-DBHResolver SUBDIR += p5-DBIx-Skinny-Pager SUBDIR += p5-DBIx-Skinny-Schema-Loader SUBDIR += p5-DBIx-Sunny SUBDIR += p5-DBIx-TableHash SUBDIR += p5-DBIx-Tracer SUBDIR += p5-DBIx-TransactionManager SUBDIR += p5-DBIx-Tree SUBDIR += p5-DBIx-VersionedDDL SUBDIR += p5-DBIx-Wrapper SUBDIR += p5-DBIx-XHTML_Table SUBDIR += p5-DBIx-XML_RDB SUBDIR += p5-DBM-Deep SUBDIR += p5-DR-Tarantool SUBDIR += p5-DWH_File SUBDIR += p5-Dancer-Plugin-DBIC SUBDIR += p5-Dancer-Plugin-Database SUBDIR += p5-Dancer-Plugin-Database-Core SUBDIR += p5-Dancer-Plugin-Redis SUBDIR += p5-Dancer-Session-Memcached SUBDIR += p5-Dancer2-Plugin-DBIC SUBDIR += p5-Dancer2-Plugin-Database SUBDIR += p5-Dancer2-Session-DBIC SUBDIR += p5-Data-Page SUBDIR += p5-Data-Pageset SUBDIR += p5-Exception-Class-DBI SUBDIR += p5-File-Locate SUBDIR += p5-GDBM SUBDIR += p5-Genezzo SUBDIR += p5-GitDDL SUBDIR += p5-GitDDL-Migrator SUBDIR += p5-GraphViz-DBI SUBDIR += p5-HTML-FormHandler-Model-DBIC SUBDIR += p5-Ima-DBI SUBDIR += p5-Interchange6-Schema SUBDIR += p5-Iterator-DBI SUBDIR += p5-Jifty-DBI SUBDIR += p5-KyotoCabinet SUBDIR += p5-LMDB_File SUBDIR += p5-MLDBM SUBDIR += p5-MLDBM-Sync SUBDIR += p5-MR-Tarantool SUBDIR += p5-Mango SUBDIR += p5-Memcached-libmemcached SUBDIR += p5-Metadata SUBDIR += p5-Mojo-Pg SUBDIR += p5-MongoDB SUBDIR += p5-Mongoose SUBDIR += p5-MySQL-Diff SUBDIR += p5-Net-Async-CassandraCQL SUBDIR += p5-ORLite SUBDIR += p5-ORLite-Migrate SUBDIR += p5-Oryx SUBDIR += p5-POE-Component-DBIAgent SUBDIR += p5-POE-Component-EasyDBI SUBDIR += p5-POE-Component-LaDBI SUBDIR += p5-POE-Component-RRDTool SUBDIR += p5-Pg SUBDIR += p5-PostgreSQL-PLPerl-Call SUBDIR += p5-PostgreSQL-PLPerl-Trace SUBDIR += p5-Prophet SUBDIR += p5-Protocol-CassandraCQL SUBDIR += p5-RRD-Simple SUBDIR += p5-Redis SUBDIR += p5-Redis-Fast SUBDIR += p5-Redis-JobQueue SUBDIR += p5-Redis-RateLimit SUBDIR += p5-Redis-hiredis SUBDIR += p5-RedisDB SUBDIR += p5-RedisDB-Parser SUBDIR += p5-Relations SUBDIR += p5-Relations-Query SUBDIR += p5-ResourcePool-Resource-DBI SUBDIR += p5-Rose-DB SUBDIR += p5-Rose-DB-Object SUBDIR += p5-Rose-DBx-Object-MoreHelpers SUBDIR += p5-Rose-DBx-Object-Renderer SUBDIR += p5-SQL-Abstract SUBDIR += p5-SQL-Abstract-Classic SUBDIR += p5-SQL-Abstract-Limit SUBDIR += p5-SQL-Abstract-More SUBDIR += p5-SQL-Abstract-Pg SUBDIR += p5-SQL-Abstract-Plugin-InsertMulti SUBDIR += p5-SQL-Interp SUBDIR += p5-SQL-Maker SUBDIR += p5-SQL-NamedPlaceholder SUBDIR += p5-SQL-ReservedWords SUBDIR += p5-SQL-Statement SUBDIR += p5-SQL-Translator SUBDIR += p5-SQLite-Work SUBDIR += p5-Scope-Container-DBI SUBDIR += p5-Search-InvertedIndex SUBDIR += p5-Search-Namazu SUBDIR += p5-Search-Xapian SUBDIR += p5-Store-CouchDB SUBDIR += p5-T2 SUBDIR += p5-Tangram SUBDIR += p5-Template-DBI SUBDIR += p5-Teng SUBDIR += p5-Test-Cukes SUBDIR += p5-Test-Database SUBDIR += p5-Test-DatabaseRow SUBDIR += p5-Test-Fixture-DBI SUBDIR += p5-Test-mysqld SUBDIR += p5-Test-postgresql SUBDIR += p5-Text-Query-SQL SUBDIR += p5-Text-xSV SUBDIR += p5-Tie-DBI SUBDIR += p5-Tie-LevelDB SUBDIR += p5-Time-Piece-MySQL SUBDIR += p5-TokyoCabinet SUBDIR += p5-Xapian SUBDIR += p5-mysql-genocide SUBDIR += p5-tokyotyrant SUBDIR += pear-DB SUBDIR += pear-DBA SUBDIR += pear-DBA_Relational SUBDIR += pear-DB_DataObject SUBDIR += pear-DB_DataObject_FormBuilder SUBDIR += pear-DB_Pager SUBDIR += pear-DB_QueryTool SUBDIR += pear-DB_Sqlite_Tools SUBDIR += pear-DB_Table SUBDIR += pear-DB_ldap SUBDIR += pear-DB_ldap2 SUBDIR += pear-DoctrineCommon SUBDIR += pear-DoctrineDBAL SUBDIR += pear-Horde_Db SUBDIR += pear-Horde_HashTable SUBDIR += pear-Horde_Imsp SUBDIR += pear-Horde_Memcache SUBDIR += pear-Horde_Mongo SUBDIR += pear-MDB SUBDIR += pear-MDB2 SUBDIR += pear-MDB2_Driver_mysqli SUBDIR += pear-MDB2_Driver_pgsql SUBDIR += pear-MDB2_Schema SUBDIR += pear-MDB_QueryTool SUBDIR += pear-Structures_DataGrid_DataSource_Array SUBDIR += pear-Structures_DataGrid_DataSource_CSV SUBDIR += pear-Structures_DataGrid_DataSource_DB SUBDIR += pear-Structures_DataGrid_DataSource_PDO SUBDIR += pear-XML_Query2XML SUBDIR += pecl-couchbase SUBDIR += pecl-leveldb SUBDIR += pecl-memcache SUBDIR += pecl-memcached SUBDIR += pecl-mongodb SUBDIR += pecl-redis SUBDIR += pecl-rrd SUBDIR += percona-toolkit SUBDIR += pg-gvm SUBDIR += pg.el SUBDIR += pgFormatter SUBDIR += pg_activity SUBDIR += pg_citus SUBDIR += pg_dirtyread SUBDIR += pg_ed25519 SUBDIR += pg_filedump SUBDIR += pg_hashids SUBDIR += pg_partman SUBDIR += pg_qualstats SUBDIR += pg_repack SUBDIR += pg_similarity SUBDIR += pg_stat_kcache SUBDIR += pg_tileserv SUBDIR += pg_vector SUBDIR += pgaccess SUBDIR += pgadmin3 SUBDIR += pgagroal SUBDIR += pgbackrest SUBDIR += pgbadger SUBDIR += pgbarman SUBDIR += pgbouncer SUBDIR += pgdbf SUBDIR += pgfouine SUBDIR += pgloader3 SUBDIR += pglogical SUBDIR += pgmetrics SUBDIR += pgmodeler SUBDIR += pgpool-II-40 SUBDIR += pgpool-II-41 SUBDIR += pgpool-II-42 SUBDIR += pgpool-II-43 SUBDIR += pgpool-II-44 SUBDIR += pgreplay SUBDIR += pgroonga SUBDIR += pgrouting SUBDIR += pgsanity SUBDIR += pgsphere SUBDIR += pgtcl SUBDIR += pgtop SUBDIR += pguri SUBDIR += php-tarantool SUBDIR += php-xapian SUBDIR += php80-dba SUBDIR += php80-mysqli SUBDIR += php80-odbc SUBDIR += php80-pdo SUBDIR += php80-pdo_dblib SUBDIR += php80-pdo_firebird SUBDIR += php80-pdo_mysql SUBDIR += php80-pdo_odbc SUBDIR += php80-pdo_pgsql SUBDIR += php80-pdo_sqlite SUBDIR += php80-pgsql SUBDIR += php80-sqlite3 SUBDIR += php81-dba SUBDIR += php81-mysqli SUBDIR += php81-odbc SUBDIR += php81-pdo SUBDIR += php81-pdo_dblib SUBDIR += php81-pdo_firebird SUBDIR += php81-pdo_mysql SUBDIR += php81-pdo_odbc SUBDIR += php81-pdo_pgsql SUBDIR += php81-pdo_sqlite SUBDIR += php81-pgsql SUBDIR += php81-sqlite3 SUBDIR += php82-dba SUBDIR += php82-mysqli SUBDIR += php82-odbc SUBDIR += php82-pdo SUBDIR += php82-pdo_dblib SUBDIR += php82-pdo_firebird SUBDIR += php82-pdo_mysql SUBDIR += php82-pdo_odbc SUBDIR += php82-pdo_pgsql SUBDIR += php82-pdo_sqlite SUBDIR += php82-pgsql SUBDIR += php82-sqlite3 SUBDIR += php83-dba SUBDIR += php83-mysqli SUBDIR += php83-odbc SUBDIR += php83-pdo SUBDIR += php83-pdo_dblib SUBDIR += php83-pdo_firebird SUBDIR += php83-pdo_mysql SUBDIR += php83-pdo_odbc SUBDIR += php83-pdo_pgsql SUBDIR += php83-pdo_sqlite SUBDIR += php83-pgsql SUBDIR += php83-sqlite3 SUBDIR += phpliteadmin SUBDIR += phpminiadmin SUBDIR += phpmyadmin SUBDIR += phpmyadmin5 SUBDIR += phppgadmin SUBDIR += pldebugger SUBDIR += plpgsql_check SUBDIR += pointcloud SUBDIR += postgis-jdbc SUBDIR += postgis31 SUBDIR += postgis32 SUBDIR += postgis33 SUBDIR += postgis34 SUBDIR += postgresql-cstore_fdw SUBDIR += postgresql-idn SUBDIR += postgresql-jdbc SUBDIR += postgresql-libpgeasy SUBDIR += postgresql-libpqxx SUBDIR += postgresql-mysql_fdw SUBDIR += postgresql-odbc SUBDIR += postgresql-ogr_fdw SUBDIR += postgresql-orafce SUBDIR += postgresql-pgaudit SUBDIR += postgresql-plproxy SUBDIR += postgresql-plv8js SUBDIR += postgresql-prefix SUBDIR += postgresql-promscale SUBDIR += postgresql-relay SUBDIR += postgresql-repmgr SUBDIR += postgresql-rum SUBDIR += postgresql-semver SUBDIR += postgresql-tds_fdw SUBDIR += postgresql-wal2json SUBDIR += postgresql-zhparser SUBDIR += postgresql11-client SUBDIR += postgresql11-contrib SUBDIR += postgresql11-docs SUBDIR += postgresql11-pgtcl SUBDIR += postgresql11-plperl SUBDIR += postgresql11-plpython SUBDIR += postgresql11-pltcl SUBDIR += postgresql11-server SUBDIR += postgresql12-client SUBDIR += postgresql12-contrib SUBDIR += postgresql12-docs SUBDIR += postgresql12-pgtcl SUBDIR += postgresql12-plperl SUBDIR += postgresql12-plpython SUBDIR += postgresql12-pltcl SUBDIR += postgresql12-server SUBDIR += postgresql13-client SUBDIR += postgresql13-contrib SUBDIR += postgresql13-docs SUBDIR += postgresql13-pgtcl SUBDIR += postgresql13-plperl SUBDIR += postgresql13-plpython SUBDIR += postgresql13-pltcl SUBDIR += postgresql13-server SUBDIR += postgresql14-client SUBDIR += postgresql14-contrib SUBDIR += postgresql14-docs SUBDIR += postgresql14-pgtcl SUBDIR += postgresql14-plperl SUBDIR += postgresql14-plpython SUBDIR += postgresql14-pltcl SUBDIR += postgresql14-server SUBDIR += postgresql15-client SUBDIR += postgresql15-contrib SUBDIR += postgresql15-docs SUBDIR += postgresql15-pgtcl SUBDIR += postgresql15-plperl SUBDIR += postgresql15-plpython SUBDIR += postgresql15-pltcl SUBDIR += postgresql15-server SUBDIR += postgresql16-client SUBDIR += postgresql16-contrib SUBDIR += postgresql16-docs SUBDIR += postgresql16-pgtcl SUBDIR += postgresql16-plperl SUBDIR += postgresql16-plpython SUBDIR += postgresql16-pltcl SUBDIR += postgresql16-server SUBDIR += powa-archivist SUBDIR += powa-web SUBDIR += powerarchitect SUBDIR += proftpd-mod_sql_mysql SUBDIR += proftpd-mod_sql_odbc SUBDIR += proftpd-mod_sql_postgres SUBDIR += proftpd-mod_sql_sqlite SUBDIR += proftpd-mod_sql_tds SUBDIR += prometheus-postgresql-adapter SUBDIR += pspg SUBDIR += puppetdb-terminus7 SUBDIR += puppetdb-terminus8 SUBDIR += puppetdb7 SUBDIR += puppetdb8 SUBDIR += puredb SUBDIR += pxlib SUBDIR += pxtools SUBDIR += py-Elixir SUBDIR += py-PyGreSQL SUBDIR += py-Pyrseas SUBDIR += py-aesqlapius SUBDIR += py-agate-sql SUBDIR += py-aiomcache SUBDIR += py-aiomysql SUBDIR += py-aiopg SUBDIR += py-aioredis SUBDIR += py-aiosqlite SUBDIR += py-alembic SUBDIR += py-alembic14 SUBDIR += py-apache-arrow SUBDIR += py-apsw SUBDIR += py-asyncmy SUBDIR += py-asyncpg SUBDIR += py-berkeleydb SUBDIR += py-carbon SUBDIR += py-cassandra-driver SUBDIR += py-couchdb SUBDIR += py-databases SUBDIR += py-dbf SUBDIR += py-dbt-core SUBDIR += py-dbt-duckdb SUBDIR += py-dbt-semantic-interfaces SUBDIR += py-dbt-snowflake SUBDIR += py-dbutils SUBDIR += py-duckdb SUBDIR += py-fakeredis SUBDIR += py-fastapi-users-db-ormar SUBDIR += py-fastparquet SUBDIR += py-fdb SUBDIR += py-firebirdsql SUBDIR += py-flask-sqlalchemy SUBDIR += py-gdbm SUBDIR += py-geoalchemy2 SUBDIR += py-hiredis SUBDIR += py-influxdb SUBDIR += py-kyotocabinet SUBDIR += py-leveldb SUBDIR += py-litecli SUBDIR += py-lmdb SUBDIR += py-marshmallow-sqlalchemy SUBDIR += py-minidb SUBDIR += py-mongoengine SUBDIR += py-motor SUBDIR += py-mycli SUBDIR += py-mysql-connector-python SUBDIR += py-mysqlclient SUBDIR += py-ormar SUBDIR += py-partd SUBDIR += py-peewee SUBDIR += py-peewee_migrate SUBDIR += py-pg8000 SUBDIR += py-pgcli SUBDIR += py-pgdbconn SUBDIR += py-pglast SUBDIR += py-pglite SUBDIR += py-pgmigrate SUBDIR += py-pgspecial SUBDIR += py-pgspecial1 SUBDIR += py-pgxnclient SUBDIR += py-pickledb SUBDIR += py-pickleshare SUBDIR += py-pony SUBDIR += py-postgresql SUBDIR += py-psycogreen SUBDIR += py-psycopg SUBDIR += py-psycopg-c SUBDIR += py-psycopg-pool SUBDIR += py-psycopg2 SUBDIR += py-psycopg2cffi SUBDIR += py-pum SUBDIR += py-pyarrow SUBDIR += py-pycql SUBDIR += py-pylibmc SUBDIR += py-pymemcache SUBDIR += py-pymongo SUBDIR += py-pymssql SUBDIR += py-pymysql SUBDIR += py-pyodbc SUBDIR += py-pypuppetdb SUBDIR += py-python-arango SUBDIR += py-python-binary-memcached SUBDIR += py-python-memcached SUBDIR += py-python-sql SUBDIR += py-python-swiftclient SUBDIR += py-queries SUBDIR += py-rb SUBDIR += py-redis SUBDIR += py-redis2 SUBDIR += py-redis3 SUBDIR += py-redis4 SUBDIR += py-rrdtool SUBDIR += py-schemachange SUBDIR += py-sispy SUBDIR += py-snowddl SUBDIR += py-snowflake-connector-python SUBDIR += py-south SUBDIR += py-sqlalchemy-json SUBDIR += py-sqlalchemy-migrate SUBDIR += py-sqlalchemy-utils SUBDIR += py-sqlalchemy10 SUBDIR += py-sqlalchemy11 SUBDIR += py-sqlalchemy12 SUBDIR += py-sqlalchemy13 SUBDIR += py-sqlalchemy14 SUBDIR += py-sqlalchemy20 SUBDIR += py-sqlglot SUBDIR += py-sqlite-fts4 SUBDIR += py-sqlite-utils SUBDIR += py-sqlite3 SUBDIR += py-sqlobject SUBDIR += py-sqlparse SUBDIR += py-sqlrelay SUBDIR += py-tableschema SUBDIR += py-tarantool SUBDIR += py-tiledb SUBDIR += py-txredisapi SUBDIR += py-unqlite SUBDIR += py-varstack SUBDIR += py-whisper SUBDIR += py-xapian SUBDIR += py-zodbpickle SUBDIR += qdbm SUBDIR += qdbm-plus SUBDIR += qdrant SUBDIR += qof SUBDIR += qt5-sql SUBDIR += qt5-sqldrivers-ibase SUBDIR += qt5-sqldrivers-mysql SUBDIR += qt5-sqldrivers-odbc SUBDIR += qt5-sqldrivers-pgsql SUBDIR += qt5-sqldrivers-sqlite2 SUBDIR += qt5-sqldrivers-sqlite3 SUBDIR += qt5-sqldrivers-tds SUBDIR += qt6-base_sqldriver SUBDIR += quake SUBDIR += recutils SUBDIR += redis SUBDIR += redis-devel SUBDIR += redis62 SUBDIR += redis70 SUBDIR += redis_exporter SUBDIR += redisdesktopmanager SUBDIR += redisjson SUBDIR += replibyte SUBDIR += retcl SUBDIR += rocksdb SUBDIR += rrdman SUBDIR += rrdmerge SUBDIR += rrdtool SUBDIR += rrdtool12 SUBDIR += ruby-bdb SUBDIR += ruby-qdbm SUBDIR += ruby-tokyocabinet SUBDIR += ruby-xapian SUBDIR += rubygem-active_model_serializers SUBDIR += rubygem-active_model_serializers61 SUBDIR += rubygem-active_record_query_trace SUBDIR += rubygem-activemodel-serializers-xml SUBDIR += rubygem-activemodel4 SUBDIR += rubygem-activemodel5 SUBDIR += rubygem-activemodel50 SUBDIR += rubygem-activemodel52 SUBDIR += rubygem-activemodel60 SUBDIR += rubygem-activemodel61 SUBDIR += rubygem-activemodel70 SUBDIR += rubygem-activemodel71 SUBDIR += rubygem-activerecord-explain-analyze SUBDIR += rubygem-activerecord-import SUBDIR += rubygem-activerecord-jdbc-adapter SUBDIR += rubygem-activerecord-jdbcmysql-adapter SUBDIR += rubygem-activerecord-session_store SUBDIR += rubygem-activerecord-trilogy-adapter SUBDIR += rubygem-activerecord4 SUBDIR += rubygem-activerecord5 SUBDIR += rubygem-activerecord50 SUBDIR += rubygem-activerecord52 SUBDIR += rubygem-activerecord60 SUBDIR += rubygem-activerecord61 SUBDIR += rubygem-activerecord70 SUBDIR += rubygem-activerecord71 SUBDIR += rubygem-after_commit_queue SUBDIR += rubygem-amalgalite SUBDIR += rubygem-arel SUBDIR += rubygem-arel-helpers SUBDIR += rubygem-arel6 SUBDIR += rubygem-arel7 SUBDIR += rubygem-arel8 SUBDIR += rubygem-attr_json SUBDIR += rubygem-awesome_nested_set SUBDIR += rubygem-bdb1 SUBDIR += rubygem-bigrecord SUBDIR += rubygem-brpoplpush-redis_script SUBDIR += rubygem-couchrest SUBDIR += rubygem-dalli SUBDIR += rubygem-data_objects SUBDIR += rubygem-datamapper SUBDIR += rubygem-dbd-mysql SUBDIR += rubygem-dbd-pg SUBDIR += rubygem-dbd-sqlite3 SUBDIR += rubygem-dbf SUBDIR += rubygem-dbi SUBDIR += rubygem-dbm SUBDIR += rubygem-discard-rails61 SUBDIR += rubygem-dm-aggregates SUBDIR += rubygem-dm-chunked_query SUBDIR += rubygem-dm-constraints SUBDIR += rubygem-dm-core SUBDIR += rubygem-dm-do-adapter SUBDIR += rubygem-dm-migrations SUBDIR += rubygem-dm-mysql-adapter SUBDIR += rubygem-dm-observer SUBDIR += rubygem-dm-pager SUBDIR += rubygem-dm-paperclip SUBDIR += rubygem-dm-postgres-adapter SUBDIR += rubygem-dm-serializer SUBDIR += rubygem-dm-timestamps SUBDIR += rubygem-dm-transactions SUBDIR += rubygem-dm-types SUBDIR += rubygem-dm-validations SUBDIR += rubygem-do_mysql SUBDIR += rubygem-do_postgres SUBDIR += rubygem-do_sqlite3 SUBDIR += rubygem-em-redis-unified SUBDIR += rubygem-fabrication SUBDIR += rubygem-familia SUBDIR += rubygem-flipper-active_record SUBDIR += rubygem-flipper-active_record-rails61 SUBDIR += rubygem-flipper-active_record-rails70 SUBDIR += rubygem-gdbm SUBDIR += rubygem-globalid SUBDIR += rubygem-globalid-rails5 SUBDIR += rubygem-globalid-rails50 SUBDIR += rubygem-globalid-rails52 SUBDIR += rubygem-globalid-rails60 SUBDIR += rubygem-globalid-rails61 SUBDIR += rubygem-globalid-rails70 SUBDIR += rubygem-globalid-rails71 SUBDIR += rubygem-google-cloud-datastore SUBDIR += rubygem-google-cloud-datastore-v1 SUBDIR += rubygem-google-cloud-firestore SUBDIR += rubygem-google-cloud-firestore-v1 SUBDIR += rubygem-her SUBDIR += rubygem-hiredis SUBDIR += rubygem-influxdb SUBDIR += rubygem-jdbc-mysql SUBDIR += rubygem-leo_manager_client SUBDIR += rubygem-marginalia SUBDIR += rubygem-mario-redis-lock SUBDIR += rubygem-memcache SUBDIR += rubygem-memcache-client SUBDIR += rubygem-mysql SUBDIR += rubygem-mysql2 SUBDIR += rubygem-neighbor SUBDIR += rubygem-openid-redis-store SUBDIR += rubygem-paranoia SUBDIR += rubygem-pg SUBDIR += rubygem-pg_array_parser SUBDIR += rubygem-pg_query SUBDIR += rubygem-pghero SUBDIR += rubygem-pghero-rails5 SUBDIR += rubygem-pghero-rails50 SUBDIR += rubygem-pghero-rails61 SUBDIR += rubygem-pl-puppetdb-ruby SUBDIR += rubygem-postgres_ext SUBDIR += rubygem-puppetdb_cli SUBDIR += rubygem-rbase SUBDIR += rubygem-red-arrow SUBDIR += rubygem-red-arrow-dataset SUBDIR += rubygem-red-gandiva SUBDIR += rubygem-red-parquet SUBDIR += rubygem-redis SUBDIR += rubygem-redis-actionpack SUBDIR += rubygem-redis-actionpack-rails5 SUBDIR += rubygem-redis-actionpack-rails50 SUBDIR += rubygem-redis-actionpack-rails52 SUBDIR += rubygem-redis-actionpack-rails60 SUBDIR += rubygem-redis-actionpack-rails61 SUBDIR += rubygem-redis-actionpack-rails70 SUBDIR += rubygem-redis-client SUBDIR += rubygem-redis-cluster-client SUBDIR += rubygem-redis-clustering SUBDIR += rubygem-redis-namespace SUBDIR += rubygem-redis-namespace19 SUBDIR += rubygem-redis4 SUBDIR += rubygem-scenic61 SUBDIR += rubygem-sdbm SUBDIR += rubygem-seed-fu SUBDIR += rubygem-sqlite3 SUBDIR += rubygem-sqlite3-ruby SUBDIR += rubygem-state_machines-activemodel SUBDIR += rubygem-state_machines-activerecord SUBDIR += rubygem-state_machines-activerecord08 SUBDIR += rubygem-tarantool SUBDIR += rubygem-trilogy SUBDIR += sequeler SUBDIR += sfcgal SUBDIR += sharedance SUBDIR += slony1v2 SUBDIR += soci SUBDIR += spatialite SUBDIR += spatialite-tools SUBDIR += spatialite_gui SUBDIR += speedtables SUBDIR += sql-workbench SUBDIR += sqlcached SUBDIR += sqlcipher SUBDIR += sqlclient SUBDIR += sqldeveloper SUBDIR += sqlite-ext-miscfuncs SUBDIR += sqlite-ext-pcre SUBDIR += sqlite-ext-regexp SUBDIR += sqlite-ext-spellfix SUBDIR += sqlite2 SUBDIR += sqlite3 SUBDIR += sqlitebrowser SUBDIR += sqliteconvert SUBDIR += sqlitecpp SUBDIR += sqlitemanager SUBDIR += sqliteodbc SUBDIR += sqlitestudio SUBDIR += sqlrelay SUBDIR += sqsh SUBDIR += squirrel-sql SUBDIR += symphytum SUBDIR += tarantool SUBDIR += tarantool-c SUBDIR += tcl-Mysql SUBDIR += tcl-lmdb SUBDIR += tcl-sqlite3 SUBDIR += tdb SUBDIR += tdbc SUBDIR += tile38 SUBDIR += tiledb SUBDIR += timescaledb SUBDIR += timescaledb-backup SUBDIR += timescaledb-tune SUBDIR += tinycdb SUBDIR += tokyocabinet SUBDIR += tokyotyrant SUBDIR += trilogy SUBDIR += tsearch_extras SUBDIR += tuning-primer SUBDIR += twemproxy SUBDIR += unixODBC SUBDIR += usql SUBDIR += vfront SUBDIR += virtualpg SUBDIR += vsqlite SUBDIR += webdis SUBDIR += wfb2sql SUBDIR += xapian-bindings SUBDIR += xapian-core SUBDIR += xls2txt SUBDIR += xrootd SUBDIR += xtrabackup SUBDIR += xtrabackup8 SUBDIR += zodb .include diff --git a/databases/mysql81-client/Makefile b/databases/mysql81-client/Makefile new file mode 100644 index 000000000000..398c1429a8d4 --- /dev/null +++ b/databases/mysql81-client/Makefile @@ -0,0 +1,47 @@ +PORTNAME= mysql +PORTREVISION= 0 +PKGNAMESUFFIX= 81-client + +COMMENT= Multithreaded SQL database (client) + +LICENSE+= LGPL21 + +MASTERDIR= ${.CURDIR}/../mysql81-server + +PKGMESSAGE= ${.CURDIR}/pkg-message +PATCHDIR= ${MASTERDIR}/files +PLIST= ${.CURDIR}/pkg-plist + +CONFLICTS_INSTALL= mysql8[1-9]-client \ + mysql[0-79][0-9]-client \ + mariadb[0-9][0-9]-client \ + percona[0-9][0-9]-client + +CMAKE_ARGS+= -DWITHOUT_SERVER=1 -DINSTALL_SUPPORTFILESDIR=0 + +USE_LDCONFIG+= ${PREFIX}/lib/mysql + +MMAN1= comp_err.1 lz4_decompress.1 mysql.1 mysql_config.1 mysql_config_editor.1 \ + mysqladmin.1 mysqlbinlog.1 mysqlcheck.1 mysqldump.1 mysqlimport.1 mysqlman.1 \ + mysqlpump.1 mysqlshow.1 mysqlslap.1 perror.1 zlib_decompress.1 + +CLIENT_ONLY= yes + +OPTIONS_GROUP+= PLUGINS +PLUGINS_DESC= Default Client Plugins +OPTIONS_GROUP_PLUGINS= SASLCLIENT +SASLCLIENT_DESC= SASL client plugin module +SASLCLIENT_CMAKE_BOOL= WITH_AUTHENTICATION_LDAP +SASLCLIENT_LIB_DEPENDS= libsasl2.so:security/cyrus-sasl2 +SASLCLIENT_USES= ldap + +OPTIONS_DEFAULT+= SASLCLIENT +OPTIONS_SUB= yes + +post-install: + @${RM} -r ${STAGEDIR}${PREFIX}/lib/mysql/private + @${LN} -s libmysqlclient.a ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.a + @${LN} -s libmysqlclient.so ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so + @${LN} -s libmysqlclient.so.22 ${STAGEDIR}${PREFIX}/lib/mysql/libmysqlclient_r.so.22 + +.include "${MASTERDIR}/Makefile" diff --git a/databases/mysql81-client/pkg-message b/databases/mysql81-client/pkg-message new file mode 100644 index 000000000000..dbbd72fe1c67 --- /dev/null +++ b/databases/mysql81-client/pkg-message @@ -0,0 +1,8 @@ +[ +{ type: install + message: <0:archivers/liblz4 \ + ${BUILD_DEPENDS_${ARCH}} +BUILD_DEPENDS_aarch64= libunwind>0:devel/libunwind +BUILD_DEPENDS_amd64= libunwind>0:devel/libunwind +BUILD_DEPENDS_armv7= libunwind>0:devel/libunwind +BUILD_DEPENDS_i386= libunwind>0:devel/libunwind +BUILD_DEPENDS_powerpc= libunwind>0:devel/libunwind +BUILD_DEPENDS_powerpc64= libunwind>0:devel/libunwind +BUILD_DEPENDS_powerpc64le= libunwind>0:devel/libunwind + +CMAKE_BUILD_TYPE= Release +CFLAGS+= -fPIC +CFLAGS_aarch64?= -march=armv8-a+crc+crypto + +CMAKE_ARGS+= -DINSTALL_LAYOUT=FREEBSD \ + -DINSTALL_LDCONFIGDIR="${LOCALBASE}/libdata/ldconfig" \ + -DINSTALL_PKGCONFIGDIR="${LOCALBASE}/libdata/pkgconfig" \ + -DINSTALL_DOCDIR="share/doc/mysql" \ + -DINSTALL_DOCREADMEDIR="share/doc/mysql" \ + -DINSTALL_INCLUDEDIR="include/mysql" \ + -DINSTALL_INFODIR="${INFO_PATH}" \ + -DINSTALL_LIBDIR="lib/mysql" \ + -DINSTALL_PRIV_LIBDIR="lib/mysql/private" \ + -DINSTALL_MANDIR="share/man" \ + -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ + -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" \ + -DINSTALL_MYSQLSHAREDIR="share/mysql" \ + -DINSTALL_MYSQLTESTDIR="" \ + -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ + -DINSTALL_SBINDIR="libexec" \ + -DINSTALL_SCRIPTDIR="bin" \ + -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \ + -DINSTALL_SHAREDIR="share" \ + -DINSTALL_SUPPORTFILESDIR="share/mysql" \ + -DMYSQL_KEYRINGDIR="${ETCDIR}/keyring" \ + -DWITH_BOOST="${WRKSRC}/boost" \ + -DWITH_SYSTEM_LIBS=1 \ + -DWITH_EDITLINE=system \ + -DWITH_LIBEVENT=system \ + -DWITH_LZ4=system \ + -DWITH_ICU=system \ + -DWITH_CURL=system \ + -DWITH_ZSTD=bundled \ + -DWITH_PROTOBUF=bundled \ + -DWITH_SSL=system \ + -DWITH_AUTHENTICATION_FIDO=1 \ + -DBUILD_BUNDLED_ZLIB=0 \ + -DBUILD_BUNDLED_LZ4=0 + +# The Mroonga, RocksDB, and TokuDB storage engines are disabled. +# Mroonga is only buildable on little endian archs. +# RocksDB is only buildable on little endian archs and requires POSIX timers. +# TokuDB is only buildable on 64-bit little endian archs. +CMAKE_ARGS+= -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ + -DWITHOUT_ROCKSDB_STORAGE_ENGINE=1 \ + -DWITHOUT_TOKUDB_STORAGE_ENGINE=1 + +SHEBANG_FILES= scripts/*.pl* scripts/*.sh + +.ifdef USE_MYSQL +IGNORE= You have `USE_MYSQL' variable defined either in environment or in make(1) arguments. Please undefine and try again. +.endif + +SUB_LIST= MY_DBDIR=${MY_DBDIR} \ + MY_SECDIR=${MY_SECDIR} \ + MY_TMPDIR=${MY_TMPDIR} + +PLIST_SUB= MY_DBDIR=${MY_DBDIR} \ + MY_SECDIR=${MY_SECDIR} \ + MY_TMPDIR=${MY_TMPDIR} \ + MYSQL80_LIBVER=${MYSQL80_LIBVER} + +# MySQL-Server part +.if !defined(CLIENT_ONLY) +USES+= mysql:81 + +CONFLICTS_INSTALL= mysql*-server \ + mysqlwsrep*-server \ + mariadb*-server \ + percona*-server + +USE_RC_SUBR= mysql-server + +SUB_FILES= my.cnf.sample pkg-message + +USERS= mysql +GROUPS= mysql + +USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin + +MMAN1= ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 \ + myisamlog.1 myisampack.1 mysql_secure_installation.1 mysql_ssl_rsa_setup.1 \ + mysql_tzinfo_to_sql.1 mysql_upgrade.1 mysql.server.1 mysqldumpslow.1 mysqld_multi.1 \ + mysqld_safe.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlrouter.1 +MMAN8= mysqld.8 + +CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" +CMAKE_ARGS+= -DWITHOUT_CLIENTLIBS="ON" +# Disable unit tests, it fails on !amd64 and <13.0 due to c++17 rules +CMAKE_ARGS+= -DWITH_UNIT_TESTS="OFF" + +OPTIONS_GROUP= STORAGE +OPTIONS_GROUP_STORAGE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA +OPTIONS_SUB= YES +STORAGE_DESC= Permissible "Storage Engines" (to compile statically into the server) +ARCHIVE_DESC= Compile "Archive Storage" statically in server +BLACKHOLE_DESC= Compile "Blackhole Storage" statically in server +EXAMPLE_DESC= Compile "Example Storage" statically in server +FEDERATED_DESC= Compile "Federated Storage" statically in server +INNOBASE_DESC= Compile "InnoDB Storage" statically in server +PARTITION_DESC= Compile "Partitioning support Storage" statically in server +PERFSCHEMA_DESC= Compile "Performance Schema Storage" statically in server + +ARCHIVE_CMAKE_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 +BLACKHOLE_CMAKE_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1 +EXAMPLE_CMAKE_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 +FEDERATED_CMAKE_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1 +INNOBASE_CMAKE_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 +PARTITION_CMAKE_ON= -DWITH_PARTITION_STORAGE_ENGINE=1 +PERFSCHEMA_CMAKE_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 + +OPTIONS_GROUP+= FEATURES +OPTIONS_GROUP_FEATURES= PERFSCHM +FEATURES_DESC= Default features knobs +PERFSCHM_DESC= Enable "Performance Schema" by default (High RAM usage) +OPTIONS_DEFAULT+= PERFSCHM + +PERFSCHM_SUB_LIST+= PERFSCHEMRC="" +PERFSCHM_SUB_LIST_OFF+= PERFSCHEMRC="--skip-performance-schema" +FEDERATED_SUB_LIST+= FEDER="--federated" +FEDERATED_SUB_LIST_OFF+= FEDER="" +.endif + +.include + +# Since 8.0.20 release innodb engine uses new memory alligned allocator +# which is broken on i386 due to different size of types and caused a +# 'static_assert(alignof(T) <= alignof(std::max_align_t))' error +.if ${ARCH} == i386 +CMAKE_ARGS+= -DDISABLE_PSI_MEMORY=1 +SSP_UNSAFE= yes +.endif + +.if ${ARCH} == powerpc +LDFLAGS+= -latomic +USES+= compiler:gcc-c++11-lib +.else +CXXFLAGS+= -malign-double +USES+= compiler:c++17-lang +.endif + +.include + +post-extract: + @${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h + +# This can be removed after FreeBSD 12.4 and 13.1 EoL +.if defined(CLIENT_ONLY) && !exists(${OPENSSLBASE}/libdata/pkgconfig/openssl.pc) +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-scripts_CMakeLists.txt +.endif + +# XXX MBi alignment issue +.if ${ARCH} == i386 +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-boost_boost__1__77__0_boost_move_detail_type__traits.hpp \ + ${PATCHDIR}/extra-patch-storage_innobase_log_log0recv.cc +.endif + +.if !defined(CLIENT_ONLY) +post-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample + ${MKDIR} ${STAGEDIR}${ETCDIR}/keyring + ${MKDIR} ${STAGEDIR}${MY_SECDIR} + ${MKDIR} ${STAGEDIR}${MY_TMPDIR} +.endif + +.include diff --git a/databases/mysql81-server/distinfo b/databases/mysql81-server/distinfo new file mode 100644 index 000000000000..13d3c57ad112 --- /dev/null +++ b/databases/mysql81-server/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1695150470 +SHA256 (mysql-boost-8.1.0.tar.gz) = cb19648bc8719b9f6979924bfea806b278bd26b8d67740e5742c6f363f142188 +SIZE (mysql-boost-8.1.0.tar.gz) = 440038191 diff --git a/databases/mysql81-server/files/extra-patch-boost_boost__1__77__0_boost_move_detail_type__traits.hpp b/databases/mysql81-server/files/extra-patch-boost_boost__1__77__0_boost_move_detail_type__traits.hpp new file mode 100644 index 000000000000..ee630b3a3655 --- /dev/null +++ b/databases/mysql81-server/files/extra-patch-boost_boost__1__77__0_boost_move_detail_type__traits.hpp @@ -0,0 +1,20 @@ +--- boost/boost_1_77_0/boost/move/detail/type_traits.hpp.orig 2021-08-05 09:42:11 UTC ++++ boost/boost_1_77_0/boost/move/detail/type_traits.hpp +@@ -1104,7 +1104,7 @@ struct alignment_struct + typedef int (alignment_dummy::*member_ptr); + typedef int (alignment_dummy::*member_function_ptr)(); + struct alignment_struct +-{ long double dummy[4]; }; ++{ double XXXdummy[4]; }; + + ///////////////////////////// + // max_align_t +@@ -1122,7 +1122,7 @@ union max_align + float float_; + double double_; + void * void_ptr_; +- long double long_double_[4]; ++ double XXXlong_double_[4]; + alignment_dummy *unknown_class_ptr_; + function_ptr function_ptr_; + member_function_ptr member_function_ptr_; diff --git a/databases/mysql81-server/files/extra-patch-scripts_CMakeLists.txt b/databases/mysql81-server/files/extra-patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..df891b025ccd --- /dev/null +++ b/databases/mysql81-server/files/extra-patch-scripts_CMakeLists.txt @@ -0,0 +1,10 @@ +--- scripts/CMakeLists.txt.orig 2022-12-16 15:34:44 UTC ++++ scripts/CMakeLists.txt +@@ -362,7 +362,6 @@ IF (WITH_SSL STREQUAL "system") + # We have implemented "system" for other platforms as well, but those + # are non-native packages. + IF(LINUX OR SOLARIS OR FREEBSD) +- SET(CONFIG_REQUIRES_PRIVATE "openssl") + STRING(REPLACE "-lssl" "" CONFIG_LIBS_PRIVATE "${CONFIG_LIBS_PRIVATE}") + STRING(REPLACE "-lcrypto" "" CONFIG_LIBS_PRIVATE "${CONFIG_LIBS_PRIVATE}") + STRING(REGEX REPLACE "[ ]+" " " CONFIG_LIBS_PRIVATE diff --git a/databases/mysql81-server/files/extra-patch-storage_innobase_log_log0recv.cc b/databases/mysql81-server/files/extra-patch-storage_innobase_log_log0recv.cc new file mode 100644 index 000000000000..0a6d0d4ec0df --- /dev/null +++ b/databases/mysql81-server/files/extra-patch-storage_innobase_log_log0recv.cc @@ -0,0 +1,11 @@ +--- storage/innobase/log/log0recv.cc.orig 2023-12-17 10:36:48 UTC ++++ storage/innobase/log/log0recv.cc +@@ -3695,7 +3695,7 @@ static void recv_recovery_begin(log_t &log, const lsn_ + than number of concurrent IOs we want to sustain. We should also keep in + mind that the limit for the deltas hashmap is not strictly enforced and + this number includes the not-well specified safety margin. */ +- size_t{256} * srv_buf_pool_instances); ++ static_cast(size_t{256} * srv_buf_pool_instances)); + const size_t delta_hashmap_max_mem = + UNIV_PAGE_SIZE * (buf_pool_get_n_pages() - pages_to_be_kept_free); + diff --git a/databases/mysql81-server/files/my.cnf.sample.in b/databases/mysql81-server/files/my.cnf.sample.in new file mode 100644 index 000000000000..3d1264c1bd61 --- /dev/null +++ b/databases/mysql81-server/files/my.cnf.sample.in @@ -0,0 +1,57 @@ +[client] +port = 3306 +socket = /tmp/mysql.sock + +[mysql] +prompt = \u@\h [\d]>\_ +no_auto_rehash + +[mysqld] +user = mysql +port = 3306 +socket = /tmp/mysql.sock +bind-address = 127.0.0.1 +basedir = %%PREFIX%% +datadir = %%MY_DBDIR%% +tmpdir = %%MY_TMPDIR%% +replica-load-tmpdir = %%MY_TMPDIR%% +secure-file-priv = %%MY_SECDIR%% +log-bin = mysql-bin +log-output = TABLE +relay-log-recovery = 1 +slow-query-log = 1 +server-id = 1 +sync_binlog = 1 +sync_relay_log = 1 +binlog_cache_size = 16M +binlog_expire_logs_seconds = 2592000 +default_password_lifetime = 0 +enforce-gtid-consistency = 1 +gtid-mode = ON +safe-user-create = 1 +lower_case_table_names = 1 +explicit-defaults-for-timestamp = 1 +myisam-recover-options = BACKUP,FORCE +open_files_limit = 32768 +table_open_cache = 16384 +table_definition_cache = 8192 +net_retry_count = 16384 +key_buffer_size = 256M +max_allowed_packet = 64M +long_query_time = 0.5 +innodb_buffer_pool_size = 1G +innodb_data_home_dir = %%MY_DBDIR%% +innodb_log_group_home_dir = %%MY_DBDIR%% +innodb_data_file_path = ibdata1:128M:autoextend +innodb_temp_data_file_path = ibtmp1:128M:autoextend +innodb_flush_method = O_DIRECT +innodb_redo_log_capacity = 512M +innodb_log_buffer_size = 16M +innodb_write_io_threads = 8 +innodb_read_io_threads = 8 +innodb_autoinc_lock_mode = 2 + +[mysqldump] +max_allowed_packet = 256M +quote_names +quick diff --git a/databases/mysql81-server/files/mysql-server.in b/databases/mysql81-server/files/mysql-server.in new file mode 100644 index 000000000000..c79874df9f2c --- /dev/null +++ b/databases/mysql81-server/files/mysql-server.in @@ -0,0 +1,78 @@ +#!/bin/sh + +# PROVIDE: mysql +# REQUIRE: LOGIN +# KEYWORD: shutdown + +# +# Add the following line to /etc/rc.conf to enable mysql: +# mysql_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable MySQL. +# mysql_dbdir (str): Default to "%%MY_DBDIR%%" +# Base database directory. +# mysql_confdir (str): Default to "%%ETCDIR%%" +# Base configuration directory. +# mysql_optfile (str): Server-specific option file. +# Set it in the rc.conf or default behaviour of +# `mysqld_safe` itself, will be picking +# ${mysql_confdir}/my.cnf if it exists. +# mysql_pidfile (str): Custom PID file path and name. +# Default to "${mysql_dbdir}/${hostname}.pid". +# mysql_args (str): Custom additional arguments to be passed +# to mysqld_safe (default empty). +# + +. /etc/rc.subr + +name="mysql" +rcvar=mysql_enable + +load_rc_config $name + +: ${mysql_enable="NO"} +: ${mysql_dbdir="%%MY_DBDIR%%"} +: ${mysql_confdir="%%ETCDIR%%"} +if [ -f "${mysql_confdir}/my.cnf" ]; then +: ${mysql_optfile="${mysql_confdir}/my.cnf"} +elif [ -f "${mysql_dbdir}/my.cnf" ]; then +: ${mysql_optfile="${mysql_dbdir}/my.cnf"} +fi +if [ ! -z "${mysql_optfile}" ]; then +mysql_extra="--defaults-extra-file=${mysql_optfile}" +fi + +mysql_user="mysql" +: ${hostname:=`/bin/hostname`} +pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"} +command="/usr/sbin/daemon" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe ${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%FEDER%% %%PERFSCHEMRC%%" +procname="%%PREFIX%%/libexec/mysqld" +start_precmd="${name}_prestart" +start_postcmd="${name}_poststart" +mysqld_init="${procname}" +mysqld_init_args="${mysql_extra} --initialize-insecure --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" + +mysql_create_auth_tables() +{ + eval $mysqld_init $mysqld_init_args >/dev/null 2>/dev/null +} + +mysql_prestart() +{ + if [ ! -d "${mysql_dbdir}/mysql/." ]; then + mysql_create_auth_tables || return 1 + fi + return 0 +} + +mysql_poststart() +{ + local timeout=15 + while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do + timeout=$(( timeout - 1 )) + sleep 1 + done + return 0 +} + +run_rc_command "$1" diff --git a/databases/mysql81-server/files/patch-CMakeLists.txt b/databases/mysql81-server/files/patch-CMakeLists.txt new file mode 100644 index 000000000000..a7c3d317d734 --- /dev/null +++ b/databases/mysql81-server/files/patch-CMakeLists.txt @@ -0,0 +1,95 @@ +--- CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ CMakeLists.txt +@@ -1850,7 +1850,7 @@ IF(WITH_AUTHENTICATION_LDAP) + ENDIF() + + IF(WITH_AUTHENTICATION_LDAP) +- IF(LINUX AND KNOWN_CUSTOM_LIBRARIES) ++ IF(LINUX OR FREEBSD AND KNOWN_CUSTOM_LIBRARIES) + # LDAP / SASL / KERBEROS / SSL must all be "system" or "custom", not a mix. + IF(WITH_LDAP STREQUAL "system" OR + WITH_SASL STREQUAL "system" OR +@@ -1899,6 +1899,7 @@ ENDIF() + ENDIF() + ENDIF() + ++IF(NOT WITHOUT_TOOLS) + # Add system/bundled editline. + MYSQL_CHECK_EDITLINE() + SET(EDITLINE_WARN_GIVEN) +@@ -1909,7 +1910,9 @@ ENDIF() + "You can use -DWITH_EDITLINE=bundled instead." + ) + ENDIF() ++ENDIF(NOT WITHOUT_TOOLS) + ++IF(NOT WITHOUT_SERVER) + # Add libevent + MYSQL_CHECK_LIBEVENT() + UNSET(LIBEVENT_WARN_GIVEN) +@@ -1920,6 +1923,7 @@ ENDIF() + "You can use -DWITH_LIBEVENT=bundled instead." + ) + ENDIF() ++ENDIF(NOT WITHOUT_SERVER) + + # Add lz4 library + MYSQL_CHECK_LZ4() +@@ -2186,7 +2190,9 @@ ADD_DEPENDENCIES(clang_tidy_prerequisites GenError) + ADD_DEPENDENCIES(clang_tidy_prerequisites protobuf_generated_all) + ADD_DEPENDENCIES(clang_tidy_prerequisites GenError) + +-ADD_SUBDIRECTORY(include) ++IF(NOT WITHOUT_CLIENTLIBS) ++ ADD_SUBDIRECTORY(include) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + ADD_SUBDIRECTORY(strings) + ADD_SUBDIRECTORY(vio) + ADD_SUBDIRECTORY(mysys) +@@ -2232,12 +2238,15 @@ ENDIF() + ADD_SUBDIRECTORY(unittest/mytap/t) + ENDIF() + +-ADD_SUBDIRECTORY(client) ++IF(NOT WITHOUT_TOOLS) ++ ADD_SUBDIRECTORY(client) ++ENDIF(NOT WITHOUT_TOOLS) ++ + ADD_SUBDIRECTORY(utilities) +-ADD_SUBDIRECTORY(share) + ADD_SUBDIRECTORY(libservices) + + IF(NOT WITHOUT_SERVER) ++ ADD_SUBDIRECTORY(share) + ADD_SUBDIRECTORY(testclients) + ADD_SUBDIRECTORY(sql) + ENDIF() +@@ -2300,11 +2309,11 @@ ADD_SUBDIRECTORY(scripts) + # scripts/mysql_config depends on client and server targets loaded above. + # It is referenced by some of the directories below, so we insert it here. + ADD_SUBDIRECTORY(scripts) ++ADD_SUBDIRECTORY(support-files) + + IF(NOT WITHOUT_SERVER) + ADD_SUBDIRECTORY(mysql-test) + ADD_SUBDIRECTORY(mysql-test/lib/My/SafeProcess) +- ADD_SUBDIRECTORY(support-files) + IF(WITH_INTERNAL) + ADD_SUBDIRECTORY(internal) + ENDIF() +@@ -2331,6 +2340,7 @@ ENDIF() + INCLUDE(fastcov) + ENDIF() + ++IF(FALSE) + IF(UNIX) + ADD_SUBDIRECTORY(man) + ENDIF() +@@ -2530,6 +2540,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") + PATTERN "sp-imp-spec.txt" EXCLUDE + PATTERN "README.build" EXCLUDE + ) ++ENDIF() + ENDIF() + + # Now that we're done with all ADD_SUBDIRECTORY and thus all feature tests, diff --git a/databases/mysql81-server/files/patch-client_CMakeLists.txt b/databases/mysql81-server/files/patch-client_CMakeLists.txt new file mode 100644 index 000000000000..55269b16ec3f --- /dev/null +++ b/databases/mysql81-server/files/patch-client_CMakeLists.txt @@ -0,0 +1,70 @@ +--- client/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ client/CMakeLists.txt +@@ -28,10 +28,13 @@ ADD_SUBDIRECTORY(base) + ## Subdirectory with common client code. + ADD_SUBDIRECTORY(base) + ## Subdirectory for mysqlpump code. ++IF(WITHOUT_SERVER) + ADD_SUBDIRECTORY(dump) + ## Subdirectory for mysql_migrate_keyring code. + ADD_SUBDIRECTORY(migrate_keyring) ++ENDIF() + ++IF(NOT WITHOUT_CLIENTLIBS) + INCLUDE_DIRECTORIES( + ${CMAKE_CURRENT_SOURCE_DIR}/include + ) +@@ -47,6 +50,7 @@ MYSQL_ADD_EXECUTABLE(mysql + ${CMAKE_CURRENT_SOURCE_DIR}/common/user_registration.cc + LINK_LIBRARIES mysqlclient client_base ${EDITLINE_LIBRARY} + ) ++ENDIF() + + IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysql_upgrade +@@ -55,6 +59,7 @@ ENDIF() + ) + ENDIF() + ++IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqltest + mysqltest.cc + mysqltest/error_names.cc +@@ -71,6 +76,9 @@ MYSQL_ADD_EXECUTABLE(mysqltest + ENABLE_EXPORTS + LINK_LIBRARIES mysqlclient + ) ++ENDIF() ++ ++IF(WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqlcheck + check/mysqlcheck.cc + check/mysqlcheck_core.cc +@@ -275,7 +283,9 @@ TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE + + TARGET_COMPILE_DEFINITIONS(mysqlbinlog PRIVATE DISABLE_PSI_MUTEX) + TARGET_INCLUDE_DIRECTORIES(mysqlbinlog PRIVATE ${CMAKE_SOURCE_DIR}/sql) ++ENDIF() + ++IF(WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysqladmin + mysqladmin.cc + multi_factor_passwordopt-vars.cc +@@ -290,6 +300,9 @@ MYSQL_ADD_EXECUTABLE(mysql_config_editor + mysql_config_editor.cc + LINK_LIBRARIES mysqlclient + ) ++ENDIF() ++ ++IF(NOT WITHOUT_SERVER) + MYSQL_ADD_EXECUTABLE(mysql_secure_installation + mysql_secure_installation.cc + LINK_LIBRARIES mysqlclient +@@ -300,6 +313,7 @@ MYSQL_ADD_EXECUTABLE(mysql_ssl_rsa_setup + path.cc + LINK_LIBRARIES mysys + ) ++ENDIF() + + # "WIN32" also covers 64 bit. "echo" is used in some files below "mysql-test/". + IF(WIN32) diff --git a/databases/mysql81-server/files/patch-cmake_install__layout.cmake b/databases/mysql81-server/files/patch-cmake_install__layout.cmake new file mode 100644 index 000000000000..ca0779443e0d --- /dev/null +++ b/databases/mysql81-server/files/patch-cmake_install__layout.cmake @@ -0,0 +1,95 @@ +--- cmake/install_layout.cmake.orig 2023-06-21 07:52:10 UTC ++++ cmake/install_layout.cmake +@@ -41,6 +41,10 @@ + # Build with prefix=/usr/local/mysql, create tarball with install prefix="." + # and relative links. + # ++# FREEBSD ++# Build with prefix=/usr/local, create tarball with install prefix="." ++# and relative links. ++# + # To force a directory layout, use -DINSTALL_LAYOUT=. + # + # The default is STANDALONE. +@@ -80,7 +84,7 @@ SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}" + ENDIF() + + SET(INSTALL_LAYOUT "${DEFAULT_INSTALL_LAYOUT}" +- CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, RPM, DEB, SVR4" ++ CACHE STRING "Installation directory layout. Options are: TARGZ (as in tar.gz installer), STANDALONE, FREEBSD, RPM, DEB, SVR4" + ) + + IF(UNIX) +@@ -98,7 +102,7 @@ IF(UNIX) + CACHE PATH "install prefix" FORCE) + ENDIF() + SET(VALID_INSTALL_LAYOUTS +- "RPM" "DEB" "SVR4" "TARGZ" "STANDALONE") ++ "RPM" "DEB" "SVR4" "TARGZ" "FREEBSD" "STANDALONE") + LIST(FIND VALID_INSTALL_LAYOUTS "${INSTALL_LAYOUT}" ind) + IF(ind EQUAL -1) + MESSAGE(FATAL_ERROR "Invalid INSTALL_LAYOUT parameter:${INSTALL_LAYOUT}." +@@ -167,6 +171,32 @@ SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_fi + SET(INSTALL_SECURE_FILE_PRIVDIR_STANDALONE ${secure_file_priv_path}) + + # ++# FREEBSD layout ++# ++SET(INSTALL_BINDIR_FREEBSD "bin") ++SET(INSTALL_SBINDIR_FREEBSD "bin") ++# ++SET(INSTALL_LIBDIR_FREEBSD "lib") ++SET(INSTALL_PRIV_LIBDIR_FREEBSD "lib/private") ++SET(INSTALL_PLUGINDIR_FREEBSD "lib/plugin") ++# ++SET(INSTALL_INCLUDEDIR_FREEBSD "include") ++# ++SET(INSTALL_DOCDIR_FREEBSD "docs") ++SET(INSTALL_DOCREADMEDIR_FREEBSD ".") ++SET(INSTALL_MANDIR_FREEBSD "man") ++SET(INSTALL_INFODIR_FREEBSD "docs") ++# ++SET(INSTALL_SHAREDIR_FREEBSD "share") ++SET(INSTALL_MYSQLSHAREDIR_FREEBSD "share") ++SET(INSTALL_MYSQLTESTDIR_FREEBSD "mysql-test") ++SET(INSTALL_SUPPORTFILESDIR_FREEBSD "support-files") ++# ++SET(INSTALL_MYSQLDATADIR_FREEBSD "data") ++SET(INSTALL_MYSQLKEYRINGDIR_FREEBSD "keyring") ++SET(INSTALL_SECURE_FILE_PRIVDIR_FREEBSD ${secure_file_priv_path}) ++ ++# + # TARGZ layout + # + SET(INSTALL_BINDIR_TARGZ "bin") +@@ -361,7 +391,7 @@ SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LA + SET(ROUTER_INSTALL_LAYOUT "${DEFAULT_ROUTER_INSTALL_LAYOUT}" + CACHE + STRING +- "Installation directory layout. Options are: STANDALONE RPM DEB SVR4 TARGZ") ++ "Installation directory layout. Options are: STANDALONE FREEBSD RPM DEB SVR4 TARGZ") + + # If we are shared STANDALONE with the the server, we shouldn't write + # into the server's data/ as that would create a "schemadir" in +@@ -405,6 +435,21 @@ ENDFOREACH() + ) + SET(ROUTER_INSTALL_${var}DIR_TARGZ ${ROUTER_INSTALL_${var}DIR_STANDALONE}) + ENDFOREACH() ++ ++# ++# FreeBSD layout ++# ++SET(ROUTER_INSTALL_CONFIGDIR_FREEBSD "/usr/local/etc/mysqlrouter") ++SET(ROUTER_INSTALL_DATADIR_FREEBSD "/var/db/mysqlrouter") ++SET(ROUTER_INSTALL_LOGDIR_FREEBSD "/var/log/mysqlrouter") ++SET(ROUTER_INSTALL_RUNTIMEDIR_FREEBSD "/var/run/mysqlrouter") ++ ++SET(ROUTER_INSTALL_BINDIR_FREEBSD "bin") ++SET(ROUTER_INSTALL_LIBDIR_FREEBSD "lib/mysql") ++SET(ROUTER_INSTALL_PLUGINDIR_FREEBSD "lib/mysql/mysqlrouter") ++SET(ROUTER_INSTALL_LOGROTATEDIR_FREEBSD "etc/logrotate.d") ++SET(ROUTER_INSTALL_LOGROTATEFILE_FREEBSD "mysqlrouter") ++SET(ROUTER_INSTALL_DOCDIR_FREEBSD "share/mysqlrouter/docs") + + FOREACH(var + LOGROTATE diff --git a/databases/mysql81-server/files/patch-cmake_os_DragonFly.cmake b/databases/mysql81-server/files/patch-cmake_os_DragonFly.cmake new file mode 100644 index 000000000000..83c154ee3bcf --- /dev/null +++ b/databases/mysql81-server/files/patch-cmake_os_DragonFly.cmake @@ -0,0 +1,27 @@ +--- cmake/os/DragonFly.cmake.orig 2016-04-14 10:16:17 UTC ++++ cmake/os/DragonFly.cmake +@@ -0,0 +1,24 @@ ++INCLUDE(CheckCSourceRuns) ++ ++# We require at least GCC 4.4 or Clang 3.3. ++IF(NOT FORCE_UNSUPPORTED_COMPILER) ++ IF(CMAKE_COMPILER_IS_GNUCC) ++ EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion ++ OUTPUT_VARIABLE GCC_VERSION) ++ IF(GCC_VERSION VERSION_LESS 4.4) ++ MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!") ++ ENDIF() ++ ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang") ++ CHECK_C_SOURCE_RUNS(" ++ int main() ++ { ++ return (__clang_major__ < 3) || ++ (__clang_major__ == 3 && __clang_minor__ < 3); ++ }" HAVE_SUPPORTED_CLANG_VERSION) ++ IF(NOT HAVE_SUPPORTED_CLANG_VERSION) ++ MESSAGE(FATAL_ERROR "Clang 3.3 or newer is required!") ++ ENDIF() ++ ELSE() ++ MESSAGE(FATAL_ERROR "Unsupported compiler!") ++ ENDIF() ++ENDIF() diff --git a/databases/mysql81-server/files/patch-cmake_os_FreeBSD.cmake b/databases/mysql81-server/files/patch-cmake_os_FreeBSD.cmake new file mode 100644 index 000000000000..90629de01287 --- /dev/null +++ b/databases/mysql81-server/files/patch-cmake_os_FreeBSD.cmake @@ -0,0 +1,25 @@ +--- cmake/os/FreeBSD.cmake.orig 2021-12-17 16:07:27 UTC ++++ cmake/os/FreeBSD.cmake +@@ -48,8 +48,20 @@ IF(NOT FORCE_UNSUPPORTED_COMPILER) + IF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.1) + MESSAGE(FATAL_ERROR "GCC 7.1 or newer is required") + ENDIF() +- ELSE() +- MESSAGE(FATAL_ERROR "Unsupported compiler!") ++ CHECK_C_SOURCE_RUNS(" ++ int main() ++ { ++ return (__clang_major__ >= 4); ++ }" I386_ATOMIC_BUILTINS) ++ IF((CMAKE_SYSTEM_PROCESSOR MATCHES "i386") AND (NOT I386_ATOMIC_BUILTINS)) ++ SET(HAVE_GCC_ATOMIC_BUILTINS CACHE INTERNAL "") ++ ENDIF() ++ ELSEIF(CMAKE_COMPILER_IS_GNUCC) ++ EXECUTE_PROCESS(COMMAND ${CMAKE_C_COMPILER} -dumpversion ++ OUTPUT_VARIABLE GCC_VERSION) ++ IF(GCC_VERSION VERSION_LESS 4.4) ++ MESSAGE(FATAL_ERROR "GCC 4.4 or newer is required!") ++ ENDIF() + ENDIF() + ENDIF() + diff --git a/databases/mysql81-server/files/patch-cmake_plugin.cmake b/databases/mysql81-server/files/patch-cmake_plugin.cmake new file mode 100644 index 000000000000..15406bae9ec0 --- /dev/null +++ b/databases/mysql81-server/files/patch-cmake_plugin.cmake @@ -0,0 +1,27 @@ +--- cmake/plugin.cmake.orig 2023-06-21 07:52:10 UTC ++++ cmake/plugin.cmake +@@ -273,15 +273,15 @@ MACRO(MYSQL_ADD_PLUGIN plugin_arg) + + # For testing purposes, we need + # <...>/lib/plugin/debug/authentication_ldap_sasl_client.so +- IF(ARG_CLIENT_ONLY) +- INSTALL_DEBUG_TARGET(${target} +- DESTINATION ${INSTALL_PLUGINDIR}/debug +- COMPONENT Test) +- ELSE() +- INSTALL_DEBUG_TARGET(${target} +- DESTINATION ${INSTALL_PLUGINDIR}/debug +- COMPONENT ${INSTALL_COMPONENT}) +- ENDIF() ++# IF(ARG_CLIENT_ONLY) ++# INSTALL_DEBUG_TARGET(${target} ++# DESTINATION ${INSTALL_PLUGINDIR}/debug ++# COMPONENT Test) ++# ELSE() ++# INSTALL_DEBUG_TARGET(${target} ++# DESTINATION ${INSTALL_PLUGINDIR}/debug ++# COMPONENT ${INSTALL_COMPONENT}) ++# ENDIF() + ENDIF() + ELSE() + IF(WITHOUT_${plugin}) diff --git a/databases/mysql81-server/files/patch-cmake_ssl.cmake b/databases/mysql81-server/files/patch-cmake_ssl.cmake new file mode 100644 index 000000000000..e7688d6e50ad --- /dev/null +++ b/databases/mysql81-server/files/patch-cmake_ssl.cmake @@ -0,0 +1,23 @@ +--- cmake/ssl.cmake.orig 2022-07-06 21:36:34 UTC ++++ cmake/ssl.cmake +@@ -142,7 +142,7 @@ MACRO(FIND_OPENSSL_VERSION) + # Encoded as MNNFFPPS: major minor fix patch status + FILE(STRINGS "${OPENSSL_INCLUDE_DIR}/openssl/opensslv.h" + OPENSSL_VERSION_NUMBER +- REGEX "^#[ ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" ++ REGEX "^#[\t ]*define[\t ]+OPENSSL_VERSION_NUMBER[\t ]+0x[0-9].*" + ) + STRING(REGEX REPLACE + "^.*OPENSSL_VERSION_NUMBER[\t ]+0x([0-9]).*$" "\\1" +@@ -380,8 +380,9 @@ MACRO (MYSQL_CHECK_SSL) + "Not a supported openssl version in WITH_SSL=${WITH_SSL}.") + ENDIF() + +- IF("${OPENSSL_MAJOR_MINOR_FIX_VERSION}" VERSION_GREATER "1.1.0") +- ADD_DEFINITIONS(-DHAVE_TLSv13) ++ CHECK_SYMBOL_EXISTS(TLS1_3_VERSION "openssl/tls1.h" HAVE_TLS1_3_VERSION) ++ IF(HAVE_TLS1_3_VERSION) ++ #ADD_DEFINITIONS(-DHAVE_TLSv13) + ENDIF() + + IF(OPENSSL_INCLUDE_DIR AND diff --git a/databases/mysql81-server/files/patch-include_my__compare.h b/databases/mysql81-server/files/patch-include_my__compare.h new file mode 100644 index 000000000000..83e2c6f371ca --- /dev/null +++ b/databases/mysql81-server/files/patch-include_my__compare.h @@ -0,0 +1,11 @@ +--- include/my_compare.h.orig 2019-09-20 08:30:51 UTC ++++ include/my_compare.h +@@ -49,7 +49,7 @@ + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and HA_MAX_KEY_LENGTH. + */ + +-#define HA_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define HA_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define HA_MAX_KEY_SEG 16 /* Max segments for key */ + + #define HA_MAX_POSSIBLE_KEY_BUFF (HA_MAX_KEY_LENGTH + 24 + 6 + 6) diff --git a/databases/mysql81-server/files/patch-include_my__stacktrace.h b/databases/mysql81-server/files/patch-include_my__stacktrace.h new file mode 100644 index 000000000000..1654014bd77b --- /dev/null +++ b/databases/mysql81-server/files/patch-include_my__stacktrace.h @@ -0,0 +1,11 @@ +--- include/my_stacktrace.h.orig 2021-12-17 16:07:27 UTC ++++ include/my_stacktrace.h +@@ -43,7 +43,7 @@ + HAVE_BACKTRACE - Linux, FreeBSD, OSX, Solaris + _WIN32 - Windows + */ +-#if defined(HAVE_BACKTRACE) || defined(_WIN32) ++#if (defined(HAVE_BACKTRACE) || defined(_WIN32)) && (defined(__aarch64__) || defined(__amd64__) || defined(__i386__)) + #define HAVE_STACKTRACE 1 + void my_init_stacktrace(); + void my_print_stacktrace(const uchar *stack_bottom, ulong thread_stack); diff --git a/databases/mysql81-server/files/patch-include_my__thread__os__id.h b/databases/mysql81-server/files/patch-include_my__thread__os__id.h new file mode 100644 index 000000000000..56af9be42579 --- /dev/null +++ b/databases/mysql81-server/files/patch-include_my__thread__os__id.h @@ -0,0 +1,15 @@ +--- include/my_thread_os_id.h.orig 2019-09-20 08:30:51 UTC ++++ include/my_thread_os_id.h +@@ -84,8 +84,12 @@ static inline my_thread_os_id_t my_thread_os_id() { + return pthread_getthreadid_np(); + #else + #ifdef HAVE_INTEGER_PTHREAD_SELF ++# ifdef __DragonFly__ ++ return syscall(SYS_lwp_gettid); ++# else + /* Unknown platform, fallback. */ + return pthread_self(); ++# endif + #else + /* Feature not available. */ + return 0; diff --git a/databases/mysql81-server/files/patch-include_myisam.h b/databases/mysql81-server/files/patch-include_myisam.h new file mode 100644 index 000000000000..d47119576543 --- /dev/null +++ b/databases/mysql81-server/files/patch-include_myisam.h @@ -0,0 +1,11 @@ +--- include/myisam.h.orig 2023-06-21 07:52:10 UTC ++++ include/myisam.h +@@ -59,7 +59,7 @@ + The following defines can be increased if necessary. + But beware the dependency of MI_MAX_POSSIBLE_KEY_BUFF and MI_MAX_KEY_LENGTH. + */ +-#define MI_MAX_KEY_LENGTH 1000 /* Max length in bytes */ ++#define MI_MAX_KEY_LENGTH 4000 /* Max length in bytes */ + #define MI_MAX_KEY_SEG 16 /* Max segments for key */ + + #define MI_MAX_KEY_BUFF (MI_MAX_KEY_LENGTH + MI_MAX_KEY_SEG * 6 + 8 + 8) diff --git a/databases/mysql81-server/files/patch-libmysql_CMakeLists.txt b/databases/mysql81-server/files/patch-libmysql_CMakeLists.txt new file mode 100644 index 000000000000..453e0f37652f --- /dev/null +++ b/databases/mysql81-server/files/patch-libmysql_CMakeLists.txt @@ -0,0 +1,68 @@ +--- libmysql/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ libmysql/CMakeLists.txt +@@ -206,6 +206,11 @@ ENDIF() + ) + ENDIF() + ++INCLUDE(${MYSQL_CMAKE_SCRIPT_DIR}/compile_flags.cmake) ++IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") ++ ADD_COMPILE_FLAGS(${CLIENT_SOURCES} COMPILE_FLAGS "-fPIC") ++ENDIF() ++ + # + # Include protocol tracing infrastructure and the test + # trace plugin if enabled by build options. +@@ -282,8 +287,15 @@ ENDIF() + LIST(APPEND LIBS_TO_MERGE auth_win_client) + ENDIF() + +-# LDAP authentication SASL client plug-in +-ADD_SUBDIRECTORY(authentication_ldap) ++IF(WITHOUT_CLIENTLIBS) ++ # Merge several convenience libraries into one big mysqlclient ++ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERGE} ++ COMPONENT Development ++ SKIP_INSTALL) ++ELSE(WITHOUT_CLIENTLIBS) ++ # LDAP authentication SASL client plugin ++ MESSAGE(STATUS "Creating LDAP authentication SASL client library.") ++ ADD_SUBDIRECTORY(authentication_ldap) + + # FIDO authentication client plugin + ADD_SUBDIRECTORY(authentication_fido) +@@ -299,6 +311,7 @@ MERGE_CONVENIENCE_LIBRARIES(mysqlclient ${LIBS_TO_MERG + COMPONENT Development + LINK_LIBRARIES ${LIBS_TO_LINK} + ) ++ENDIF(WITHOUT_CLIENTLIBS) + + # Visual Studio users need debug static library for debug projects + IF(MSVC) +@@ -345,17 +358,27 @@ ENDIF() + + # Merge several convenience libraries into one big mysqlclient + # and link them together into shared library. ++IF(WITHOUT_CLIENTLIBS) + MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} + EXPORTS + ${CLIENT_API_FUNCTIONS} + ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} + ${CLIENT_API_NONBLOCKING_FUNCTIONS} + COMPONENT SharedLibraries ++ SKIP_INSTALL ) ++ELSE(WITHOUT_CLIENTLIBS) ++MERGE_LIBRARIES_SHARED(libmysql ${LIBS_TO_MERGE} ++ EXPORTS ++ ${CLIENT_API_FUNCTIONS} ++ ${CLIENT_API_FUNCTIONS_UNDOCUMENTED} ++ ${CLIENT_API_NONBLOCKING_FUNCTIONS} ++ COMPONENT SharedLibraries + LINK_LIBRARIES ${LIBS_TO_LINK} + ${UNIX_OUTPUT_NAME} + ${UNIX_SOVERSION} + ${UNIX_VERSION} + ) ++ENDIF(WITHOUT_CLIENTLIBS) + + # Downgrade warning for strncat in my_crypt_genhash. + IF((WITH_LTO OR CMAKE_COMPILER_FLAG_WITH_LTO) AND MY_COMPILER_IS_GNU) diff --git a/databases/mysql81-server/files/patch-libservices_CMakeLists.txt b/databases/mysql81-server/files/patch-libservices_CMakeLists.txt new file mode 100644 index 000000000000..95610f261f3a --- /dev/null +++ b/databases/mysql81-server/files/patch-libservices_CMakeLists.txt @@ -0,0 +1,12 @@ +--- libservices/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC ++++ libservices/CMakeLists.txt +@@ -47,7 +47,9 @@ SET(MYSQLSERVICES_SOURCES + plugin_registry_service.c) + + ADD_LIBRARY(mysqlservices STATIC ${MYSQLSERVICES_SOURCES}) ++IF(FALSE) + IF(INSTALL_STATIC_LIBRARIES) + INSTALL(TARGETS mysqlservices + DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) ++ENDIF() + ENDIF() diff --git a/databases/mysql81-server/files/patch-man_CMakeLists.txt b/databases/mysql81-server/files/patch-man_CMakeLists.txt new file mode 100644 index 000000000000..eed2755a9e5d --- /dev/null +++ b/databases/mysql81-server/files/patch-man_CMakeLists.txt @@ -0,0 +1,76 @@ +--- man/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ man/CMakeLists.txt +@@ -23,26 +23,14 @@ SET(MAN1 + # Copy man pages + SET(MAN1 + comp_err.1 +- ibd2sdi.1 +- innochecksum.1 + lz4_decompress.1 +- my_print_defaults.1 +- myisam_ftdump.1 +- myisamchk.1 +- myisamlog.1 +- myisampack.1 + mysql.1 + mysql_config.1 + mysql_config_editor.1 +- mysql_secure_installation.1 +- mysql_ssl_rsa_setup.1 +- mysql_tzinfo_to_sql.1 +- mysql_upgrade.1 + mysqladmin.1 + mysqlbinlog.1 + mysqlcheck.1 + mysqldump.1 +- mysqldumpslow.1 + mysqlimport.1 + mysqlman.1 + mysqlpump.1 +@@ -52,13 +40,23 @@ SET(MAN1 + zlib_decompress.1 + ) + +-IF(NOT WITH_SYSTEMD) +- LIST(APPEND MAN1 +- mysql.server.1 +- mysqld_multi.1 +- mysqld_safe.1 ++SET(MAN1_TOOLS ++ ibd2sdi.1 ++ innochecksum.1 ++ my_print_defaults.1 ++ myisam_ftdump.1 ++ myisamchk.1 ++ myisamlog.1 ++ myisampack.1 ++ mysql.server.1 ++ mysql_secure_installation.1 ++ mysql_ssl_rsa_setup.1 ++ mysql_tzinfo_to_sql.1 ++ mysql_upgrade.1 ++ mysqldumpslow.1 ++ mysqld_multi.1 ++ mysqld_safe.1 + ) +-ENDIF() + + SET(MAN1_NDB + ndb_blob_tool.1 +@@ -105,8 +103,14 @@ SET(MAN8_NDB + ndbmtd.8 + ) + +-INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) +-INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages) ++IF(NOT WITHOUT_CLIENTLIBS) ++ INSTALL(FILES ${MAN1} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) ++ENDIF() ++ ++IF(NOT WITHOUT_SERVER) ++ INSTALL(FILES ${MAN1_TOOLS} DESTINATION ${INSTALL_MANDIR}/man1 COMPONENT ManPages) ++ INSTALL(FILES ${MAN8} DESTINATION ${INSTALL_MANDIR}/man8 COMPONENT ManPages) ++ENDIF() + + IF(WITH_ROUTER) + INSTALL(FILES ${MAN1_ROUTER} diff --git a/databases/mysql81-server/files/patch-mysys_my__default.cc b/databases/mysql81-server/files/patch-mysys_my__default.cc new file mode 100644 index 000000000000..eba6ce293b1f --- /dev/null +++ b/databases/mysql81-server/files/patch-mysys_my__default.cc @@ -0,0 +1,62 @@ +--- mysys/my_default.cc.orig 2023-06-21 07:52:10 UTC ++++ mysys/my_default.cc +@@ -207,7 +207,7 @@ bool no_defaults = false; + + /* Which directories are searched for options (and in which order) */ + +-#define MAX_DEFAULT_DIRS 6 ++#define MAX_DEFAULT_DIRS 7 + #define DEFAULT_DIRS_SIZE (MAX_DEFAULT_DIRS + 1) /* Terminate with NULL */ + static const char **default_directories = nullptr; + +@@ -925,6 +925,14 @@ static int search_default_file_with_ext(Process_option + return 1; /* Ignore wrong files */ + } + ++ if (strstr(name, "/etc") == name) ++ { ++ fprintf(stderr, ++ "error: Config file %s in invalid location, please move to or merge with /usr/local%s\n", ++ name,name); ++ goto err; ++ } ++ + while (true) { + auto fileline = mysql_file_getline(buff, sizeof(buff), fp, is_login_file); + char *linebuff = fileline.get(); +@@ -1314,7 +1322,8 @@ void my_print_default_files(const char *conf_file) { + end[(strlen(end) - 1)] = ' '; + else + strxmov(end, conf_file, *ext, " ", NullS); +- fputs(name, stdout); ++ if (strstr(name, "/etc") != name) ++ fputs(name, stdout); + } + } + } +@@ -1655,14 +1664,9 @@ static const char **init_default_directories(MEM_ROOT + + #else + +- errors += add_directory(alloc, "/etc/", dirs); +- errors += add_directory(alloc, "/etc/mysql/", dirs); ++ errors += add_directory(alloc, "/usr/local/etc/", dirs); ++ errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); + +-#if defined(DEFAULT_SYSCONFDIR) +- if (DEFAULT_SYSCONFDIR[0]) +- errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); +-#endif /* DEFAULT_SYSCONFDIR */ +- + #endif + + if ((env = getenv("MYSQL_HOME"))) errors += add_directory(alloc, env, dirs); +@@ -1727,7 +1731,7 @@ int check_file_permissions(const char *file_name, bool + #if !defined(_WIN32) + MY_STAT stat_info; + +- if (!my_stat(file_name, &stat_info, flags)) return 1; ++ if (!my_stat(file_name, &stat_info, flags)) return 0; + /* + Ignore .mylogin.cnf file if not exclusively readable/writable + by current user. diff --git a/databases/mysql81-server/files/patch-mysys_my__kdf.cc b/databases/mysql81-server/files/patch-mysys_my__kdf.cc new file mode 100644 index 000000000000..e4b12bfc09a0 --- /dev/null +++ b/databases/mysql81-server/files/patch-mysys_my__kdf.cc @@ -0,0 +1,20 @@ +--- mysys/my_kdf.cc.orig 2022-12-11 13:12:02 UTC ++++ mysys/my_kdf.cc +@@ -56,7 +56,7 @@ int create_kdf_key(const unsigned char *key, const uns + std::unique_ptr kdf_function; + + if (kdf_name == "hkdf") { +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + kdf_function = std::make_unique(kdf_options); + #else + return 1; +@@ -71,7 +71,7 @@ int create_kdf_key(const unsigned char *key, const uns + return kdf_function->derive_key(key, key_length, rkey, rkey_size); + } + +-#if OPENSSL_VERSION_NUMBER >= 0x10100000L ++#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER) + Key_hkdf_function::Key_hkdf_function(vector *kdf_options) { + kdf_options_ = {kdf_options}; + } diff --git a/databases/mysql81-server/files/patch-plugin_password__validation_validate__password.cc b/databases/mysql81-server/files/patch-plugin_password__validation_validate__password.cc new file mode 100644 index 000000000000..4f1313993d21 --- /dev/null +++ b/databases/mysql81-server/files/patch-plugin_password__validation_validate__password.cc @@ -0,0 +1,11 @@ +--- plugin/password_validation/validate_password.cc.orig 2019-09-20 08:30:51 UTC ++++ plugin/password_validation/validate_password.cc +@@ -25,6 +25,8 @@ + #include + #include + #include ++/* solve clash between libc++ bitset::test() and test macro from my_global.h */ ++#undef test + #include + #include + #include diff --git a/databases/mysql81-server/files/patch-plugin_x_CMakeLists.txt b/databases/mysql81-server/files/patch-plugin_x_CMakeLists.txt new file mode 100644 index 000000000000..e1e9d8674c99 --- /dev/null +++ b/databases/mysql81-server/files/patch-plugin_x_CMakeLists.txt @@ -0,0 +1,11 @@ +--- plugin/x/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ plugin/x/CMakeLists.txt +@@ -81,6 +81,8 @@ INCLUDE_DIRECTORIES( + ${MYSQLX_GENERATE_DIR} + ${MYSQLX_PROTOCOL_INCLUDE_DIR} + ${MYSQLX_CLIENT_INCLUDE_DIR} ++ ${OPENSSL_INCLUDE_DIR} ++ ${BOOST_INCLUDE_DIR} + ) + + ADD_COMPILE_FLAGS(${XPLUGIN_SRC} diff --git a/databases/mysql81-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc b/databases/mysql81-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc new file mode 100644 index 000000000000..0e894219bb8d --- /dev/null +++ b/databases/mysql81-server/files/patch-plugin_x_client_authentication_sha256__scramble__generator.cc @@ -0,0 +1,11 @@ +--- plugin/x/client/authentication/sha256_scramble_generator.cc.orig 2019-09-20 08:30:51 UTC ++++ plugin/x/client/authentication/sha256_scramble_generator.cc +@@ -97,7 +97,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig + return true; + } + m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L + EVP_MD_CTX_cleanup(md_context); + #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + EVP_MD_CTX_reset(md_context); diff --git a/databases/mysql81-server/files/patch-plugin_x_configure.cmake b/databases/mysql81-server/files/patch-plugin_x_configure.cmake new file mode 100644 index 000000000000..3d56059d869a --- /dev/null +++ b/databases/mysql81-server/files/patch-plugin_x_configure.cmake @@ -0,0 +1,15 @@ +--- plugin/x/configure.cmake.orig 2019-09-20 08:30:51 UTC ++++ plugin/x/configure.cmake +@@ -45,6 +45,7 @@ CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx + CONFIGURE_FILE(${MYSQLX_PROJECT_DIR}/src/config/mysqlx_version.h.in + ${MYSQLX_GENERATE_DIR}/mysqlx_version.h ) + ++IF(FALSE) + INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_error.h + DESTINATION ${INSTALL_INCLUDEDIR} + COMPONENT Development) +@@ -56,3 +57,4 @@ INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_ername.h + INSTALL(FILES ${MYSQLX_GENERATE_DIR}/mysqlx_version.h + DESTINATION ${INSTALL_INCLUDEDIR} + COMPONENT Development) ++ENDIF() diff --git a/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_impl_kqueue__io__service.h b/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_impl_kqueue__io__service.h new file mode 100644 index 000000000000..6e24f0300ecf --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_impl_kqueue__io__service.h @@ -0,0 +1,13 @@ +--- router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h.orig 2023-06-21 07:52:10 UTC ++++ router/src/harness/include/mysql/harness/net_ts/impl/kqueue_io_service.h +@@ -190,8 +190,8 @@ class kqueue_io_service : public IoServiceBase { + auto secs = std::chrono::duration_cast(timeout); + timeout -= secs; + +- ts = {secs.count(), +- std::chrono::duration_cast(timeout) ++ ts = {(time_t)secs.count(), ++ (long)std::chrono::duration_cast(timeout) + .count()}; + + p_ts = &ts; diff --git a/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h b/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h new file mode 100644 index 000000000000..015c6839ada0 --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_harness_include_mysql_harness_net__ts_internet.h @@ -0,0 +1,10 @@ +--- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2020-11-09 00:30:01 UTC ++++ router/src/harness/include/mysql/harness/net_ts/internet.h +@@ -43,6 +43,7 @@ + #include // inet_ntop + #include // getaddrinfo + #include // in_addr_t ++#include // u_int32_t + #include // in6_addr_t + #include // TCP_NODELAY + #include // ioctl diff --git a/databases/mysql81-server/files/patch-router_src_harness_src_CMakeLists.txt b/databases/mysql81-server/files/patch-router_src_harness_src_CMakeLists.txt new file mode 100644 index 000000000000..1e4459495165 --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_harness_src_CMakeLists.txt @@ -0,0 +1,24 @@ +--- router/src/harness/src/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ router/src/harness/src/CMakeLists.txt +@@ -230,7 +230,6 @@ ELSE() + INSTALL(TARGETS harness-library + LIBRARY + DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + ENDIF() + +@@ -262,7 +261,6 @@ INSTALL(TARGETS harness_stdx + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + + ## harness_tls +@@ -304,5 +302,4 @@ INSTALL(TARGETS harness_tls + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) diff --git a/databases/mysql81-server/files/patch-router_src_harness_src_tls__client__context.cc b/databases/mysql81-server/files/patch-router_src_harness_src_tls__client__context.cc new file mode 100644 index 000000000000..d366ee9f7425 --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_harness_src_tls__client__context.cc @@ -0,0 +1,11 @@ +--- router/src/harness/src/tls_client_context.cc.orig 2023-06-21 07:52:10 UTC ++++ router/src/harness/src/tls_client_context.cc +@@ -101,7 +101,7 @@ stdx::expected TlsClientContext + stdx::expected TlsClientContext::cipher_suites( + const std::string &ciphers) { + // TLSv1.3 ciphers are controlled via SSL_CTX_set_ciphersuites() +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1) ++#ifdef TLS1_3_VERSION + if (1 != SSL_CTX_set_ciphersuites(ssl_ctx_.get(), ciphers.c_str())) { + return stdx::make_unexpected(make_tls_error()); + } diff --git a/databases/mysql81-server/files/patch-router_src_harness_src_tls__context.cc b/databases/mysql81-server/files/patch-router_src_harness_src_tls__context.cc new file mode 100644 index 000000000000..b1d818afe81a --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_harness_src_tls__context.cc @@ -0,0 +1,44 @@ +--- router/src/harness/src/tls_context.cc.orig 2021-12-17 16:07:27 UTC ++++ router/src/harness/src/tls_context.cc +@@ -241,7 +241,7 @@ static int o11x_version(TlsVersion version) { + return TLS1_1_VERSION; + case TlsVersion::TLS_1_2: + return TLS1_2_VERSION; +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 1) ++#ifdef TLS1_3_VERSION + case TlsVersion::TLS_1_3: + return TLS1_3_VERSION; + #endif +@@ -272,9 +272,11 @@ stdx::expected TlsContext::vers + default: + // unknown, leave all disabled + [[fallthrough]]; ++#ifdef TLS1_3_VERSION + case TlsVersion::TLS_1_3: + opts |= SSL_OP_NO_TLSv1_2; + [[fallthrough]]; ++#endif + case TlsVersion::TLS_1_2: + opts |= SSL_OP_NO_TLSv1_1; + [[fallthrough]]; +@@ -322,8 +324,10 @@ TlsVersion TlsContext::min_version() const { + return TlsVersion::TLS_1_1; + case TLS1_2_VERSION: + return TlsVersion::TLS_1_2; ++#ifdef TLS1_3_VERSION + case TLS1_3_VERSION: + return TlsVersion::TLS_1_3; ++#endif + case 0: + return TlsVersion::AUTO; + default: +@@ -382,7 +386,8 @@ TlsContext::InfoCallback TlsContext::info_callback() c + } + + int TlsContext::security_level() const { +-#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) ++#if OPENSSL_VERSION_NUMBER >= ROUTER_OPENSSL_VERSION(1, 1, 0) && \ ++ !defined(LIBRESSL_VERSION_NUMBER) + return SSL_CTX_get_security_level(ssl_ctx_.get()); + #else + return 0; diff --git a/databases/mysql81-server/files/patch-router_src_http_src_CMakeLists.txt b/databases/mysql81-server/files/patch-router_src_http_src_CMakeLists.txt new file mode 100644 index 000000000000..d6d71414449d --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_http_src_CMakeLists.txt @@ -0,0 +1,26 @@ +--- router/src/http/src/CMakeLists.txt.orig 2021-12-17 16:07:27 UTC ++++ router/src/http/src/CMakeLists.txt +@@ -58,7 +58,6 @@ INSTALL(TARGETS http_common + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + + ## split library code from the plugin to use them _passwd and tests +@@ -84,7 +83,6 @@ INSTALL(TARGETS http_auth_backend_lib + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + TARGET_INCLUDE_DIRECTORIES(http_auth_backend_lib PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +@@ -137,7 +135,6 @@ INSTALL(TARGETS http_auth_realm_lib + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + ## the rpath for the bundled openssl + ADD_INSTALL_RPATH_FOR_OPENSSL(http_auth_realm_lib) diff --git a/databases/mysql81-server/files/patch-router_src_io_src_CMakeLists.txt b/databases/mysql81-server/files/patch-router_src_io_src_CMakeLists.txt new file mode 100644 index 000000000000..474f473e1893 --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_io_src_CMakeLists.txt @@ -0,0 +1,10 @@ +--- router/src/io/src/CMakeLists.txt.orig 2020-09-23 12:37:48 UTC ++++ router/src/io/src/CMakeLists.txt +@@ -47,7 +47,6 @@ INSTALL(TARGETS io_component + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + + GENERATE_EXPORT_HEADER(io_component diff --git a/databases/mysql81-server/files/patch-router_src_router_src_CMakeLists.txt b/databases/mysql81-server/files/patch-router_src_router_src_CMakeLists.txt new file mode 100644 index 000000000000..0a26f51a8ac9 --- /dev/null +++ b/databases/mysql81-server/files/patch-router_src_router_src_CMakeLists.txt @@ -0,0 +1,10 @@ +--- router/src/router/src/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ router/src/router/src/CMakeLists.txt +@@ -149,7 +149,6 @@ INSTALL(TARGETS router_lib + RUNTIME DESTINATION ${ROUTER_INSTALL_BINDIR} COMPONENT Router + ARCHIVE DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router + LIBRARY DESTINATION ${ROUTER_INSTALL_LIBDIR} COMPONENT Router +- NAMELINK_SKIP + ) + + MYSQL_ADD_EXECUTABLE(mysqlrouter_keyring diff --git a/databases/mysql81-server/files/patch-scripts_CMakeLists.txt b/databases/mysql81-server/files/patch-scripts_CMakeLists.txt new file mode 100644 index 000000000000..4f2f5afb57d4 --- /dev/null +++ b/databases/mysql81-server/files/patch-scripts_CMakeLists.txt @@ -0,0 +1,52 @@ +--- scripts/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ scripts/CMakeLists.txt +@@ -336,6 +336,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) + SET(${var} "${${var}}-L${dir} " ) + ENDIF() + SET(${var} "${${var}}-l${lib} " ) ++ ELSEIF(lib STREQUAL "-pthread") ++ SET(${var} "${${var}}-pthread " ) + ELSE() + SET(${var} "${${var}}-l${lib} " ) + ENDIF() +@@ -409,7 +411,7 @@ ELSE() + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} + ESCAPE_QUOTES @ONLY) + +- IF(INSTALL_PKGCONFIGDIR) ++ IF(INSTALL_PKGCONFIGDIR AND NOT WITHOUT_CLIENTLIBS) + MESSAGE(STATUS "INSTALL ${PKGCONFIG_FILE} ${INSTALL_PKGCONFIGDIR}") + INSTALL(FILES + ${CMAKE_CURRENT_BINARY_DIR}/${PKGCONFIG_FILE} +@@ -422,23 +424,28 @@ ELSE() + # mysqld_safe used in mtr even for systemd platforms + IF(WITH_SYSTEMD) + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + mysqld_safe + ) + ELSE() + SET(BIN_SCRIPTS +- mysql_config + mysqldumpslow + mysqld_multi + mysqld_safe + ) + ENDIF() + ++ IF(NOT WITHOUT_CLIENTLIBS) ++ SET(BIN_SCRIPTS ++ ${BIN_SCRIPTS} ++ mysql_config ++ ) ++ ENDIF(NOT WITHOUT_CLIENTLIBS) ++ + FOREACH(file ${BIN_SCRIPTS}) + IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh +- ${CMAKE_CURRENT_BINARY_DIR}/${file} ESCAPE_QUOTES @ONLY ++ ${CMAKE_CURRENT_BINARY_DIR}/${file} @ONLY + ) + ELSEIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file}.pl.in diff --git a/databases/mysql81-server/files/patch-scripts_mysqld__safe.sh b/databases/mysql81-server/files/patch-scripts_mysqld__safe.sh new file mode 100644 index 000000000000..47bc81e3963b --- /dev/null +++ b/databases/mysql81-server/files/patch-scripts_mysqld__safe.sh @@ -0,0 +1,19 @@ +--- scripts/mysqld_safe.sh.orig 2022-01-23 11:48:36 UTC ++++ scripts/mysqld_safe.sh +@@ -360,7 +360,7 @@ mysqld_ld_preload_text() { + # running mysqld. See ld.so for details. + set_malloc_lib() { + # This list is kept intentionally simple. +- malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu" ++ malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu /usr/local/lib" + malloc_lib="$1" + + # Allow --malloc-lib='' to override other settings +@@ -379,6 +379,7 @@ set_malloc_lib() { + /usr/lib64) ;; + /usr/lib/i386-linux-gnu) ;; + /usr/lib/x86_64-linux-gnu) ;; ++ /usr/local/lib) ;; + *) + log_error "--malloc-lib must be located in one of the directories: $malloc_dirs" + exit 1 diff --git a/databases/mysql81-server/files/patch-sql_auth_sha2__password__common.cc b/databases/mysql81-server/files/patch-sql_auth_sha2__password__common.cc new file mode 100644 index 000000000000..56f6dfb3fbb7 --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_auth_sha2__password__common.cc @@ -0,0 +1,11 @@ +--- sql/auth/sha2_password_common.cc.orig 2019-09-20 08:30:51 UTC ++++ sql/auth/sha2_password_common.cc +@@ -101,7 +101,7 @@ bool SHA256_digest::retrieve_digest(unsigned char *dig + return true; + } + m_ok = EVP_DigestFinal_ex(md_context, m_digest, nullptr); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if defined(LIBRESSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L + EVP_MD_CTX_cleanup(md_context); + #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + EVP_MD_CTX_reset(md_context); diff --git a/databases/mysql81-server/files/patch-sql_auth_sql__authorization.cc b/databases/mysql81-server/files/patch-sql_auth_sql__authorization.cc new file mode 100644 index 000000000000..e9282f545a1c --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_auth_sql__authorization.cc @@ -0,0 +1,13 @@ +--- sql/auth/sql_authorization.cc.orig 2023-06-21 07:52:10 UTC ++++ sql/auth/sql_authorization.cc +@@ -7437,6 +7437,10 @@ bool operator==(const Role_id &a, const std::string &b + return tmp == b; + } + ++bool operator==(const Role_id &a, const LEX_CSTRING &b) { ++ return a == to_string(b); ++} ++ + bool operator==(const std::pair &a, const std::string &b) { + return a.first == b; + } diff --git a/databases/mysql81-server/files/patch-sql_conn__handler_socket__connection.cc b/databases/mysql81-server/files/patch-sql_conn__handler_socket__connection.cc new file mode 100644 index 000000000000..6aa01f9e3e3a --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_conn__handler_socket__connection.cc @@ -0,0 +1,32 @@ +--- sql/conn_handler/socket_connection.cc.orig 2023-06-21 07:52:10 UTC ++++ sql/conn_handler/socket_connection.cc +@@ -960,9 +960,11 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC + signal(SIGCHLD, SIG_DFL); + request_init(&req, RQ_DAEMON, libwrap_name, RQ_FILE, + mysql_socket_getfd(connect_sock), NULL); +- fromhost(&req); ++ void (*my_fromhost) (void *) = (void (*)(void *)) fromhost; ++ my_fromhost(&req); + +- if (!hosts_access(&req)) { ++ int (*my_hosts_access) (void *) = (int (*) (void *)) hosts_access; ++ if (!my_hosts_access(&req)) { + /* + This may be stupid but refuse() includes an exit(0) + which we surely don't want... +@@ -974,12 +976,13 @@ bool check_connection_refused_by_tcp_wrapper(MYSQL_SOC + This is unproblematic as TCP-wrapper is unix specific, + anyway. + */ ++ char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client; + syslog(LOG_AUTH | LOG_WARNING, "refused connect from %s", +- eval_client(&req)); ++ my_eval_client(&req)); + + #ifdef HAVE_LIBWRAP_PROTOTYPES + // Some distros have patched tcpd.h to have proper prototypes +- if (req.sink) (req.sink)(req.fd); ++ if (req.sink) ((void (*)(int)) (req.sink))(req.fd); + #else + // Some distros have not patched tcpd.h + if (req.sink) ((void (*)(int))req.sink)(req.fd); diff --git a/databases/mysql81-server/files/patch-sql_mysqld.cc b/databases/mysql81-server/files/patch-sql_mysqld.cc new file mode 100644 index 000000000000..6f0533832abb --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_mysqld.cc @@ -0,0 +1,11 @@ +--- sql/mysqld.cc.orig 2023-06-21 07:52:10 UTC ++++ sql/mysqld.cc +@@ -5428,7 +5428,7 @@ static PSI_memory_key key_memory_openssl = PSI_NOT_INS + + static PSI_memory_key key_memory_openssl = PSI_NOT_INSTRUMENTED; + +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + #define FILE_LINE_ARGS + #else + #define FILE_LINE_ARGS , const char *, int diff --git a/databases/mysql81-server/files/patch-sql_ssl__init__callback.cc b/databases/mysql81-server/files/patch-sql_ssl__init__callback.cc new file mode 100644 index 000000000000..96bd029197e9 --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_ssl__init__callback.cc @@ -0,0 +1,36 @@ +--- sql/ssl_init_callback.cc.orig 2023-06-21 07:52:10 UTC ++++ sql/ssl_init_callback.cc +@@ -110,14 +110,14 @@ static Sys_var_charptr Sys_tls_version( + + static Sys_var_charptr Sys_tls_version( + "tls_version", +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLS version, permitted values are TLSv1.2, TLSv1.3", + #else + "TLS version, permitted values are TLSv1.2", + #endif + PERSIST_AS_READONLY GLOBAL_VAR(opt_tls_version), + CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLSv1.2,TLSv1.3", + #else + "TLSv1.2", +@@ -197,14 +197,14 @@ static Sys_var_charptr Sys_admin_tls_version( + + static Sys_var_charptr Sys_admin_tls_version( + "admin_tls_version", +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLS version for --admin-port, permitted values are TLSv1.2, TLSv1.3", + #else + "TLS version for --admin-port, permitted values are TLSv1.2", + #endif + PERSIST_AS_READONLY GLOBAL_VAR(opt_admin_tls_version), + CMD_LINE(REQUIRED_ARG, OPT_TLS_VERSION), IN_FS_CHARSET, +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + "TLSv1.2,TLSv1.3", + #else + "TLSv1.2", diff --git a/databases/mysql81-server/files/patch-sql_sys__vars.cc b/databases/mysql81-server/files/patch-sql_sys__vars.cc new file mode 100644 index 000000000000..cfff31af4057 --- /dev/null +++ b/databases/mysql81-server/files/patch-sql_sys__vars.cc @@ -0,0 +1,29 @@ +--- sql/sys_vars.cc.orig 2023-06-21 07:52:10 UTC ++++ sql/sys_vars.cc +@@ -2045,7 +2045,7 @@ static Sys_var_ulong Sys_connect_timeout( + "The number of seconds the mysqld server is waiting for a connect " + "packet before responding with 'Bad handshake'", + GLOBAL_VAR(connect_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(2, LONG_TIMEOUT), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1)); ++ VALID_RANGE(2, INT_MAX32 / 1000), DEFAULT(CONNECT_TIMEOUT), BLOCK_SIZE(1)); + + static Sys_var_ulong Sys_information_schema_stats_expiry( + "information_schema_stats_expiry", +@@ -3201,7 +3201,7 @@ static Sys_var_ulong Sys_net_read_timeout( + "Number of seconds to wait for more data from a connection before " + "aborting the read", + SESSION_VAR(net_read_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_READ_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr), + ON_UPDATE(fix_net_read_timeout)); + +@@ -3222,7 +3222,7 @@ static Sys_var_ulong Sys_net_write_timeout( + "Number of seconds to wait for a block to be written to a connection " + "before aborting the write", + SESSION_VAR(net_write_timeout), CMD_LINE(REQUIRED_ARG), +- VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), ++ VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WRITE_TIMEOUT), BLOCK_SIZE(1), + NO_MUTEX_GUARD, NOT_IN_BINLOG, ON_CHECK(nullptr), + ON_UPDATE(fix_net_write_timeout)); + diff --git a/databases/mysql81-server/files/patch-storage_innobase_include_srv0mon.h b/databases/mysql81-server/files/patch-storage_innobase_include_srv0mon.h new file mode 100644 index 000000000000..ee591adb8697 --- /dev/null +++ b/databases/mysql81-server/files/patch-storage_innobase_include_srv0mon.h @@ -0,0 +1,13 @@ +--- storage/innobase/include/srv0mon.h.orig 2019-09-20 08:30:51 UTC ++++ storage/innobase/include/srv0mon.h +@@ -40,6 +40,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, + /* Required for FreeBSD so that INT64_MAX is defined. */ + #define __STDC_LIMIT_MACROS + #endif /* __STDC_LIMIT_MACROS */ ++#ifdef __DragonFly__ ++/* The hack above doen't work for dragonfly, stdint.h already imported */ ++#include ++#endif + + #include + diff --git a/databases/mysql81-server/files/patch-storage_innobase_include_ut0crc32.h b/databases/mysql81-server/files/patch-storage_innobase_include_ut0crc32.h new file mode 100644 index 000000000000..45695dfc36ad --- /dev/null +++ b/databases/mysql81-server/files/patch-storage_innobase_include_ut0crc32.h @@ -0,0 +1,12 @@ +--- storage/innobase/include/ut0crc32.h.orig 2023-06-21 07:52:10 UTC ++++ storage/innobase/include/ut0crc32.h +@@ -132,7 +132,9 @@ CRC32_DEFAULT + #endif /* CRC32_ARM64 */ + + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __FreeBSD__ + #include ++#endif /* __FreeBSD__ */ + #include + #endif /* CRC32_ARM64_DEFAULT */ + diff --git a/databases/mysql81-server/files/patch-storage_innobase_ut_crc32.cc b/databases/mysql81-server/files/patch-storage_innobase_ut_crc32.cc new file mode 100644 index 000000000000..d8662b03ba53 --- /dev/null +++ b/databases/mysql81-server/files/patch-storage_innobase_ut_crc32.cc @@ -0,0 +1,104 @@ +--- storage/innobase/ut/crc32.cc.orig 2023-06-21 07:52:10 UTC ++++ storage/innobase/ut/crc32.cc +@@ -332,8 +332,25 @@ bool can_use_poly_mul() { return true; } + #endif /* CRC32_ARM64_APPLE */ + + #ifdef CRC32_ARM64_DEFAULT ++#ifdef __FreeBSD__ ++bool can_use_crc32() { ++ unsigned long capabilities; ++ ++ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) ++ return false; ++ return capabilities & HWCAP_CRC32; ++} ++bool can_use_poly_mul() { ++ unsigned long capabilities; ++ ++ if (elf_aux_info(AT_HWCAP, &capabilities, sizeof(unsigned long))) ++ return false; ++ return capabilities & HWCAP_CRC32; ++} ++#else + bool can_use_crc32() { return getauxval(AT_HWCAP) & HWCAP_CRC32; } + bool can_use_poly_mul() { return getauxval(AT_HWCAP) & HWCAP_PMULL; } ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + + /** A helper template to statically unroll a loop with a fixed number of +@@ -442,25 +459,39 @@ uint64_t crc32_impl::update(uint64_t crc, uint64_t dat + + #ifdef CRC32_ARM64 + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, unsigned char data) { + return __crc32cb(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, uint16_t data) { + return __crc32ch(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_impl::update(uint32_t crc, uint32_t data) { + return __crc32cw(crc, data); + } + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"))) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint64_t crc32_impl::update(uint64_t crc, uint64_t data) { + return (uint64_t)__crc32cd((uint32_t)crc, data); +@@ -506,7 +537,11 @@ template + } + template + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crypto"))) ++#else ++MY_ATTRIBUTE((target("crypto"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint64_t use_pclmul::polynomial_mul_rev(uint32_t rev_u) { + constexpr uint64_t flipped_w = flip_at_32(w); +@@ -749,7 +784,11 @@ MY_ATTRIBUTE((flatten)) + MY_ATTRIBUTE((flatten)) + #endif /* CRC32_ARM64_APPLE */ + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc+crypto"), flatten)) ++#else ++MY_ATTRIBUTE((target("crc,crypto"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_using_pclmul(const byte *data, size_t len) { + return crc32(0, data, len); +@@ -769,7 +808,11 @@ MY_ATTRIBUTE((flatten)) + MY_ATTRIBUTE((flatten)) + #endif /* CRC32_ARM64_APPLE */ + #ifdef CRC32_ARM64_DEFAULT ++#ifndef __clang__ + MY_ATTRIBUTE((target("+crc"), flatten)) ++#else ++MY_ATTRIBUTE((target("crc"))) ++#endif + #endif /* CRC32_ARM64_DEFAULT */ + uint32_t crc32_using_unrolled_loop_poly_mul(const byte *data, size_t len) { + return crc32(0, data, len); diff --git a/databases/mysql81-server/files/patch-storage_myisam_mi__dynrec.cc b/databases/mysql81-server/files/patch-storage_myisam_mi__dynrec.cc new file mode 100644 index 000000000000..4daceefef132 --- /dev/null +++ b/databases/mysql81-server/files/patch-storage_myisam_mi__dynrec.cc @@ -0,0 +1,22 @@ +--- storage/myisam/mi_dynrec.cc.orig 2019-09-20 08:30:51 UTC ++++ storage/myisam/mi_dynrec.cc +@@ -85,17 +85,12 @@ bool mi_dynmap_file(MI_INFO *info, my_off_t size) { + return true; + } + /* +- I wonder if it is good to use MAP_NORESERVE. From the Linux man page: +- MAP_NORESERVE +- Do not reserve swap space for this mapping. When swap space is +- reserved, one has the guarantee that it is possible to modify the +- mapping. When swap space is not reserved one might get SIGSEGV +- upon a write if no physical memory is available. ++ MAP_NORESERVE is unimplemented in FreeBSD + */ + info->s->file_map = (uchar *)my_mmap( + nullptr, (size_t)size, + info->s->mode == O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE, +- MAP_SHARED | MAP_NORESERVE, info->dfile, 0L); ++ MAP_SHARED, info->dfile, 0L); + if (info->s->file_map == (uchar *)MAP_FAILED) { + info->s->file_map = nullptr; + return true; diff --git a/databases/mysql81-server/files/patch-storage_temptable_include_temptable_lock__free__type.h b/databases/mysql81-server/files/patch-storage_temptable_include_temptable_lock__free__type.h new file mode 100644 index 000000000000..f0891fb365e2 --- /dev/null +++ b/databases/mysql81-server/files/patch-storage_temptable_include_temptable_lock__free__type.h @@ -0,0 +1,17 @@ +--- storage/temptable/include/temptable/lock_free_type.h.orig 2023-06-21 07:52:10 UTC ++++ storage/temptable/include/temptable/lock_free_type.h +@@ -32,6 +32,14 @@ Lock-free type (selection) implementation. */ + #include "my_config.h" + #include "storage/temptable/include/temptable/constants.h" + ++#if defined(__i386__) //&& defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8) ++/* Fix for clang setting __GCC_ATOMIC_LLONG_LOCK_FREE incorrectly for x86 ++ * https://llvm.org/bugs/show_bug.cgi?id=19355 ++ */ ++#undef ATOMIC_LLONG_LOCK_FREE ++#define ATOMIC_LLONG_LOCK_FREE 2 ++#endif ++ + namespace temptable { + + /** Clang has a bug which causes ATOMIC_LLONG_LOCK_FREE to be defined as 1 diff --git a/databases/mysql81-server/files/patch-support-files_CMakeLists.txt b/databases/mysql81-server/files/patch-support-files_CMakeLists.txt new file mode 100644 index 000000000000..88a193db5fdc --- /dev/null +++ b/databases/mysql81-server/files/patch-support-files_CMakeLists.txt @@ -0,0 +1,39 @@ +--- support-files/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ support-files/CMakeLists.txt +@@ -24,8 +24,9 @@ ENDIF() + RETURN() + ENDIF() + +-INSTALL(FILES mysql.m4 +- DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++IF(NOT WITHOUT_CLIENTLIBS) ++ INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development) ++ENDIF(NOT WITHOUT_CLIENTLIBS) + + SET(localstatedir "${MYSQL_DATADIR}") + +@@ -43,7 +44,7 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-r + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql-log-rotate.in + ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate @ONLY) + +-IF(NOT WITH_SYSTEMD) ++IF(NOT WITHOUT_SERVER) + CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh + ${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY + ) +@@ -59,6 +60,7 @@ ENDIF() + ) + ENDIF() + ++IF(NOT WITHOUT_SERVER) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate + COMPONENT Server_Scripts + DESTINATION ${INSTALL_SUPPORTFILESDIR} +@@ -66,6 +68,7 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-ro + OWNER_READ OWNER_WRITE + GROUP_READ WORLD_READ + ) ++ENDIF() + + IF(WITH_ROUTER) + IF(NOT WITH_SYSTEMD) diff --git a/databases/mysql81-server/files/patch-utilities_CMakeLists.txt b/databases/mysql81-server/files/patch-utilities_CMakeLists.txt new file mode 100644 index 000000000000..61f984d763b5 --- /dev/null +++ b/databases/mysql81-server/files/patch-utilities_CMakeLists.txt @@ -0,0 +1,79 @@ +--- utilities/CMakeLists.txt.orig 2023-06-21 07:52:10 UTC ++++ utilities/CMakeLists.txt +@@ -24,13 +24,19 @@ MSVC_CPPCHECK_DISABLE() + DISABLE_MISSING_PROFILE_WARNING() + MSVC_CPPCHECK_DISABLE() + +-IF(NOT CMAKE_CROSSCOMPILING) ++IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(comp_err + comp_err.cc + COMPONENT Test + LINK_LIBRARIES mysys ++ SKIP_INSTALL) ++ELSE(WITHOUT_CLIENTLIBS) ++ MYSQL_ADD_EXECUTABLE(comp_err ++ comp_err.cc ++ COMPONENT Test ++ LINK_LIBRARIES mysys + ) +-ENDIF() ++ENDIF(WITHOUT_CLIENTLIBS) + + MYSQL_ADD_EXECUTABLE(comp_client_err + comp_client_err.cc +@@ -113,10 +119,30 @@ MYSQL_ADD_EXECUTABLE(static_thread_local_test + EXCLUDE_FROM_ALL + ) + ++IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(my_print_defaults + my_print_defaults.cc + COMPONENT Server + LINK_LIBRARIES mysys ++ SKIP_INSTALL ) ++MYSQL_ADD_EXECUTABLE(perror ++ perror.cc ++ COMPONENT Server ++ DEPENDENCIES GenError ++ LINK_LIBRARIES mysys ++ SKIP_INSTALL ) ++IF(BUILD_BUNDLED_LZ4) ++ MYSQL_ADD_EXECUTABLE(lz4_decompress ++ lz4_decompress.cc ++ COMPONENT Server ++ LINK_LIBRARIES ${LZ4_LIBRARY} mysys ++ SKIP_INSTALL ) ++ENDIF() ++ELSE(WITHOUT_CLIENTLIBS) ++MYSQL_ADD_EXECUTABLE(my_print_defaults ++ my_print_defaults.cc ++ COMPONENT Server ++ LINK_LIBRARIES mysys + ) + MYSQL_ADD_EXECUTABLE(perror + perror.cc +@@ -131,12 +157,23 @@ ENDIF() + LINK_LIBRARIES ext::lz4 mysys + ) + ENDIF() ++ENDIF(WITHOUT_CLIENTLIBS) + ++IF(WITHOUT_CLIENTLIBS) + MYSQL_ADD_EXECUTABLE(zlib_decompress + zlib_decompress.cc + COMPONENT Server + LINK_LIBRARIES ext::zlib mysys ++ SKIP_INSTALL ) ++ELSE(WITHOUT_CLIENTLIBS) ++IF(BUILD_BUNDLED_ZLIB OR NOT OPENSSL_EXECUTABLE_HAS_ZLIB) ++ MYSQL_ADD_EXECUTABLE(zlib_decompress ++ zlib_decompress.cc ++ COMPONENT Server ++ LINK_LIBRARIES ${ZLIB_LIBRARY} mysys + ) ++ENDIF() ++ENDIF(WITHOUT_CLIENTLIBS) + + # All targets below belong to COMPONENT Server and depend on InnoDB. + IF(WITHOUT_SERVER) diff --git a/databases/mysql81-server/files/patch-vio_viossl.cc b/databases/mysql81-server/files/patch-vio_viossl.cc new file mode 100644 index 000000000000..4a993d1fe051 --- /dev/null +++ b/databases/mysql81-server/files/patch-vio_viossl.cc @@ -0,0 +1,30 @@ +--- vio/viossl.cc.orig 2023-06-21 07:52:10 UTC ++++ vio/viossl.cc +@@ -45,7 +45,8 @@ + BIO_set_callback_ex was added in openSSL 1.1.1 + For older openSSL, use the deprecated BIO_set_callback. + */ +-#if OPENSSL_VERSION_NUMBER >= 0x10101000L ++#if OPENSSL_VERSION_NUMBER >= 0x10101000L && \ ++ !defined(LIBRESSL_VERSION_NUMBER) + #define HAVE_BIO_SET_CALLBACK_EX + #endif + +@@ -698,7 +699,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l + #if !defined(NDEBUG) + { + STACK_OF(SSL_COMP) *ssl_comp_methods = nullptr; +- ssl_comp_methods = SSL_COMP_get_compression_methods(); ++ ssl_comp_methods = (STACK_OF(SSL_COMP) *)SSL_COMP_get_compression_methods(); + n = sk_SSL_COMP_num(ssl_comp_methods); + DBUG_PRINT("info", ("Available compression methods:\n")); + if (n == 0) +@@ -706,7 +707,7 @@ static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, l + else + for (j = 0; j < n; j++) { + SSL_COMP *c = sk_SSL_COMP_value(ssl_comp_methods, j); +-#if OPENSSL_VERSION_NUMBER < 0x10100000L ++#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) + DBUG_PRINT("info", (" %d: %s\n", c->id, c->name)); + #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ + DBUG_PRINT("info", diff --git a/databases/mysql81-server/files/patch-vio_viosslfactories.cc b/databases/mysql81-server/files/patch-vio_viosslfactories.cc new file mode 100644 index 000000000000..80e10a9495ad --- /dev/null +++ b/databases/mysql81-server/files/patch-vio_viosslfactories.cc @@ -0,0 +1,46 @@ +--- vio/viosslfactories.cc.orig 2023-06-21 07:52:10 UTC ++++ vio/viosslfactories.cc +@@ -45,6 +45,7 @@ + #include + + #include "my_openssl_fips.h" ++#include "openssl/crypto.h" + #define TLS_VERSION_OPTION_SIZE 256 + + /* +@@ -422,7 +423,7 @@ long process_tls_version(const char *tls_version) { + const char *separator = ","; + char *token, *lasts = nullptr; + +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + const char *tls_version_name_list[] = {"TLSv1.2", "TLSv1.3"}; + const char ctx_flag_default[] = "TLSv1.2,TLSv1.3"; + const long tls_ctx_list[] = {SSL_OP_NO_TLSv1_2, SSL_OP_NO_TLSv1_3}; +@@ -494,7 +495,7 @@ static struct st_VioSSLFd *new_VioSSLFd( + ssl_ctx_options = (ssl_ctx_options | ssl_ctx_flags) & + (SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | + SSL_OP_NO_TLSv1_1 | SSL_OP_NO_TLSv1_2 +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + | SSL_OP_NO_TLSv1_3 + #endif /* HAVE_TLSv13 */ + | SSL_OP_NO_TICKET); +@@ -503,7 +504,7 @@ static struct st_VioSSLFd *new_VioSSLFd( + return nullptr; + + if (!(ssl_fd->ssl_context = SSL_CTX_new(is_client ? +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + TLS_client_method() + : TLS_server_method() + #else /* HAVE_TLSv13 */ +@@ -518,7 +519,7 @@ static struct st_VioSSLFd *new_VioSSLFd( + return nullptr; + } + +-#ifdef HAVE_TLSv13 ++#if defined(HAVE_TLSv13) && !defined(LIBRESSL_VERSION_NUMBER) + /* + Set OpenSSL TLS v1.3 ciphersuites. + Note that an empty list is permissible. diff --git a/databases/mysql81-server/files/pkg-message.in b/databases/mysql81-server/files/pkg-message.in new file mode 100644 index 000000000000..efe29e7bc126 --- /dev/null +++ b/databases/mysql81-server/files/pkg-message.in @@ -0,0 +1,21 @@ +[ +{ type: install + message: <