diff -Naur mysql56-client/Makefile mysql56-client/Makefile --- mysql56-client/Makefile 2016-05-06 20:58:43.280600000 +0200 +++ mysql56-client/Makefile 2016-05-15 23:59:51.075889000 +0200 @@ -2,10 +2,15 @@ # $FreeBSD: head/databases/mysql56-client/Makefile 394288 2015-08-15 08:18:31Z ale $ PORTNAME= mysql +PORTREVISION?= 1 PKGNAMESUFFIX= 56-client COMMENT= Multithreaded SQL database (client) +LICENSE+= LGPL21 + +BROKEN_powerpc64= Does not build + MASTERDIR= ${.CURDIR}/../mysql56-server PKGMESSAGE= ${.CURDIR}/pkg-message @@ -13,12 +18,13 @@ PLIST= ${.CURDIR}/pkg-plist CONFLICTS_INSTALL= mysql5[0-57-9]-client-* \ - mariadb*-client-* \ - percona*-client-* + mysql[0-46-9][0-9]-client-* \ + mariadb[0-9][0-9]-client-* \ + percona[0-9][0-9]-client-* CMAKE_ARGS+= -DWITHOUT_SERVER=1 -USE_LDCONFIG= ${PREFIX}/lib/mysql +USE_LDCONFIG+= ${PREFIX}/lib/mysql MMAN1= comp_err.1 msql2mysql.1 mysql.1 mysql_config.1 mysql_config_editor.1 mysql_find_rows.1 \ mysql_waitpid.1 mysqlaccess.1 mysqladmin.1 mysqlbinlog.1 \ diff -Naur mysql56-server/Makefile mysql56-server/Makefile --- mysql56-server/Makefile 2016-05-06 20:58:43.281873000 +0200 +++ mysql56-server/Makefile 2016-05-16 00:09:24.940720000 +0200 @@ -3,7 +3,7 @@ PORTNAME?= mysql PORTVERSION= 5.6.30 -PORTREVISION?= 0 +PORTREVISION?= 1 CATEGORIES= databases ipv6 MASTER_SITES= MYSQL/MySQL-5.6 PKGNAMESUFFIX?= 56-server @@ -11,28 +11,56 @@ MAINTAINER= ale@FreeBSD.org COMMENT?= Multithreaded SQL database (server) +LICENSE= GPLv2 + BROKEN_powerpc64= Does not build SLAVEDIRS= databases/mysql56-client -USES= cmake shebangfix +USES= bison:build cmake cpe libedit localbase perl5 shebangfix + +USE_OPENSSL= yes +USE_PERL5= run + +.if defined(WITH_OPENSSL_BASE) +IGNORE= Currently not compatible with OpenSSL from base. Use OpenSSL/LibreSSL from ports system instead. +.endif + +.if !defined(WITH_OPENSSL_PORT) +WITH_OPENSSL_PORT= yes +.endif -CMAKE_ARGS+= -DINSTALL_DOCDIR="share/doc/mysql" \ +MY_DBDIR= /var/db/mysql +MY_SECDIR= /var/db/mysql_secure +MY_TMPDIR= /var/db/mysql_tmpdir + +LIB_DEPENDS+= libevent.so:devel/libevent2 + +CMAKE_BUILD_TYPE= Release + +CMAKE_ARGS+= -DINSTALL_LAYOUT=STANDALONE \ + -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" \ -DINSTALL_LIBDIR="lib/mysql" \ -DINSTALL_MANDIR="man" \ - -DINSTALL_MYSQLDATADIR="/var/db/mysql" \ + -DINSTALL_MYSQLDATADIR="${MY_DBDIR}" \ -DINSTALL_MYSQLSHAREDIR="share/mysql" \ -DINSTALL_MYSQLTESTDIR="share/mysql/tests" \ -DINSTALL_PLUGINDIR="lib/mysql/plugin" \ -DINSTALL_SBINDIR="libexec" \ -DINSTALL_SCRIPTDIR="bin" \ + -DINSTALL_SECURE_FILE_PRIVDIR="${MY_SECDIR}" \ -DINSTALL_SHAREDIR="share" \ -DINSTALL_SQLBENCHDIR="share/mysql" \ -DINSTALL_SUPPORTFILESDIR="share/mysql" \ + -DSYSCONFDIR="${ETCDIR}" \ -DWITH_EDITLINE=system \ - -DWITH_LIBWRAP=1 + -DWITH_LIBEVENT=system \ + -DWITH_ZLIB=system \ + -DWITH_SSL=${OPENSSLBASE} SHEBANG_FILES= scripts/*.pl* scripts/*.sh @@ -40,23 +68,32 @@ .error 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} + # MySQL-Server part .if !defined(CLIENT_ONLY) -USE_MYSQL= yes -WANT_MYSQL_VER= 56 - -USES+= perl5 -USE_PERL5= run +USES+= mysql:56 CONFLICTS_INSTALL= mysql5[0-57-9]-server-* \ - mariadb*-server-* \ - percona*-server-* + mysql[0-46-9][0-9]-server-* \ + mariadb[0-9][0-9]-server-* \ + percona[0-9][0-9]-server-* USE_RC_SUBR= mysql-server +SUB_FILES= my.cnf.sample + USERS= mysql GROUPS= mysql +USE_LDCONFIG+= ${PREFIX}/lib/mysql/plugin + MMAN1= my_print_defaults.1 myisam_ftdump.1 myisamchk.1 myisamlog.1 myisampack.1 \ mysql.server.1 mysql_convert_table_format.1 mysql_fix_extensions.1 \ mysql_install_db.1 mysql_plugin.1 mysql_secure_installation.1 mysql_setpermission.1 \ @@ -65,17 +102,54 @@ mysqltest.1 perror.1 replace.1 resolve_stack_dump.1 resolveip.1 CMAKE_ARGS+= -DWITH_EMBEDDED_SERVER="ON" -.else -USES+= libedit -.endif -post-patch: - @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt +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" +.endif .include .if ${ARCH} == "armv6" -EXTRA_PATCHES+= ${FILESDIR}/extra-patch-config.h.cmake +EXTRA_PATCHES+= ${PATCHDIR}/extra-patch-config.h.cmake +.endif + +post-patch: + @${REINPLACE_CMD} 's/*.1/${MMAN1}/' ${WRKSRC}/man/CMakeLists.txt + +.if !defined(CLIENT_ONLY) +post-install: + ${MKDIR} ${STAGEDIR}${ETCDIR} + ${INSTALL_DATA} ${WRKDIR}/my.cnf.sample ${STAGEDIR}${ETCDIR}/my.cnf.sample + +post-stage: + ${MKDIR} ${STAGEDIR}${MY_SECDIR} + ${MKDIR} ${STAGEDIR}${MY_TMPDIR} .endif .include diff -Naur mysql56-server/files/my.cnf.sample.in mysql56-server/files/my.cnf.sample.in --- mysql56-server/files/my.cnf.sample.in 1970-01-01 01:00:00.000000000 +0100 +++ mysql56-server/files/my.cnf.sample.in 2016-05-14 00:01:43.806057000 +0200 @@ -0,0 +1,63 @@ +# $FreeBSD$ + +[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 +log-slave-updates = 1 +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_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 diff -Naur mysql56-server/files/mysql-server.in mysql56-server/files/mysql-server.in --- mysql56-server/files/mysql-server.in 2016-05-06 20:58:43.282317000 +0200 +++ mysql56-server/files/mysql-server.in 2016-05-14 00:16:57.537269000 +0200 @@ -14,10 +14,12 @@ # 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 "/var/db/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. -# Default to "${mysql_dbdir}/my.cnf". +# Default to "${mysql_confdir}/my.cnf". # mysql_pidfile (str): Custum PID file path and name. # Default to "${mysql_dbdir}/${hostname}.pid". # mysql_args (str): Custom additional arguments to be passed @@ -33,30 +35,43 @@ : ${mysql_enable="NO"} : ${mysql_limits="NO"} -: ${mysql_dbdir="/var/db/mysql"} +: ${mysql_dbdir="%%MY_DBDIR%%"} +: ${mysql_confdir="%%ETCDIR%%"} +if [ -f "${mysql_dbdir}/my.cnf" ]; then : ${mysql_optfile="${mysql_dbdir}/my.cnf"} +else +: ${mysql_optfile="${mysql_confdir}/my.cnf"} +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 --defaults-extra-file=${mysql_optfile} --user=${mysql_user} --datadir=${mysql_dbdir} --pid-file=${pidfile} ${mysql_args}" +command_args="-c -f %%PREFIX%%/bin/mysqld_safe --defaults-extra-file=${mysql_optfile} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args} %%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="--basedir=%%PREFIX%% --defaults-extra-file=${mysql_optfile} --datadir=${mysql_dbdir} --force" +mysql_install_db_args="--defaults-extra-file=${mysql_optfile} --basedir=%%PREFIX%% --datadir=${mysql_dbdir} --user=${mysql_user}" mysql_create_auth_tables() { eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null - [ $? -eq 0 ] && chown -R ${mysql_user}:${mysql_user} ${mysql_dbdir} } mysql_prestart() { - if [ ! -d "${mysql_dbdir}/mysql/." ]; then + if [ -f "${mysql_dbdir}/my.cnf" ]; then + echo "" + echo "Please keep in mind that the default location for my.cnf will be changed" + echo "from \"%%MY_DBDIR%%/my.cnf\" to \"%%ETCDIR%%/my.cnf\" in the near" + echo "future. If you do not want to move your my.cnf to the new location then" + echo "you must set \"mysql_optfile\" in /etc/rc.conf to \"/var/db/mysql/my.cnf\"." + echo "" + fi + + if [ ! -d "${mysql_dbdir}/mysql" ]; then mysql_create_auth_tables || return 1 fi if checkyesno mysql_limits; then diff -Naur mysql56-server/pkg-message mysql56-server/pkg-message --- mysql56-server/pkg-message 2016-05-06 20:58:43.283867000 +0200 +++ mysql56-server/pkg-message 2016-05-06 22:37:32.404429000 +0200 @@ -1,6 +1,19 @@ -************************************************************************ +***************************************************************************** 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 + +***************************************************************************** + +***************************************************************************** + +Please keep in mind that the default location for my.cnf will be changed +from "/var/db/mysql/my.cnf" to "/usr/local/etc/mysql/my.cnf" in the near +future. If you do not want to move your my.cnf to the new location then +you must set "mysql_optfile" in /etc/rc.conf to "/var/db/mysql/my.cnf". + +***************************************************************************** diff -Naur mysql56-server/pkg-plist mysql56-server/pkg-plist --- mysql56-server/pkg-plist 2016-05-06 20:58:43.283933000 +0200 +++ mysql56-server/pkg-plist 2016-05-14 01:09:08.461832000 +0200 @@ -129,3 +129,6 @@ %%DATADIR%%/spanish/errmsg.sys %%DATADIR%%/swedish/errmsg.sys %%DATADIR%%/ukrainian/errmsg.sys +@sample(root,wheel,0644) %%ETCDIR%%/my.cnf.sample +@dir(mysql,mysql,0750) %%MY_SECDIR%% +@dir(mysql,mysql,0750) %%MY_TMPDIR%%