# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= mysql80 VERSION= 8.0.42 REVISION= 1 KEYWORDS= databases VARIANTS= std SDESC[std]= Multithreaded SQL database (server) HOMEPAGE= https://www.mysql.com/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= MYSQL/MySQL-8.0 DISTFILE[1]= mysql-boost-8.0.42.tar.gz:main DF_INDEX= 1 SPKGS[std]= set server client dev man info OPTIONS_AVAILABLE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PERFSCHEMA PERFORMANCE OPTIONS_STANDARD= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PERFSCHEMA PERFORMANCE OPTGROUP_UNLIMITED= STORAGE OPTDESCR[STORAGE]= Storage engines statically compiled into server OPTGROUP[STORAGE]= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PERFSCHEMA OPT_ON[all]= PERFORMANCE BUILD_DEPENDS= libedit:dev:std libedit:primary:std protobuf321:dev:std icu:dev:std libevent:dev:std BUILDRUN_DEPENDS= libevent:primary:std protobuf321:primary:std icu:primary:std B_DEPS[linux]= patchelf:primary:std EXRUN[client]= libedit:primary:std zlib:primary:std zstd:primary:std openssl30:primary:std USERS= mysql GROUPS= mysql USERGROUP_SPKG= server USES= cpe bison cmake perl:run shebangfix zstd zlib lz4 execinfo ssl:openssl30 pkgconfig c++:server,client cclibs:server,client DISTNAME= mysql-8.0.42 LICENSE= GPLv2:server CUSTOM1:server LICENSE_TERMS= server:{{WRKDIR}}/TERMS LICENSE_NAME= CUSTOM1:"MySQL Router License" LICENSE_FILE= GPLv2:{{WRKSRC}}/README CUSTOM1:{{WRKSRC}}/router/LICENSE.router LICENSE_AWK= TERMS:"^\/\*$$" LICENSE_SOURCE= TERMS:{{WRKSRC}}/include/mysql.h LICENSE_SCHEME= multi INFO= info:mysql CMAKE_BUILD_TYPE= Release CPE_PRODUCT= mysql CPE_VENDOR= oracle FPC_EQUIVALENT= databases/mysql80-server INFO_SUBDIR= . SHEBANG_FILES= scripts/*.pl INSTALL_REQ_TOOLCHAIN= yes PLIST_SUB= MY_DBDIR=/var/db/mysql MY_SECDIR=/var/db/mysql_secure MY_TMPDIR=/var/db/mysql_tmpdir RPCGEN= RC_SUBR= mysql-server:server SUB_FILES= my.cnf.sample messages-server.ucl SUB_LIST= MY_DBDIR=/var/db/mysql MY_SECDIR=/var/db/mysql_secure MY_TMPDIR=/var/db/mysql_tmpdir OPSYS="{{OPSYS}}" CFLAGS= -Wno-deprecated-declarations CXXFLAGS= -DNDEBUG CMAKE_ARGS= -DINSTALL_PKGCONFIGDIR="{{LOCALBASE}}/lib/pkgconfig" -DINSTALL_DOCDIR="share/doc/mysql" -DINSTALL_DOCREADMEDIR="share/doc/mysql" -DINSTALL_INCLUDEDIR="include/mysql" -DINSTALL_INFODIR="share/info" -DINSTALL_LIBDIR="lib/mysql" -DINSTALL_MANDIR="share/man" -DINSTALL_MYSQLDATADIR="/var/db/mysql" -DINSTALL_MYSQLKEYRINGDIR="etc/mysql/keyring" -DINSTALL_MYSQLSHAREDIR="share/mysql" -DINSTALL_MYSQLTESTDIR="share/mysql/tests" -DINSTALL_PLUGINDIR="lib/mysql/plugin" -DINSTALL_SBINDIR="libexec" -DINSTALL_SECURE_FILE_PRIVDIR="/var/db/mysql_secure" -DINSTALL_SHAREDIR="share" -DINSTALL_SUPPORTFILESDIR="share/mysql" -DRPATH_OPTION_PC=" -Wl,-rpath,{{PREFIX}}/lib/mysql" -DMYSQL_KEYRINGDIR="etc/mysql/keyring" -DWITH_BOOST="{{WRKSRC}}/boost" -DWITH_EDITLINE=system -DWITH_LIBEVENT=system -DWITH_PROTOBUF=system -DWITH_LZ4=system -DWITH_ZLIB=bundled -DWITH_ZSTD=system -DWITH_ICU=system -DWITH_SSL={{OPENSSLBASE}} -DINSTALL_MYSQLTESTDIR=0 -DWITH_UNIT_TESTS:BOOL=OFF [PERFSCHEMA].DESCRIPTION= Provide "Performance Schema Storage" engine [PERFSCHEMA].CMAKE_ARGS_OFF= -DWITHOUT_PERFSCHEMA_STORAGE_ENGINE=1 [PERFSCHEMA].CMAKE_ARGS_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 [EXAMPLE].DESCRIPTION= Provide "Example Storage" engine [EXAMPLE].CMAKE_ARGS_OFF= -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 [EXAMPLE].CMAKE_ARGS_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 [BLACKHOLE].DESCRIPTION= Provide "Blackhole Storage" engine [BLACKHOLE].CMAKE_ARGS_OFF= -DWITHOUT_BLACKHOLE_STORAGE_ENGINE=1 [BLACKHOLE].CMAKE_ARGS_ON= -DWITH_BLACKHOLE_STORAGE_ENGINE=1 [PERFORMANCE].DESCRIPTION= Enable "Performance Schema" (High RAM usage) [PERFORMANCE].SUB_LIST_OFF= PERFSCHEMRC="--skip-performance-schema" [PERFORMANCE].SUB_LIST_ON= PERFSCHEMRC="" [ARCHIVE].DESCRIPTION= Provide "Archive Storage" engine [ARCHIVE].CMAKE_ARGS_OFF= -DWITHOUT_ARCHIVE_STORAGE_ENGINE=1 [ARCHIVE].CMAKE_ARGS_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 [FEDERATED].DESCRIPTION= Provide "Federated Storage" engine [FEDERATED].CMAKE_ARGS_OFF= -DWITHOUT_FEDERATED_STORAGE_ENGINE=1 [FEDERATED].CMAKE_ARGS_ON= -DWITH_FEDERATED_STORAGE_ENGINE=1 [FEDERATED].SUB_LIST_OFF= FEDER="" [FEDERATED].SUB_LIST_ON= FEDER="--federated" [INNOBASE].DESCRIPTION= Provide "InnoDB Storage" engine [INNOBASE].CMAKE_ARGS_OFF= -DWITHOUT_INNOBASE_STORAGE_ENGINE=1 [INNOBASE].CMAKE_ARGS_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 post-install: ${MKDIR} ${STAGEDIR}${PREFIX}/etc/mysql/keyring \ ${STAGEDIR}/var/db/mysql_secure \ ${STAGEDIR}/var/db/mysql_tmpdir ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample \ ${STAGEDIR}${ETCDIR}/my.cnf.sample ${MV} ${STAGEDIR}${PREFIX}/share/doc/mysql/sample_mysqlrouter.conf \ ${STAGEDIR}${ETCDIR}/mysqlrouter.conf.sample ${RM} ${STAGEDIR}${MANPREFIX}/man/man1/zlib_decompress.1 \ ${STAGEDIR}${MANPREFIX}/man/man1/lz4_decompress.1 ${RM} ${STAGEDIR}${PREFIX}/*.router ${RMDIR} ${STAGEDIR}${PREFIX}/lib/mysql/plugin/debug ${RMDIR} ${STAGEDIR}${PREFIX}/run ${RM} -r ${STAGEDIR}${PREFIX}/share/doc ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysql/lib*.so ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysql/plugin/*.so ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmysql*.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/mysqld ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysqlrouter/*.so # Linux doesn't like -R flags ${SED} -i'' -e 's| -R| -Wl,-rpath,|g' \ ${STAGEDIR}${PREFIX}/bin/mysql_config list=$$(cd ${STAGEDIR}${PREFIX}/bin && ${LS} * | ${AWK} \ '{ if ($$1 != "mysql_config" && $$1 != "mysqld_mult" && \ $$1 != "mysqld_safe" && $$1 != "mysqldumpslow" && \ $$1 != "mysqld_multi") print}'); \ (cd ${STAGEDIR}${PREFIX}/bin && ${STRIP_CMD} $$list) pre-configure: ${REINPLACE_CMD} -e 's|@LOCALBASE@|${LOCALBASE}|' \ -e 's|@OPENSSLLIB@|${OPENSSLLIB}|g' \ ${WRKSRC}/scripts/CMakeLists.txt ${RM} ${WRKSRC}/cmake/os/FreeBSD.cmake # current_path not supported by DragonFly ${REINPLACE_CMD} -e '/mock_server/d' \ ${WRKSRC}/router/src/CMakeLists.txt post-extract: ${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h ${CP} ${FILESDIR}/ffsll.cc ${WRKSRC}/sql/ [FILE:294:descriptions/desc.server] MySQL is a very fast, multi-threaded, multi-user and robust SQL (Structured Query Language) database server. MySQL, the most popular Open Source SQL database management system, is developed, distributed, and supported by Oracle Corporation. This package contains the MySQL server components. [FILE:150:descriptions/desc.client] MySQL is a very fast, multi-threaded, multi-user and robust SQL (Structured Query Language) database server. This package contains the MySQL client. [FILE:104:distinfo] c2aa67c618edfa1bc379107fe819ca8e94cba5d85f156d1053b8fedc88cc5f8f 492301593 mysql-boost-8.0.42.tar.gz [FILE:6148:manifests/plist.server] @sample etc/mysql/my.cnf.sample @sample etc/mysql/mysqlrouter.conf.sample %%ONLY-LINUX%%lib/mysql/plugin/auth_socket.so %%RPCGEN%%lib/mysql/plugin/group_replication.so bin/ comp_err ibd2sdi innochecksum my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_keyring_encryption_test mysql_migrate_keyring mysql_secure_installation mysql_tzinfo_to_sql mysql_upgrade mysqld_multi mysqld_safe mysqldumpslow mysqlrouter mysqlrouter_keyring mysqlrouter_passwd mysqlrouter_plugin_info mysqltest mysqlxtest perror zlib_decompress etc/logrotate.d/mysqlrouter-log-rotate lib/ libmysqlharness.so.1 libmysqlharness_stdx.so.1 libmysqlharness_tls.so.1 libmysqlrouter.so.1 libmysqlrouter_connection_pool.so.1 libmysqlrouter_destination_status.so.1 libmysqlrouter_http.so.1 libmysqlrouter_http_auth_backend.so.1 libmysqlrouter_http_auth_realm.so.1 libmysqlrouter_io_component.so.1 libmysqlrouter_metadata_cache.so.1 libmysqlrouter_mysqlxmessages.so.1 libmysqlrouter_routing.so.1 lib/mysql/plugin/ adt_null.so auth.so auth_test_plugin.so component_audit_api_message_emit.so component_example_component1.so component_example_component2.so component_example_component3.so component_keyring_file.so component_log_filter_dragnet.so component_log_sink_json.so component_log_sink_syseventlog.so component_log_sink_test.so component_mysqlbackup.so component_mysqlx_global_reset.so component_pfs_example.so component_pfs_example_component_population.so component_query_attributes.so component_reference_cache.so component_test_audit_api_message.so component_test_backup_lock_service.so component_test_component_deinit.so component_test_host_application_signal.so component_test_mysql_command_services.so component_test_mysql_current_thread_reader.so component_test_mysql_runtime_error.so component_test_mysql_system_variable_set.so component_test_mysql_thd_store_service.so component_test_pfs_notification.so component_test_pfs_resource_group.so component_test_sensitive_system_variables.so component_test_server_telemetry_traces.so component_test_status_var_reader.so component_test_status_var_service.so component_test_status_var_service_int.so component_test_status_var_service_reg_only.so component_test_status_var_service_str.so component_test_status_var_service_unreg_only.so component_test_string_service.so component_test_string_service_charset.so component_test_string_service_long.so component_test_sys_var_service.so component_test_sys_var_service_int.so component_test_sys_var_service_same.so component_test_sys_var_service_str.so component_test_system_variable_source.so component_test_table_access.so component_test_udf_registration.so component_test_udf_services.so component_udf_reg_3_func.so component_udf_reg_avg_func.so component_udf_reg_int_func.so component_udf_reg_int_same_func.so component_udf_reg_only_3_func.so component_udf_reg_real_func.so component_udf_unreg_3_func.so component_udf_unreg_int_func.so component_udf_unreg_real_func.so component_validate_password.so conflicting_variables.so connection_control.so daemon_example.ini ddl_rewriter.so ha_mock.so keyring_file.so keyring_udf.so libdaemon_example.so libtest_framework.so libtest_services.so libtest_services_threaded.so libtest_session_attach.so libtest_session_detach.so libtest_session_in_thd.so libtest_session_info.so libtest_sql_2_sessions.so libtest_sql_all_col_types.so libtest_sql_cmds_1.so libtest_sql_commit.so libtest_sql_complex.so libtest_sql_errors.so libtest_sql_lock.so libtest_sql_processlist.so libtest_sql_replication.so libtest_sql_reset_connection.so libtest_sql_shutdown.so libtest_sql_sleep_is_connected.so libtest_sql_sqlmode.so libtest_sql_stmt.so libtest_sql_stored_procedures_functions.so libtest_sql_views_triggers.so libtest_x_sessions_deinit.so libtest_x_sessions_init.so locking_service.so mypluglib.so mysql_clone.so mysql_no_login.so pfs_example_plugin_employee.so qa_auth_client.so qa_auth_interface.so qa_auth_server.so replication_observers_example_plugin.so rewrite_example.so rewriter.so semisync_master.so semisync_replica.so semisync_slave.so semisync_source.so test_security_context.so test_services_command_services.so test_services_host_application_signal.so test_services_plugin_registry.so test_udf_services.so udf_example.so validate_password.so version_token.so lib/mysqlrouter/ connection_pool.so destination_status.so http_auth_backend.so http_auth_realm.so http_server.so io.so keepalive.so metadata_cache.so rest_api.so rest_connection_pool.so rest_metadata_cache.so rest_router.so rest_routing.so router_openssl.so router_protobuf.so routing.so libexec/mysqld share/mysql/ dictionary.txt install_rewriter.sql messages_to_clients.txt messages_to_error_log.txt mysql-log-rotate mysql.server mysqld_multi.server uninstall_rewriter.sql share/mysql/bulgarian/errmsg.sys share/mysql/charsets/ Index.xml README armscii8.xml ascii.xml cp1250.xml cp1251.xml cp1256.xml cp1257.xml cp850.xml cp852.xml cp866.xml dec8.xml geostd8.xml greek.xml hebrew.xml hp8.xml keybcs2.xml koi8r.xml koi8u.xml latin1.xml latin2.xml latin5.xml latin7.xml macce.xml macroman.xml swe7.xml share/mysql/czech/errmsg.sys share/mysql/danish/errmsg.sys share/mysql/dutch/errmsg.sys share/mysql/english/errmsg.sys share/mysql/estonian/errmsg.sys share/mysql/french/errmsg.sys share/mysql/german/errmsg.sys share/mysql/greek/errmsg.sys share/mysql/hungarian/errmsg.sys share/mysql/italian/errmsg.sys share/mysql/japanese/errmsg.sys share/mysql/korean/errmsg.sys share/mysql/norwegian/errmsg.sys share/mysql/norwegian-ny/errmsg.sys share/mysql/polish/errmsg.sys share/mysql/portuguese/errmsg.sys share/mysql/romanian/errmsg.sys share/mysql/russian/errmsg.sys share/mysql/serbian/errmsg.sys share/mysql/slovak/errmsg.sys share/mysql/spanish/errmsg.sys share/mysql/swedish/errmsg.sys share/mysql/ukrainian/errmsg.sys @dir var/lib/mysqlrouter @dir(mysql,mysql,0750) %%MY_SECDIR%% @dir(mysql,mysql,0750) %%MY_TMPDIR%% @dir(mysql,mysql,0750) etc/mysql/keyring [FILE:193:manifests/plist.client] bin/ mysql mysql_config mysql_config_editor mysql_ssl_rsa_setup mysqladmin mysqlbinlog mysqlcheck mysqldump mysqlimport mysqlpump mysqlshow mysqlslap lib/mysql/libmysqlclient.so.21 [FILE:406:manifests/plist.dev] include/mysql/ errmsg.h field_types.h my_command.h my_compress.h my_list.h mysql.h mysql_com.h mysql_time.h mysql_version.h mysqld_error.h mysqlx_ername.h mysqlx_error.h mysqlx_version.h include/mysql/mysql/ client_plugin.h plugin_auth_common.h udf_registration_types.h lib/mysql/ libmysqlclient.a libmysqlclient.so libmysqlservices.a lib/pkgconfig/mysqlclient.pc share/aclocal/mysql.m4 [FILE:557:manifests/plist.man] share/man/man1/ comp_err.1 ibd2sdi.1 innochecksum.1 my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 mysql.1 mysql.server.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 mysqld_multi.1 mysqld_safe.1 mysqldump.1 mysqldumpslow.1 mysqlimport.1 mysqlman.1 mysqlpump.1 mysqlrouter.1 mysqlrouter_passwd.1 mysqlrouter_plugin_info.1 mysqlshow.1 mysqlslap.1 perror.1 share/man/man8/mysqld.8 [FILE:865:patches/patch-CMakeLists.txt] --- CMakeLists.txt.orig 2025-03-31 08:19:27 UTC +++ CMakeLists.txt @@ -2266,7 +2266,6 @@ ADD_SUBDIRECTORY(share) ADD_SUBDIRECTORY(libservices) IF(NOT WITHOUT_SERVER) - ADD_SUBDIRECTORY(testclients) ADD_SUBDIRECTORY(sql) ENDIF() @@ -2337,8 +2336,6 @@ ENDIF() ADD_SUBDIRECTORY(scripts) 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) @@ -2523,6 +2520,7 @@ ENDIF() # # RPM installs documentation directly from the source tree # +IF(FALSE) IF(NOT INSTALL_LAYOUT MATCHES "RPM") INSTALL(FILES README @@ -2549,6 +2547,7 @@ IF(HAVE_ASAN AND WIN32_CLANG) STRING_APPEND(CMAKE_CXX_FLAGS " -fsanitize=address -fsanitize-address-use-after-scope") ENDIF() +ENDIF() IF(UNIX) EXECUTE_PROCESS( [FILE:848:patches/patch-cmake_install__layout.cmake] --- cmake/install_layout.cmake.orig 2025-03-31 08:19:27 UTC +++ cmake/install_layout.cmake @@ -376,19 +376,15 @@ SET(ROUTER_INSTALL_LOGDIR_STANDALONE SET(ROUTER_INSTALL_RUNTIMEDIR_STANDALONE "run") SET(ROUTER_INSTALL_BINDIR_STANDALONE "bin") -IF(LINUX) - SET(ROUTER_INSTALL_LIBDIR_STANDALONE "lib/mysqlrouter/private") -ELSE() SET(ROUTER_INSTALL_LIBDIR_STANDALONE "lib") -ENDIF() IF(WIN32) SET(ROUTER_INSTALL_PLUGINDIR_STANDALONE "lib") ELSE() SET(ROUTER_INSTALL_PLUGINDIR_STANDALONE "lib/mysqlrouter") ENDIF() -SET(ROUTER_INSTALL_LOGROTATEDIR_STANDALONE ".") +SET(ROUTER_INSTALL_LOGROTATEDIR_STANDALONE "etc/logrotate.d") SET(ROUTER_INSTALL_LOGROTATEFILE_STANDALONE "mysqlrouter-log-rotate") -SET(ROUTER_INSTALL_DOCDIR_STANDALONE "docs") +SET(ROUTER_INSTALL_DOCDIR_STANDALONE "share/doc/mysql") # # TARGZ layout [FILE:595:patches/patch-cmake_plugin.cmake] --- cmake/plugin.cmake.orig 2025-03-31 08:19:27 UTC +++ cmake/plugin.cmake @@ -274,15 +274,6 @@ 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() ENDIF() ELSE() IF(WITHOUT_${plugin}) [FILE:464:patches/patch-cmake_ssl.cmake] --- cmake/ssl.cmake.orig 2025-03-31 08:19:27 UTC +++ cmake/ssl.cmake @@ -500,7 +500,7 @@ ENDMACRO(MYSQL_CHECK_SSL) # or INSTALL_LIBDIR (Mac) # or INSTALL_PRIV_LIBDIR (Linux) MACRO(MYSQL_CHECK_SSL_DLLS) - IF (WITH_SSL_PATH AND (APPLE OR WIN32 OR LINUX_STANDALONE OR LINUX_RPM)) + IF (WITH_SSL_PATH AND (APPLE OR WIN32)) MESSAGE(STATUS "WITH_SSL_PATH ${WITH_SSL_PATH}") IF(LINUX) GET_FILENAME_COMPONENT(CRYPTO_EXT "${CRYPTO_LIBRARY}" EXT) [FILE:303:patches/patch-config.h.cmake] --- config.h.cmake.orig 2025-03-31 08:19:27 UTC +++ config.h.cmake @@ -80,6 +80,7 @@ #cmakedefine HAVE_FDATASYNC 1 #cmakedefine HAVE_DECL_FDATASYNC 1 #cmakedefine HAVE_FEDISABLEEXCEPT 1 +#cmakedefine HAVE_FFSLL 1 #cmakedefine HAVE_FSYNC 1 #cmakedefine HAVE_GETHRTIME 1 #cmakedefine HAVE_GETPASS 1 [FILE:2287:patches/patch-configure.cmake] * check for EVFILT_USER, if missing disable kqueue (necessary on NetBSD 9.x) --- configure.cmake.orig 2025-03-31 08:19:27 UTC +++ configure.cmake @@ -183,11 +183,6 @@ ENDIF() # INCLUDE (CheckIncludeFiles) -IF(FREEBSD) - # On FreeBSD some includes, e.g. sasl/sasl.h, is in /usr/local/include - LIST(APPEND CMAKE_REQUIRED_INCLUDES "/usr/local/include") -ENDIF() - CHECK_INCLUDE_FILES (alloca.h HAVE_ALLOCA_H) CHECK_INCLUDE_FILES (arpa/inet.h HAVE_ARPA_INET_H) CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H) @@ -241,6 +236,7 @@ CHECK_FUNCTION_EXISTS (fcntl HAVE_FCNTL) CHECK_FUNCTION_EXISTS (fdatasync HAVE_FDATASYNC) CHECK_SYMBOL_EXISTS(fdatasync "unistd.h" HAVE_DECL_FDATASYNC) CHECK_FUNCTION_EXISTS (fedisableexcept HAVE_FEDISABLEEXCEPT) +CHECK_FUNCTION_EXISTS (ffsll HAVE_FFSLL) CHECK_FUNCTION_EXISTS (fsync HAVE_FSYNC) CHECK_FUNCTION_EXISTS (gethrtime HAVE_GETHRTIME) CHECK_FUNCTION_EXISTS (getpass HAVE_GETPASS) @@ -301,6 +297,7 @@ CHECK_SYMBOL_EXISTS(TIOCGWINSZ "sys/ioct CHECK_SYMBOL_EXISTS(FIONREAD "sys/ioctl.h" FIONREAD_IN_SYS_IOCTL) CHECK_SYMBOL_EXISTS(FIONREAD "sys/filio.h" FIONREAD_IN_SYS_FILIO) CHECK_SYMBOL_EXISTS(MADV_DONTDUMP "sys/mman.h" HAVE_MADV_DONTDUMP) +CHECK_SYMBOL_EXISTS(EVFILT_USER "sys/event.h" HAVE_EVFILT_USER) CHECK_CXX_SOURCE_COMPILES( "#include #include @@ -333,6 +330,14 @@ ELSEIF(HAVE_TIMER_CREATE AND HAVE_TIMER_ SET(HAVE_POSIX_TIMERS 1 CACHE INTERNAL "Have POSIX timer-related functions") ENDIF() +IF (NOT HAVE_EVFILT_USER) + SET(HAVE_KQUEUE 0) + SET(HAVE_KQUEUE_TIMERS 0) + IF(HAVE_TIMER_CREATE AND HAVE_TIMER_SETTIME) + SET(HAVE_POSIX_TIMERS 1 CACHE INTERNAL "Have POSIX timer-related functions") + ENDIF() +ENDIF() + IF(NOT HAVE_POSIX_TIMERS AND NOT HAVE_KQUEUE_TIMERS AND NOT WIN32) MESSAGE(FATAL_ERROR "No mysys timer support detected!") ENDIF() @@ -564,6 +569,7 @@ int main(int ac, char **av) HAVE_SYS_GETTID) # Check for pthread_getthreadid_np() +set(CMAKE_REQUIRED_LIBRARIES pthread) CHECK_C_SOURCE_COMPILES(" #include int main(int ac, char **av) @@ -572,6 +578,7 @@ int main(int ac, char **av) return (tid != 0 ? 0 : 1); }" HAVE_PTHREAD_GETTHREADID_NP) +set(CMAKE_REQUIRED_LIBRARIES "") # Check for pthread_threadid_np() CHECK_C_SOURCE_COMPILES(" [FILE:427:patches/patch-include_my__compare.h] --- include/my_compare.h.orig 2025-03-31 08:19:27 UTC +++ include/my_compare.h @@ -50,7 +50,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) [FILE:1042:patches/patch-include_my__thread__os__id.h] --- include/my_thread_os_id.h.orig 2025-03-31 08:19:27 UTC +++ include/my_thread_os_id.h @@ -37,6 +37,10 @@ #include #endif +#ifdef __NetBSD__ +#include +#endif + #ifdef HAVE_PTHREAD_GETTHREADID_NP #include /* pthread_getthreadid_np() */ #endif /* HAVE_PTHREAD_GETTHREADID_NP */ @@ -84,17 +88,25 @@ static inline my_thread_os_id_t my_threa /* FreeBSD 10.2 */ return pthread_getthreadid_np(); #else +#ifdef __NetBSD__ + return (int)_lwp_self(); +#else #ifdef HAVE_INTEGER_PTHREAD_SELF +# ifdef __DragonFly__ + return syscall(SYS_lwp_gettid); +# else /* Unknown platform, fallback. */ return pthread_self(); +# endif /* __DragonFly__ */ #else /* Feature not available. */ return 0; #endif /* HAVE_INTEGER_PTHREAD_SELF */ +#endif /* __NetBSD__ */ #endif /* HAVE_PTHREAD_GETTHREADID_NP */ #endif /* _WIN32 */ #endif /* HAVE_SYS_GETTID */ -#endif /* HAVE_SYS_THREAD_SELFID */ +#endif /* HAVE_PTHREAD_THREADID_NP */ } #endif /* MY_THREAD_OS_ID_INCLUDED */ [FILE:480:patches/patch-include_myisam.h] --- include/myisam.h.orig 2025-03-31 08:19:27 UTC +++ include/myisam.h @@ -61,7 +61,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) [FILE:353:patches/patch-include_tables__contained__in.h] --- include/tables_contained_in.h.orig 2025-03-31 08:19:27 UTC +++ include/tables_contained_in.h @@ -27,9 +27,14 @@ #include +#include "my_config.h" #include "my_inttypes.h" #include "sql/sql_optimizer.h" +#ifndef HAVE_FFSLL +int ffsll(longlong); +#endif + #ifdef _MSC_VER #include #pragma intrinsic(_BitScanForward64) [FILE:695:patches/patch-include_violite.h] $NetBSD: patch-include_violite.h,v 1.1 2022/11/27 22:12:25 nia Exp $ pthread_t on NetBSD is a pointer to a struct. To account for the C++ type system we need to use an actual NULL pointer rather than an incompatible integer type. --- include/violite.h.orig 2025-03-31 08:19:27 UTC +++ include/violite.h @@ -344,7 +344,11 @@ struct Vio { It is initialized to 0 here, meaning don't attempt to send a signal, to keep non-server code unaffected. */ +#ifdef __NetBSD__ + std::optional thread_id = nullptr; +#else std::optional thread_id = 0; +#endif sigset_t signal_mask; // Signal mask /* Flag to indicate whether we are in poll or shutdown. [FILE:1049:patches/patch-libmysql_CMakeLists.txt] --- libmysql/CMakeLists.txt.orig 2025-03-31 08:19:27 UTC +++ libmysql/CMakeLists.txt @@ -258,7 +258,7 @@ IF(WIN32) SET(HAVE_WIN32_DNS_SRV 1 PARENT_SCOPE) SET(HAVE_DNS_SRV 1) MESSAGE(STATUS "Found Win32 DNS SRV APIs") -ELSEIF(FREEBSD) +ELSEIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|DragonFly|NetBSD|MidnightBSD") SET(HAVE_DNS_SRV 1) SET(HAVE_UNIX_DNS_SRV 1 PARENT_SCOPE) MESSAGE(STATUS "BSD built in DNS SRV APIs") @@ -286,7 +286,6 @@ IF(WIN32) ENDIF() # LDAP authentication SASL client plug-in -ADD_SUBDIRECTORY(authentication_ldap) # FIDO authentication client plugin ADD_SUBDIRECTORY(authentication_fido) @@ -336,10 +335,6 @@ ENDIF() IF(UNIX) SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") - IF(NOT FREEBSD AND NOT APPLE) - STRING_APPEND(OS_SHARED_LIB_VERSION - ".${SHARED_LIB_MINOR_VERSION}.${SHARED_LIB_PATCH_VERSION}") - ENDIF() # Name of shared library is libmysqlclient on Unix SET(UNIX_OUTPUT_NAME OUTPUT_NAME mysqlclient) SET(UNIX_VERSION VERSION "${OS_SHARED_LIB_VERSION}") [FILE:297:patches/patch-libmysql_dns__srv.cc] --- libmysql/dns_srv.cc.orig 2025-03-31 08:19:27 UTC +++ libmysql/dns_srv.cc @@ -32,7 +32,7 @@ #ifdef HAVE_UNIX_DNS_SRV -#ifdef __FreeBSD__ +#if defined __FreeBSD__ || defined __DragonFly__ || defined __NetBSD__ || defined __MidnightBSD__ #include #endif #include [FILE:2034:patches/patch-mysys_kqueue__timers.cc] $NetBSD: patch-mysys_kqueue__timers.cc,v 1.1 2021/05/13 15:25:20 jdolecek Exp $ * support pre NetBSD 10 __intptr_t udata type * Fix for systems whcich do not define EVFILT_USER --- mysys/kqueue_timers.cc.orig 2025-03-31 08:19:27 UTC +++ mysys/kqueue_timers.cc @@ -41,6 +41,18 @@ #include "mysys_err.h" #include "mysys_priv.h" /* key_thread_timer_notifier */ +#ifdef __NetBSD__ +#include +#if __NetBSD_Version__ < 999001400 +#define KEVENT_UDATA_TYPE_CAST (__intptr_t) +#else +#define KEVENT_UDATA_TYPE_CAST +#endif +#else +#define KEVENT_UDATA_TYPE_CAST +#endif + + /* Kernel event queue file descriptor. */ static int kq_fd = -1; @@ -70,10 +82,12 @@ static void *timer_notify_thread_func(vo } if (kev.filter == EVFILT_TIMER) { - timer = static_cast(kev.udata); + timer = static_cast((void *)kev.udata); assert(timer->id == kev.ident); timer->notify_function(timer); +#ifdef EVFILT_USER } else if (kev.filter == EVFILT_USER) +#endif break; } @@ -92,7 +106,9 @@ static void *timer_notify_thread_func(vo static int start_helper_thread(void) { struct kevent kev; +#ifdef EVFILT_USER EV_SET(&kev, 0, EVFILT_USER, EV_ADD, 0, 0, 0); +#endif if (kevent(kq_fd, &kev, 1, NULL, 0, NULL) < 0) { my_message_local(ERROR_LEVEL, EE_FAILED_TO_CREATE_TIMER, errno); @@ -135,7 +151,9 @@ int my_timer_initialize(void) { void my_timer_deinitialize(void) { struct kevent kev; +#ifdef EVFILT_USER EV_SET(&kev, 0, EVFILT_USER, 0, NOTE_TRIGGER, 0, 0); +#endif if (kevent(kq_fd, &kev, 1, NULL, 0, NULL) < 0) my_message_local(ERROR_LEVEL, @@ -166,7 +184,7 @@ int my_timer_create(my_timer_t *timer) { int my_timer_set(my_timer_t *timer, unsigned long time) { struct kevent kev; - EV_SET(&kev, timer->id, EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, time, timer); + EV_SET(&kev, timer->id, EVFILT_TIMER, EV_ADD | EV_ONESHOT, 0, time,KEVENT_UDATA_TYPE_CAST timer); return kevent(kq_fd, &kev, 1, NULL, 0, NULL); } [FILE:1962:patches/patch-mysys_my__default.cc] --- mysys/my_default.cc.orig 2025-03-31 08:19:27 UTC +++ mysys/my_default.cc @@ -205,7 +205,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; @@ -923,6 +923,14 @@ static int search_default_file_with_ext( 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(); @@ -1312,7 +1320,8 @@ void my_print_default_files(const char * end[(strlen(end) - 1)] = ' '; else strxmov(end, conf_file, *ext, " ", NullS); - fputs(name, stdout); + if (strstr(name, "/etc") != name) + fputs(name, stdout); } } } @@ -1652,13 +1661,8 @@ static const char **init_default_directo #else - errors += add_directory(alloc, "/etc/", dirs); - errors += add_directory(alloc, "/etc/mysql/", dirs); - -#if defined(DEFAULT_SYSCONFDIR) - if (DEFAULT_SYSCONFDIR[0]) - errors += add_directory(alloc, DEFAULT_SYSCONFDIR, dirs); -#endif /* DEFAULT_SYSCONFDIR */ + errors += add_directory(alloc, "/usr/local/etc/", dirs); + errors += add_directory(alloc, "/usr/local/etc/mysql/", dirs); #endif @@ -1724,7 +1728,7 @@ int check_file_permissions(const char *f #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. [FILE:445:patches/patch-plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_xcom__vp__platform.h] --- plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_vp_platform.h.orig 2025-03-31 08:19:27 UTC +++ plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/xcom_vp_platform.h @@ -37,13 +37,11 @@ #endif #endif -#ifdef __APPLE__ -#if __APPLE__ +#ifdef __NetBSD__ /* xdr_uint64_t and xdr_uint32_t are not defined on OSX */ #define xdr_uint64_t xdr_u_int64_t #define xdr_uint32_t xdr_u_int32_t #endif -#endif #endif [FILE:435:patches/patch-plugin_password__validation_validate__password.cc] --- plugin/password_validation/validate_password.cc.orig 2025-03-31 08:19:27 UTC +++ plugin/password_validation/validate_password.cc @@ -26,6 +26,8 @@ #include #include #include +/* solve clash between libc++ bitset::test() and test macro from my_global.h */ +#undef test #include #include #include [FILE:317:patches/patch-plugin_x_src_interface_ssl__session__options.h] --- plugin/x/src/interface/ssl_session_options.h.orig 2025-03-31 08:19:27 UTC +++ plugin/x/src/interface/ssl_session_options.h @@ -26,6 +26,7 @@ #ifndef PLUGIN_X_SRC_INTERFACE_SSL_SESSION_OPTIONS_H_ #define PLUGIN_X_SRC_INTERFACE_SSL_SESSION_OPTIONS_H_ +#include #include #include [FILE:381:patches/patch-router_cmake_set__rpath.cmake] --- router/cmake/set_rpath.cmake.orig 2025-03-31 08:19:27 UTC +++ router/cmake/set_rpath.cmake @@ -28,8 +28,7 @@ ELSE() ENDIF() SET(CMAKE_INSTALL_RPATH) -IF(INSTALL_LAYOUT STREQUAL "STANDALONE" - OR INSTALL_LAYOUT STREQUAL "SVR4") +IF(FALSE) # rpath for lib/mysqlrouter/ plugins that want to find lib/ IF(LINUX) SET(RPATH_PLUGIN_TO_LIB "${RPATH_ORIGIN}/private") [FILE:395:patches/patch-router_src_harness_include_mysql_harness_net__ts_impl_netif.h] --- router/src/harness/include/mysql/harness/net_ts/impl/netif.h.orig 2025-03-31 08:19:27 UTC +++ router/src/harness/include/mysql/harness/net_ts/impl/netif.h @@ -33,6 +33,8 @@ #include #if defined(__linux__) || defined(__FreeBSD__) || defined(__APPLE__) || \ + defined(__DragonFly__) || \ + defined(__NetBSD__) || \ defined(__sun__) #define HAVE_IFADDRS_H #endif [FILE:890:patches/patch-router_src_harness_include_mysql_harness_net__ts_internet.h] --- router/src/harness/include/mysql/harness/net_ts/internet.h.orig 2025-03-31 08:19:27 UTC +++ router/src/harness/include/mysql/harness/net_ts/internet.h @@ -44,6 +44,7 @@ #include // inet_ntop #include // getaddrinfo #include // in_addr_t +#include // u_int32_t #include // in6_addr_t #include // TCP_NODELAY #include // ioctl @@ -599,8 +600,12 @@ class resolver_base { static constexpr flags canonical_name = AI_CANONNAME; static constexpr flags numeric_host = AI_NUMERICHOST; static constexpr flags numeric_service = AI_NUMERICSERV; +#ifdef AI_V4MAPPED static constexpr flags v4_mapped = AI_V4MAPPED; +#endif +#ifdef AI_ALL static constexpr flags all_matching = AI_ALL; +#endif static constexpr flags address_configured = AI_ADDRCONFIG; }; [FILE:773:patches/patch-router_src_harness_include_mysql_harness_net_ts_local.h] $NetBSD: patch-router_src_harness_include_mysql_harness_net_ts_local.h,v 1.1 2021/05/13 15:25:20 jdolecek Exp $ NetBSD has uucred, not sockpeercred. --- router/src/harness/include/mysql/harness/net_ts/local.h.orig 2025-03-31 08:19:27 UTC +++ router/src/harness/include/mysql/harness/net_ts/local.h @@ -45,7 +45,7 @@ #ifdef NET_TS_HAS_UNIX_SOCKET -#if defined(__FreeBSD__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__NetBSD__) #include #endif @@ -229,7 +229,7 @@ class cred { #elif defined(__FreeBSD__) || defined(__APPLE__) using value_type = struct xucred; #elif defined(__NetBSD__) - using value_type = struct sockpeercred; + using value_type = struct uucred; #else #error "unsupported OS" #endif [FILE:287:patches/patch-router_src_harness_include_mysql_harness_tty.h] --- router/src/harness/include/mysql/harness/tty.h.orig 2025-03-31 08:19:27 UTC +++ router/src/harness/include/mysql/harness/tty.h @@ -39,6 +39,10 @@ #include #endif +#ifndef TABDLY +#define TABDLY 0 +#endif + class HARNESS_EXPORT Tty { public: using fd_type = int; [FILE:356:patches/patch-router_src_harness_src_stdx_io_file__handle.cc] --- router/src/harness/src/stdx/io/file_handle.cc.orig 2025-03-31 08:19:27 UTC +++ router/src/harness/src/stdx/io/file_handle.cc @@ -286,7 +286,10 @@ file_handle::current_path() const noexce return {path_name}; #else -#error unsupported OS + // don't use this + std::string path_name; + path_name.resize(1025); + return {path_name}; #endif } [FILE:279:patches/patch-router_src_router_include_mysqlrouter_utils.h] --- router/src/router/include/mysqlrouter/utils.h.orig 2025-03-31 08:19:27 UTC +++ router/src/router/include/mysqlrouter/utils.h @@ -35,6 +35,7 @@ #include #include #include +#include #include "my_compiler.h" // MY_ATTRIBUTE [FILE:2924:patches/patch-scripts_CMakeLists.txt] --- scripts/CMakeLists.txt.orig 2025-03-31 08:19:27 UTC +++ scripts/CMakeLists.txt @@ -215,11 +215,7 @@ IF(MY_COMPILER_IS_GNU_OR_CLANG) STRING(REGEX REPLACE "-std=c..[0-9]+" "" CXXFLAGS "${CXXFLAGS}") ENDIF() -IF(FREEBSD) - SET (PERL_PATH "/usr/local/bin/perl") -ELSE() - SET (PERL_PATH "/usr/bin/perl") -ENDIF() + SET (PERL_PATH "@LOCALBASE@/bin/perl") IF(UNIX) # SHELL_PATH, FIND_PROC, CHECK_PID are used by mysqld_safe @@ -238,14 +234,9 @@ IF(UNIX) "ps -p $PID | grep -v mysqld_safe | grep -- $MYSQLD > /dev/null") ENDIF() - IF(NOT FIND_PROC) - # BSD style - EXECUTE_PROCESS(COMMAND ps -uaxww - OUTPUT_QUIET ERROR_QUIET RESULT_VARIABLE result) - IF(result MATCHES 0) +IF(NOT FIND_PROC AND CMAKE_SYSTEM_NAME MATCHES "DragonFly|FreeBSD|MidnightBSD") SET( FIND_PROC "ps -uaxww | grep -v mysqld_safe | grep -- $MYSQLD | grep $PID > /dev/null") - ENDIF() ENDIF() IF(NOT FIND_PROC) @@ -281,7 +272,7 @@ SET(pkglibdir ${prefix}/${INSTALL_LIBDIR SET(pkgplugindir ${prefix}/${INSTALL_PLUGINDIR}) SET(localstatedir ${MYSQL_DATADIR}) -IF(SOLARIS) +IF(TRUE) SET(RPATH_OPTION " -R$pkglibdir") ENDIF() @@ -347,6 +338,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() @@ -369,21 +362,10 @@ ELSE() GET_TARGET_PROPERTY(LIBMYSQL_OS_OUTPUT_NAME libmysql OUTPUT_NAME) ENDIF() +STRING(REPLACE "-lssl" "-L@OPENSSLLIB@ -Wl,-rpath,@OPENSSLLIB@ -lssl" CLIENT_LIBS "${CLIENT_LIBS}") SET(CONFIG_CLIENT_LIBS "${CLIENT_LIBS}") SET(CONFIG_LIBS_PRIVATE "${CLIENT_LIBS}") SET(CONFIG_REQUIRES_PRIVATE "") -# ssl.cmake should have used pkg-config rather than cmake to locate ssl -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 - "${CONFIG_LIBS_PRIVATE}") - ENDIF() -ENDIF() MESSAGE(STATUS "CONFIG_CLIENT_LIBS ${CONFIG_CLIENT_LIBS}") MESSAGE(STATUS "CONFIG_LIBS_PRIVATE ${CONFIG_LIBS_PRIVATE}") @@ -449,7 +431,7 @@ ELSE() 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 [FILE:828:patches/patch-sql_CMakeLists.txt] --- sql/CMakeLists.txt.orig 2025-03-31 08:19:27 UTC +++ sql/CMakeLists.txt @@ -647,6 +647,10 @@ IF(BUILD_IS_SINGLE_CONFIG) ENDIF() ENDIF() +IF(NOT HAVE_FFSLL) +LIST(APPEND SQL_SHARED_SOURCES ffsll.cc) +ENDIF() + # BISON_TARGET( # [COMPILE_FLAGS ] # [DEFINES_FILE ] @@ -741,10 +745,10 @@ ENDIF() IF(LINUX) LIST(APPEND SQL_SHARED_SOURCES resourcegroups/platform/thread_attrs_api_linux.cc) -ELSEIF(APPLE) +ELSEIF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "(DragonFly|NetBSD)") LIST(APPEND SQL_SHARED_SOURCES resourcegroups/platform/thread_attrs_api_apple.cc) -ELSEIF(FREEBSD) +ELSEIF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|MidnightBSD") LIST(APPEND SQL_SHARED_SOURCES resourcegroups/platform/thread_attrs_api_freebsd.cc) ELSEIF(SOLARIS) [FILE:450:patches/patch-sql_resourcegroups_platform_thread__attrs__api__apple.cc] --- sql/resourcegroups/platform/thread_attrs_api_apple.cc.orig 2025-03-31 08:19:27 UTC +++ sql/resourcegroups/platform/thread_attrs_api_apple.cc @@ -86,7 +86,11 @@ bool set_thread_priority(int, my_thread_ uint32_t num_vcpus_using_affinity() { return 0; } uint32_t num_vcpus_using_config() { +#ifdef __APPLE__ int name[2] = {CTL_HW, HW_AVAILCPU}; +#else + int name[2] = {CTL_HW, HW_NCPU}; +#endif int ncpu; size_t size = sizeof(ncpu); [FILE:1992:patches/patch-sql_sys__vars.cc] --- sql/sys_vars.cc.orig 2025-03-31 08:19:27 UTC +++ sql/sys_vars.cc @@ -2332,7 +2332,7 @@ static Sys_var_ulong Sys_interactive_tim "The number of seconds the server waits for activity on an interactive " "connection before closing it", SESSION_VAR(net_interactive_timeout), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(1, LONG_TIMEOUT), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); + VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); static Sys_var_ulong Sys_join_buffer_size( "join_buffer_size", "The size of the buffer that is used for full joins", @@ -3214,7 +3214,7 @@ static Sys_var_ulong Sys_net_read_timeou "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)); @@ -3235,7 +3235,7 @@ static Sys_var_ulong Sys_net_write_timeo "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)); @@ -5327,7 +5327,7 @@ static Sys_var_ulong Sys_net_wait_timeou "The number of seconds the server waits for activity on a " "connection before closing it", SESSION_VAR(net_wait_timeout), CMD_LINE(REQUIRED_ARG), - VALID_RANGE(1, IF_WIN(INT_MAX32 / 1000, LONG_TIMEOUT)), + VALID_RANGE(1, INT_MAX32 / 1000), DEFAULT(NET_WAIT_TIMEOUT), BLOCK_SIZE(1)); static Sys_var_plugin Sys_default_storage_engine( [FILE:448:patches/patch-storage_innobase_include_detail_ut_large__page__alloc-linux.h] --- storage/innobase/include/detail/ut/large_page_alloc-linux.h.orig 2025-03-31 08:19:27 UTC +++ storage/innobase/include/detail/ut/large_page_alloc-linux.h @@ -35,6 +35,10 @@ this program; if not, write to the Free #include #include +#ifndef MAP_HUGETLB +#define MAP_HUGETLB 0 +#endif + #include "mysqld_error.h" #include "storage/innobase/include/detail/ut/helper.h" #include "storage/innobase/include/ut0log.h" [FILE:467:patches/patch-storage_innobase_include_srv0mon.h] --- storage/innobase/include/srv0mon.h.orig 2025-03-31 08:19:27 UTC +++ storage/innobase/include/srv0mon.h @@ -41,6 +41,10 @@ Foundation, Inc., 51 Franklin St, Fifth /* 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 #include [FILE:482:patches/patch-storage_myisam_mi__dynrec.cc] --- storage/myisam/mi_dynrec.cc.orig 2025-03-31 08:19:27 UTC +++ storage/myisam/mi_dynrec.cc @@ -93,6 +93,9 @@ bool mi_dynmap_file(MI_INFO *info, my_of mapping. When swap space is not reserved one might get SIGSEGV upon a write if no physical memory is available. */ +#ifndef MAP_NORESERVE +#define MAP_NORESERVE 0 +#endif info->s->file_map = (uchar *)my_mmap( nullptr, (size_t)size, info->s->mode == O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE, [FILE:411:patches/patch-vio_viosocket.cc] * define ppoll on older NetBSD that only has pollts --- vio/viosocket.cc.orig 2025-03-31 08:19:27 UTC +++ vio/viosocket.cc @@ -71,6 +71,13 @@ #include "mysql/psi/mysql_socket.h" +#ifdef __NetBSD__ +#include +#if !__NetBSD_Prereq__(9,99,71) +#define ppoll pollts +#endif +#endif + int vio_errno(Vio *vio [[maybe_unused]]) { /* These transport types are not Winsock based. */ #ifdef _WIN32 [FILE:364:files/ffsll.cc] /* * Public domain version of ffsll by Niclas Rosenvik * used here for platforms that miss a system ffsll. */ #include int ffsll(long long int v) { size_t llbits = sizeof(long long int) * 8; long long unsigned int comp_mask = 1; for (size_t i=0; i < llbits; ++i) { if (v & comp_mask) { return (i+1); } comp_mask <<= 1; } return 0; } [FILE:470:files/messages-server.ucl.in] primary: { type: "install" message: </dev/null 2>/dev/null } mysql_prestart() { if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi if [ "%%OPSYS%%" = "FreeBSD" ]; then return 0 else if checkyesno mysql_limits; then eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null else return 0 fi fi } 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" [FILE:28:files/special.mk] ETCDIR= ${PREFIX}/etc/mysql