# Buildsheet autogenerated by ravenadm tool -- Do not edit. NAMEBASE= mysql57 VERSION= 5.7.44 KEYWORDS= databases VARIANTS= standard SDESC[standard]= Multithreaded SQL database (server) HOMEPAGE= https://www.mysql.com/ CONTACT= nobody DOWNLOAD_GROUPS= main SITES[main]= MYSQL/MySQL-5.7 DISTFILE[1]= mysql-boost-5.7.44.tar.gz:main DF_INDEX= 1 SPKGS[standard]= complete server client dev man OPTIONS_AVAILABLE= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA PERFORMANCE ALTSSL OPTIONS_STANDARD= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA PERFORMANCE ALTSSL OPTGROUP_UNLIMITED= STORAGE OPTDESCR[STORAGE]= Storage engines statically compiled into server OPTGROUP[STORAGE]= ARCHIVE BLACKHOLE EXAMPLE FEDERATED INNOBASE PARTITION PERFSCHEMA OPT_ON[all]= PERFORMANCE ALTSSL BUILD_DEPENDS= libedit:single:standard libevent:dev:standard BUILDRUN_DEPENDS= libevent:primary:standard EXRUN[client]= libedit:single:standard zlib:primary:standard USERS= mysql GROUPS= mysql USERGROUP_SPKG= server USES= bison cmake perl:run shebangfix execinfo pkgconfig c++:server,client cclibs:server,client zlib lz4 cpe DISTNAME= mysql-5.7.44 LICENSE= GPLv2:server LICENSE_TERMS= server:{{WRKDIR}}/TERMS LICENSE_FILE= GPLv2:{{WRKSRC}}/README LICENSE_AWK= TERMS:"^\/\*$$" LICENSE_SOURCE= TERMS:{{WRKSRC}}/include/mysql.h LICENSE_SCHEME= solo INFO= client:mysql CMAKE_BUILD_TYPE= Release CPE_PRODUCT= mysql CPE_VENDOR= oracle FPC_EQUIVALENT= databases/mysql57-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 RC_SUBR= mysql-server:server SUB_FILES= my.cnf.sample SUB_LIST= MY_DBDIR=/var/db/mysql MY_SECDIR=/var/db/mysql_secure MY_TMPDIR=/var/db/mysql_tmpdir 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_SCRIPTDIR="bin" -DINSTALL_SECURE_FILE_PRIVDIR="/var/db/mysql_secure" -DINSTALL_SHAREDIR="share" -DINSTALL_SUPPORTFILESDIR="share/mysql" -DMYSQL_KEYRINGDIR="etc/mysql/keyring" -DWITH_BOOST="{{WRKSRC}}/boost" -DWITH_EDITLINE=system -DWITH_LIBEVENT=system -DWITH_LZ4=system -DWITH_ZLIB=system -DWITH_SSL={{OPENSSLBASE}} -DWITH_EMBEDDED_SERVER="ON" -DINSTALL_MYSQLTESTDIR=0 -DWITH_UNIT_TESTS:BOOL=OFF [PERFSCHEMA].DESCRIPTION= Provide "Performance Schema Storage" engine [PERFSCHEMA].CMAKE_ARGS_ON= -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 [EXAMPLE].DESCRIPTION= Provide "Example Storage" engine [EXAMPLE].CMAKE_ARGS_ON= -DWITH_EXAMPLE_STORAGE_ENGINE=1 [PARTITION].DESCRIPTION= Provide "Partitioning support Storage" engine [PARTITION].CMAKE_ARGS_ON= -DWITH_PARTITION_STORAGE_ENGINE=1 [ALTSSL].DESCRIPTION= Use OpenSSL 1.1 instead of default SSL variant [ALTSSL].USES_OFF= ssl:build [ALTSSL].USES_ON= ssl:openssl11,build [BLACKHOLE].DESCRIPTION= Provide "Blackhole Storage" engine [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_ON= -DWITH_ARCHIVE_STORAGE_ENGINE=1 [FEDERATED].DESCRIPTION= Provide "Federated Storage" engine [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_ON= -DWITH_INNOBASE_STORAGE_ENGINE=1 post-patch: ${REINPLACE_CMD} -e 's|/usr/bin/perl|${PREFIX}/bin/perl|' \ -e 's|/usr/local/bin/perl|${PREFIX}/bin/perl|' \ ${WRKSRC}/scripts/CMakeLists.txt # don't build authentication ldap on any platform (yet) ${REINPLACE_CMD} -e '/authentication_ldap/d' \ ${WRKSRC}/libmysql/CMakeLists.txt 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 ${RM} ${STAGEDIR}${MANPREFIX}/man/man1/zlib_decompress.1 \ ${STAGEDIR}${MANPREFIX}/man/man1/lz4_decompress.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysql/lib*.so ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/mysql/plugin/*.so ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/mysqld # 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) post-extract: ${RM} -rv ${WRKSRC}/sql/sql_hints.yy.cc ${WRKSRC}/sql/sql_hints.yy.h post-patch-freebsd: ${RM} ${WRKSRC}/cmake/os/FreeBSD.cmake [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] b8fe262c4679cb7bbc379a3f1addc723844db168628ce2acf78d33906849e491 53298645 mysql-boost-5.7.44.tar.gz [FILE:3061:manifests/plist.server] %%ONLY-LINUX%%lib/mysql/plugin/auth_socket.so bin/ innochecksum lz4_decompress my_print_defaults myisam_ftdump myisamchk myisamlog myisampack mysql_install_db mysql_plugin mysql_secure_installation mysql_tzinfo_to_sql mysql_upgrade mysqld_multi mysqld_safe mysqldumpslow mysqltest mysqlxtest perror replace resolve_stack_dump resolveip zlib_decompress lib/mysql/plugin/ adt_null.so auth.so auth_test_plugin.so connection_control.so daemon_example.ini group_replication.so ha_example.so keyring_file.so keyring_udf.so libdaemon_example.so libtest_framework.so libtest_services.so libtest_services_threaded.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_shutdown.so libtest_sql_sqlmode.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_no_login.so mysqlx.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_slave.so test_security_context.so test_udf_services.so udf_example.so validate_password.so version_token.so libexec/mysqld share/mysql/ dictionary.txt errmsg-utf8.txt fill_help_tables.sql innodb_memcached_config.sql install_rewriter.sql magic mysql-log-rotate mysql.server mysql_security_commands.sql mysql_sys_schema.sql mysql_system_tables.sql mysql_system_tables_data.sql mysql_test_data_timezone.sql 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(mysql,mysql,0750) %%MY_SECDIR%% @dir(mysql,mysql,0750) %%MY_TMPDIR%% @dir(mysql,mysql,0750) etc/mysql/keyring @sample(root,wheel,0644) etc/mysql/my.cnf.sample [FILE:212:manifests/plist.client] bin/ mysql mysql_client_test mysql_config mysql_config_editor mysql_ssl_rsa_setup mysqladmin mysqlbinlog mysqlcheck mysqldump mysqlimport mysqlpump mysqlshow mysqlslap lib/mysql/libmysqlclient.so.20 [FILE:2054:manifests/plist.dev] include/mysql/ big_endian.h binary_log_types.h byte_order_generic.h byte_order_generic_x86.h decimal.h errmsg.h keycache.h little_endian.h m_ctype.h m_string.h my_alloc.h my_byteorder.h my_command.h my_compiler.h my_config.h my_dbug.h my_dir.h my_getopt.h my_global.h my_list.h my_sys.h my_thread.h my_thread_local.h my_xml.h mysql.h mysql_com.h mysql_com_server.h mysql_embed.h mysql_time.h mysql_version.h mysqld_ername.h mysqld_error.h plugin.h plugin_audit.h plugin_ftparser.h plugin_group_replication.h plugin_keyring.h plugin_validate_password.h sql_common.h sql_state.h sslopt-case.h sslopt-longopts.h sslopt-vars.h thr_cond.h thr_mutex.h thr_rwlock.h typelib.h include/mysql/mysql/ client_authentication.h client_plugin.h client_plugin.h.pp com_data.h get_password.h group_replication_priv.h innodb_priv.h mysql_lex_string.h plugin.h plugin_audit.h plugin_audit.h.pp plugin_auth.h plugin_auth.h.pp plugin_auth_common.h plugin_ftparser.h plugin_ftparser.h.pp plugin_group_replication.h plugin_keyring.h plugin_keyring.h.pp plugin_trace.h plugin_validate_password.h service_command.h service_locking.h service_my_plugin_log.h service_my_snprintf.h service_mysql_alloc.h service_mysql_keyring.h service_mysql_password_policy.h service_mysql_string.h service_parser.h service_rpl_transaction_ctx.h service_rpl_transaction_write_set.h service_rules_table.h service_security_context.h service_srv_session.h service_srv_session_info.h service_ssl_wrapper.h service_thd_alloc.h service_thd_engine_lock.h service_thd_wait.h service_thread_scheduler.h services.h services.h.pp thread_pool_priv.h thread_type.h include/mysql/mysql/psi/ mysql_file.h mysql_idle.h mysql_mdl.h mysql_memory.h mysql_ps.h mysql_socket.h mysql_sp.h mysql_stage.h mysql_statement.h mysql_table.h mysql_thread.h mysql_transaction.h psi.h psi_base.h psi_memory.h lib/mysql/ libmysqlclient.a libmysqlclient.so libmysqld.a lib/pkgconfig/mysqlclient.pc share/aclocal/mysql.m4 [FILE:666:manifests/plist.man] share/man/man1/ comp_err.1.gz innochecksum.1.gz my_print_defaults.1.gz myisam_ftdump.1.gz myisamchk.1.gz myisamlog.1.gz myisampack.1.gz mysql.1.gz mysql.server.1.gz mysql_config.1.gz mysql_config_editor.1.gz mysql_install_db.1.gz mysql_plugin.1.gz mysql_secure_installation.1.gz mysql_ssl_rsa_setup.1.gz mysql_tzinfo_to_sql.1.gz mysql_upgrade.1.gz mysqladmin.1.gz mysqlbinlog.1.gz mysqlcheck.1.gz mysqld_multi.1.gz mysqld_safe.1.gz mysqldump.1.gz mysqldumpslow.1.gz mysqlimport.1.gz mysqlman.1.gz mysqlpump.1.gz mysqlshow.1.gz mysqlslap.1.gz perror.1.gz replace.1.gz resolve_stack_dump.1.gz resolveip.1.gz share/man/man8/mysqld.8.gz [FILE:1333:patches/patch-CMakeLists.txt] --- CMakeLists.txt.orig 2023-10-11 11:42:50 UTC +++ CMakeLists.txt @@ -656,6 +656,7 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Linux") ENDIF() # Check for pthread_getthreadid_np() +set(CMAKE_REQUIRED_LIBRARIES pthread) CHECK_C_SOURCE_COMPILES(" #include int main(int ac, char **av) @@ -664,6 +665,7 @@ int main(int ac, char **av) return (tid != 0 ? 0 : 1); }" HAVE_PTHREAD_GETTHREADID_NP) +set(CMAKE_REQUIRED_LIBRARIES "") # Check for pthread_self() returning an integer type CHECK_C_SOURCE_COMPILES(" @@ -755,7 +757,6 @@ IF(NOT WITHOUT_SERVER) OPTION (WITH_EMBEDDED_SERVER "Compile MySQL with embedded server" OFF) IF(WITH_EMBEDDED_SERVER) ADD_SUBDIRECTORY(libmysqld) - ADD_SUBDIRECTORY(libmysqld/examples) ENDIF(WITH_EMBEDDED_SERVER) ENDIF() @@ -816,7 +817,6 @@ ELSE() SET(CPACK_GENERATOR "TGZ") ENDIF() ADD_SUBDIRECTORY(packaging/WiX) -ADD_SUBDIRECTORY(packaging/solaris) IF(UNIX) INSTALL(FILES Docs/mysql.info DESTINATION ${INSTALL_INFODIR} OPTIONAL COMPONENT Info) @@ -824,6 +824,7 @@ ENDIF() # # RPM installs documentation directly from the source tree # +IF(FALSE) IF(NOT INSTALL_LAYOUT MATCHES "RPM") INSTALL(FILES README @@ -847,6 +848,7 @@ IF(NOT INSTALL_LAYOUT MATCHES "RPM") PATTERN "sp-imp-spec.txt" EXCLUDE ) ENDIF() +ENDIF() INCLUDE(CPack) [FILE:1177:patches/patch-cmake_os_SunOS.cmake] $NetBSD: patch-cmake_os_SunOS.cmake,v 1.3 2019/10/31 12:04:22 jperkin Exp $ Do not attempt to detect ISA, it conflicts with wrappers. Disable HAVE_SOLARIS_LARGE_PAGES, only supported on Oracle Solaris. --- cmake/os/SunOS.cmake.orig 2023-10-11 11:42:50 UTC +++ cmake/os/SunOS.cmake @@ -87,6 +87,7 @@ ADD_DEFINITIONS(-D__EXTENSIONS__) # http://docs.oracle.com/cd/E19455-01/806-5257/6je9h033k/index.html ADD_DEFINITIONS(-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT -D_PTHREADS) +IF (0) IF (NOT "${CMAKE_C_FLAGS}${CMAKE_CXX_FLAGS}" MATCHES "-m32|-m64") EXECUTE_PROCESS(COMMAND isainfo -b OUTPUT_VARIABLE ISAINFO_B @@ -111,6 +112,7 @@ ELSE() SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -m64") ENDIF() ENDIF() +ENDIF() # On Solaris, use of intrinsics will screw the lib search logic # Force using -lm, so rint etc are found. @@ -121,7 +123,7 @@ SET(LIBM m) SET(CMAKE_THREAD_LIBS_INIT -lpthread CACHE INTERNAL "" FORCE) # Solaris specific large page support -CHECK_SYMBOL_EXISTS(MHA_MAPSIZE_VA sys/mman.h HAVE_SOLARIS_LARGE_PAGES) +#CHECK_SYMBOL_EXISTS(MHA_MAPSIZE_VA sys/mman.h HAVE_SOLARIS_LARGE_PAGES) # Solaris atomics CHECK_C_SOURCE_RUNS( [FILE:584:patches/patch-cmake_plugin.cmake] --- cmake/plugin.cmake.orig 2023-10-11 11:42:50 UTC +++ cmake/plugin.cmake @@ -278,9 +278,6 @@ MACRO(MYSQL_ADD_PLUGIN) MYSQL_INSTALL_TARGETS(${target} DESTINATION ${INSTALL_PLUGINDIR} COMPONENT ${INSTALL_COMPONENT}) - INSTALL_DEBUG_TARGET(${target} - DESTINATION ${INSTALL_PLUGINDIR}/debug - COMPONENT ${INSTALL_COMPONENT}) # Add installed files to list for RPMs FILE(APPEND ${CMAKE_BINARY_DIR}/support-files/plugins.files "%attr(755, root, root) %{_prefix}/${INSTALL_PLUGINDIR}/${ARG_MODULE_OUTPUT_NAME}.so\n" [FILE:491:patches/patch-include_my__compare.h] --- include/my_compare.h.orig 2023-10-11 11:42:50 UTC +++ include/my_compare.h @@ -47,7 +47,7 @@ extern "C" { 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:932:patches/patch-include_my__thread__os__id.h] --- include/my_thread_os_id.h.orig 2023-10-11 11:42:50 UTC +++ include/my_thread_os_id.h @@ -37,6 +37,10 @@ #include /* pthread_self */ #endif +#ifdef __NetBSD__ +#include +#endif + #ifdef HAVE_PTHREAD_GETTHREADID_NP #include /* pthread_getthreadid_np() */ #endif /* HAVE_PTHREAD_GETTHREADID_NP */ @@ -87,13 +91,21 @@ 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 #else /* Feature not available. */ return 0; #endif /* HAVE_INTEGER_PTHREAD_SELF */ +#endif /* __NetBSD__ */ #endif /* HAVE_PTHREAD_GETTHREADID_NP */ #endif /* _WIN32 */ #endif /* HAVE_SYS_GETTID */ [FILE:549:patches/patch-include_myisam.h] --- include/myisam.h.orig 2023-10-11 11:42:50 UTC +++ include/myisam.h @@ -52,7 +52,7 @@ extern "C" { 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:478:patches/patch-libmysql_CMakeLists.txt] --- libmysql/CMakeLists.txt.orig 2023-10-11 11:42:50 UTC +++ libmysql/CMakeLists.txt @@ -319,7 +319,7 @@ IF(NOT DISABLE_SHARED) TARGET_LINK_LIBRARIES(libmysql ${LIBS_TO_LINK}) IF(UNIX) # libtool compatability - IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE) + IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD|NetBSD|DragonFly|Linux|SunOS|MidnightBSD" OR APPLE) SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}") ELSE() SET(OS_SHARED_LIB_VERSION [FILE:334:patches/patch-libservices_CMakeLists.txt] --- libservices/CMakeLists.txt.orig 2023-10-11 11:42:50 UTC +++ libservices/CMakeLists.txt @@ -47,4 +47,6 @@ SET(MYSQLSERVICES_SOURCES mysql_keyring_service.c) ADD_CONVENIENCE_LIBRARY(mysqlservices ${MYSQLSERVICES_SOURCES}) +IF(FALSE) INSTALL(TARGETS mysqlservices DESTINATION ${INSTALL_LIBDIR} COMPONENT Development) +ENDIF() [FILE:1910:patches/patch-mysys__ssl_my__default.cc] --- mysys_ssl/my_default.cc.orig 2023-10-11 11:42:50 UTC +++ mysys_ssl/my_default.cc @@ -126,7 +126,7 @@ static my_bool defaults_already_read= FA /* 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 = NULL; @@ -930,6 +930,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 (mysql_file_getline(buff, sizeof(buff) - 1, fp, is_login_file)) { line++; @@ -1272,7 +1280,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); } } } @@ -1431,13 +1440,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 @@ -1508,7 +1512,7 @@ int check_file_permissions(const char *f MY_STAT stat_info; if (!my_stat(file_name,&stat_info,MYF(0))) - return 1; + return 0; /* Ignore .mylogin.cnf file if not exclusively readable/writable by current user. [FILE:910:patches/patch-mysys_kqueue__timers.c] $NetBSD: patch-mysys_kqueue__timers.c,v 1.2 2021/04/21 13:26:54 adam Exp $ Fix for systems which do not define EVFILT_USER. --- mysys/kqueue_timers.c.orig 2023-10-11 11:42:50 UTC +++ mysys/kqueue_timers.c @@ -74,8 +74,10 @@ timer_notify_thread_func(void *arg MY_AT assert(timer->id == kev.ident); timer->notify_function(timer); } +#ifdef EVFILT_USER else if (kev.filter == EVFILT_USER) break; +#endif } close(kq_fd); @@ -96,7 +98,9 @@ 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) { @@ -150,7 +154,9 @@ 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, [FILE:430:patches/patch-plugin_password__validation_validate__password.cc] --- plugin/password_validation/validate_password.cc.orig 2023-10-11 11:42:50 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 [FILE:598:patches/patch-rapid_plugin_group__replication_libmysqlgcs_src_bindings_xcom_xcom_sock__probe__ix.c] --- rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/sock_probe_ix.c.orig 2023-10-11 11:42:50 UTC +++ rapid/plugin/group_replication/libmysqlgcs/src/bindings/xcom/xcom/sock_probe_ix.c @@ -147,7 +147,11 @@ static int init_sock_probe(sock_probe *s interfaces. We are doing this, since the size of sockaddr differs on some platforms. */ +#if defined(__NetBSD__) + for (i= 0, ptr=(char*) s->ifc.ifc_buf, end= (char*)s->ifc.ifc_buf + s->ifc.ifc_len; +#else for (i= 0, ptr= s->ifc.ifc_buf, end= s->ifc.ifc_buf + s->ifc.ifc_len; +#endif ptr /dev/null") ENDIF() -IF(NOT FIND_PROC) - # BSD styl - 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") SET( FIND_PROC "ps -uaxww | grep -v mysqld_safe | grep -- $MYSQLD | grep $PID > /dev/null") - ENDIF() ENDIF() IF(NOT FIND_PROC) @@ -293,7 +289,7 @@ SET(pkglibdir ${prefix}/${INSTALL_LIBDIR SET(pkgplugindir ${prefix}/${INSTALL_PLUGINDIR}) SET(localstatedir ${MYSQL_DATADIR}) -IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS") +IF(TRUE) SET(RPATH_OPTION " -R$pkglibdir") ENDIF() @@ -330,6 +326,8 @@ MACRO(EXTRACT_LINK_LIBRARIES target var) GET_FILENAME_COMPONENT(lib "${lib}" NAME_WE) STRING(REGEX REPLACE "^lib" "" lib "${lib}") SET(${var} "${${var}}-l${lib} " ) + ELSEIF(lib STREQUAL "-pthread") + SET(${var} "${${var}}-pthread " ) ELSE() SET(${var} "${${var}}-l${lib} " ) ENDIF() @@ -463,7 +461,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}) CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${file} ${CMAKE_CURRENT_BINARY_DIR}/${file} COPYONLY) [FILE:271:patches/patch-sql_CMakeLists.txt] --- sql/CMakeLists.txt.orig 2023-10-11 11:42:50 UTC +++ sql/CMakeLists.txt @@ -30,6 +30,8 @@ INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR}/regex ${SSL_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/sql + ${CMAKE_BINARY_DIR}/include + ${CMAKE_BINARY_DIR} ) SET(CONF_SOURCES [FILE:1264:patches/patch-sql_conn__handler_socket__connection.cc] --- sql/conn_handler/socket_connection.cc.orig 2023-10-11 11:42:50 UTC +++ sql/conn_handler/socket_connection.cc @@ -865,22 +865,25 @@ Channel_info* Mysqld_socket_listener::li signal(SIGCHLD, SIG_DFL); request_init(&req, RQ_DAEMON, m_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... clean_exit() - same stupid thing ... */ + char *(*my_eval_client) (void *) = (char *(*) (void *)) eval_client; syslog(LOG_AUTH | m_deny_severity, - "refused connect from %s", eval_client(&req)); + "refused connect from %s", 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); + ((void (*)(int)) (req.sink))(req.fd); #else // Some distros have not patched tcpd.h if (req.sink) [FILE:463:patches/patch-sql_locks_shared__spin__lock.cc] --- sql/locks/shared_spin_lock.cc.orig 2023-10-11 11:42:50 UTC +++ sql/locks/shared_spin_lock.cc @@ -239,7 +239,7 @@ lock::Shared_spin_lock &lock::Shared_spi { this->spin_exclusive_lock(); } -#if defined(__APPLE__) +#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__DragonFly__) || defined(__NetBSD__) my_atomic_store64(&this->m_exclusive_owner, reinterpret_cast(self)); #else my_atomic_store64(&this->m_exclusive_owner, self); [FILE:396:patches/patch-sql_mysqld.cc] --- sql/mysqld.cc.orig 2023-10-11 11:42:50 UTC +++ sql/mysqld.cc @@ -3433,7 +3433,7 @@ static void push_deprecated_tls_option_n static int init_ssl() { #ifdef HAVE_OPENSSL -#if OPENSSL_VERSION_NUMBER < 0x10100000L +#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER) CRYPTO_malloc_init(); #else /* OPENSSL_VERSION_NUMBER < 0x10100000L */ OPENSSL_malloc_init(); [FILE:2575:patches/patch-sql_sql__view.cc] --- sql/sql_view.cc.orig 2023-10-11 11:42:50 UTC +++ sql/sql_view.cc @@ -785,46 +785,46 @@ static const int required_view_parameter */ static File_option view_parameters[]= {{{ C_STRING_WITH_LEN("query")}, - my_offsetof(TABLE_LIST, select_stmt), + static_cast(my_offsetof(TABLE_LIST, select_stmt)), FILE_OPTIONS_ESTRING}, {{ C_STRING_WITH_LEN("md5")}, - my_offsetof(TABLE_LIST, md5), + static_cast(my_offsetof(TABLE_LIST, md5)), FILE_OPTIONS_STRING}, {{ C_STRING_WITH_LEN("updatable")}, - my_offsetof(TABLE_LIST, updatable_view), + static_cast(my_offsetof(TABLE_LIST, updatable_view)), FILE_OPTIONS_ULONGLONG}, {{ C_STRING_WITH_LEN("algorithm")}, - my_offsetof(TABLE_LIST, algorithm), + static_cast(my_offsetof(TABLE_LIST, algorithm)), FILE_OPTIONS_ULONGLONG}, {{ C_STRING_WITH_LEN("definer_user")}, - my_offsetof(TABLE_LIST, definer.user), + static_cast(my_offsetof(TABLE_LIST, definer.user)), FILE_OPTIONS_STRING}, {{ C_STRING_WITH_LEN("definer_host")}, - my_offsetof(TABLE_LIST, definer.host), + static_cast(my_offsetof(TABLE_LIST, definer.host)), FILE_OPTIONS_STRING}, {{ C_STRING_WITH_LEN("suid")}, - my_offsetof(TABLE_LIST, view_suid), + static_cast(my_offsetof(TABLE_LIST, view_suid)), FILE_OPTIONS_ULONGLONG}, {{ C_STRING_WITH_LEN("with_check_option")}, - my_offsetof(TABLE_LIST, with_check), + static_cast(my_offsetof(TABLE_LIST, with_check)), FILE_OPTIONS_ULONGLONG}, {{ C_STRING_WITH_LEN("timestamp")}, - my_offsetof(TABLE_LIST, timestamp), + static_cast(my_offsetof(TABLE_LIST, timestamp)), FILE_OPTIONS_TIMESTAMP}, {{ C_STRING_WITH_LEN("create-version")}, - my_offsetof(TABLE_LIST, file_version), + static_cast(my_offsetof(TABLE_LIST, file_version)), FILE_OPTIONS_ULONGLONG}, {{ C_STRING_WITH_LEN("source")}, - my_offsetof(TABLE_LIST, source), + static_cast(my_offsetof(TABLE_LIST, source)), FILE_OPTIONS_ESTRING}, {{(char*) STRING_WITH_LEN("client_cs_name")}, - my_offsetof(TABLE_LIST, view_client_cs_name), + static_cast(my_offsetof(TABLE_LIST, view_client_cs_name)), FILE_OPTIONS_STRING}, {{(char*) STRING_WITH_LEN("connection_cl_name")}, - my_offsetof(TABLE_LIST, view_connection_cl_name), + static_cast(my_offsetof(TABLE_LIST, view_connection_cl_name)), FILE_OPTIONS_STRING}, {{(char*) STRING_WITH_LEN("view_body_utf8")}, - my_offsetof(TABLE_LIST, view_body_utf8), + static_cast(my_offsetof(TABLE_LIST, view_body_utf8)), FILE_OPTIONS_ESTRING}, {{NullS, 0}, 0, FILE_OPTIONS_STRING} [FILE:1921:patches/patch-sql_sys__vars.cc] --- sql/sys_vars.cc.orig 2023-10-11 11:42:50 UTC +++ sql/sys_vars.cc @@ -1759,7 +1759,7 @@ static Sys_var_ulong Sys_interactive_tim "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", @@ -2639,7 +2639,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(0), ON_UPDATE(fix_net_read_timeout)); @@ -2663,7 +2663,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(0), ON_UPDATE(fix_net_write_timeout)); @@ -4399,7 +4399,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:473:patches/patch-storage_innobase_include_srv0mon.h] --- storage/innobase/include/srv0mon.h.orig 2023-10-11 11:42:50 UTC +++ storage/innobase/include/srv0mon.h @@ -41,6 +41,10 @@ Created 12/15/2009 Jimmy Yang /* Required for FreeBSD so that INT64_MAX is defined. */ #define __STDC_LIMIT_MACROS #endif /* __STDC_LIMIT_MACROS */ +#if defined(__DragonFly__) || defined(__NetBSD__) +/* The hack above doen't work for this platform, stdint.h already imported */ +#include +#endif #include [FILE:985:patches/patch-storage_myisam_mi__dynrec.c] --- storage/myisam/mi_dynrec.c.orig 2023-10-11 11:42:50 UTC +++ storage/myisam/mi_dynrec.c @@ -72,18 +72,13 @@ my_bool mi_dynmap_file(MI_INFO *info, my DBUG_RETURN(1); } /* - 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(0, (size_t) size, info->s->mode==O_RDONLY ? PROT_READ : PROT_READ | PROT_WRITE, - MAP_SHARED | MAP_NORESERVE, + MAP_SHARED, info->dfile, 0L); if (info->s->file_map == (uchar*) MAP_FAILED) { [FILE:2182:files/my.cnf.sample.in] [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%% slave-load-tmpdir = %%MY_TMPDIR%% secure-file-priv = %%MY_SECDIR%% log-bin = mysql-bin log-output = TABLE master-info-repository = TABLE relay-log-info-repository = TABLE relay-log-recovery = 1 slow-query-log = 1 server-id = 1 sync_binlog = 1 sync_relay_log = 1 binlog_cache_size = 16M expire_logs_days = 30 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 query_cache_type = 0 query_cache_size = 0 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_log_file_size = 256M innodb_log_buffer_size = 16M innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_autoinc_lock_mode = 2 skip-symbolic-links [mysqldump] max_allowed_packet = 256M quote_names quick [FILE:2478:files/mysql-server.in] #!/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_limits (bool): Set to "NO" by default. # Set it to yes to run `limits -e -U mysql` # just before mysql starts. # 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): Custum 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_limits="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" mysql_limits_args="-e -U ${mysql_user}" : ${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" mysql_install_db="%%PREFIX%%/bin/mysql_install_db" mysql_install_db_args="${mysql_extra} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --mysqld-file=${procname} --user=${mysql_user}" mysql_create_auth_tables() { eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null } mysql_prestart() { if [ ! -d "${mysql_dbdir}/mysql/." ]; then mysql_create_auth_tables || return 1 fi if checkyesno mysql_limits; then eval `/usr/bin/limits ${mysql_limits_args}` 2>/dev/null else return 0 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:576:files/pkg-message-server.in] ***************************************************************************** Remember to run mysql_upgrade the first time you start the MySQL server after an upgrade from an earlier version. Initial password for first time use of MySQL is saved in $HOME/.mysql_secret ie. when you want to use "mysql -u root -p" first you should see password in /root/.mysql_secret MySQL57 has a default %%ETCDIR%%/my.cnf, remember to replace it wit your own or set `mysql_optfile="$YOUR_CNF_FILE` in rc.conf. ***************************************************************************** [FILE:28:files/special.mk] ETCDIR= ${PREFIX}/etc/mysql