summaryrefslogtreecommitdiff
path: root/support-files
diff options
context:
space:
mode:
Diffstat (limited to 'support-files')
-rw-r--r--support-files/CMakeLists.txt139
-rw-r--r--support-files/MacOSX/ReadMe.txt4
-rw-r--r--support-files/MySQL-shared-compat.spec.sh96
-rw-r--r--support-files/SELinux/CMakeLists.txt35
-rw-r--r--support-files/SELinux/rhel4-mysql.fc41
-rw-r--r--support-files/SELinux/rhel4-mysql.te147
-rw-r--r--support-files/compiler_warnings.supp68
-rw-r--r--support-files/config.huge.ini.sh228
-rw-r--r--support-files/config.medium.ini.sh139
-rw-r--r--support-files/config.small.ini.sh80
-rw-r--r--support-files/mariadb.pc.in23
-rw-r--r--support-files/mariadb.service.in153
-rw-r--r--support-files/mariadb@.service.in174
-rw-r--r--support-files/my-innodb-heavy-4G.cnf.sh4
-rw-r--r--support-files/mysql-log-rotate.sh3
-rw-r--r--support-files/mysql-multi.server.sh2
-rw-r--r--support-files/mysql.server.sh37
-rw-r--r--support-files/mysql.spec.sh2064
-rw-r--r--support-files/ndb-config-2-node.ini.sh58
-rw-r--r--support-files/policy/apparmor/README5
-rw-r--r--support-files/policy/apparmor/usr.sbin.mysqld151
-rw-r--r--support-files/policy/apparmor/usr.sbin.mysqld.local4
-rw-r--r--support-files/policy/selinux/README20
-rw-r--r--support-files/policy/selinux/mariadb-server.fc11
-rw-r--r--support-files/policy/selinux/mariadb-server.te99
-rw-r--r--support-files/policy/selinux/mariadb.te (renamed from support-files/SELinux/mariadb.te)0
-rw-r--r--support-files/rpm/enable_encryption.preset20
-rw-r--r--support-files/rpm/server-postin.sh29
-rw-r--r--support-files/rpm/server-postun.sh11
-rw-r--r--support-files/rpm/server-preun.sh18
-rw-r--r--support-files/rpm/server.cnf32
-rw-r--r--support-files/sysusers.conf.in1
-rw-r--r--support-files/tmpfiles.conf.in1
-rw-r--r--support-files/use_galera_new_cluster.conf22
-rw-r--r--support-files/wsrep.cnf.sh125
-rw-r--r--support-files/wsrep_notify.sh102
36 files changed, 1163 insertions, 2983 deletions
diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt
index bcbcff31ed8..36d4c0949ed 100644
--- a/support-files/CMakeLists.txt
+++ b/support-files/CMakeLists.txt
@@ -20,8 +20,8 @@ IF(WIN32)
ELSE()
SET(localstatedir "${MYSQL_DATADIR}")
SET(prefix "${CMAKE_INSTALL_PREFIX}")
- SET(libexecdir "${CMAKE_INSTALL_PREFIX}/${INSTALL_SBINDIR}")
- SET(bindir "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR}" )
+ SET(libexecdir ${INSTALL_SBINDIRABS})
+ SET(bindir ${INSTALL_BINDIRABS})
SET(sbindir "${libexecdir}")
SET(datadir "${MYSQL_DATADIR}")
SET(CC ${CMAKE_C_COMPILER})
@@ -41,68 +41,125 @@ ELSE()
SET(inst_location ${INSTALL_SUPPORTFILESDIR})
ENDIF()
+IF (NOT WITHOUT_SERVER)
FOREACH(inifile my-huge my-innodb-heavy-4G my-large my-medium my-small)
- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${inifile}.cnf.sh
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${inifile}.cnf.sh
${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension} @ONLY)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${inifile}.${ini_file_extension}
DESTINATION ${inst_location} COMPONENT IniFiles)
ENDFOREACH()
+ENDIF()
+
+IF(WITH_WSREP)
+ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/wsrep.cnf.sh
+ ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension} @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/wsrep.${ini_file_extension}
+ DESTINATION ${inst_location} COMPONENT IniFiles)
+ENDIF()
IF(UNIX)
SET(prefix ${CMAKE_INSTALL_PREFIX})
- FOREACH(script mysqld_multi.server mysql-log-rotate binary-configure)
+ FOREACH(script mysqld_multi.server mysql-log-rotate binary-configure wsrep_notify)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/${script}.sh
${CMAKE_CURRENT_BINARY_DIR}/${script} @ONLY )
-
- IF(script MATCHES ".ini")
- SET(comp IniFiles)
- SET(permissions OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
- ELSE()
- SET(comp Server_Scripts)
- SET(permissions OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
- ENDIF()
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${script}
- DESTINATION ${inst_location} COMPONENT ${comp}
- PERMISSIONS ${permissions})
+ INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${script}
+ DESTINATION ${inst_location} COMPONENT Server_Scripts)
ENDFOREACH()
+
IF(INSTALL_SUPPORTFILESDIR)
INSTALL(FILES magic DESTINATION ${inst_location} COMPONENT SupportFiles)
- ADD_SUBDIRECTORY(SELinux)
+ INSTALL(DIRECTORY policy DESTINATION ${inst_location} COMPONENT SupportFiles)
+ FIND_PROGRAM(CHECKMODULE checkmodule)
+ FIND_PROGRAM(SEMODULE_PACKAGE semodule_package)
+ MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE)
+
+ # Build pp files in policy/selinux
+ IF(CHECKMODULE AND SEMODULE_PACKAGE)
+ FOREACH(pol mariadb)
+ SET(src ${CMAKE_CURRENT_SOURCE_DIR}/policy/selinux/${pol}.te)
+ SET(tmp ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod)
+ SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp)
+ ADD_CUSTOM_COMMAND(OUTPUT ${out}
+ COMMAND ${CHECKMODULE} -M -m ${src} -o ${tmp}
+ COMMAND ${SEMODULE_PACKAGE} -m ${tmp} -o ${out}
+ DEPENDS ${src})
+ ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out})
+ INSTALL(FILES ${out} DESTINATION ${inst_location}/policy/selinux COMPONENT SupportFiles)
+ ENDFOREACH()
+ ENDIF()
ENDIF()
+ CONFIGURE_FILE(mariadb.pc.in ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.pc DESTINATION ${INSTALL_SHAREDIR}/pkgconfig COMPONENT Development)
+
INSTALL(FILES mysql.m4 DESTINATION ${INSTALL_SHAREDIR}/aclocal COMPONENT Development)
- CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY)
- CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/mysql.spec @ONLY)
- SET(SPECFILENAME "mysql.${VERSION}.spec")
- IF("${VERSION}" MATCHES "-ndb-")
- STRING(REGEX REPLACE "^.*-ndb-" "" NDBVERSION "${VERSION}")
- SET(SPECFILENAME "mysql-cluster-${NDBVERSION}.spec")
- ENDIF()
- CONFIGURE_FILE(mysql.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/${SPECFILENAME} @ONLY)
-
- CONFIGURE_FILE(MySQL-shared-compat.spec.sh ${CMAKE_CURRENT_BINARY_DIR}/MySQL-shared-compat.spec @ONLY)
-
- SET(bindir ${prefix}/${INSTALL_BINDIR})
- SET(sbindir ${prefix}/${INSTALL_SBINDIR})
- SET(scriptdir ${prefix}/${INSTALL_SCRIPTDIR})
- SET(libexecdir ${prefix}/${INSTALL_SBINDIR})
- SET(pkgdatadir ${prefix}/${INSTALL_MYSQLSHAREDIR})
+ SET(bindir ${INSTALL_BINDIRABS})
+ SET(sbindir ${INSTALL_SBINDIRABS})
+ SET(scriptdir ${INSTALL_SCRIPTDIRABS})
+ SET(libexecdir ${INSTALL_SBINDIRABS})
+ SET(pkgdatadir ${INSTALL_MYSQLSHAREDIRABS})
+ SET(sysconfdir ${INSTALL_SYSCONFDIR})
+ SET(sysconf2dir ${INSTALL_SYSCONF2DIR})
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mysql.server.sh
${CMAKE_CURRENT_BINARY_DIR}/mysql.server @ONLY)
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
- DESTINATION ${inst_location} COMPONENT SupportFiles
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
- GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
+ DESTINATION ${inst_location} COMPONENT SupportFiles)
+
+ IF(HAVE_SYSTEMD)
+ CONFIGURE_FILE(mariadb.service.in
+ ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service @ONLY)
+ INSTALL(FILES use_galera_new_cluster.conf
+ ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service
+ DESTINATION ${inst_location}/systemd COMPONENT SupportFiles)
+
+ IF(INSTALL_SYSTEMD_SYSUSERSDIR)
+ CONFIGURE_FILE(sysusers.conf.in
+ ${CMAKE_CURRENT_BINARY_DIR}/sysusers.conf @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/sysusers.conf
+ DESTINATION ${INSTALL_SYSTEMD_SYSUSERSDIR} COMPONENT Server)
+ ENDIF()
+
+ IF(INSTALL_SYSTEMD_TMPFILESDIR)
+ get_filename_component(MYSQL_UNIX_DIR ${MYSQL_UNIX_ADDR} DIRECTORY)
+ CONFIGURE_FILE(tmpfiles.conf.in
+ ${CMAKE_CURRENT_BINARY_DIR}/tmpfiles.conf @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tmpfiles.conf
+ DESTINATION ${INSTALL_SYSTEMD_TMPFILESDIR} COMPONENT Server)
+ ENDIF()
+
+ # @ in directory name broken between CMake version 2.8.12.2 and 3.3
+ # http://public.kitware.com/Bug/view.php?id=14782
+ IF(NOT CMAKE_VERSION VERSION_LESS 3.3.0 OR NOT RPM)
+ CONFIGURE_FILE(mariadb@.service.in
+ ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service @ONLY)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service
+ DESTINATION ${inst_location}/systemd COMPONENT SupportFiles)
+ ENDIF()
+
+ IF(INSTALL_SYSTEMD_UNITDIR)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb.service
+ DESTINATION ${INSTALL_SYSTEMD_UNITDIR} COMPONENT Server)
+
+ # http://public.kitware.com/Bug/view.php?id=14782
+ IF(NOT CMAKE_VERSION VERSION_LESS 3.3.0 OR NOT RPM)
+ INSTALL(FILES use_galera_new_cluster.conf
+ DESTINATION
+ "${INSTALL_SYSTEMD_UNITDIR}/mariadb@bootstrap.service.d"
+ COMPONENT Server)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mariadb@.service
+ DESTINATION ${INSTALL_SYSTEMD_UNITDIR} COMPONENT Server)
+ ENDIF()
+
+ ENDIF()
+ ENDIF()
IF (INSTALL_SYSCONFDIR)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql-log-rotate DESTINATION ${INSTALL_SYSCONFDIR}/logrotate.d
RENAME mysql COMPONENT SupportFiles)
- INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
+ INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/mysql.server
DESTINATION ${INSTALL_SYSCONFDIR}/init.d
- RENAME mysql COMPONENT SupportFiles
- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
- GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
+ RENAME mysql COMPONENT SupportFiles)
INSTALL(FILES rpm/my.cnf DESTINATION ${INSTALL_SYSCONFDIR}
COMPONENT Common)
@@ -114,6 +171,8 @@ IF(UNIX)
COMPONENT Client)
INSTALL(FILES rpm/server.cnf DESTINATION ${INSTALL_SYSCONF2DIR}
COMPONENT IniFiles)
+ INSTALL(FILES rpm/enable_encryption.preset DESTINATION ${INSTALL_SYSCONF2DIR}
+ COMPONENT IniFiles)
ENDIF()
# This is for SuSE:
diff --git a/support-files/MacOSX/ReadMe.txt b/support-files/MacOSX/ReadMe.txt
index d81ec1f66d6..8b833049ad4 100644
--- a/support-files/MacOSX/ReadMe.txt
+++ b/support-files/MacOSX/ReadMe.txt
@@ -110,7 +110,7 @@ Note
Continue .
5. If you have downloaded the community version of MySQL, you
- will be shown a copy of the relevent GNU General Public
+ will be shown a copy of the relevant GNU General Public
License. Click Continue .
6. Select the drive you want to use to install the MySQL Startup
@@ -128,7 +128,7 @@ Note
will be given an Install Succeeded message.
Once you have completed the basic installation, you must complete
- the post-installation steps as specifed in Section 2.13,
+ the post-installation steps as specified in Section 2.13,
"Post-Installation Setup and Testing."
For convenience, you may also want to install the Section 2.7.2,
diff --git a/support-files/MySQL-shared-compat.spec.sh b/support-files/MySQL-shared-compat.spec.sh
deleted file mode 100644
index 00405535ac9..00000000000
--- a/support-files/MySQL-shared-compat.spec.sh
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
-#
-# MySQL-shared-compat.spec
-#
-# RPM build instructions to create a "meta" package that includes two
-# versions of the MySQL shared libraries (for compatibility with
-# distributions that ship older versions of MySQL and do not provide a
-# separate "MySQL-shared" package. This spec file simply repackages two
-# already existing MySQL-shared RPMs into a single package.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc., 51
-# Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
-
-# For 5.0 and up, this is needed because of "libndbclient".
-%define _unpackaged_files_terminate_build 0
-
-#
-# Change this to match the version of the shared libs you want to include
-#
-%define version_cur @MYSQL_RPM_VERSION@
-%define version41 4.1.17
-%define version40 4.0.26
-%define version3 3.23.58
-
-Name: MySQL-shared-compat
-Packager: Sun Microsystems, Inc. Product Engineering Team <build@mysql.com>
-Vendor: Sun Microsystems, Inc.
-License: GPL
-Group: Applications/Databases
-URL: http://www.mysql.com/
-Autoreqprov: on
-Version: %{version_cur}
-Release: 1
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Obsoletes: mysql-shared
-Provides: MySQL-shared
-Summary: MySQL shared client libraries for MySQL %{version}, %{version41}, %{version40} and %{version3}
-# We simply use the "MySQL-shared" subpackages as input sources instead of
-# rebuilding all from source
-Source0: MySQL-shared-%{version_cur}-1.%{_arch}.rpm
-Source1: MySQL-shared-%{version41}-1.%{_arch}.rpm
-Source2: MySQL-shared-%{version40}-0.%{_arch}.rpm
-Source3: MySQL-shared-%{version3}-1.%{_arch}.rpm
-# No need to include the RPMs once more - they can be downloaded seperately
-# if you want to rebuild this package
-NoSource: 0
-NoSource: 1
-NoSource: 2
-NoSource: 3
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-
-%description
-This package includes the shared libraries for MySQL %{version3},
-MySQL %{version40}, %{version41} as well as MySQL %{version_cur}.
-Install this package instead of "MySQL-shared", if you have applications
-installed that are dynamically linked against older versions of the MySQL
-client library but you want to upgrade to MySQL %{version} without breaking the
-library dependencies.
-
-%install
-[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
-mkdir -p $RPM_BUILD_ROOT
-cd $RPM_BUILD_ROOT
-rpm2cpio %{SOURCE0} | cpio -iv --make-directories
-rpm2cpio %{SOURCE1} | cpio -iv --make-directories
-rpm2cpio %{SOURCE2} | cpio -iv --make-directories
-rpm2cpio %{SOURCE3} | cpio -iv --make-directories
-/sbin/ldconfig -n $RPM_BUILD_ROOT%{_libdir}
-
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] && rm -rf $RPM_BUILD_ROOT;
-
-%files
-%defattr(-, root, root)
-%{_libdir}/libmysqlclient*
-
-# The spec file changelog only includes changes made to the spec file
-# itself - note that they must be ordered by date (important when
-# merging BK trees)
-%changelog
-* Tue Dec 22 2009 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Change RPM file naming:
- - Suffix like "-m2", "-rc" becomes part of version as "_m2", "_rc".
- - Release counts from 1, not 0.
-
diff --git a/support-files/SELinux/CMakeLists.txt b/support-files/SELinux/CMakeLists.txt
deleted file mode 100644
index 59e4dec560f..00000000000
--- a/support-files/SELinux/CMakeLists.txt
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2017, MariaDB
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
-
-FIND_PROGRAM(CHECKMODULE checkmodule)
-FIND_PROGRAM(SEMODULE_PACKAGE semodule_package)
-MARK_AS_ADVANCED(CHECKMODULE SEMODULE_PACKAGE)
-
-SET(params DESTINATION ${INSTALL_SUPPORTFILESDIR}/SELinux COMPONENT SupportFiles)
-
-IF(CHECKMODULE AND SEMODULE_PACKAGE)
- FOREACH(pol mariadb)
- SET(src ${CMAKE_CURRENT_SOURCE_DIR}/${pol}.te)
- SET(mod ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${pol}-pp.dir/${pol}.mod)
- SET(out ${CMAKE_CURRENT_BINARY_DIR}/${pol}.pp)
- ADD_CUSTOM_COMMAND(OUTPUT ${out}
- COMMAND ${CHECKMODULE} -M -m ${src} -o ${mod}
- COMMAND ${SEMODULE_PACKAGE} -m ${mod} -o ${out}
- DEPENDS ${src})
- ADD_CUSTOM_TARGET(${pol}-pp ALL DEPENDS ${out})
- INSTALL(FILES ${out} ${params})
- ENDFOREACH()
-ENDIF()
-INSTALL(FILES mariadb.te rhel4-mysql.fc rhel4-mysql.te ${params})
diff --git a/support-files/SELinux/rhel4-mysql.fc b/support-files/SELinux/rhel4-mysql.fc
deleted file mode 100644
index 313eb2caae7..00000000000
--- a/support-files/SELinux/rhel4-mysql.fc
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2007 MySQL AB
-# Use is subject to license terms
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
-
-# MySQL Database Server
-
-#
-# /etc
-#
-/etc/my\.cnf -- gen_context(system_u:object_r:mysqld_etc_t,s0)
-/etc/mysql(/.*)? gen_context(system_u:object_r:mysqld_etc_t,s0)
-
-#
-# /usr
-# Red Hat compatibility
-/usr/libexec/mysqld -- gen_context(system_u:object_r:mysqld_exec_t,s0)
-
-# MySQL AB compatibility
-/usr/sbin/mysqld(-max)? -- gen_context(system_u:object_r:mysqld_exec_t,s0)
-
-#
-# /var
-#
-/var/lib/mysql(/.*)? gen_context(system_u:object_r:mysqld_db_t,s0)
-/var/lib/mysql/mysql\.sock -s gen_context(system_u:object_r:mysqld_var_run_t,s0)
-
-/var/log/mysql.* -- gen_context(system_u:object_r:mysqld_log_t,s0)
-
-/var/run/mysqld(/.*)? gen_context(system_u:object_r:mysqld_var_run_t,s0)
diff --git a/support-files/SELinux/rhel4-mysql.te b/support-files/SELinux/rhel4-mysql.te
deleted file mode 100644
index 65b8bcc17a4..00000000000
--- a/support-files/SELinux/rhel4-mysql.te
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright (C) 2007 MySQL AB
-# Use is subject to license terms
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA
-
-policy_module(mysql,1.0.0)
-
-########################################
-#
-# Declarations
-#
-
-type mysqld_t;
-type mysqld_exec_t;
-init_daemon_domain(mysqld_t,mysqld_exec_t)
-
-type mysqld_var_run_t;
-files_pid_file(mysqld_var_run_t)
-
-type mysqld_db_t;
-files_type(mysqld_db_t)
-
-type mysqld_etc_t alias etc_mysqld_t;
-files_config_file(mysqld_etc_t)
-
-type mysqld_log_t;
-logging_log_file(mysqld_log_t)
-
-type mysqld_tmp_t;
-files_tmp_file(mysqld_tmp_t)
-
-########################################
-#
-# Local policy
-#
-
-allow mysqld_t self:capability { dac_override setgid setuid sys_resource net_bind_service };
-dontaudit mysqld_t self:capability sys_tty_config;
-allow mysqld_t self:process { setsched getsched setrlimit signal_perms rlimitinh };
-allow mysqld_t self:fifo_file { read write };
-allow mysqld_t self:unix_stream_socket create_stream_socket_perms;
-allow mysqld_t self:tcp_socket create_stream_socket_perms;
-allow mysqld_t self:udp_socket create_socket_perms;
-
-allow mysqld_t mysqld_db_t:dir create_dir_perms;
-allow mysqld_t mysqld_db_t:file create_file_perms;
-allow mysqld_t mysqld_db_t:lnk_file create_lnk_perms;
-files_var_lib_filetrans(mysqld_t,mysqld_db_t,{ dir file })
-
-allow mysqld_t mysqld_etc_t:file { getattr read };
-allow mysqld_t mysqld_etc_t:lnk_file { getattr read };
-allow mysqld_t mysqld_etc_t:dir list_dir_perms;
-
-allow mysqld_t mysqld_log_t:file create_file_perms;
-logging_log_filetrans(mysqld_t,mysqld_log_t,file)
-
-allow mysqld_t mysqld_tmp_t:dir create_dir_perms;
-allow mysqld_t mysqld_tmp_t:file create_file_perms;
-files_tmp_filetrans(mysqld_t, mysqld_tmp_t, { file dir })
-
-allow mysqld_t mysqld_var_run_t:dir rw_dir_perms;
-allow mysqld_t mysqld_var_run_t:sock_file create_file_perms;
-allow mysqld_t mysqld_var_run_t:file create_file_perms;
-files_pid_filetrans(mysqld_t,mysqld_var_run_t,file)
-
-kernel_read_system_state(mysqld_t)
-kernel_read_kernel_sysctls(mysqld_t)
-
-corenet_non_ipsec_sendrecv(mysqld_t)
-corenet_tcp_sendrecv_all_if(mysqld_t)
-corenet_udp_sendrecv_all_if(mysqld_t)
-corenet_tcp_sendrecv_all_nodes(mysqld_t)
-corenet_udp_sendrecv_all_nodes(mysqld_t)
-corenet_tcp_sendrecv_all_ports(mysqld_t)
-corenet_udp_sendrecv_all_ports(mysqld_t)
-corenet_tcp_bind_all_nodes(mysqld_t)
-corenet_tcp_bind_mysqld_port(mysqld_t)
-corenet_tcp_connect_mysqld_port(mysqld_t)
-corenet_sendrecv_mysqld_client_packets(mysqld_t)
-corenet_sendrecv_mysqld_server_packets(mysqld_t)
-
-dev_read_sysfs(mysqld_t)
-
-fs_getattr_all_fs(mysqld_t)
-fs_search_auto_mountpoints(mysqld_t)
-
-term_dontaudit_use_console(mysqld_t)
-
-domain_use_interactive_fds(mysqld_t)
-
-files_getattr_var_lib_dirs(mysqld_t)
-files_read_etc_runtime_files(mysqld_t)
-files_read_etc_files(mysqld_t)
-files_read_usr_files(mysqld_t)
-files_search_var_lib(mysqld_t)
-
-auth_use_nsswitch(mysqld_t)
-
-init_use_fds(mysqld_t)
-init_use_script_ptys(mysqld_t)
-
-libs_use_ld_so(mysqld_t)
-libs_use_shared_libs(mysqld_t)
-
-logging_send_syslog_msg(mysqld_t)
-
-miscfiles_read_localization(mysqld_t)
-
-sysnet_read_config(mysqld_t)
-
-userdom_dontaudit_use_unpriv_user_fds(mysqld_t)
-# for /root/.my.cnf - should not be needed:
-userdom_read_sysadm_home_content_files(mysqld_t)
-
-ifdef(`distro_redhat',`
- # because Fedora has the sock_file in the database directory
- type_transition mysqld_t mysqld_db_t:sock_file mysqld_var_run_t;
-')
-
-ifdef(`targeted_policy',`
- term_dontaudit_use_unallocated_ttys(mysqld_t)
- term_dontaudit_use_generic_ptys(mysqld_t)
- files_dontaudit_read_root_files(mysqld_t)
-')
-
-optional_policy(`
- daemontools_service_domain(mysqld_t, mysqld_exec_t)
-')
-
-optional_policy(`
- seutil_sigchld_newrole(mysqld_t)
-')
-
-optional_policy(`
- udev_read_db(mysqld_t)
-')
diff --git a/support-files/compiler_warnings.supp b/support-files/compiler_warnings.supp
index 6a31ff21c55..44f122d9473 100644
--- a/support-files/compiler_warnings.supp
+++ b/support-files/compiler_warnings.supp
@@ -13,7 +13,6 @@ kernel_types.h : .*only defines private constructors and has no friends.* : 51
Dbtup.hpp: .*only defines private constructors and has no friends.*
diskpage.hpp: .*only defines private constructors and has no friends.*
tuppage.hpp: .*only defines private constructors and has no friends.*
-NdbScanOperation.cpp: .*unused variable '__align'.* : 1190-1200
sql_yacc.cc : .*label 'yyerrlab1' defined but not used.*
kernel_types.h : .*'struct Local_key' only defines private constructors and has no friends.*
lgman.hpp : .*'struct Lgman::Buffer_idx' only defines private constructors and has no friends.*
@@ -28,7 +27,6 @@ pars0grm.c: 'yyerrorlab' : unreferenced label
_flex_tmp.c: .*not enough actual parameters for macro 'yywrap'.*
lexyy.c : not enough actual parameters for macro 'yywrap'
pars0lex.l: .*conversion from 'ulint' to 'int', possible loss of data.*
-btr/btr0cur\.c: .*value computed is not used.*: 3175-3375
include/buf0buf\.ic: unused parameter .*mtr.*
fil/fil0fil\.c: pointer targets in passing argument.*differ in signedness
fil/fil0fil\.c: comparison between signed and unsigned : 3100-3199
@@ -44,7 +42,9 @@ ut/ut0ut\.c: ignoring return value of
srv/srv0srv\.c: value computed is not used
buf/buf0buf\.c: .*block_mutex.* might be used uninitialized
btr/btr0cur\.c: null argument where non-null required: 1800-3000
-btr/btr0btr\.c: null argument where non-null required: 2500-3000
+btr/btr0btr\.c: null argument where non-null required
+btr/btr0cur\.c: .*value computed is not used.*: 3175-3375
+btr/btr0sea\.c: passing argument 2 .* discards qualifiers from pointer target type
ibuf/ibuf0ibuf.c: null argument where non-null required: 700-1000
fsp0fsp\.c: result of 32-bit shift implicitly converted to 64 bits
log/log0log\.c : passing arg 1 of `atomic_add_64_nv' from incompatible pointer type
@@ -52,6 +52,14 @@ log/log0online\.c : passing arg 1 of `atomic_add_64_nv' from incompatible pointe
buf/buf0buf\.c : label.*loop2.* defined but not used
#
+# Xtradb engine
+#
+storage/xtradb/handler/ha_innodb\.cc: ignoring return value of
+storage/xtradb/row/row0log\.cc: ignoring return value of
+storage/xtradb/btr/btr0cur\.cc : null argument where non-null required
+storage/xtradb/btr/btr0scrub\.cc : null argument where non-null required
+
+#
# bdb is not critical to keep up to date
#
.*/bdb/.* : .*discards qualifiers from pointer target type.*
@@ -121,13 +129,6 @@ signal\.c : .*unused parameter.*
.* : uninitialized local variable .* used
#
-# The following should be fixed by the ndb team
-#
-.*/ndb/.* : .*used uninitialized in this function.*
-.*/ndb/.* : .*unused variable.*
-.*/ndb/.* : .*defined but not used.*
-
-#
# Aria warning that is ok in debug builds
#
storage/maria/ma_pagecache.c: .*'info_check_pin' defined but not used
@@ -149,6 +150,13 @@ mySTL/algorithm\.hpp: is used uninitialized in this function
include/pwdbased\.hpp: comparison of unsigned expression
#
+# OpenSSL
+#
+# The following comes because of different prototype between yassl and openssl.
+# Save as the argument is a function within the library.
+vio/viosslfactories\.c: discards ~const~ qualifier from pointer target type
+
+#
# Groff warnings on OpenSUSE.
#
.*/dbug/.*(groff|<standard input>) : .*
@@ -165,18 +173,42 @@ include/pwdbased\.hpp: comparison of unsigned expression
# jemalloc
#
jemalloc/src/jemalloc\.c: always_inline function might not be inlinable
+jemalloc/src/jemalloc\.c: set but not used
+
+#
+# Connect engine
+#
+storage/connect/ha_connect\.cc: might be clobbered by .*longjmp
+storage/connect/connect\.cc: might be clobbered by .*longjmp
+storage/connect/filamvct\.cpp: ignoring return value of
+storage/connect/filamvct\.cpp: might be clobbered by .*longjmp
+storage/connect/xindex\.cpp: ignoring return value of
+storage/connect/value\.cpp: always false
+
+#
+# mroonga
+#
+groonga/lib/expr\.c: propagation disabled
+groonga/lib/expr\.c: PRE disabled
+groonga/lib/expr\.c: always false
+
+#
+# Mroonga
+#
+groonga/lib/expr\.c : const/copy propagation disabled
#
# Unexplanable (?) stuff
#
-listener.cc : .*conversion from 'SOCKET' to 'int'.*
-net_serv.cc : .*conversion from 'SOCKET' to 'int'.*
+listener\.cc : .*conversion from 'SOCKET' to 'int'.*
+net_serv\.cc : .*conversion from 'SOCKET' to 'int'.*
#
# Ignorable warnings from header files
#
backward_warning\.h : This file includes at least one
/usr/include/i386-linux-gnu/bits/string3\.h: memset used with constant zero length parameter
+bits/string3.h : might overflow destination buffer
# allow a little moving space for the warning below
mi_packrec\.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 560-600
@@ -187,6 +219,18 @@ ma_packrec\.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 550
#
.* : .*no matching operator delete found; memory will not be freed if initialization throws an exception.*
ctype-simple\.c : .*unary minus operator applied to unsigned type, result still unsigned.*
+sql/sys_vars\.cc : invalid access to non-static data member
+string3\.h : memset used with constant zero length parameter
+
+#
+# Ignorable errors on mac
+#
+my_aes\.c: deprecated
+my_sha1\.cc: deprecated
+my_md5\.cc: deprecated
+my_rnd\.cc: deprecated
+mdl\.cc: invalid access
+mdl\.cc: offsetoff
# Wrong warning due to GCC bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29478
regexec\.c : passing argument 3 of.*matcher.* discards qualifiers from pointer target type
diff --git a/support-files/config.huge.ini.sh b/support-files/config.huge.ini.sh
deleted file mode 100644
index 1464fa80b18..00000000000
--- a/support-files/config.huge.ini.sh
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright (c) 2008 MySQL AB
-# Use is subject to license terms.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
-#
-######################################################
-# MySQL NDB Cluster Huge Sample Configuration File #
-######################################################
-# This files assumes that you are using at least 9 #
-# hosts for running the cluster. Hostnames and paths #
-# listed below should be changed to match your setup #
-######################################################
-
-[NDBD DEFAULT]
-NoOfReplicas: 2
-DataDir: /add/path/here
-FileSystemPath: /add/path/here
-
-# Data Memory, Index Memory, and String Memory #
-DataMemory: 6000M
-IndexMemory: 1500M
-StringMemory: 5
-
-# Transaction Parameters #
-MaxNoOfConcurrentTransactions: 4096
-MaxNoOfConcurrentOperations: 100000
-MaxNoOfLocalOperations: 100000
-
-# Transaction Temporary Storage #
-MaxNoOfConcurrentIndexOperations: 8192
-MaxNoOfFiredTriggers: 4000
-TransactionBufferMemory: 1M
-
-# Scans and buffering #
-MaxNoOfConcurrentScans: 300
-MaxNoOfLocalScans: 32
-BatchSizePerLocalScan: 64
-LongMessageBuffer: 1M
-
-# Logging and Checkpointing #
-NoOfFragmentLogFiles: 300
-FragmentLogFileSize: 16M
-MaxNoOfOpenFiles: 40
-InitialNoOfOpenFiles: 27
-MaxNoOfSavedMessages: 25
-
-# Metadata Objects #
-MaxNoOfAttributes: 1500
-MaxNoOfTables: 400
-MaxNoOfOrderedIndexes: 200
-MaxNoOfUniqueHashIndexes: 200
-MaxNoOfTriggers: 770
-
-# Boolean Parameters #
-LockPagesInMainMemory: 0
-StopOnError: 1
-Diskless: 0
-ODirect: 0
-
-# Controlling Timeouts, Intervals, and Disk Paging #
-TimeBetweenWatchDogCheck: 6000
-TimeBetweenWatchDogCheckInitial: 6000
-StartPartialTimeout: 30000
-StartPartitionedTimeout: 60000
-StartFailureTimeout: 1000000
-HeartbeatIntervalDbDb: 2000
-HeartbeatIntervalDbApi: 3000
-TimeBetweenLocalCheckpoints: 20
-TimeBetweenGlobalCheckpoints: 2000
-TransactionInactiveTimeout: 0
-TransactionDeadlockDetectionTimeout: 1200
-DiskSyncSize: 4M
-DiskCheckpointSpeed: 10M
-DiskCheckpointSpeedInRestart: 100M
-ArbitrationTimeout: 10
-
-# Buffering and Logging #
-UndoIndexBuffer: 2M
-UndoDataBuffer: 1M
-RedoBuffer: 32M
-LogLevelStartup: 15
-LogLevelShutdown: 3
-LogLevelStatistic: 0
-LogLevelCheckpoint: 0
-LogLevelNodeRestart: 0
-LogLevelConnection: 0
-LogLevelError: 15
-LogLevelCongestion: 0
-LogLevelInfo: 3
-MemReportFrequency: 0
-
-# Backup Parameters #
-BackupDataBufferSize: 2M
-BackupLogBufferSize: 2M
-BackupMemory: 64M
-BackupWriteSize: 32K
-BackupMaxWriteSize: 256K
-
-[MGM DEFAULT]
-PortNumber: 1186
-DataDir: /add/path/here
-
-[TCP DEFAULT]
-SendBufferMemory: 2M
-
-#######################################
-# Change HOST1 to the name of the NDB_MGMD host
-# Change HOST2 to the name of the NDB_MGMD host
-# Change HOST3 to the name of the NDB_MGMD host
-# Change HOST4 to the name of the NDBD host
-# Change HOST5 to the name of the NDBD host
-# Change HOST6 to the name of the NDBD host
-# Change HOST7 to the name of the NDBD host
-# Change HOST8 to the name of the NDBD host
-# Change HOST9 to the name of the NDBD host
-#######################################
-
-[NDB_MGMD]
-Id: 1
-HostName: HOST1
-ArbitrationRank: 1
-
-[NDB_MGMD]
-Id: 2
-HostName: HOST2
-ArbitrationRank: 1
-
-[NDB_MGMD]
-Id: 3
-HostName: HOST3
-ArbitrationRank: 1
-
-[NDBD]
-Id: 4
-HostName: HOST4
-
-[NDBD]
-Id: 5
-HostName: HOST5
-
-[NDBD]
-Id: 6
-HostName: HOST6
-
-[NDBD]
-Id: 7
-HostName: HOST7
-
-[NDBD]
-Id: 8
-HostName: HOST8
-
-[NDBD]
-Id: 9
-HostName: HOST9
-
-######################################################
-# Note: The following can be MySQLD connections or #
-# NDB API application connecting to the cluster #
-######################################################
-
-[API]
-Id: 10
-HostName: HOST1
-ArbitrationRank: 2
-
-[API]
-Id: 11
-HostName: HOST2
-ArbitrationRank: 2
-
-[API]
-Id: 12
-HostName: HOST3
-
-[API]
-Id: 13
-HostName: HOST4
-
-[API]
-Id: 14
-HostName: HOST5
-
-[API]
-Id: 15
-HostName: HOST6
-
-[API]
-Id: 16
-HostName: HOST7
-
-[API]
-Id: 17
-HostName: HOST8
-
-[API]
-Id: 19
-HostName: HOST9
-
-[API]
-Id: 20
-
-[API]
-Id: 21
-
-[API]
-Id: 22
-
-[API]
-Id: 23
-
-[API]
-Id: 24
-
-[API]
-Id: 25
-
diff --git a/support-files/config.medium.ini.sh b/support-files/config.medium.ini.sh
deleted file mode 100644
index eb40a5a8231..00000000000
--- a/support-files/config.medium.ini.sh
+++ /dev/null
@@ -1,139 +0,0 @@
-# Copyright (c) 2008 MySQL AB
-# Use is subject to license terms.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
-#
-# MySQL NDB Cluster Medium Sample Configuration File
-#
-# This files assumes that you are using at least 6
-# hosts for running the cluster. Hostnames and paths
-# listed below should be changed to match your setup
-#
-
-[NDBD DEFAULT]
-NoOfReplicas: 2
-DataDir: /add/path/here
-FileSystemPath: /add/path/here
-
-
-# Data Memory, Index Memory, and String Memory
-
-DataMemory: 3000M
-IndexMemory: 800M
-BackupMemory: 64M
-
-# Transaction Parameters
-
-MaxNoOfConcurrentOperations: 100000
-MaxNoOfLocalOperations: 100000
-
-# Buffering and Logging
-
-RedoBuffer: 16M
-
-# Logging and Checkpointing
-
-NoOfFragmentLogFiles: 200
-
-# Metadata Objects
-
-MaxNoOfAttributes: 500
-MaxNoOfTables: 100
-
-# Scans and Buffering
-
-MaxNoOfConcurrentScans: 100
-
-
-[MGM DEFAULT]
-PortNumber: 1186
-DataDir: /add/path/here
-
-#
-# Change HOST1 to the name of the NDB_MGMD host
-# Change HOST2 to the name of the NDB_MGMD host
-# Change HOST3 to the name of the NDBD host
-# Change HOST4 to the name of the NDBD host
-# Change HOST5 to the name of the NDBD host
-# Change HOST6 to the name of the NDBD host
-#
-
-[NDB_MGMD]
-Id: 1
-HostName: HOST1
-ArbitrationRank: 1
-
-[NDB_MGMD]
-Id: 2
-HostName: HOST2
-ArbitrationRank: 1
-
-[NDBD]
-Id: 3
-HostName: HOST3
-
-[NDBD]
-Id: 4
-HostName: HOST4
-
-[NDBD]
-Id: 5
-HostName: HOST5
-
-[NDBD]
-Id: 6
-HostName: HOST6
-
-#
-# Note: The following can be MySQLD connections or
-# NDB API application connecting to the cluster
-#
-
-[API]
-Id: 7
-HostName: HOST1
-ArbitrationRank: 2
-
-[API]
-Id: 8
-HostName: HOST2
-ArbitrationRank: 2
-
-[API]
-Id: 9
-HostName: HOST3
-ArbitrationRank: 2
-
-[API]
-Id: 10
-HostName: HOST4
-
-[API]
-Id: 11
-HostName: HOST5
-
-[API]
-Id: 12
-HostName: HOST6
-
-[API]
-Id: 13
-
-[API]
-Id: 14
-
-[API]
-Id: 15
-
-
diff --git a/support-files/config.small.ini.sh b/support-files/config.small.ini.sh
deleted file mode 100644
index c316dbd5b6d..00000000000
--- a/support-files/config.small.ini.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright (c) 2008 MySQL AB
-# Use is subject to license terms.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
-#
-# MySQL NDB Cluster Small Sample Configuration File
-#
-# This files assumes that you are using 1 to 3 hosts
-# for running the cluster. Hostnames and paths listed
-# below should be changed to match your setup.
-#
-# Note: You can change localhost for a different host
-#
-
-[NDBD DEFAULT]
-NoOfReplicas: 2
-DataDir: /add/path/here
-FileSystemPath: /add/path/here
-
-# Data Memory, Index Memory, and String Memory
-
-DataMemory: 600M
-IndexMemory: 100M
-BackupMemory: 64M
-
-[MGM DEFAULT]
-PortNumber: 1186
-DataDir: /add/path/here
-
-[NDB_MGMD]
-Id: 1
-HostName: localhost
-ArbitrationRank: 1
-
-[NDBD]
-Id: 2
-HostName: localhost
-
-[NDBD]
-Id: 3
-HostName: localhost
-
-#
-# Note: The following can be MySQLD connections or
-# NDB API application connecting to the cluster
-#
-
-[API]
-Id: 4
-HostName: localhost
-ArbitrationRank: 2
-
-[API]
-Id: 5
-HostName: localhost
-
-[API]
-Id: 6
-HostName: localhost
-
-[API]
-Id: 7
-
-[API]
-Id: 8
-
-[API]
-Id: 9
-
diff --git a/support-files/mariadb.pc.in b/support-files/mariadb.pc.in
new file mode 100644
index 00000000000..bc84a5c5c4c
--- /dev/null
+++ b/support-files/mariadb.pc.in
@@ -0,0 +1,23 @@
+# these four variables are present in almost every .pc file
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/@INSTALL_LIBDIR@
+includedir=${prefix}/@INSTALL_INCLUDEDIR@
+# those are rarely present or not at all, but we export them regardless
+bindir=${prefix}/@INSTALL_BINDIR@
+sbindir=${prefix}/@INSTALL_SBINDIR@
+scriptdir=${prefix}/@INSTALL_SCRIPTDIR@
+plugindir=${prefix}/@INSTALL_PLUGINDIR@
+docdir=${prefix}/@INSTALL_DOCDIR@
+mandir=${prefix}/@INSTALL_MANDIR@
+sharedir=${prefix}/@INSTALL_SHAREDIR@
+mysqlsharedir=${prefix}/@INSTALL_MYSQLSHAREDIR@
+mysqltestdir=${prefix}/@INSTALL_MYSQLTESTDIR@
+socket=@INSTALL_UNIX_ADDRDIR@
+
+Name: @CPACK_PACKAGE_NAME@
+Description: @CPACK_PACKAGE_DESCRIPTION_SUMMARY@
+URL: @CPACK_PACKAGE_URL@
+Version: @VERSION@
+Libs: -L${libdir} @LIBS_FOR_CLIENTS@
+Cflags: -I${includedir} -I${includedir}/.. @CFLAGS_FOR_CLIENTS@
diff --git a/support-files/mariadb.service.in b/support-files/mariadb.service.in
new file mode 100644
index 00000000000..ef9fa5c2a22
--- /dev/null
+++ b/support-files/mariadb.service.in
@@ -0,0 +1,153 @@
+#
+# /etc/systemd/system/mariadb.service
+#
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Thanks to:
+# Daniel Black
+# Erkan Yanar
+# David Strauss
+# and probably others
+
+[Unit]
+Description=MariaDB @VERSION@ database server
+Documentation=man:mysqld(8)
+Documentation=https://mariadb.com/kb/en/library/systemd/
+After=network.target
+After=syslog.target
+
+[Install]
+WantedBy=multi-user.target
+Alias=mysql.service
+Alias=mysqld.service
+
+
+[Service]
+
+##############################################################################
+## Core requirements
+##
+
+Type=notify
+
+# Setting this to true can break replication and the Type=notify settings
+# See also bind-address mysqld option.
+PrivateNetwork=false
+
+##############################################################################
+## Package maintainers
+##
+
+User=mysql
+Group=mysql
+
+# To allow memlock to be used as non-root user if set in configuration
+CapabilityBoundingSet=CAP_IPC_LOCK
+
+# Prevent writes to /usr, /boot, and /etc
+ProtectSystem=full
+
+# Doesn't yet work properly with SELinux enabled
+# NoNewPrivileges=true
+
+PrivateDevices=true
+
+# Prevent accessing /home, /root and /run/user
+ProtectHome=true
+
+# Execute pre and post scripts as root, otherwise it does it as User=
+PermissionsStartOnly=true
+
+@SYSTEMD_EXECSTARTPRE@
+
+# Perform automatic wsrep recovery. When server is started without wsrep,
+# galera_recovery simply returns an empty string. In any case, however,
+# the script is not expected to return with a non-zero status.
+# It is always safe to unset _WSREP_START_POSITION environment variable.
+# Do not panic if galera_recovery script is not available. (MDEV-10538)
+ExecStartPre=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION"
+ExecStartPre=/bin/sh -c "[ ! -e @bindir@/galera_recovery ] && VAR= || \
+ VAR=`@bindir@/galera_recovery`; [ $? -eq 0 ] \
+ && systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1"
+
+# Needed to create system tables etc.
+# ExecStartPre=@scriptdir@/mysql_install_db -u mysql
+
+# Start main service
+# MYSQLD_OPTS here is for users to set in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
+# Use the [Service] section and Environment="MYSQLD_OPTS=...".
+# This isn't a replacement for my.cnf.
+# _WSREP_NEW_CLUSTER is for the exclusive use of the script galera_new_cluster
+ExecStart=@sbindir@/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION
+@SYSTEMD_EXECSTARTPOST@
+
+# Unset _WSREP_START_POSITION environment variable.
+ExecStartPost=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION"
+
+KillSignal=SIGTERM
+
+# Don't want to see an automated SIGKILL ever
+SendSIGKILL=no
+
+# Restart crashed server only, on-failure would also restart, for example, when
+# my.cnf contains unknown option
+Restart=on-abort
+RestartSec=5s
+
+UMask=007
+
+##############################################################################
+## USERs can override
+##
+##
+## by creating a file in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
+## and adding/setting the following under [Service] will override this file's
+## settings.
+
+# Useful options not previously available in [mysqld_safe]
+
+# Kernels like killing mysqld when out of memory because its big.
+# Lets temper that preference a little.
+# OOMScoreAdjust=-600
+
+# Explicitly start with high IO priority
+# BlockIOWeight=1000
+
+# If you don't use the /tmp directory for SELECT ... OUTFILE and
+# LOAD DATA INFILE you can enable PrivateTmp=true for a little more security.
+PrivateTmp=false
+
+##
+## Options previously available to be set via [mysqld_safe]
+## that now needs to be set by systemd config files as mysqld_safe
+## isn't executed.
+##
+
+# Number of files limit. previously [mysqld_safe] open-file-limit
+LimitNOFILE=16364
+
+# Maximium core size. previously [mysqld_safe] core-file-size
+# LimitCore=
+
+# Nice priority. previously [mysqld_safe] nice
+# Nice=-5
+
+# Timezone. previously [mysqld_safe] timezone
+# Environment="TZ=UTC"
+
+# Library substitutions. previously [mysqld_safe] malloc-lib with explicit paths
+# (in LD_LIBRARY_PATH) and library name (in LD_PRELOAD).
+# Environment="LD_LIBRARY_PATH=/path1 /path2" "LD_PRELOAD=
+
+# Flush caches. previously [mysqld_safe] flush-caches=1
+# ExecStartPre=sync
+# ExecStartPre=sysctl -q -w vm.drop_caches=3
+
+# numa-interleave=1 equalivant
+# Change ExecStart=numactl --interleave=all @sbindir@/mysqld......
+
+# crash-script equalivent
+# FailureAction=
diff --git a/support-files/mariadb@.service.in b/support-files/mariadb@.service.in
new file mode 100644
index 00000000000..465a0d94c62
--- /dev/null
+++ b/support-files/mariadb@.service.in
@@ -0,0 +1,174 @@
+# Multi instance version of mariadb. For if you run multiple versions at once.
+# Also used for mariadb@bootstrap to bootstrap Galera.
+#
+# create config file @sysconf2dir@/my{instancename}.cnf
+#
+# start as systemctl start mariadb@{instancename}.server
+
+# This file is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+#
+# Thanks to:
+# Daniel Black
+# Erkan Yanar
+# David Strauss
+# and probably others
+# Inspired from https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-db/mysql-init-scripts/files/mysqld_at.service
+
+[Unit]
+Description=MariaDB @VERSION@ database server (multi-instance)
+Documentation=man:mysqld(8)
+Documentation=https://mariadb.com/kb/en/library/systemd/
+After=network.target
+After=syslog.target
+
+ConditionPathExists=@sysconf2dir@/my%I.cnf
+
+[Install]
+WantedBy=multi-user.target
+Alias=mysql.service
+Alias=mysqld.service
+
+
+[Service]
+
+##############################################################################
+## Core requirements
+##
+
+Type=notify
+
+# Setting this to true can break replication and the Type=notify settings
+# See also bind-address mysqld option.
+PrivateNetwork=false
+
+##############################################################################
+## Package maintainers
+##
+
+User=mysql
+Group=mysql
+
+# To allow memlock to be used as non-root user if set in configuration
+CapabilityBoundingSet=CAP_IPC_LOCK
+
+# Prevent writes to /usr, /boot, and /etc
+ProtectSystem=full
+
+# Doesn't yet work properly with SELinux enabled
+# NoNewPrivileges=true
+
+PrivateDevices=true
+
+# Prevent accessing /home, /root and /run/user
+ProtectHome=true
+
+# Execute pre and post scripts as root, otherwise it does it as User=
+PermissionsStartOnly=true
+
+# Perform automatic wsrep recovery. When server is started without wsrep,
+# galera_recovery simply returns an empty string. In any case, however,
+# the script is not expected to return with a non-zero status.
+# It is always safe to unset _WSREP_START_POSITION%I environment variable.
+# Do not panic if galera_recovery script is not available. (MDEV-10538)
+ExecStartPre=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION%I"
+
+ExecStartPre=/bin/sh -c "[ ! -e @bindir@/galera_recovery ] && VAR= || \
+ VAR=`@bindir@/galera_recovery --defaults-file=@sysconf2dir@/my%I.cnf`; [ $? -eq 0 ] \
+ && systemctl set-environment _WSREP_START_POSITION%I=$VAR || exit 1"
+
+# Alternate: (remove ConditionPathExists above)
+# use [mysqld.INSTANCENAME] as sections in my.cnf
+#
+#ExecStartPre=/bin/sh -c "[ ! -e @bindir@/galera_recovery ] && VAR= || \
+# VAR=`@bindir@/galera_recovery --defaults-group-suffix=%I`; [ $? -eq 0 ] \
+# && systemctl set-environment _WSREP_START_POSITION%I=$VAR || exit 1"
+
+# Needed to create system tables etc.
+# ExecStartPre=@scriptdir@/mysql_install_db -u mysql
+
+# Start main service
+# MYSQLD_OPTS here is for users to set in /etc/systemd/system/mariadb@.service.d/MY_SPECIAL.conf
+# Use the [Service] section and Environment="MYSQLD_OPTS=...".
+# This isn't a replacement for my.cnf.
+# _WSREP_NEW_CLUSTER is for the exclusive use of the script galera_new_cluster
+
+# Note: Place $MYSQLD_OPTS at the very end for its options to take precedence.
+
+ExecStart=@sbindir@/mysqld --defaults-file=@sysconf2dir@/my%I.cnf \
+ $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION%I $MYSQLD_OPTS
+# Alternate: (remove ConditionPathExists above)
+# use [mysqld.INSTANCENAME] as sections in my.cnf
+#
+# ExecStart=@sbindir@/mysqld --defaults-group-suffix=%I \
+# $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION%I $MYSQLD_OPTS
+
+# Unset _WSREP_START_POSITION environment variable.
+ExecStartPost=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION%I"
+
+KillSignal=SIGTERM
+
+# Don't want to see an automated SIGKILL ever
+SendSIGKILL=no
+
+# Restart crashed server only, on-failure would also restart, for example, when
+# my.cnf contains unknown option
+Restart=on-abort
+RestartSec=5s
+
+UMask=007
+
+##############################################################################
+## USERs can override
+##
+##
+## by creating a file in /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf
+## and adding/setting the following below [Service] will override this file's
+## settings.
+
+# Useful options not previously available in [mysqld_safe]
+
+# Kernels like killing mysqld when out of memory because its big.
+# Lets temper that preference a little.
+# OOMScoreAdjust=-600
+
+# Explicitly start with high IO priority
+# BlockIOWeight=1000
+
+# If you don't use the /tmp directory for SELECT ... OUTFILE and
+# LOAD DATA INFILE you can enable PrivateTmp=true for a little more security.
+PrivateTmp=false
+
+##
+## Options previously available to be set via [mysqld_safe]
+## that now needs to be set by systemd config files as mysqld_safe
+## isn't executed.
+##
+
+# Number of files limit. previously [mysqld_safe] open-file-limit
+LimitNOFILE=16364
+
+# Maximium core size. previously [mysqld_safe] core-file-size
+# LimitCore=
+
+# Nice priority. previously [mysqld_safe] nice
+# Nice=-5
+
+# Timezone. previously [mysqld_safe] timezone
+# Environment="TZ=UTC"
+
+# Library substitutions. previously [mysqld_safe] malloc-lib with explicit paths
+# (in LD_LIBRARY_PATH) and library name (in LD_PRELOAD).
+# Environment="LD_LIBRARY_PATH=/path1 /path2" "LD_PRELOAD=
+
+# Flush caches. previously [mysqld_safe] flush-caches=1
+# ExecStartPre=sync
+# ExecStartPre=sysctl -q -w vm.drop_caches=3
+
+# numa-interleave=1 equalivant
+# Change ExecStart=numactl --interleave=all @sbindir@/mysqld......
+
+# crash-script equalivent
+# FailureAction=
diff --git a/support-files/my-innodb-heavy-4G.cnf.sh b/support-files/my-innodb-heavy-4G.cnf.sh
index d934b23cf0d..2590ff5ddea 100644
--- a/support-files/my-innodb-heavy-4G.cnf.sh
+++ b/support-files/my-innodb-heavy-4G.cnf.sh
@@ -306,7 +306,7 @@ server-id = 1
# Make the slave read-only. Only users with the SUPER privilege and the
# replication slave thread will be able to modify data on it. You can
-# use this to ensure that no applications will accidently modify data on
+# use this to ensure that no applications will accidentally modify data on
# the slave instead of the master
#read_only
@@ -439,7 +439,7 @@ innodb_log_files_in_group = 3
#innodb_log_group_home_dir
# Maximum allowed percentage of dirty pages in the InnoDB buffer pool.
-# If it is reached, InnoDB will start flushing them out agressively to
+# If it is reached, InnoDB will start flushing them out aggressively to
# not run out of clean pages at all. This is a soft limit, not
# guaranteed to be held.
innodb_max_dirty_pages_pct = 90
diff --git a/support-files/mysql-log-rotate.sh b/support-files/mysql-log-rotate.sh
index 0ee78b0f7ca..5d1b30b208e 100644
--- a/support-files/mysql-log-rotate.sh
+++ b/support-files/mysql-log-rotate.sh
@@ -30,7 +30,8 @@
if test -x @bindir@/mysqladmin && \
@bindir@/mysqladmin ping &>/dev/null
then
- @bindir@/mysqladmin flush-logs
+ @bindir@/mysqladmin --local flush-error-log \
+ flush-engine-log flush-general-log flush-slow-log
fi
endscript
}
diff --git a/support-files/mysql-multi.server.sh b/support-files/mysql-multi.server.sh
index a036374a4b2..f90d662fa8c 100644
--- a/support-files/mysql-multi.server.sh
+++ b/support-files/mysql-multi.server.sh
@@ -12,7 +12,7 @@
# started and shut down when the systems goes down. The '.svr1' suffix can
# be used to identify one of a number of servers. Multiple symlinks can be
# created, one per instance. The 'svrN' suffix can then be used to
-# prefix configuration variables in a seperate section of /etc/my.cnf.
+# prefix configuration variables in a separate section of /etc/my.cnf.
# See example below.
#
# A typical multi-instance /etc/my.cnf file would look like:
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index 97d3059c2ea..f3620d388c4 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -25,7 +25,6 @@
# Description: MariaDB is a very fast and reliable SQL database engine.
### END INIT INFO
-# If you install MariaDB on some other places than @prefix@, then you
# have to do one of the following things for this script to work:
#
# - Run this script from within the MariaDB installation directory
@@ -48,7 +47,7 @@ datadir=
# Default value, in seconds, afterwhich the script should timeout waiting
# for server start.
-# Value here is overriden by value in my.cnf.
+# Value here is overridden by value in my.cnf.
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900
@@ -97,6 +96,11 @@ lsb_functions="/lib/lsb/init-functions"
if test -f $lsb_functions ; then
. $lsb_functions
else
+ # Include non-LSB RedHat init functions to make systemctl redirect work
+ init_functions="/etc/init.d/functions"
+ if test -f $init_functions; then
+ . $init_functions
+ fi
log_success_msg()
{
echo " SUCCESS! $@"
@@ -114,12 +118,6 @@ mode=$1 # start or stop
[ $# -ge 1 ] && shift
-
-other_args="$*" # uncommon, but needed when called from an RPM upgrade action
- # Expected: "--skip-networking --skip-grant-tables"
- # They are not checked here, intentionally, as it is the resposibility
- # of the "spec" file author to give correct arguments only.
-
case `echo "testing\c"`,`echo -n testing` in
*c*,-n*) echo_n= echo_c= ;;
*c*,*) echo_n=-n echo_c= ;;
@@ -211,6 +209,7 @@ else
fi
parse_server_arguments `$print_defaults $extra_args --mysqld mysql.server`
+parse_server_arguments "$@"
# wait for the pid file to disappear
wait_for_gone () {
@@ -308,7 +307,7 @@ case "$mode" in
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
- $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args &
+ $bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" "$@" &
wait_for_ready; return_value=$?
# Make lock for RedHat / SuSE
@@ -355,8 +354,11 @@ case "$mode" in
'restart')
# Stop the service and regardless of whether it was
# running or not, start it again.
- if $0 stop $other_args; then
- $0 start $other_args
+ if $0 stop "$@"; then
+ if ! $0 start "$@"; then
+ log_failure_msg "Failed to restart server."
+ exit 1
+ fi
else
log_failure_msg "Failed to stop running server, so refusing to try to start."
exit 1
@@ -433,10 +435,21 @@ case "$mode" in
fi
exit $r
;;
+ 'bootstrap')
+ if test "$_use_systemctl" == 1 ; then
+ log_failure_msg "Please use galera_new_cluster to start the mariadb service with --wsrep-new-cluster"
+ exit 1
+ fi
+ # Bootstrap the cluster, start the first node
+ # that initiate the cluster
+ echo $echo_n "Bootstrapping the cluster.. "
+ $0 start $other_args --wsrep-new-cluster
+ exit $?
+ ;;
*)
# usage
basename=`basename "$0"`
- echo "Usage: $basename {start|stop|restart|reload|force-reload|status|configtest} [ MariaDB server options ]"
+ echo "Usage: $basename {start|stop|restart|reload|force-reload|status|configtest|bootstrap} [ MariaDB server options ]"
exit 1
;;
esac
diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh
deleted file mode 100644
index 49e31257404..00000000000
--- a/support-files/mysql.spec.sh
+++ /dev/null
@@ -1,2064 +0,0 @@
-# Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; see the file COPYING. If not, write to the
-# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston
-# MA 02110-1335 USA.
-
-##############################################################################
-# Some common macro definitions
-##############################################################################
-
-# NOTE: "vendor" is used in upgrade/downgrade check, so you can't
-# change these, has to be exactly as is.
-%global mysql_old_vendor MySQL AB
-%global mysql_vendor_2 Sun Microsystems, Inc.
-%global mysql_vendor Oracle and/or its affiliates
-
-%global mysql_version @VERSION@
-
-%global mysqld_user mysql
-%global mysqld_group mysql
-%global mysqldatadir /var/lib/mysql
-
-%global release 1
-
-
-#
-# Macros we use which are not available in all supported versions of RPM
-#
-# - defined/undefined are missing on RHEL4
-#
-%if %{expand:%{?defined:0}%{!?defined:1}}
-%define defined() %{expand:%%{?%{1}:1}%%{!?%{1}:0}}
-%endif
-%if %{expand:%{?undefined:0}%{!?undefined:1}}
-%define undefined() %{expand:%%{?%{1}:0}%%{!?%{1}:1}}
-%endif
-
-# ----------------------------------------------------------------------------
-# RPM build tools now automatically detect Perl module dependencies. This
-# detection causes problems as it is broken in some versions, and it also
-# provides unwanted dependencies from mandatory scripts in our package.
-# It might not be possible to disable this in all versions of RPM, but here we
-# try anyway. We keep the "AutoReqProv: no" for the "test" sub package, as
-# disabling here might fail, and that package has the most problems.
-# See:
-# http://fedoraproject.org/wiki/Packaging/Perl#Filtering_Requires:_and_Provides
-# http://www.wideopen.com/archives/rpm-list/2002-October/msg00343.html
-# ----------------------------------------------------------------------------
-%undefine __perl_provides
-%undefine __perl_requires
-
-##############################################################################
-# Command line handling
-##############################################################################
-#
-# To set options:
-#
-# $ rpmbuild --define="option <x>" ...
-#
-
-# ----------------------------------------------------------------------------
-# Commercial builds
-# ----------------------------------------------------------------------------
-%if %{undefined commercial}
-%define commercial 0
-%endif
-
-# ----------------------------------------------------------------------------
-# Source name
-# ----------------------------------------------------------------------------
-%if %{undefined src_base}
-%define src_base mysql
-%endif
-%define src_dir %{src_base}-%{mysql_version}
-
-# ----------------------------------------------------------------------------
-# Feature set (storage engines, options). Default to community (everything)
-# ----------------------------------------------------------------------------
-%if %{undefined feature_set}
-%define feature_set community
-%endif
-
-# ----------------------------------------------------------------------------
-# Server comment strings
-# ----------------------------------------------------------------------------
-%if %{undefined compilation_comment_debug}
-%define compilation_comment_debug MySQL Community Server - Debug (GPL)
-%endif
-%if %{undefined compilation_comment_release}
-%define compilation_comment_release MySQL Community Server (GPL)
-%endif
-
-# ----------------------------------------------------------------------------
-# Product and server suffixes
-# ----------------------------------------------------------------------------
-%if %{undefined product_suffix}
- %if %{defined short_product_tag}
- %define product_suffix -%{short_product_tag}
- %else
- %define product_suffix %{nil}
- %endif
-%endif
-
-%if %{undefined server_suffix}
-%define server_suffix %{nil}
-%endif
-
-# ----------------------------------------------------------------------------
-# Distribution support
-# ----------------------------------------------------------------------------
-%if %{undefined distro_specific}
-%define distro_specific 0
-%endif
-%if %{distro_specific}
- %if %(test -f /etc/enterprise-release && echo 1 || echo 0)
- %define oelver %(rpm -qf --qf '%%{version}\\n' /etc/enterprise-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
- %if "%oelver" == "4"
- %define distro_description Oracle Enterprise Linux 4
- %define distro_releasetag oel4
- %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %if "%oelver" == "5"
- %define distro_description Oracle Enterprise Linux 5
- %define distro_releasetag oel5
- %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %{error:Oracle Enterprise Linux %{oelver} is unsupported}
- %endif
- %endif
- %else
- %if %(test -f /etc/oracle-release && echo 1 || echo 0)
- %define elver %(rpm -qf --qf '%%{version}\\n' /etc/oracle-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
- %if "%elver" == "6" || "%elver" == "7"
- %define distro_description Oracle Linux %elver
- %define distro_releasetag el%elver
- %define distro_buildreq gcc-c++ ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %{error:Oracle Linux %{elver} is unsupported}
- %endif
- %else
- %if %(test -f /etc/redhat-release && echo 1 || echo 0)
- %define rhelver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g')
- %if "%rhelver" == "4"
- %define distro_description Red Hat Enterprise Linux 4
- %define distro_releasetag rhel4
- %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %if "%rhelver" == "5"
- %define distro_description Red Hat Enterprise Linux 5
- %define distro_releasetag rhel5
- %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %if "%rhelver" == "6"
- %define distro_description Red Hat Enterprise Linux 6
- %define distro_releasetag rhel6
- %define distro_buildreq gcc-c++ ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel
- %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools
- %else
- %{error:Red Hat Enterprise Linux %{rhelver} is unsupported}
- %endif
- %endif
- %endif
- %else
- %if %(test -f /etc/SuSE-release && echo 1 || echo 0)
- %define susever %(rpm -qf --qf '%%{version}\\n' /etc/SuSE-release | cut -d. -f1)
- %if "%susever" == "10"
- %define distro_description SUSE Linux Enterprise Server 10
- %define distro_releasetag sles10
- %define distro_buildreq gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client readline-devel zlib-devel cmake libaio-devel
- %define distro_requires aaa_base coreutils grep procps pwdutils
- %else
- %if "%susever" == "11"
- %define distro_description SUSE Linux Enterprise Server 11
- %define distro_releasetag sles11
- %define distro_buildreq gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client procps pwdutils readline-devel zlib-devel cmake libaio-devel
- %define distro_requires aaa_base coreutils grep procps pwdutils
- %else
- %{error:SuSE %{susever} is unsupported}
- %endif
- %endif
- %else
- %{error:Unsupported distribution}
- %endif
- %endif
- %endif
- %endif
-%else
- %define generic_kernel %(uname -r | cut -d. -f1-2)
- %define distro_description Generic Linux (kernel %{generic_kernel})
- %define distro_releasetag linux%{generic_kernel}
- %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel
- %define distro_requires coreutils grep procps /sbin/chkconfig /usr/sbin/useradd /usr/sbin/groupadd
-%endif
-
-# Avoid debuginfo RPMs, leaves binaries unstripped
-%define debug_package %{nil}
-
-# Hack to work around bug in RHEL5 __os_install_post macro, wrong inverted
-# test for __debug_package
-%define __strip /bin/true
-
-# ----------------------------------------------------------------------------
-# Support optional "tcmalloc" library (experimental)
-# ----------------------------------------------------------------------------
-%if %{defined malloc_lib_target}
-%define WITH_TCMALLOC 1
-%else
-%define WITH_TCMALLOC 0
-%endif
-
-##############################################################################
-# Configuration based upon above user input, not to be set directly
-##############################################################################
-
-%if 0%{?commercial}
-%define license_files_server %{src_dir}/LICENSE.mysql
-%define license_type Commercial
-%else
-%define license_files_server %{src_dir}/COPYING %{src_dir}/README
-%define license_type GPL
-%endif
-
-##############################################################################
-# Main spec file section
-##############################################################################
-
-Name: MySQL%{product_suffix}
-Summary: MySQL: a very fast and reliable SQL database server
-Group: Applications/Databases
-Version: @MYSQL_RPM_VERSION@
-Release: %{release}%{?distro_releasetag:.%{distro_releasetag}}
-Distribution: %{distro_description}
-License: Copyright (c) 2000, @MYSQL_COPYRIGHT_YEAR@, %{mysql_vendor}. All rights reserved. Under %{license_type} license as shown in the Description field.
-Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/%{src_dir}.tar.gz
-URL: http://www.mysql.com/
-Packager: MySQL Release Engineering <mysql-build@oss.oracle.com>
-Vendor: %{mysql_vendor}
-BuildRequires: %{distro_buildreq}
-%{?el7:Patch0: mysql-5.5-libmysqlclient-symbols.patch}
-
-# Regression tests may take a long time, override the default to skip them
-%{!?runselftest:%global runselftest 1}
-
-# Think about what you use here since the first step is to
-# run a rm -rf
-BuildRoot: %{_tmppath}/%{name}-%{version}-build
-
-# From the manual
-%description
-The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
-and robust SQL (Structured Query Language) database server. MySQL Server
-is intended for mission-critical, heavy-load production systems as well
-as for embedding into mass-deployed software. MySQL is a trademark of
-%{mysql_vendor}
-
-The MySQL software has Dual Licensing, which means you can use the MySQL
-software free of charge under the GNU General Public License
-(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
-licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
-the GPL. See the chapter "Licensing and Support" in the manual for
-further info.
-
-The MySQL web site (http://www.mysql.com/) provides the latest
-news and information about the MySQL software. Also please see the
-documentation and the manual for more information.
-
-##############################################################################
-# Sub package definition
-##############################################################################
-
-%package -n MySQL-server%{product_suffix}
-Summary: MySQL: a very fast and reliable SQL database server
-Group: Applications/Databases
-Requires: %{distro_requires}
-%if 0%{?commercial}
-Obsoletes: MySQL-server
-%else
-Obsoletes: MySQL-server-advanced
-%endif
-Obsoletes: mysql-server < %{version}-%{release}
-Obsoletes: mysql-server-advanced
-Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise
-Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl
-Provides: mysql-server = %{version}-%{release}
-Provides: mysql-server%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-server%{product_suffix}
-The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
-and robust SQL (Structured Query Language) database server. MySQL Server
-is intended for mission-critical, heavy-load production systems as well
-as for embedding into mass-deployed software. MySQL is a trademark of
-%{mysql_vendor}
-
-The MySQL software has Dual Licensing, which means you can use the MySQL
-software free of charge under the GNU General Public License
-(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
-licenses from %{mysql_vendor} if you do not wish to be bound by the terms of
-the GPL. See the chapter "Licensing and Support" in the manual for
-further info.
-
-The MySQL web site (http://www.mysql.com/) provides the latest news and
-information about the MySQL software. Also please see the documentation
-and the manual for more information.
-
-This package includes the MySQL server binary as well as related utilities
-to run and administer a MySQL server.
-
-If you want to access and work with the database, you have to install
-package "MySQL-client%{product_suffix}" as well!
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-client%{product_suffix}
-Summary: MySQL - Client
-Group: Applications/Databases
-%if 0%{?commercial}
-Obsoletes: MySQL-client
-%else
-Obsoletes: MySQL-client-advanced
-%endif
-Obsoletes: mysql < %{version}-%{release}
-Obsoletes: mysql-advanced < %{version}-%{release}
-Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise
-Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl
-Provides: mysql = %{version}-%{release}
-Provides: mysql%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-client%{product_suffix}
-This package contains the standard MySQL clients and administration tools.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-test%{product_suffix}
-Summary: MySQL - Test suite
-Group: Applications/Databases
-%if 0%{?commercial}
-Requires: MySQL-client-advanced perl
-Obsoletes: MySQL-test
-%else
-Requires: MySQL-client perl
-Obsoletes: MySQL-test-advanced
-%endif
-Obsoletes: mysql-test < %{version}-%{release}
-Obsoletes: mysql-test-advanced
-Obsoletes: mysql-bench MySQL-bench
-Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise
-Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl
-Provides: mysql-test = %{version}-%{release}
-Provides: mysql-test%{?_isa} = %{version}-%{release}
-AutoReqProv: no
-
-%description -n MySQL-test%{product_suffix}
-This package contains the MySQL regression test suite.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-devel%{product_suffix}
-Summary: MySQL - Development header files and libraries
-Group: Applications/Databases
-%if 0%{?commercial}
-Obsoletes: MySQL-devel
-%else
-Obsoletes: MySQL-devel-advanced
-%endif
-Obsoletes: mysql-devel < %{version}-%{release}
-Obsoletes: mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced
-Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise
-Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl
-Provides: mysql-devel = %{version}-%{release}
-Provides: mysql-devel%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-devel%{product_suffix}
-This package contains the development header files and libraries necessary
-to develop MySQL client applications.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-shared%{product_suffix}
-Summary: MySQL - Shared libraries
-Group: Applications/Databases
-%if 0%{?commercial}
-Obsoletes: MySQL-shared
-%else
-Obsoletes: MySQL-shared-advanced
-%endif
-Obsoletes: MySQL-shared-standard MySQL-shared-pro
-Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl
-Obsoletes: MySQL-shared-pro-gpl-cert
-Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise
-Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl
-
-%description -n MySQL-shared%{product_suffix}
-This package contains the shared libraries (*.so*) which certain languages
-and applications need to dynamically load and use MySQL.
-
-# ----------------------------------------------------------------------------
-%package -n MySQL-embedded%{product_suffix}
-Summary: MySQL - Embedded library
-Group: Applications/Databases
-%if 0%{?commercial}
-Requires: MySQL-devel-advanced
-Obsoletes: MySQL-embedded
-%else
-Requires: MySQL-devel
-Obsoletes: MySQL-embedded-advanced
-%endif
-Obsoletes: mysql-embedded < %{version}-%{release}
-Obsoletes: mysql-embedded-advanced
-Obsoletes: MySQL-embedded-pro
-Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise
-Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl
-Provides: mysql-embedded = %{version}-%{release}
-Provides: mysql-embedded%{?_isa} = %{version}-%{release}
-
-%description -n MySQL-embedded%{product_suffix}
-This package contains the MySQL server as an embedded library.
-
-The embedded MySQL server library makes it possible to run a full-featured
-MySQL server inside the client application. The main benefits are increased
-speed and more simple management for embedded applications.
-
-The API is identical for the embedded MySQL version and the
-client/server version.
-
-For a description of MySQL see the base MySQL RPM or http://www.mysql.com/
-
-##############################################################################
-%prep
-%setup -T -a 0 -c -n %{src_dir}
-pushd %{src_dir}
-%{?el7:%patch0 -p1}
-##############################################################################
-%build
-
-# Fail quickly and obviously if user tries to build as root
-%if %runselftest
- if [ x"`id -u`" = x0 ]; then
- echo "The MySQL regression tests may fail if run as root."
- echo "If you really need to build the RPM as root, use"
- echo "--define='runselftest 0' to skip the regression tests."
- exit 1
- fi
-%endif
-
-# Be strict about variables, bail at earliest opportunity, etc.
-set -eu
-
-# Optional package files
-touch optional-files-devel
-
-#
-# Set environment in order of preference, MYSQL_BUILD_* first, then variable
-# name, finally a default. RPM_OPT_FLAGS is assumed to be a part of the
-# default RPM build environment.
-#
-# We set CXX=gcc by default to support so-called 'generic' binaries, where we
-# do not have a dependancy on libgcc/libstdc++. This only works while we do
-# not require C++ features such as exceptions, and may need to be removed at
-# a later date.
-#
-
-# This is a hack, $RPM_OPT_FLAGS on ia64 hosts contains flags which break
-# the compile in cmd-line-utils/readline - needs investigation, but for now
-# we simply unset it and use those specified directly in cmake.
-%if "%{_arch}" == "ia64"
-RPM_OPT_FLAGS=
-%endif
-
-export PATH=${MYSQL_BUILD_PATH:-$PATH}
-export CC=${MYSQL_BUILD_CC:-${CC:-gcc}}
-export CXX=${MYSQL_BUILD_CXX:-${CXX:-gcc}}
-export CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}}
-export CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-${CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti}}
-export LDFLAGS=${MYSQL_BUILD_LDFLAGS:-${LDFLAGS:-}}
-export CMAKE=${MYSQL_BUILD_CMAKE:-${CMAKE:-cmake}}
-export MAKE_JFLAG=${MYSQL_BUILD_MAKE_JFLAG:-}
-
-# Build debug mysqld and libmysqld.a
-mkdir debug
-(
- cd debug
- # Attempt to remove any optimisation flags from the debug build
- CFLAGS=`echo " ${CFLAGS} " | \
- sed -e 's/ -O[0-9]* / /' \
- -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
- -e 's/ -unroll2 / /' \
- -e 's/ -ip / /' \
- -e 's/^ //' \
- -e 's/ $//'`
- CXXFLAGS=`echo " ${CXXFLAGS} " | \
- sed -e 's/ -O[0-9]* / /' \
- -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \
- -e 's/ -unroll2 / /' \
- -e 's/ -ip / /' \
- -e 's/^ //' \
- -e 's/ $//'`
- # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
- # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
- ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
- -DCMAKE_BUILD_TYPE=Debug \
- -DENABLE_DTRACE=OFF \
- -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
- -DFEATURE_SET="%{feature_set}" \
- -DCOMPILATION_COMMENT="%{compilation_comment_debug}" \
- -DMYSQL_SERVER_SUFFIX="%{server_suffix}"
- echo BEGIN_DEBUG_CONFIG ; egrep '^#define' include/config.h ; echo END_DEBUG_CONFIG
- make ${MAKE_JFLAG} VERBOSE=1
-)
-# Build full release
-mkdir release
-(
- cd release
- # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before
- # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM
- ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DENABLE_DTRACE=OFF \
- -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \
- -DFEATURE_SET="%{feature_set}" \
- -DCOMPILATION_COMMENT="%{compilation_comment_release}" \
- -DMYSQL_SERVER_SUFFIX="%{server_suffix}"
- echo BEGIN_NORMAL_CONFIG ; egrep '^#define' include/config.h ; echo END_NORMAL_CONFIG
- make ${MAKE_JFLAG} VERBOSE=1
-)
-
-%if %runselftest
- MTR_BUILD_THREAD=auto
- export MTR_BUILD_THREAD
-
- (cd release && make test-bt-fast || true)
-%endif
-
-##############################################################################
-%install
-
-RBR=$RPM_BUILD_ROOT
-MBD=$RPM_BUILD_DIR/%{src_dir}
-
-# Ensure that needed directories exists
-install -d $RBR%{_sysconfdir}/{logrotate.d,init.d}
-install -d $RBR%{mysqldatadir}/mysql
-install -d $RBR%{_datadir}/mysql-test
-install -d $RBR%{_datadir}/mysql/SELinux/RHEL4
-install -d $RBR%{_includedir}
-install -d $RBR%{_libdir}
-install -d $RBR%{_mandir}
-install -d $RBR%{_sbindir}
-
-mkdir -p $RBR%{_sysconfdir}/my.cnf.d
-
-# Install all binaries
-(
- cd $MBD/release
- make DESTDIR=$RBR install
-)
-
-# For gcc builds, include libgcc.a in the devel subpackage (BUG 4921). Do
-# this in a sub-shell to ensure we don't pollute the install environment
-# with compiler bits.
-(
- PATH=${MYSQL_BUILD_PATH:-$PATH}
- CC=${MYSQL_BUILD_CC:-${CC:-gcc}}
- CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}}
- if "${CC}" -v 2>&1 | grep '^gcc.version' >/dev/null 2>&1; then
- libgcc=`${CC} ${CFLAGS} --print-libgcc-file`
- if [ -f ${libgcc} ]; then
- mkdir -p $RBR%{_libdir}/mysql
- install -m 644 ${libgcc} $RBR%{_libdir}/mysql/libmygcc.a
- echo "%{_libdir}/mysql/libmygcc.a" >>optional-files-devel
- fi
- fi
-)
-
-# FIXME: at some point we should stop doing this and just install everything
-# FIXME: directly into %{_libdir}/mysql - perhaps at the same time as renaming
-# FIXME: the shared libraries to use libmysql*-$major.$minor.so syntax
-mv -v $RBR/%{_libdir}/*.a $RBR/%{_libdir}/mysql/
-
-# Install logrotate and autostart
-install -m 644 $MBD/release/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql
-install -m 755 $MBD/release/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql
-
-# Create a symlink "rcmysql", pointing to the init.script. SuSE users
-# will appreciate that, as all services usually offer this.
-ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql
-
-# Touch the place where the my.cnf config file might be located
-# Just to make sure it's in the file list and marked as a config file
-touch $RBR%{_sysconfdir}/my.cnf
-
-# Install SELinux files in datadir
-install -m 600 $MBD/%{src_dir}/support-files/RHEL4-SElinux/mysql.{fc,te} \
- $RBR%{_datadir}/mysql/SELinux/RHEL4
-
-%if %{WITH_TCMALLOC}
-# Even though this is a shared library, put it under /usr/lib*/mysql, so it
-# doesn't conflict with possible shared lib by the same name in /usr/lib*. See
-# `mysql_config --variable=pkglibdir` and mysqld_safe for how this is used.
-install -m 644 "%{malloc_lib_source}" \
- "$RBR%{_libdir}/mysql/%{malloc_lib_target}"
-%endif
-
-# Remove man pages we explicitly do not want to package, avoids 'unpackaged
-# files' warning.
-# This has become obsolete: rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1*
-
-##############################################################################
-# Post processing actions, i.e. when installed
-##############################################################################
-
-%pre -n MySQL-server%{product_suffix}
-# This is the code running at the beginning of a RPM upgrade action,
-# before replacing the old files with the new ones.
-
-# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
- mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'`
- PID_FILE_PATT=`%{_bindir}/my_print_defaults server mysqld | grep '^--pid-file=' | sed -n 's/--pid-file=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
- mysql_datadir=%{mysqldatadir}
-fi
-if [ -z "$PID_FILE_PATT" ]
-then
- PID_FILE_PATT="$mysql_datadir/*.pid"
-fi
-
-# Check if we can safely upgrade. An upgrade is only safe if it's from one
-# of our RPMs in the same version family.
-
-# Handle both ways of spelling the capability.
-installed=`rpm -q --whatprovides mysql-server 2> /dev/null`
-if [ $? -ne 0 -o -z "$installed" ]; then
- installed=`rpm -q --whatprovides MySQL-server 2> /dev/null`
-fi
-if [ $? -eq 0 -a -n "$installed" ]; then
- installed=`echo $installed | sed 's/\([^ ]*\) .*/\1/'` # Tests have shown duplicated package names
- vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1`
- version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1`
- myoldvendor='%{mysql_old_vendor}'
- myvendor_2='%{mysql_vendor_2}'
- myvendor='%{mysql_vendor}'
- myversion='%{mysql_version}'
-
- old_family=`echo $version \
- | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
- new_family=`echo $myversion \
- | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
-
- [ -z "$vendor" ] && vendor='<unknown>'
- [ -z "$old_family" ] && old_family="<unrecognized version $version>"
- [ -z "$new_family" ] && new_family="<bad package specification: version $myversion>"
-
- error_text=
- if [ "$vendor" != "$myoldvendor" \
- -a "$vendor" != "$myvendor_2" \
- -a "$vendor" != "$myvendor" ]; then
- error_text="$error_text
-The current MySQL server package is provided by a different
-vendor ($vendor) than $myoldvendor, $myvendor_2, or $myvendor.
-Some files may be installed to different locations, including log
-files and the service startup script in %{_sysconfdir}/init.d/.
-"
- fi
-
- if [ "$old_family" != "$new_family" ]; then
- error_text="$error_text
-Upgrading directly from MySQL $old_family to MySQL $new_family may not
-be safe in all cases. A manual dump and restore using mysqldump is
-recommended. It is important to review the MySQL manual's Upgrading
-section for version-specific incompatibilities.
-"
- fi
-
- if [ -n "$error_text" ]; then
- cat <<HERE >&2
-
-******************************************************************
-A MySQL server package ($installed) is installed.
-$error_text
-A manual upgrade is required.
-
-- Ensure that you have a complete, working backup of your data and my.cnf
- files
-- Shut down the MySQL server cleanly
-- Remove the existing MySQL packages. Usually this command will
- list the packages you should remove:
- rpm -qa | grep -i '^mysql-'
-
- You may choose to use 'rpm --nodeps -ev <package-name>' to remove
- the package which contains the mysqlclient shared library. The
- library will be reinstalled by the MySQL-shared-compat package.
-- Install the new MySQL packages supplied by $myvendor
-- Ensure that the MySQL server is started
-- Run the 'mysql_upgrade' program
-
-This is a brief description of the upgrade process. Important details
-can be found in the MySQL manual, in the Upgrading section.
-******************************************************************
-HERE
- exit 1
- fi
-fi
-
-# We assume that if there is exactly one ".pid" file,
-# it contains the valid PID of a running MySQL server.
-NR_PID_FILES=`ls -1 $PID_FILE_PATT 2>/dev/null | wc -l`
-case $NR_PID_FILES in
- 0 ) SERVER_TO_START='' ;; # No "*.pid" file == no running server
- 1 ) SERVER_TO_START='true' ;;
- * ) SERVER_TO_START='' # Situation not clear
- SEVERAL_PID_FILES=true ;;
-esac
-# That logic may be debated: We might check whether it is non-empty,
-# contains exactly one number (possibly a PID), and whether "ps" finds it.
-# OTOH, if there is no such process, it means a crash without a cleanup -
-# is that a reason not to start a new server after upgrade?
-
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
-
-if [ -f "$STATUS_FILE" ]; then
- echo "Some previous upgrade was not finished:"
- ls -ld $STATUS_FILE
- echo "Please check its status, then do"
- echo " rm $STATUS_FILE"
- echo "before repeating the MySQL upgrade."
- exit 1
-elif [ -n "$SEVERAL_PID_FILES" ] ; then
- echo "You have more than one PID file:"
- ls -ld $PID_FILE_PATT
- echo "Please check which one (if any) corresponds to a running server"
- echo "and delete all others before repeating the MySQL upgrade."
- exit 1
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-
-# The "pre" section code is also run on a first installation,
-# when there is no data directory yet. Protect against error messages.
-if [ -d $mysql_datadir ] ; then
- echo "MySQL RPM upgrade to version $NEW_VERSION" > $STATUS_FILE
- echo "'pre' step running at `date`" >> $STATUS_FILE
- echo >> $STATUS_FILE
- fcount=`ls -ltr $mysql_datadir/*.err 2>/dev/null | wc -l`
- if [ $fcount -gt 0 ] ; then
- echo "ERR file(s):" >> $STATUS_FILE
- ls -ltr $mysql_datadir/*.err >> $STATUS_FILE
- echo >> $STATUS_FILE
- echo "Latest 'Version' line in latest file:" >> $STATUS_FILE
- grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \
- tail -1 >> $STATUS_FILE
- echo >> $STATUS_FILE
- fi
-
- if [ -n "$SERVER_TO_START" ] ; then
- # There is only one PID file, race possibility ignored
- echo "PID file:" >> $STATUS_FILE
- ls -l $PID_FILE_PATT >> $STATUS_FILE
- cat $PID_FILE_PATT >> $STATUS_FILE
- echo >> $STATUS_FILE
- echo "Server process:" >> $STATUS_FILE
- ps -fp `cat $PID_FILE_PATT` >> $STATUS_FILE
- echo >> $STATUS_FILE
- echo "SERVER_TO_START=$SERVER_TO_START" >> $STATUS_FILE
- else
- # Take a note we checked it ...
- echo "PID file:" >> $STATUS_FILE
- ls -l $PID_FILE_PATT >> $STATUS_FILE 2>&1
- fi
-fi
-
-# Shut down a previously installed server first
-# Note we *could* make that depend on $SERVER_TO_START, but we rather don't,
-# so a "stop" is attempted even if there is no PID file.
-# (Maybe the "stop" doesn't work then, but we might fix that in itself.)
-if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- %{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
- echo "Giving mysqld 5 seconds to exit nicely"
- sleep 5
-fi
-
-%post -n MySQL-server%{product_suffix}
-# This is the code running at the end of a RPM install or upgrade action,
-# after the (new) files have been written.
-
-# ATTENTION: Parts of this are duplicated in the "triggerpostun" !
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
- mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
- mysql_datadir=%{mysqldatadir}
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
-
-# ----------------------------------------------------------------------
-# Create data directory if needed, check whether upgrade or install
-# ----------------------------------------------------------------------
-if [ ! -d "$mysql_datadir" ] ; then mkdir -m 755 "$mysql_datadir" ; fi
-if [ -f "$STATUS_FILE" ] ; then
- SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
-else
- SERVER_TO_START=''
-fi
-# echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
-if [ ! -d $mysql_datadir/mysql ] ; then
- mkdir $mysql_datadir/mysql $mysql_datadir/test
- echo "MySQL RPM installation of version $NEW_VERSION" >> $STATUS_FILE
-else
- # If the directory exists, we may assume it is an upgrade.
- echo "MySQL RPM upgrade to version $NEW_VERSION" >> $STATUS_FILE
-fi
-
-# ----------------------------------------------------------------------
-# Make MySQL start/shutdown automatically when the machine does it.
-# ----------------------------------------------------------------------
-# NOTE: This still needs to be debated. Should we check whether these links
-# for the other run levels exist(ed) before the upgrade?
-# use chkconfig on Enterprise Linux and newer SuSE releases
-if [ -x /sbin/chkconfig ] ; then
- /sbin/chkconfig --add mysql
-# use insserv for older SuSE Linux versions
-elif [ -x /sbin/insserv ] ; then
- /sbin/insserv %{_sysconfdir}/init.d/mysql
-fi
-
-# ----------------------------------------------------------------------
-# Create a MySQL user and group. Do not report any problems if it already
-# exists.
-# ----------------------------------------------------------------------
-groupadd -r %{mysqld_group} 2> /dev/null || true
-useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" \
- -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
-# The user may already exist, make sure it has the proper group nevertheless
-# (BUG#12823)
-usermod -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true
-
-# ----------------------------------------------------------------------
-# Change permissions so that the user that will run the MySQL daemon
-# owns all database files.
-# ----------------------------------------------------------------------
-chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
-
-# ----------------------------------------------------------------------
-# Initiate databases if needed
-# ----------------------------------------------------------------------
-if ! grep '^MySQL RPM upgrade' $STATUS_FILE >/dev/null 2>&1 ; then
- # Fix bug#45415: no "mysql_install_db" on an upgrade
- # Do this as a negative to err towards more "install" runs
- # rather than to miss one.
- %{_bindir}/mysql_install_db --rpm --user=%{mysqld_user}
-fi
-
-# ----------------------------------------------------------------------
-# Upgrade databases if needed would go here - but it cannot be automated yet
-# ----------------------------------------------------------------------
-
-# ----------------------------------------------------------------------
-# Change permissions again to fix any new files.
-# ----------------------------------------------------------------------
-chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir
-
-# ----------------------------------------------------------------------
-# Fix permissions for the permission database so that only the user
-# can read them.
-# ----------------------------------------------------------------------
-chmod -R og-rw $mysql_datadir/mysql
-
-# ----------------------------------------------------------------------
-# install SELinux files - but don't override existing ones
-# ----------------------------------------------------------------------
-SETARGETDIR=/etc/selinux/targeted/src/policy
-SEDOMPROG=$SETARGETDIR/domains/program
-SECONPROG=$SETARGETDIR/file_contexts/program
-if [ -f /etc/redhat-release ] \
- && (grep -q "Red Hat Enterprise Linux .. release 4" /etc/redhat-release \
- || grep -q "CentOS release 4" /etc/redhat-release) ; then
- echo
- echo
- echo 'Notes regarding SELinux on this platform:'
- echo '========================================='
- echo
- echo 'The default policy might cause server startup to fail because it is'
- echo 'not allowed to access critical files. In this case, please update'
- echo 'your installation.'
- echo
- echo 'The default policy might also cause inavailability of SSL related'
- echo 'features because the server is not allowed to access /dev/random'
- echo 'and /dev/urandom. If this is a problem, please do the following:'
- echo
- echo ' 1) install selinux-policy-targeted-sources from your OS vendor'
- echo ' 2) add the following two lines to '$SEDOMPROG/mysqld.te':'
- echo ' allow mysqld_t random_device_t:chr_file read;'
- echo ' allow mysqld_t urandom_device_t:chr_file read;'
- echo ' 3) cd to '$SETARGETDIR' and issue the following command:'
- echo ' make load'
- echo
- echo
-fi
-
-if [ -x sbin/restorecon ] ; then
- sbin/restorecon -R var/lib/mysql
-fi
-
-# Was the server running before the upgrade? If so, restart the new one.
-if [ "$SERVER_TO_START" = "true" ] ; then
- # Restart in the same way that mysqld will be started normally.
- if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- %{_sysconfdir}/init.d/mysql start
- echo "Giving mysqld 5 seconds to start"
- sleep 5
- fi
-fi
-
-# Collect an upgrade history ...
-echo "Upgrade/install finished at `date`" >> $STATUS_FILE
-echo >> $STATUS_FILE
-echo "=====" >> $STATUS_FILE
-STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
-cat $STATUS_FILE >> $STATUS_HISTORY
-mv -f $STATUS_FILE ${STATUS_FILE}-LAST # for "triggerpostun"
-
-
-#echo "Thank you for installing the MySQL Community Server! For Production
-#systems, we recommend MySQL Enterprise, which contains enterprise-ready
-#software, intelligent advisory services, and full production support with
-#scheduled service packs and more. Visit www.mysql.com/enterprise for more
-#information."
-
-%preun -n MySQL-server%{product_suffix}
-
-# Which '$1' does this refer to? Fedora docs have info:
-# " ... a count of the number of versions of the package that are installed.
-# Action Count
-# Install the first time 1
-# Upgrade 2 or higher (depending on the number of versions installed)
-# Remove last version of package 0 "
-#
-# http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html
-
-if [ $1 = 0 ] ; then
- # Stop MySQL before uninstalling it
- if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- %{_sysconfdir}/init.d/mysql stop > /dev/null
- # Remove autostart of MySQL
- # use chkconfig on Enterprise Linux and newer SuSE releases
- if [ -x /sbin/chkconfig ] ; then
- /sbin/chkconfig --del mysql
- # For older SuSE Linux versions
- elif [ -x /sbin/insserv ] ; then
- /sbin/insserv -r %{_sysconfdir}/init.d/mysql
- fi
- fi
-fi
-
-# We do not remove the mysql user since it may still own a lot of
-# database files.
-
-%triggerpostun -n MySQL-server%{product_suffix} --MySQL-server-community
-
-# Setup: We renamed this package, so any existing "server-community"
-# package will be removed when this "server" is installed.
-# Problem: RPM will first run the "pre" and "post" sections of this script,
-# and only then the "preun" of that old community server.
-# But this "preun" includes stopping the server and uninstalling the service,
-# "chkconfig --del mysql" which removes the symlinks to the start script.
-# Solution: *After* the community server got removed, restart this server
-# and re-install the service.
-#
-# For information about triggers in spec files, see the Fedora docs:
-# http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s02.html
-# For all details of this code, see the "pre" and "post" sections.
-
-# There are users who deviate from the default file system layout.
-# Check local settings to support them.
-if [ -x %{_bindir}/my_print_defaults ]
-then
- mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'`
-fi
-if [ -z "$mysql_datadir" ]
-then
- mysql_datadir=%{mysqldatadir}
-fi
-
-NEW_VERSION=%{mysql_version}-%{release}
-STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER-LAST # Note the difference!
-STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
-
-if [ -f "$STATUS_FILE" ] ; then
- SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
-else
- # This should never happen, but let's be prepared
- SERVER_TO_START=''
-fi
-echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
-
-if [ -x /sbin/chkconfig ] ; then
- /sbin/chkconfig --add mysql
-# use insserv for older SuSE Linux versions
-elif [ -x /sbin/insserv ] ; then
- /sbin/insserv %{_sysconfdir}/init.d/mysql
-fi
-
-# Was the server running before the upgrade? If so, restart the new one.
-if [ "$SERVER_TO_START" = "true" ] ; then
- # Restart in the same way that mysqld will be started normally.
- if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- %{_sysconfdir}/init.d/mysql start
- echo "Giving mysqld 5 seconds to start"
- sleep 5
- fi
-fi
-
-echo "Trigger 'postun --community' finished at `date`" >> $STATUS_HISTORY
-echo >> $STATUS_HISTORY
-echo "=====" >> $STATUS_HISTORY
-
-
-# ----------------------------------------------------------------------
-# Clean up the BuildRoot after build is done
-# ----------------------------------------------------------------------
-%clean
-[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] \
- && rm -rf $RPM_BUILD_ROOT;
-
-##############################################################################
-# Files section
-##############################################################################
-
-%files -n MySQL-server%{product_suffix} -f release/support-files/plugins.files
-%defattr(-,root,root,0755)
-
-%if %{defined license_files_server}
-%doc %{license_files_server}
-%endif
-%doc %{src_dir}/Docs/ChangeLog
-%doc %{src_dir}/Docs/INFO_SRC*
-%doc release/Docs/INFO_BIN*
-%doc release/support-files/my-*.cnf
-
-%if 0%{?commercial}
-%doc %attr(644, root, root) %{_infodir}/mysql.info*
-%endif
-
-%doc %attr(644, root, man) %{_mandir}/man1/innochecksum.1*
-%doc %attr(644, root, man) %{_mandir}/man1/my_print_defaults.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisam_ftdump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1*
-%doc %attr(644, root, man) %{_mandir}/man1/myisampack.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_convert_table_format.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_extensions.1*
-%doc %attr(644, root, man) %{_mandir}/man8/mysqld.8*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqldumpslow.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_install_db.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_plugin.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_secure_installation.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_setpermission.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_upgrade.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlman.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqltest.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_tzinfo_to_sql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlbug.1*
-%doc %attr(644, root, man) %{_mandir}/man1/perror.1*
-%doc %attr(644, root, man) %{_mandir}/man1/replace.1*
-%doc %attr(644, root, man) %{_mandir}/man1/resolve_stack_dump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/resolveip.1*
-
-%ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf
-%dir %{_sysconfdir}/my.cnf.d
-
-%attr(755, root, root) %{_bindir}/innochecksum
-%attr(755, root, root) %{_bindir}/my_print_defaults
-%attr(755, root, root) %{_bindir}/myisam_ftdump
-%attr(755, root, root) %{_bindir}/myisamchk
-%attr(755, root, root) %{_bindir}/myisamlog
-%attr(755, root, root) %{_bindir}/myisampack
-%attr(755, root, root) %{_bindir}/mysql_convert_table_format
-%attr(755, root, root) %{_bindir}/mysql_fix_extensions
-%attr(755, root, root) %{_bindir}/mysql_install_db
-%attr(755, root, root) %{_bindir}/mysql_plugin
-%attr(755, root, root) %{_bindir}/mysql_secure_installation
-%attr(755, root, root) %{_bindir}/mysql_setpermission
-%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql
-%attr(755, root, root) %{_bindir}/mysql_upgrade
-%attr(755, root, root) %{_bindir}/mysql_zap
-%attr(755, root, root) %{_bindir}/mysqlbug
-%attr(755, root, root) %{_bindir}/mysqld_multi
-%attr(755, root, root) %{_bindir}/mysqld_safe
-%attr(755, root, root) %{_bindir}/mysqldumpslow
-%attr(755, root, root) %{_bindir}/mysqlhotcopy
-%attr(755, root, root) %{_bindir}/mysqltest
-%attr(755, root, root) %{_bindir}/perror
-%attr(755, root, root) %{_bindir}/replace
-%attr(755, root, root) %{_bindir}/resolve_stack_dump
-%attr(755, root, root) %{_bindir}/resolveip
-
-%attr(755, root, root) %{_sbindir}/mysqld
-%attr(755, root, root) %{_sbindir}/mysqld-debug
-%attr(755, root, root) %{_sbindir}/rcmysql
-%attr(755, root, root) %{_libdir}/mysql/plugin/daemon_example.ini
-
-%if %{WITH_TCMALLOC}
-%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target}
-%endif
-
-%attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql
-%attr(755, root, root) %{_sysconfdir}/init.d/mysql
-
-%attr(755, root, root) %{_datadir}/mysql/
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-client%{product_suffix}
-
-%defattr(-, root, root, 0755)
-%attr(755, root, root) %{_bindir}/msql2mysql
-%attr(755, root, root) %{_bindir}/mysql
-%attr(755, root, root) %{_bindir}/mysql_find_rows
-%attr(755, root, root) %{_bindir}/mysql_waitpid
-%attr(755, root, root) %{_bindir}/mysqlaccess
-# XXX: This should be moved to %{_sysconfdir}
-%attr(644, root, root) %{_bindir}/mysqlaccess.conf
-%attr(755, root, root) %{_bindir}/mysqladmin
-%attr(755, root, root) %{_bindir}/mysqlbinlog
-%attr(755, root, root) %{_bindir}/mysqlcheck
-%attr(755, root, root) %{_bindir}/mysqldump
-%attr(755, root, root) %{_bindir}/mysqlimport
-%attr(755, root, root) %{_bindir}/mysqlshow
-%attr(755, root, root) %{_bindir}/mysqlslap
-
-%doc %attr(644, root, man) %{_mandir}/man1/msql2mysql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_find_rows.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_waitpid.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlbinlog.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlcheck.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlimport.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1*
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-devel%{product_suffix} -f optional-files-devel
-%defattr(-, root, root, 0755)
-%doc %attr(644, root, man) %{_mandir}/man1/comp_err.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_config.1*
-%attr(755, root, root) %{_bindir}/mysql_config
-%dir %attr(755, root, root) %{_includedir}/mysql
-%dir %attr(755, root, root) %{_libdir}/mysql
-%{_includedir}/mysql/*
-%{_datadir}/aclocal/mysql.m4
-%{_libdir}/mysql/libmysqlclient.a
-%{_libdir}/mysql/libmysqlclient_r.a
-%{_libdir}/mysql/libmysqlservices.a
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-shared%{product_suffix}
-%defattr(-, root, root, 0755)
-# Shared libraries (omit for architectures that don't support them)
-%{_libdir}/libmysql*.so*
-
-%post -n MySQL-shared%{product_suffix}
-/sbin/ldconfig
-
-%postun -n MySQL-shared%{product_suffix}
-/sbin/ldconfig
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-test%{product_suffix}
-%defattr(-, root, root, 0755)
-%attr(-, root, root) %{_datadir}/mysql-test
-%attr(755, root, root) %{_bindir}/mysql_client_test
-%attr(755, root, root) %{_bindir}/mysql_client_test_embedded
-%attr(755, root, root) %{_bindir}/mysqltest_embedded
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_client_test.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql-stress-test.pl.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql-test-run.pl.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysql_client_test_embedded.1*
-%doc %attr(644, root, man) %{_mandir}/man1/mysqltest_embedded.1*
-
-# ----------------------------------------------------------------------------
-%files -n MySQL-embedded%{product_suffix}
-%defattr(-, root, root, 0755)
-%attr(755, root, root) %{_bindir}/mysql_embedded
-%attr(644, root, root) %{_libdir}/mysql/libmysqld.a
-%attr(644, root, root) %{_libdir}/mysql/libmysqld-debug.a
-
-##############################################################################
-# The spec file changelog only includes changes made to the spec file
-# itself - note that they must be ordered by date (important when
-# merging BK trees)
-##############################################################################
-%changelog
-* Wed Jul 02 2014 Bjorn Munch <bjorn.munch@oracle.com>
-- Disable dtrace unconditionally, breaks after we install Oracle dtrace
-
-* Wed Oct 30 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
-- Removed non gpl file docs/mysql.info from community packages
-
-* Mon Sep 09 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
-- Updated logic to get the correct count of PID files
-
-* Fri Aug 16 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
-- Added provides lowercase mysql tags
-
-* Wed Jun 26 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
-- Cleaned up spec file to resolve rpm dependencies.
-
-* Tue Jul 24 2012 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Add a macro "runselftest":
- if set to 1 (default), the test suite will be run during the RPM build;
- this can be oveeridden via the command line by adding
- --define "runselftest 0"
- Failures of the test suite will NOT make the RPM build fail!
-
-* Mon Jun 11 2012 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Make sure newly added "SPECIFIC-ULN/" directory does not disturb packaging.
-
-* Wed Sep 28 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Fix duplicate mentioning of "mysql_plugin" and its manual page,
- it is better to keep alphabetic order in the files list (merging!).
-
-* Wed Sep 14 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Let the RPM capabilities ("obsoletes" etc) ensure that an upgrade may replace
- the RPMs of any configuration (of the current or the preceding release series)
- by the new ones. This is done by not using the implicitly generated capabilities
- (which include the configuration name) and relying on more generic ones which
- just list the function ("server", "client", ...).
- The implicit generation cannot be prevented, so all these capabilities must be
- explicitly listed in "Obsoletes:"
-
-* Tue Sep 13 2011 Jonathan Perkin <jonathan.perkin@oracle.com>
-
-- Add support for Oracle Linux 6 and Red Hat Enterprise Linux 6. Due to
- changes in RPM behaviour ($RPM_BUILD_ROOT is removed prior to install)
- this necessitated a move of the libmygcc.a installation to the install
- phase, which is probably where it belonged in the first place.
-
-* Tue Sep 13 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- "make_win_bin_dist" and its manual are dropped, cmake does it different.
-
-* Thu Sep 08 2011 Daniel Fischer <daniel.fischer@oracle.com>
-
-- Add mysql_plugin man page.
-
-* Tue Aug 30 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Add the manual page for "mysql_plugin" to the server package.
-
-* Fri Aug 19 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Null-upmerge the fix of bug#37165: This spec file is not affected.
-- Replace "/var/lib/mysql" by the spec file variable "%%{mysqldatadir}".
-
-* Fri Aug 12 2011 Daniel Fischer <daniel.fischer@oracle.com>
-
-- Source plugin library files list from cmake-generated file.
-
-* Mon Jul 25 2011 Chuck Bell <chuck.bell@oracle.com>
-
-- Added the mysql_plugin client - enables or disables plugins.
-
-* Thu Jul 21 2011 Sunanda Menon <sunanda.menon@oracle.com>
-
-- Fix bug#12561297: Added the MySQL embedded binary
-
-* Thu Jul 07 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Fix bug#45415: "rpm upgrade recreates test database"
- Let the creation of the "test" database happen only during a new installation,
- not in an RPM upgrade.
- This affects both the "mkdir" and the call of "mysql_install_db".
-
-* Wed Feb 09 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Fix bug#56581: If an installation deviates from the default file locations
- ("datadir" and "pid-file"), the mechanism to detect a running server (on upgrade)
- should still work, and use these locations.
- The problem was that the fix for bug#27072 did not check for local settings.
-
-* Mon Jan 31 2011 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- Install the new "manifest" files: "INFO_SRC" and "INFO_BIN".
-
-* Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
-
-- EXCEPTIONS-CLIENT has been deleted, remove it from here too
-- Support MYSQL_BUILD_MAKE_JFLAG environment variable for passing
- a '-j' argument to make.
-
-* Mon Nov 1 2010 Georgi Kodinov <georgi.godinov@oracle.com>
-
-- Added test authentication (WL#1054) plugin binaries
-
-* Wed Oct 6 2010 Georgi Kodinov <georgi.godinov@oracle.com>
-
-- Added example external authentication (WL#1054) plugin binaries
-
-* Wed Aug 11 2010 Joerg Bruehe <joerg.bruehe@oracle.com>
-
-- With a recent spec file cleanup, names have changed: A "-community" part was dropped.
- Reflect that in the "Obsoletes" specifications.
-- Add a "triggerpostun" to handle the uninstall of the "-community" server RPM.
-- This fixes bug#55015 "MySQL server is not restarted properly after RPM upgrade".
-
-* Tue Jun 15 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Change the behaviour on installation and upgrade:
- On installation, do not autostart the server.
- *Iff* the server was stopped before the upgrade is started, this is taken as a
- sign the administrator is handling that manually, and so the new server will
- not be started automatically at the end of the upgrade.
- The start/stop scripts will still be installed, so the server will be started
- on the next machine boot.
- This is the 5.5 version of fixing bug#27072 (RPM autostarting the server).
-
-* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
-
-- Implement SELinux checks from distribution-specific spec file.
-
-* Wed May 12 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
-
-- Large number of changes to build using CMake
-- Introduce distribution-specific RPMs
-- Drop debuginfo, build all binaries with debug/symbols
-- Remove __os_install_post, use native macro
-- Remove _unpackaged_files_terminate_build, make it an error to have
- unpackaged files
-- Remove cluster RPMs
-
-* Wed Mar 24 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Add "--with-perfschema" to the configure options.
-
-* Mon Mar 22 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- User "usr/lib*" to allow for both "usr/lib" and "usr/lib64",
- mask "rmdir" return code 1.
-- Remove "ha_example.*" files from the list, they aren't built.
-
-* Wed Mar 17 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Fix a wrong path name in handling the debug plugins.
-
-* Wed Mar 10 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Take the result of the debug plugin build and put it into the optimized tree,
- so that it becomes part of the final installation;
- include the files in the packlist. Part of the fixes for bug#49022.
-
-* Mon Mar 01 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Set "Oracle and/or its affiliates" as the vendor and copyright owner,
- accept upgrading from packages showing MySQL or Sun as vendor.
-
-* Fri Feb 12 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Formatting changes:
- Have a consistent structure of separator lines and of indentation
- (8 leading blanks => tab).
-- Introduce the variable "src_dir".
-- Give the environment variables "MYSQL_BUILD_CC(CXX)" precedence
- over "CC" ("CXX").
-- Drop the old "with_static" argument analysis, this is not supported
- in 5.1 since ages.
-- Introduce variables to control the handlers individually, as well
- as other options.
-- Use the new "--with-plugin" notation for the table handlers.
-- Drop handling "/etc/rc.d/init.d/mysql", the switch to "/etc/init.d/mysql"
- was done back in 2002 already.
-- Make "--with-zlib-dir=bundled" the default, add an option to disable it.
-- Add missing manual pages to the file list.
-- Improve the runtime check for "libgcc.a", protect it against being tried
- with the Intel compiler "icc".
-
-* Mon Jan 11 2010 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Change RPM file naming:
- - Suffix like "-m2", "-rc" becomes part of version as "_m2", "_rc".
- - Release counts from 1, not 0.
-
-* Wed Dec 23 2009 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- The "semisync" plugin file name has lost its introductory "lib",
- adapt the file lists for the subpackages.
- This is a part missing from the fix for bug#48351.
-- Remove the "fix_privilege_tables" manual, it does not exist in 5.5
- (and likely, the whole script will go, too).
-
-* Mon Nov 16 2009 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Fix some problems with the directives around "tcmalloc" (experimental),
- remove erroneous traces of the InnoDB plugin (that is 5.1 only).
-
-* Tue Oct 06 2009 Magnus Blaudd <mvensson@mysql.com>
-
-- Removed mysql_fix_privilege_tables
-
-* Fri Oct 02 2009 Alexander Nozdrin <alexander.nozdrin@sun.com>
-
-- "mysqlmanager" got removed from version 5.4, all references deleted.
-
-* Fri Aug 28 2009 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- Merge up from 5.1 to 5.4: Remove handling for the InnoDB plugin.
-
-* Thu Aug 27 2009 Joerg Bruehe <joerg.bruehe@sun.com>
-
-- This version does not contain the "Instance manager", "mysqlmanager":
- Remove it from the spec file so that packaging succeeds.
-
-* Mon Aug 24 2009 Jonathan Perkin <jperkin@sun.com>
-
-- Add conditionals for bundled zlib and innodb plugin
-
-* Fri Aug 21 2009 Jonathan Perkin <jperkin@sun.com>
-
-- Install plugin libraries in appropriate packages.
-- Disable libdaemon_example and ftexample plugins.
-
-* Thu Aug 20 2009 Jonathan Perkin <jperkin@sun.com>
-
-- Update variable used for mysql-test suite location to match source.
-
-* Fri Nov 07 2008 Joerg Bruehe <joerg@mysql.com>
-
-- Correct yesterday's fix, so that it also works for the last flag,
- and fix a wrong quoting: un-quoted quote marks must not be escaped.
-
-* Thu Nov 06 2008 Kent Boortz <kent.boortz@sun.com>
-
-- Removed "mysql_upgrade_shell"
-- Removed some copy/paste between debug and normal build
-
-* Thu Nov 06 2008 Joerg Bruehe <joerg@mysql.com>
-
-- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized.
- This should cover both gcc and icc flags. Fixes bug#40546.
-
-* Fri Aug 29 2008 Kent Boortz <kent@mysql.com>
-
-- Removed the "Federated" storage engine option, and enabled in all
-
-* Tue Aug 26 2008 Joerg Bruehe <joerg@mysql.com>
-
-- Get rid of the "warning: Installed (but unpackaged) file(s) found:"
- Some generated files aren't needed in RPMs:
- - the "sql-bench/" subdirectory
- Some files were missing:
- - /usr/share/aclocal/mysql.m4 ("devel" subpackage)
- - Manual "mysqlbug" ("server" subpackage)
- - Program "innochecksum" and its manual ("server" subpackage)
- - Manual "mysql_find_rows" ("client" subpackage)
- - Script "mysql_upgrade_shell" ("client" subpackage)
- - Program "ndb_cpcd" and its manual ("ndb-extra" subpackage)
- - Manuals "ndb_mgm" + "ndb_restore" ("ndb-tools" subpackage)
-
-* Mon Mar 31 2008 Kent Boortz <kent@mysql.com>
-
-- Made the "Federated" storage engine an option
-- Made the "Cluster" storage engine and sub packages an option
-
-* Wed Mar 19 2008 Joerg Bruehe <joerg@mysql.com>
-
-- Add the man pages for "ndbd" and "ndb_mgmd".
-
-* Mon Feb 18 2008 Timothy Smith <tim@mysql.com>
-
-- Require a manual upgrade if the alread-installed mysql-server is
- from another vendor, or is of a different major version.
-
-* Wed May 02 2007 Joerg Bruehe <joerg@mysql.com>
-
-- "ndb_size.tmpl" is not needed any more,
- "man1/mysql_install_db.1" lacked the trailing '*'.
-
-* Sat Apr 07 2007 Kent Boortz <kent@mysql.com>
-
-- Removed man page for "mysql_create_system_tables"
-
-* Wed Mar 21 2007 Daniel Fischer <df@mysql.com>
-
-- Add debug server.
-
-* Mon Mar 19 2007 Daniel Fischer <df@mysql.com>
-
-- Remove Max RPMs; the server RPMs contain a mysqld compiled with all
- features that previously only were built into Max.
-
-* Fri Mar 02 2007 Joerg Bruehe <joerg@mysql.com>
-
-- Add several man pages for NDB which are now created.
-
-* Fri Jan 05 2007 Kent Boortz <kent@mysql.com>
-
-- Put back "libmygcc.a", found no real reason it was removed.
-
-- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the
- correct "libgcc.a" path is returned for the 32/64 bit architecture.
-
-* Mon Dec 18 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Fix the move of "mysqlmanager" to section 8: Directory name was wrong.
-
-* Thu Dec 14 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql"
- in the server RPM.
-- The "mysqlmanager" man page got moved from section 1 to 8.
-
-* Thu Nov 30 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Call "make install" using "benchdir_root=%%{_datadir}",
- because that is affecting the regression test suite as well.
-
-* Thu Nov 16 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB)
- replace "mysql-shared" (as distributed by SuSE) to allow easy upgrading
- (bug#22081).
-
-* Mon Nov 13 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Add "--with-partition" to all server builds.
-
-- Use "--report-features" in one test run per server build.
-
-* Tue Aug 15 2006 Joerg Bruehe <joerg@mysql.com>
-
-- The "max" server is removed from packages, effective from 5.1.12-beta.
- Delete all steps to build, package, or install it.
-
-* Mon Jul 10 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Fix a typing error in the "make" target for the Perl script to run the tests.
-
-* Tue Jul 04 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Use the Perl script to run the tests, because it will automatically check
- whether the server is configured with SSL.
-
-* Tue Jun 27 2006 Joerg Bruehe <joerg@mysql.com>
-
-- move "mysqldumpslow" from the client RPM to the server RPM (bug#20216)
-
-- Revert all previous attempts to call "mysql_upgrade" during RPM upgrade,
- there are some more aspects which need to be solved before this is possible.
- For now, just ensure the binary "mysql_upgrade" is delivered and installed.
-
-* Thu Jun 22 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Close a gap of the previous version by explicitly using
- a newly created temporary directory for the socket to be used
- in the "mysql_upgrade" operation, overriding any local setting.
-
-* Tue Jun 20 2006 Joerg Bruehe <joerg@mysql.com>
-
-- To run "mysql_upgrade", we need a running server;
- start it in isolation and skip password checks.
-
-* Sat May 20 2006 Kent Boortz <kent@mysql.com>
-
-- Always compile for PIC, position independent code.
-
-* Wed May 10 2006 Kent Boortz <kent@mysql.com>
-
-- Use character set "all" when compiling with Cluster, to make Cluster
- nodes independent on the character set directory, and the problem
- that two RPM sub packages both wants to install this directory.
-
-* Mon May 01 2006 Kent Boortz <kent@mysql.com>
-
-- Use "./libtool --mode=execute" instead of searching for the
- executable in current directory and ".libs".
-
-* Fri Apr 28 2006 Kent Boortz <kent@mysql.com>
-
-- Install and run "mysql_upgrade"
-
-* Wed Apr 12 2006 Jim Winstead <jimw@mysql.com>
-
-- Remove sql-bench, and MySQL-bench RPM (will be built as an independent
- project from the mysql-bench repository)
-
-* Tue Apr 11 2006 Jim Winstead <jimw@mysql.com>
-
-- Remove old mysqltestmanager and related programs
-* Sat Apr 01 2006 Kent Boortz <kent@mysql.com>
-
-- Set $LDFLAGS from $MYSQL_BUILD_LDFLAGS
-
-* Tue Mar 07 2006 Kent Boortz <kent@mysql.com>
-
-- Changed product name from "Community Edition" to "Community Server"
-
-* Mon Mar 06 2006 Kent Boortz <kent@mysql.com>
-
-- Fast mutexes is now disabled by default, but should be
- used in Linux builds.
-
-* Mon Feb 20 2006 Kent Boortz <kent@mysql.com>
-
-- Reintroduced a max build
-- Limited testing of 'debug' and 'max' servers
-- Berkeley DB only in 'max'
-
-* Mon Feb 13 2006 Joerg Bruehe <joerg@mysql.com>
-
-- Use "-i" on "make test-force";
- this is essential for later evaluation of this log file.
-
-* Thu Feb 09 2006 Kent Boortz <kent@mysql.com>
-
-- Pass '-static' to libtool, link static with our own libraries, dynamic
- with system libraries. Link with the bundled zlib.
-
-* Wed Feb 08 2006 Kristian Nielsen <knielsen@mysql.com>
-
-- Modified RPM spec to match new 5.1 debug+max combined community packaging.
-
-* Sun Dec 18 2005 Kent Boortz <kent@mysql.com>
-
-- Added "client/mysqlslap"
-
-* Mon Dec 12 2005 Rodrigo Novo <rodrigo@mysql.com>
-
-- Added zlib to the list of (static) libraries installed
-- Added check against libtool wierdness (WRT: sql/mysqld || sql/.libs/mysqld)
-- Compile MySQL with bundled zlib
-- Fixed %%packager name to "MySQL Production Engineering Team"
-
-* Mon Dec 05 2005 Joerg Bruehe <joerg@mysql.com>
-
-- Avoid using the "bundled" zlib on "shared" builds:
- As it is not installed (on the build system), this gives dependency
- problems with "libtool" causing the build to fail.
- (Change was done on Nov 11, but left uncommented.)
-
-* Tue Nov 22 2005 Joerg Bruehe <joerg@mysql.com>
-
-- Extend the file existence check for "init.d/mysql" on un-install
- to also guard the call to "insserv"/"chkconfig".
-
-* Thu Oct 27 2005 Lenz Grimmer <lenz@grimmer.com>
-
-- added more man pages
-
-* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
-
-- Made yaSSL support an option (off by default)
-
-* Wed Oct 19 2005 Kent Boortz <kent@mysql.com>
-
-- Enabled yaSSL support
-
-* Sat Oct 15 2005 Kent Boortz <kent@mysql.com>
-
-- Give mode arguments the same way in all places
-- Moved copy of mysqld.a to "standard" build, but
- disabled it as we don't do embedded yet in 5.0
-
-* Fri Oct 14 2005 Kent Boortz <kent@mysql.com>
-
-- For 5.x, always compile with --with-big-tables
-- Copy the config.log file to location outside
- the build tree
-
-* Fri Oct 14 2005 Kent Boortz <kent@mysql.com>
-
-- Removed unneeded/obsolete configure options
-- Added archive engine to standard server
-- Removed the embedded server from experimental server
-- Changed suffix "-Max" => "-max"
-- Changed comment string "Max" => "Experimental"
-
-* Thu Oct 13 2005 Lenz Grimmer <lenz@mysql.com>
-
-- added a usermod call to assign a potential existing mysql user to the
- correct user group (BUG#12823)
-- Save the perror binary built during Max build so it supports the NDB
- error codes (BUG#13740)
-- added a separate macro "mysqld_group" to be able to define the
- user group of the mysql user seperately, if desired.
-
-* Thu Sep 29 2005 Lenz Grimmer <lenz@mysql.com>
-
-- fixed the removing of the RPM_BUILD_ROOT in the %clean section (the
- $RBR variable did not get expanded, thus leaving old build roots behind)
-
-* Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Fixed the creation of the mysql user group account in the postinstall
- section (BUG 12348)
-- Fixed enabling the Archive storage engine in the Max binary
-
-* Tue Aug 02 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Fixed the Requires: tag for the server RPM (BUG 12233)
-
-* Fri Jul 15 2005 Lenz Grimmer <lenz@mysql.com>
-
-- create a "mysql" user group and assign the mysql user account to that group
- in the server postinstall section. (BUG 10984)
-
-* Tue Jun 14 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Do not build statically on i386 by default, only when adding either "--with
- static" or "--define '_with_static 1'" to the RPM build options. Static
- linking really only makes sense when linking against the specially patched
- glibc 2.2.5.
-
-* Mon Jun 06 2005 Lenz Grimmer <lenz@mysql.com>
-
-- added mysql_client_test to the "bench" subpackage (BUG 10676)
-- added the libndbclient static and shared libraries (BUG 10676)
-
-* Wed Jun 01 2005 Lenz Grimmer <lenz@mysql.com>
-
-- use "mysqldatadir" variable instead of hard-coding the path multiple times
-- use the "mysqld_user" variable on all occasions a user name is referenced
-- removed (incomplete) Brazilian translations
-- removed redundant release tags from the subpackage descriptions
-
-* Wed May 25 2005 Joerg Bruehe <joerg@mysql.com>
-
-- Added a "make clean" between separate calls to "BuildMySQL".
-
-* Thu May 12 2005 Guilhem Bichot <guilhem@mysql.com>
-
-- Removed the mysql_tableinfo script made obsolete by the information schema
-
-* Wed Apr 20 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Enabled the "blackhole" storage engine for the Max RPM
-
-* Wed Apr 13 2005 Lenz Grimmer <lenz@mysql.com>
-
-- removed the MySQL manual files (html/ps/texi) - they have been removed
- from the MySQL sources and are now available seperately.
-
-* Mon Apr 4 2005 Petr Chardin <petr@mysql.com>
-
-- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into
- mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively
-
-* Fri Mar 18 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Disabled RAID in the Max binaries once and for all (it has finally been
- removed from the source tree)
-
-* Sun Feb 20 2005 Petr Chardin <petr@mysql.com>
-
-- Install MySQL Instance Manager together with mysqld, touch mysqlmanager
- password file
-
-* Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com>
-
-- Fixed the compilation comments and moved them into the separate build sections
- for Max and Standard
-
-* Mon Feb 7 2005 Tomas Ulin <tomas@mysql.com>
-
-- enabled the "Ndbcluster" storage engine for the max binary
-- added extra make install in ndb subdir after Max build to get ndb binaries
-- added packages for ndbcluster storage engine
-
-* Fri Jan 14 2005 Lenz Grimmer <lenz@mysql.com>
-
-- replaced obsoleted "BuildPrereq" with "BuildRequires" instead
-
-* Thu Jan 13 2005 Lenz Grimmer <lenz@mysql.com>
-
-- enabled the "Federated" storage engine for the max binary
-
-* Tue Jan 04 2005 Petr Chardin <petr@mysql.com>
-
-- ISAM and merge storage engines were purged. As well as appropriate
- tools and manpages (isamchk and isamlog)
-
-* Fri Dec 31 2004 Lenz Grimmer <lenz@mysql.com>
-
-- enabled the "Archive" storage engine for the max binary
-- enabled the "CSV" storage engine for the max binary
-- enabled the "Example" storage engine for the max binary
-
-* Thu Aug 26 2004 Lenz Grimmer <lenz@mysql.com>
-
-- MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860)
-
-* Fri Aug 20 2004 Lenz Grimmer <lenz@mysql.com>
-
-- do not link statically on IA64/AMD64 as these systems do not have
- a patched glibc installed
-
-* Tue Aug 10 2004 Lenz Grimmer <lenz@mysql.com>
-
-- Added libmygcc.a to the devel subpackage (required to link applications
- against the the embedded server libmysqld.a) (BUG 4921)
-
-* Mon Aug 09 2004 Lenz Grimmer <lenz@mysql.com>
-
-- Added EXCEPTIONS-CLIENT to the "devel" package
-
-* Thu Jul 29 2004 Lenz Grimmer <lenz@mysql.com>
-
-- disabled OpenSSL in the Max binaries again (the RPM packages were the
- only exception to this anyway) (BUG 1043)
-
-* Wed Jun 30 2004 Lenz Grimmer <lenz@mysql.com>
-
-- fixed server postinstall (mysql_install_db was called with the wrong
- parameter)
-
-* Thu Jun 24 2004 Lenz Grimmer <lenz@mysql.com>
-
-- added mysql_tzinfo_to_sql to the server subpackage
-- run "make clean" instead of "make distclean"
-
-* Mon Apr 05 2004 Lenz Grimmer <lenz@mysql.com>
-
-- added ncurses-devel to the build prerequisites (BUG 3377)
-
-* Thu Feb 12 2004 Lenz Grimmer <lenz@mysql.com>
-
-- when using gcc, _always_ use CXX=gcc
-- replaced Copyright with License field (Copyright is obsolete)
-
-* Tue Feb 03 2004 Lenz Grimmer <lenz@mysql.com>
-
-- added myisam_ftdump to the Server package
-
-* Tue Jan 13 2004 Lenz Grimmer <lenz@mysql.com>
-
-- link the mysql client against libreadline instead of libedit (BUG 2289)
-
-* Mon Dec 22 2003 Lenz Grimmer <lenz@mysql.com>
-
-- marked /etc/logrotate.d/mysql as a config file (BUG 2156)
-
-* Sat Dec 13 2003 Lenz Grimmer <lenz@mysql.com>
-
-- fixed file permissions (BUG 1672)
-
-* Thu Dec 11 2003 Lenz Grimmer <lenz@mysql.com>
-
-- made testing for gcc3 a bit more robust
-
-* Fri Dec 05 2003 Lenz Grimmer <lenz@mysql.com>
-
-- added missing file mysql_create_system_tables to the server subpackage
-
-* Fri Nov 21 2003 Lenz Grimmer <lenz@mysql.com>
-
-- removed dependency on MySQL-client from the MySQL-devel subpackage
- as it is not really required. (BUG 1610)
-
-* Fri Aug 29 2003 Lenz Grimmer <lenz@mysql.com>
-
-- Fixed BUG 1162 (removed macro names from the changelog)
-- Really fixed BUG 998 (disable the checking for installed but
- unpackaged files)
-
-* Tue Aug 05 2003 Lenz Grimmer <lenz@mysql.com>
-
-- Fixed BUG 959 (libmysqld not being compiled properly)
-- Fixed BUG 998 (RPM build errors): added missing files to the
- distribution (mysql_fix_extensions, mysql_tableinfo, mysqldumpslow,
- mysql_fix_privilege_tables.1), removed "-n" from install section.
-
-* Wed Jul 09 2003 Lenz Grimmer <lenz@mysql.com>
-
-- removed the GIF Icon (file was not included in the sources anyway)
-- removed unused variable shared_lib_version
-- do not run automake before building the standard binary
- (should not be necessary)
-- add server suffix '-standard' to standard binary (to be in line
- with the binary tarball distributions)
-- Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir,
- _datadir, _includedir) throughout the spec file.
-- allow overriding CC and CXX (required when building with other compilers)
-
-* Fri May 16 2003 Lenz Grimmer <lenz@mysql.com>
-
-- re-enabled RAID again
-
-* Wed Apr 30 2003 Lenz Grimmer <lenz@mysql.com>
-
-- disabled MyISAM RAID (--with-raid) - it throws an assertion which
- needs to be investigated first.
-
-* Mon Mar 10 2003 Lenz Grimmer <lenz@mysql.com>
-
-- added missing file mysql_secure_installation to server subpackage
- (BUG 141)
-
-* Tue Feb 11 2003 Lenz Grimmer <lenz@mysql.com>
-
-- re-added missing pre- and post(un)install scripts to server subpackage
-- added config file /etc/my.cnf to the file list (just for completeness)
-- make sure to create the datadir with 755 permissions
-
-* Mon Jan 27 2003 Lenz Grimmer <lenz@mysql.com>
-
-- removed unused CC and CXX variables
-- CFLAGS and CXXFLAGS should honor RPM_OPT_FLAGS
-
-* Fri Jan 24 2003 Lenz Grimmer <lenz@mysql.com>
-
-- renamed package "MySQL" to "MySQL-server"
-- fixed Copyright tag
-- added mysql_waitpid to client subpackage (required for mysql-test-run)
-
-* Wed Nov 27 2002 Lenz Grimmer <lenz@mysql.com>
-
-- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of
- Linux distributions now support this scheme as proposed by the LSB either
- directly or via a compatibility symlink)
-- Use new "restart" init script action instead of starting and stopping
- separately
-- Be more flexible in activating the automatic bootup - use insserv (on
- older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and
- others) to create the respective symlinks
-
-* Wed Sep 25 2002 Lenz Grimmer <lenz@mysql.com>
-
-- MySQL-Max now requires MySQL >= 4.0 to avoid version mismatches
- (mixing 3.23 and 4.0 packages)
-
-* Fri Aug 09 2002 Lenz Grimmer <lenz@mysql.com>
-
-- Turn off OpenSSL in MySQL-Max for now until it works properly again
-- enable RAID for the Max binary instead
-- added compatibility link: safe_mysqld -> mysqld_safe to ease the
- transition from 3.23
-
-* Thu Jul 18 2002 Lenz Grimmer <lenz@mysql.com>
-
-- Reworked the build steps a little bit: the Max binary is supposed
- to include OpenSSL, which cannot be linked statically, thus trying
- to statically link against a special glibc is futile anyway
-- because of this, it is not required to make yet another build run
- just to compile the shared libs (saves a lot of time)
-- updated package description of the Max subpackage
-- clean up the BuildRoot directory afterwards
-
-* Mon Jul 15 2002 Lenz Grimmer <lenz@mysql.com>
-
-- Updated Packager information
-- Fixed the build options: the regular package is supposed to
- include InnoDB and linked statically, while the Max package
- should include BDB and SSL support
-
-* Fri May 03 2002 Lenz Grimmer <lenz@mysql.com>
-
-- Use more RPM macros (e.g. infodir, mandir) to make the spec
- file more portable
-- reorganized the installation of documentation files: let RPM
- take care of this
-- reorganized the file list: actually install man pages along
- with the binaries of the respective subpackage
-- do not include libmysqld.a in the devel subpackage as well, if we
- have a special "embedded" subpackage
-- reworked the package descriptions
-
-* Mon Oct 8 2001 Monty
-
-- Added embedded server as a separate RPM
-
-* Fri Apr 13 2001 Monty
-
-- Added mysqld-max to the distribution
-
-* Tue Jan 2 2001 Monty
-
-- Added mysql-test to the bench package
-
-* Fri Aug 18 2000 Tim Smith <tim@mysql.com>
-
-- Added separate libmysql_r directory; now both a threaded
- and non-threaded library is shipped.
-
-* Tue Sep 28 1999 David Axmark <davida@mysql.com>
-
-- Added the support-files/my-example.cnf to the docs directory.
-
-- Removed devel dependency on base since it is about client
- development.
-
-* Wed Sep 8 1999 David Axmark <davida@mysql.com>
-
-- Cleaned up some for 3.23.
-
-* Thu Jul 1 1999 David Axmark <davida@mysql.com>
-
-- Added support for shared libraries in a separate sub
- package. Original fix by David Fox (dsfox@cogsci.ucsd.edu)
-
-- The --enable-assembler switch is now automatically disables on
- platforms there assembler code is unavailable. This should allow
- building this RPM on non i386 systems.
-
-* Mon Feb 22 1999 David Axmark <david@detron.se>
-
-- Removed unportable cc switches from the spec file. The defaults can
- now be overridden with environment variables. This feature is used
- to compile the official RPM with optimal (but compiler version
- specific) switches.
-
-- Removed the repetitive description parts for the sub rpms. Maybe add
- again if RPM gets a multiline macro capability.
-
-- Added support for a pt_BR translation. Translation contributed by
- Jorge Godoy <jorge@bestway.com.br>.
-
-* Wed Nov 4 1998 David Axmark <david@detron.se>
-
-- A lot of changes in all the rpm and install scripts. This may even
- be a working RPM :-)
-
-* Sun Aug 16 1998 David Axmark <david@detron.se>
-
-- A developers changelog for MySQL is available in the source RPM. And
- there is a history of major user visible changed in the Reference
- Manual. Only RPM specific changes will be documented here.
diff --git a/support-files/ndb-config-2-node.ini.sh b/support-files/ndb-config-2-node.ini.sh
deleted file mode 100644
index 338efffd336..00000000000
--- a/support-files/ndb-config-2-node.ini.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
-#
-# Example Ndbcluster storage engine config file.
-#
-[ndbd default]
-NoOfReplicas= 2
-MaxNoOfConcurrentOperations= 10000
-DataMemory= 80M
-IndexMemory= 24M
-TimeBetweenWatchDogCheck= 30000
-DataDir= /var/lib/mysql-cluster
-MaxNoOfOrderedIndexes= 512
-
-[ndb_mgmd default]
-DataDir= /var/lib/mysql-cluster
-
-[ndb_mgmd]
-Id=1
-HostName= localhost
-
-[ndbd]
-Id= 2
-HostName= localhost
-
-[ndbd]
-Id= 3
-HostName= localhost
-
-[mysqld]
-Id= 4
-
-[mysqld]
-Id= 5
-
-[mysqld]
-Id= 6
-
-[mysqld]
-Id= 7
-
-# choose an unused port number
-# in this configuration 63132, 63133, and 63134
-# will be used
-[tcp default]
-PortNumber= 63132
diff --git a/support-files/policy/apparmor/README b/support-files/policy/apparmor/README
new file mode 100644
index 00000000000..271655f1e37
--- /dev/null
+++ b/support-files/policy/apparmor/README
@@ -0,0 +1,5 @@
+Note: The included AppArmor profiles can be used for MariaDB Galera cluster.
+However, since these profiles had been tested for a limited set of scenarios,
+it is highly recommended to run them in "complain" mode and report any denials
+on mariadb.org/jira.
+
diff --git a/support-files/policy/apparmor/usr.sbin.mysqld b/support-files/policy/apparmor/usr.sbin.mysqld
new file mode 100644
index 00000000000..a362aa78c7a
--- /dev/null
+++ b/support-files/policy/apparmor/usr.sbin.mysqld
@@ -0,0 +1,151 @@
+# Last Modified: Fri Mar 1 18:55:47 2013
+# Based on usr.sbin.mysqld packaged in mysql-server in Ubuntu.
+# This AppArmor profile has been copied under BSD License from
+# Percona XtraDB Cluster, along with some additions.
+
+#include <tunables/global>
+
+/usr/sbin/mysqld flags=(complain) {
+ #include <abstractions/base>
+ #include <abstractions/mysql>
+ #include <abstractions/nameservice>
+ #include <abstractions/user-tmp>
+ #include <abstractions/winbind>
+
+ capability chown,
+ capability dac_override,
+ capability setgid,
+ capability setuid,
+ capability sys_rawio,
+ capability sys_resource,
+
+ network tcp,
+
+ /bin/dash rcx,
+ /dev/dm-0 r,
+ /etc/gai.conf r,
+ /etc/group r,
+ /etc/hosts.allow r,
+ /etc/hosts.deny r,
+ /etc/ld.so.cache r,
+ /etc/mtab r,
+ /etc/my.cnf r,
+ /etc/mysql/*.cnf r,
+ /etc/mysql/*.pem r,
+ /etc/mysql/conf.d/ r,
+ /etc/mysql/conf.d/* r,
+ /etc/nsswitch.conf r,
+ /etc/passwd r,
+ /etc/services r,
+ /run/mysqld/mysqld.pid w,
+ /run/mysqld/mysqld.sock w,
+ /sys/devices/system/cpu/ r,
+ owner /tmp/** lk,
+ /tmp/** rw,
+ /usr/lib/mysql/plugin/ r,
+ /usr/lib/mysql/plugin/*.so* mr,
+ /usr/sbin/mysqld mr,
+ /usr/share/mysql/** r,
+ /var/lib/mysql/ r,
+ /var/lib/mysql/** rwk,
+ /var/log/mysql.err rw,
+ /var/log/mysql.log rw,
+ /var/log/mysql/ r,
+ /var/log/mysql/* rw,
+ /var/run/mysqld/mysqld.pid w,
+ /var/run/mysqld/mysqld.sock w,
+
+
+ profile /bin/dash flags=(complain) {
+ #include <abstractions/base>
+ #include <abstractions/bash>
+ #include <abstractions/mysql>
+ #include <abstractions/nameservice>
+ #include <abstractions/perl>
+
+
+
+ /bin/cat rix,
+ /bin/dash rix,
+ /bin/date rix,
+ /bin/grep rix,
+ /bin/nc.openbsd rix,
+ /bin/netstat rix,
+ /bin/ps rix,
+ /bin/rm rix,
+ /bin/sed rix,
+ /bin/sleep rix,
+ /bin/tar rix,
+ /bin/which rix,
+ /dev/tty rw,
+ /etc/ld.so.cache r,
+ /etc/my.cnf r,
+ /proc/ r,
+ /proc/*/cmdline r,
+ /proc/*/fd/ r,
+ /proc/*/net/dev r,
+ /proc/*/net/if_inet6 r,
+ /proc/*/net/tcp r,
+ /proc/*/net/tcp6 r,
+ /proc/*/stat r,
+ /proc/*/status r,
+ /proc/sys/kernel/pid_max r,
+ /proc/tty/drivers r,
+ /proc/uptime r,
+ /proc/version r,
+ /sbin/ifconfig rix,
+ /sys/devices/system/cpu/ r,
+ /tmp/** rw,
+ /usr/bin/cut rix,
+ /usr/bin/dirname rix,
+ /usr/bin/gawk rix,
+ /usr/bin/innobackupex rix,
+ /usr/bin/mysql rix,
+ /usr/bin/perl rix,
+ /usr/bin/seq rix,
+ /usr/bin/wsrep_sst* rix,
+ /usr/bin/wsrep_sst_common r,
+ /usr/bin/xtrabackup* rix,
+ /usr/bin/mariabackup* rix,
+ /var/lib/mysql/ r,
+ /var/lib/mysql/** rw,
+ /var/lib/mysql/*.log w,
+ /var/lib/mysql/*.err w,
+
+# MariaDB additions
+ ptrace peer=@{profile_name},
+
+ /bin/hostname rix,
+ /bin/ip rix,
+ /bin/mktemp rix,
+ /bin/ss rix,
+ /bin/sync rix,
+ /bin/touch rix,
+ /bin/uname rix,
+ /etc/mysql/*.cnf r,
+ /etc/mysql/conf.d/ r,
+ /etc/mysql/conf.d/* r,
+ /proc/*/attr/current r,
+ /proc/*/fdinfo/* r,
+ /proc/*/net/* r,
+ /proc/locks r,
+ /proc/sys/net/ipv4/ip_local_port_range r,
+ /run/mysqld/mysqld.sock rw,
+ /sbin/ip rix,
+ /usr/bin/basename rix,
+ /usr/bin/du rix,
+ /usr/bin/find rix,
+ /usr/bin/lsof rix,
+ /usr/bin/my_print_defaults rix,
+ /usr/bin/mysqldump rix,
+ /usr/bin/pv rix,
+ /usr/bin/rsync rix,
+ /usr/bin/socat rix,
+ /usr/bin/tail rix,
+ /usr/bin/timeout rix,
+ /usr/bin/xargs rix,
+ /usr/bin/xbstream rix,
+ }
+ # Site-specific additions and overrides. See local/README for details.
+ #include <local/usr.sbin.mysqld>
+}
diff --git a/support-files/policy/apparmor/usr.sbin.mysqld.local b/support-files/policy/apparmor/usr.sbin.mysqld.local
new file mode 100644
index 00000000000..a0b8a0279de
--- /dev/null
+++ b/support-files/policy/apparmor/usr.sbin.mysqld.local
@@ -0,0 +1,4 @@
+# Site-specific additions and overrides for usr.sbin.mysqld..
+# For more details, please see /etc/apparmor.d/local/README.
+# This AppArmor profile has been copied under BSD License from
+# Percona XtraDB Cluster, along with some additions.
diff --git a/support-files/policy/selinux/README b/support-files/policy/selinux/README
new file mode 100644
index 00000000000..3f695dc27a3
--- /dev/null
+++ b/support-files/policy/selinux/README
@@ -0,0 +1,20 @@
+Note: The included SELinux policy files can be used for MariaDB Galera cluster.
+However, since these policies had been tested for a limited set of scenarios,
+it is highly recommended that you run mysqld in "permissive" mode even with
+these policies installed and report any denials on mariadb.org/jira.
+
+
+How to generate and load the policy module of MariaDB Galera cluster ?
+ * Generate the SELinux policy module.
+ # cd <source>/policy/selinux/
+ # make -f /usr/share/selinux/devel/Makefile mariadb-server.pp
+
+ * Load the generated policy module.
+ # semodule -i /path/to/mariadb-server.pp
+
+ * Lastly, run the following command to allow tcp/4568 and udp/4567.
+ # semanage port -a -t mysqld_port_t -p tcp 4568
+ # semanage port -a -t mysqld_port_t -p udp 4567
+
+How to run mysqld in permissve mode ?
+ # semanage permissive -a mysqld_t
diff --git a/support-files/policy/selinux/mariadb-server.fc b/support-files/policy/selinux/mariadb-server.fc
new file mode 100644
index 00000000000..39ec152c1ec
--- /dev/null
+++ b/support-files/policy/selinux/mariadb-server.fc
@@ -0,0 +1,11 @@
+# This SELinux file contexts (.fc) file has been copied under New BSD License from
+# Percona XtraDB Cluster.
+
+/etc/init\.d/rc\.d/mysql -- gen_context(system_u:object_r:mysqld_initrc_exec_t,s0)
+/var/lib/mysql/.*\.log -- gen_context(system_u:object_r:mysqld_log_t,s0)
+/var/lib/mysql/.*\.err -- gen_context(system_u:object_r:mysqld_log_t,s0)
+/var/lib/mysql/.*\.pid -- gen_context(system_u:object_r:mysqld_var_run_t,s0)
+/var/lib/mysql/.*\.cnf -- gen_context(system_u:object_r:mysqld_etc_t,s0)
+/usr/bin/xtrabackup.* -- gen_context(system_u:object_r:mysqld_exec_t,s0)
+/usr/bin/mariabackup.* -- gen_context(system_u:object_r:mysqld_exec_t,s0)
+/usr/bin/wsrep.* -- gen_context(system_u:object_r:mysqld_safe_exec_t,s0)
diff --git a/support-files/policy/selinux/mariadb-server.te b/support-files/policy/selinux/mariadb-server.te
new file mode 100644
index 00000000000..45ef40f4153
--- /dev/null
+++ b/support-files/policy/selinux/mariadb-server.te
@@ -0,0 +1,99 @@
+# This SELinux type enforcement (.te) file has been copied under New BSD License
+# from Percona XtraDB Cluster, along with some additions.
+
+module mariadb-server 1.0;
+
+require {
+ type user_tmp_t;
+ #type kerberos_master_port_t;
+ type mysqld_safe_t;
+ type tmp_t;
+ type tmpfs_t;
+ type hostname_exec_t;
+ type ifconfig_exec_t;
+ type sysctl_net_t;
+ type proc_net_t;
+ type port_t;
+ type mysqld_t;
+ type var_lib_t;
+ type rsync_exec_t;
+ type bin_t;
+ type shell_exec_t;
+ type anon_inodefs_t;
+ type fixed_disk_device_t;
+ class lnk_file read;
+ class process { getattr signull };
+ class unix_stream_socket connectto;
+ class capability { sys_resource sys_nice };
+ class tcp_socket { name_bind name_connect };
+ class file { execute setattr read create getattr execute_no_trans write ioctl open append unlink };
+ class sock_file { create unlink getattr };
+ class blk_file { read write open };
+ class dir { write search getattr add_name read remove_name open };
+
+# MariaDB additions
+ type kerberos_port_t;
+ type tram_port_t;
+ type mysqld_port_t;
+ class udp_socket name_bind;
+ class process setpgid;
+ class netlink_tcpdiag_socket { create nlmsg_read };
+}
+
+
+#============= mysqld_safe_t ==============
+allow mysqld_safe_t mysqld_t:process signull;
+allow mysqld_safe_t self:capability { sys_resource sys_nice };
+allow mysqld_safe_t tmp_t:file { create read write open getattr unlink ioctl setattr };
+allow mysqld_safe_t tmp_t:dir { write remove_name add_name };
+allow mysqld_safe_t tmp_t:sock_file { getattr unlink };
+allow mysqld_safe_t user_tmp_t:sock_file { getattr unlink };
+allow mysqld_safe_t var_lib_t:dir { write add_name };
+allow mysqld_safe_t var_lib_t:file { write ioctl setattr create open getattr append unlink };
+
+#============= mysqld_t ==============
+allow mysqld_t anon_inodefs_t:file write;
+allow mysqld_t tmp_t:sock_file { create unlink };
+allow mysqld_t tmpfs_t:dir { write search read remove_name open add_name };
+allow mysqld_t tmpfs_t:file { write getattr read create unlink open };
+allow mysqld_t fixed_disk_device_t:blk_file { read write open };
+allow mysqld_t ifconfig_exec_t:file { read execute open execute_no_trans getattr };
+
+#This rule allows connecting on 4444/4567/4568
+#allow mysqld_t kerberos_master_port_t:tcp_socket { name_bind name_connect };
+
+allow mysqld_t mysqld_safe_t:dir { getattr search };
+allow mysqld_t mysqld_safe_t:file { read open };
+allow mysqld_t self:unix_stream_socket connectto;
+allow mysqld_t port_t:tcp_socket { name_bind name_connect };
+allow mysqld_t proc_net_t:file { read getattr open };
+allow mysqld_t sysctl_net_t:dir search;
+allow mysqld_t var_lib_t:file { getattr open append };
+allow mysqld_t var_lib_t:sock_file { create unlink getattr };
+allow mysqld_t rsync_exec_t:file { read getattr open execute execute_no_trans };
+allow mysqld_t self:process getattr;
+allow mysqld_t hostname_exec_t:file { read getattr execute open execute_no_trans };
+allow mysqld_t user_tmp_t:dir { write add_name };
+allow mysqld_t user_tmp_t:file create;
+allow mysqld_t bin_t:lnk_file read;
+allow mysqld_t tmp_t:file { append create read write open getattr unlink setattr };
+
+# Allows too much leeway - the xtrabackup/wsrep rules in fc should fix it, but
+# keep for the moment.
+allow mysqld_t shell_exec_t:file { execute_no_trans getattr read execute open };
+allow mysqld_t bin_t:file { getattr read execute open execute_no_trans ioctl };
+
+# MariaDB additions
+allow mysqld_t self:process setpgid;
+# This rule allows port tcp/4444
+allow mysqld_t kerberos_port_t:tcp_socket { name_bind name_connect };
+# This rule allows port tcp/4567 (tram_port_t may not be available on
+# older versions)
+allow mysqld_t tram_port_t:tcp_socket name_bind;
+# This rule allows port udp/4567 (see README)
+allow mysqld_t mysqld_port_t:udp_socket name_bind;
+
+# Rules related to XtraBackup
+allow mysqld_t self:netlink_tcpdiag_socket { create nlmsg_read };
+allow mysqld_t sysctl_net_t:file { read getattr open };
+
diff --git a/support-files/SELinux/mariadb.te b/support-files/policy/selinux/mariadb.te
index 1d3de52c700..1d3de52c700 100644
--- a/support-files/SELinux/mariadb.te
+++ b/support-files/policy/selinux/mariadb.te
diff --git a/support-files/rpm/enable_encryption.preset b/support-files/rpm/enable_encryption.preset
new file mode 100644
index 00000000000..722db7e5fa1
--- /dev/null
+++ b/support-files/rpm/enable_encryption.preset
@@ -0,0 +1,20 @@
+#
+# !include this file into your my.cnf (or any of *.cnf files in /etc/my.cnf.d)
+# and it will enable data at rest encryption. This is a simple way to
+# ensure that everything that can be encrypted will be and your
+# data will not leak unencrypted.
+#
+# DO NOT EDIT THIS FILE! On MariaDB upgrades it might be replaced with a
+# newer version and your edits will be lost. Instead, add your edits
+# to the .cnf file after the !include directive.
+#
+# NOTE that you also need to install an encryption plugin for the encryption
+# to work. See https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#encryption-key-management
+#
+[mariadb]
+aria-encrypt-tables
+encrypt-binlog
+encrypt-tmp-disk-tables
+encrypt-tmp-files
+loose-innodb-encrypt-log
+loose-innodb-encrypt-tables
diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh
index 139d9e3f700..deb27c98ac1 100644
--- a/support-files/rpm/server-postin.sh
+++ b/support-files/rpm/server-postin.sh
@@ -1,11 +1,23 @@
+if [ -f /usr/lib/systemd/system/mariadb.service -a -x /usr/bin/systemctl ]; then
+ systemd_conf=/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
+ if [ -x %{_bindir}/mariadb-service-convert -a ! -f "${systemd_conf}" ]; then
+ # Either fresh install or upgrade non-systemd -> systemd
+ mkdir -p /etc/systemd/system/mariadb.service.d
+ %{_bindir}/mariadb-service-convert > "${systemd_conf}"
+ # Make sure old possibly non-systemd instance is down
+ if [ $1 = 2 ]; then
+ SYSTEMCTL_SKIP_REDIRECT=1 %{_sysconfdir}/init.d/mysql stop >/dev/null 2>&1 || :
+ systemctl start mariadb >/dev/null 2>&1 || :
+ fi
+ systemctl enable mariadb.service >/dev/null 2>&1 || :
+ fi
+fi
# Make MySQL start/shutdown automatically when the machine does it.
if [ $1 = 1 ] ; then
if [ -x /usr/bin/systemctl ] ; then
/usr/bin/systemctl daemon-reload >/dev/null 2>&1
- fi
-
- if [ -x /sbin/chkconfig ] ; then
+ elif [ -x /sbin/chkconfig ] ; then
/sbin/chkconfig --add mysql
fi
@@ -31,13 +43,18 @@ if [ $1 = 1 ] ; then
# The user may already exist, make sure it has the proper group nevertheless (BUG#12823)
usermod --gid %{mysqld_group} %{mysqld_user} 2> /dev/null || true
+ # Temporary Workaround for MDEV-11386 - will be corrected in Advance Toolchain 10.0-3 and 8.0-8
+ for ldconfig in /opt/at*/sbin/ldconfig; do
+ test -x $ldconfig && $ldconfig
+ done
+
# Change permissions so that the user that will run the MySQL daemon
# owns all database files.
- chown -R %{mysqld_user}:%{mysqld_group} $datadir
+ chown -R -f %{mysqld_user}:%{mysqld_group} $datadir
if [ ! -e $datadir/mysql ]; then
# Create data directory
- mkdir -p $datadir/{mysql,test}
+ mkdir -p $datadir
# Initiate databases
%{_bindir}/mysql_install_db --rpm --user=%{mysqld_user}
@@ -57,7 +74,7 @@ SEDOMPROG=$SETARGETDIR/domains/program
SECONPROG=$SETARGETDIR/file_contexts/program
if [ -x /usr/sbin/semodule ] ; then
- /usr/sbin/semodule -i /usr/share/mysql/SELinux/mariadb.pp
+ /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mariadb.pp
fi
if [ -x sbin/restorecon ] ; then
diff --git a/support-files/rpm/server-postun.sh b/support-files/rpm/server-postun.sh
index 412c6f4c67b..21468e39e18 100644
--- a/support-files/rpm/server-postun.sh
+++ b/support-files/rpm/server-postun.sh
@@ -1,9 +1,10 @@
if [ $1 -ge 1 ]; then
- if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- # only restart the server if it was alredy running
- if %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1; then
- %{_sysconfdir}/init.d/mysql restart
- fi
+ # only restart the server if it was alredy running
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl daemon-reload > /dev/null 2>&1
+ /usr/bin/systemctl try-restart mariadb.service > /dev/null 2>&1
+ elif %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1; then
+ %{_sysconfdir}/init.d/mysql restart
fi
fi
diff --git a/support-files/rpm/server-preun.sh b/support-files/rpm/server-preun.sh
index 7ef48f1c8d4..1d733a7d899 100644
--- a/support-files/rpm/server-preun.sh
+++ b/support-files/rpm/server-preun.sh
@@ -1,12 +1,16 @@
if [ $1 = 0 ] ; then
- # Stop MySQL before uninstalling it
- if [ -x %{_sysconfdir}/init.d/mysql ] ; then
- %{_sysconfdir}/init.d/mysql stop > /dev/null
- fi
+ # Stop MySQL before uninstalling it
# Don't start it automatically anymore
- if [ -x /sbin/chkconfig ] ; then
- /sbin/chkconfig --del mysql
- fi
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl stop mariadb.service > /dev/null 2>&1
+ /usr/bin/systemctl disable mariadb.service > /dev/null 2>&1
+ fi
+ if [ -x %{_sysconfdir}/init.d/mysql ] ; then
+ %{_sysconfdir}/init.d/mysql stop > /dev/null
+ fi
+ if [ -x /sbin/chkconfig ] ; then
+ /sbin/chkconfig --del mysql > /dev/null 2>&1
+ fi
fi
# We do not remove the mysql user since it may still own a lot of
diff --git a/support-files/rpm/server.cnf b/support-files/rpm/server.cnf
index 2025a8b811a..9682d2b836f 100644
--- a/support-files/rpm/server.cnf
+++ b/support-files/rpm/server.cnf
@@ -11,18 +11,36 @@
# this is only for the mysqld standalone daemon
[mysqld]
+#
+# * Galera-related settings
+#
+[galera]
+# Mandatory settings
+#wsrep_on=ON
+#wsrep_provider=
+#wsrep_cluster_address=
+#binlog_format=row
+#default_storage_engine=InnoDB
+#innodb_autoinc_lock_mode=2
+#
+# Allow server to accept connections on all interfaces.
+#
+#bind-address=0.0.0.0
+#
+# Optional setting
+#wsrep_slave_threads=1
+#innodb_flush_log_at_trx_commit=0
+
# this is only for embedded server
[embedded]
-# This group is only read by MariaDB-5.5 servers.
-# If you use the same .cnf file for MariaDB of different versions,
-# use this group for options that older servers don't understand
-[mysqld-5.5]
-
-# These two groups are only read by MariaDB servers, not by MySQL.
+# This group is only read by MariaDB servers, not by MySQL.
# If you use the same .cnf file for MySQL and MariaDB,
# you can put MariaDB-only options here
[mariadb]
-[mariadb-5.5]
+# This group is only read by MariaDB-10.1 servers.
+# If you use the same .cnf file for MariaDB of different versions,
+# use this group for options that older servers don't understand
+[mariadb-10.1]
diff --git a/support-files/sysusers.conf.in b/support-files/sysusers.conf.in
new file mode 100644
index 00000000000..a975b29476a
--- /dev/null
+++ b/support-files/sysusers.conf.in
@@ -0,0 +1 @@
+u @MYSQLD_USER@ - "MariaDB" @MYSQL_DATADIR@
diff --git a/support-files/tmpfiles.conf.in b/support-files/tmpfiles.conf.in
new file mode 100644
index 00000000000..03d66abc0c7
--- /dev/null
+++ b/support-files/tmpfiles.conf.in
@@ -0,0 +1 @@
+d @MYSQL_UNIX_DIR@ 0755 @MYSQLD_USER@ @MYSQLD_USER@ -
diff --git a/support-files/use_galera_new_cluster.conf b/support-files/use_galera_new_cluster.conf
new file mode 100644
index 00000000000..90e0365ffd8
--- /dev/null
+++ b/support-files/use_galera_new_cluster.conf
@@ -0,0 +1,22 @@
+#
+# Install as /etc/systemd/system/mariadb@bootstrap.service.d/use_galera_new_cluster.conf
+#
+# MariaDB uses /usr/bin/galera_new_cluster
+#
+# This is here to help guide people that may have used Percona mysql@bootstrap
+# to the correct implementation.
+
+[Unit]
+
+ConditionPathExists=
+
+[Service]
+
+Type=oneshot
+Restart=no
+
+# Override the multi instance service for a bootstrap start instance
+ExecStart=
+ExecStart=/usr/bin/echo "Please use galera_new_cluster to start the mariadb service with --wsrep-new-cluster"
+ExecStart=/usr/bin/false
+
diff --git a/support-files/wsrep.cnf.sh b/support-files/wsrep.cnf.sh
new file mode 100644
index 00000000000..7242fff9f7a
--- /dev/null
+++ b/support-files/wsrep.cnf.sh
@@ -0,0 +1,125 @@
+# This file contains wsrep-related mysqld options. It should be included
+# in the main MySQL configuration file.
+#
+# Options that need to be customized:
+# - wsrep_provider
+# - wsrep_cluster_address
+# - wsrep_sst_auth
+# The rest of defaults should work out of the box.
+
+##
+## mysqld options _MANDATORY_ for correct opration of the cluster
+##
+[mysqld]
+
+# (This must be substituted by wsrep_format)
+binlog_format=ROW
+
+# Currently only InnoDB storage engine is supported
+default-storage-engine=innodb
+
+# to avoid issues with 'bulk mode inserts' using autoinc
+innodb_autoinc_lock_mode=2
+
+# Override bind-address
+# In some systems bind-address defaults to 127.0.0.1, and with mysqldump SST
+# it will have (most likely) disastrous consequences on donor node
+bind-address=0.0.0.0
+
+##
+## WSREP options
+##
+
+# Enable wsrep
+wsrep_on=1
+
+# Full path to wsrep provider library or 'none'
+wsrep_provider=none
+
+# Provider specific configuration options
+#wsrep_provider_options=
+
+# Logical cluster name. Should be the same for all nodes.
+wsrep_cluster_name="my_wsrep_cluster"
+
+# Group communication system handle
+#wsrep_cluster_address="dummy://"
+
+# Human-readable node name (non-unique). Hostname by default.
+#wsrep_node_name=
+
+# Base replication <address|hostname>[:port] of the node.
+# The values supplied will be used as defaults for state transfer receiving,
+# listening ports and so on. Default: address of the first network interface.
+#wsrep_node_address=
+
+# Address for incoming client connections. Autodetect by default.
+#wsrep_node_incoming_address=
+
+# How many threads will process writesets from other nodes
+wsrep_slave_threads=1
+
+# DBUG options for wsrep provider
+#wsrep_dbug_option
+
+# Generate fake primary keys for non-PK tables (required for multi-master
+# and parallel applying operation)
+wsrep_certify_nonPK=1
+
+# Maximum number of rows in write set
+wsrep_max_ws_rows=0
+
+# Maximum size of write set
+wsrep_max_ws_size=2147483647
+
+# to enable debug level logging, set this to 1
+wsrep_debug=0
+
+# convert locking sessions into transactions
+wsrep_convert_LOCK_to_trx=0
+
+# how many times to retry deadlocked autocommits
+wsrep_retry_autocommit=1
+
+# change auto_increment_increment and auto_increment_offset automatically
+wsrep_auto_increment_control=1
+
+# retry autoinc insert, which failed for duplicate key error
+wsrep_drupal_282555_workaround=0
+
+# enable "strictly synchronous" semantics for read operations
+wsrep_causal_reads=0
+
+# Command to call when node status or cluster membership changes.
+# Will be passed all or some of the following options:
+# --status - new status of this node
+# --uuid - UUID of the cluster
+# --primary - whether the component is primary or not ("yes"/"no")
+# --members - comma-separated list of members
+# --index - index of this node in the list
+wsrep_notify_cmd=
+
+##
+## WSREP State Transfer options
+##
+
+# State Snapshot Transfer method
+wsrep_sst_method=rsync
+
+# Address which donor should send State Snapshot to.
+# Should be the address of THIS node. DON'T SET IT TO DONOR ADDRESS!!!
+# (SST method dependent. Defaults to the first IP of the first interface)
+#wsrep_sst_receive_address=
+
+# SST authentication string. This will be used to send SST to joining nodes.
+# Depends on SST method. For mysqldump method it is root:<root password>
+wsrep_sst_auth=root:
+
+# Desired SST donor name.
+#wsrep_sst_donor=
+
+# Reject client queries when donating SST (false)
+#wsrep_sst_donor_rejects_queries=0
+
+# Protocol version to use
+# wsrep_protocol_version=
diff --git a/support-files/wsrep_notify.sh b/support-files/wsrep_notify.sh
new file mode 100644
index 00000000000..bdbe3d12a39
--- /dev/null
+++ b/support-files/wsrep_notify.sh
@@ -0,0 +1,102 @@
+#!/bin/sh -eu
+
+# This is a simple example of wsrep notification script (wsrep_notify_cmd).
+# It will create 'wsrep' schema and two tables in it: 'membeship' and 'status'
+# and fill them on every membership or node status change.
+#
+# Edit parameters below to specify the address and login to server.
+
+USER=root
+PSWD=rootpass
+HOST=127.0.0.1
+PORT=3306
+
+SCHEMA="wsrep"
+MEMB_TABLE="$SCHEMA.membership"
+STATUS_TABLE="$SCHEMA.status"
+
+BEGIN="
+SET wsrep_on=0;
+DROP SCHEMA IF EXISTS $SCHEMA; CREATE SCHEMA $SCHEMA;
+CREATE TABLE $MEMB_TABLE (
+ idx INT UNIQUE PRIMARY KEY,
+ uuid CHAR(40) UNIQUE, /* node UUID */
+ name VARCHAR(32), /* node name */
+ addr VARCHAR(256) /* node address */
+) ENGINE=MEMORY;
+CREATE TABLE $STATUS_TABLE (
+ size INT, /* component size */
+ idx INT, /* this node index */
+ status CHAR(16), /* this node status */
+ uuid CHAR(40), /* cluster UUID */
+ prim BOOLEAN /* if component is primary */
+) ENGINE=MEMORY;
+BEGIN;
+DELETE FROM $MEMB_TABLE;
+DELETE FROM $STATUS_TABLE;
+"
+END="COMMIT;"
+
+configuration_change()
+{
+ echo "$BEGIN;"
+
+ local idx=0
+
+ for NODE in $(echo $MEMBERS | sed s/,/\ /g)
+ do
+ echo "INSERT INTO $MEMB_TABLE VALUES ( $idx, "
+ # Don't forget to properly quote string values
+ echo "'$NODE'" | sed s/\\//\',\'/g
+ echo ");"
+ idx=$(( $idx + 1 ))
+ done
+
+ echo "INSERT INTO $STATUS_TABLE VALUES($idx, $INDEX, '$STATUS', '$CLUSTER_UUID', $PRIMARY);"
+
+ echo "$END"
+}
+
+status_update()
+{
+ echo "SET wsrep_on=0; BEGIN; UPDATE $STATUS_TABLE SET status='$STATUS'; COMMIT;"
+}
+
+COM=status_update # not a configuration change by default
+
+while [ $# -gt 0 ]
+do
+ case $1 in
+ --status)
+ STATUS=$2
+ shift
+ ;;
+ --uuid)
+ CLUSTER_UUID=$2
+ shift
+ ;;
+ --primary)
+ [ "$2" = "yes" ] && PRIMARY="1" || PRIMARY="0"
+ COM=configuration_change
+ shift
+ ;;
+ --index)
+ INDEX=$2
+ shift
+ ;;
+ --members)
+ MEMBERS=$2
+ shift
+ ;;
+ esac
+ shift
+done
+
+# Undefined means node is shutting down
+if [ "$STATUS" != "Undefined" ]
+then
+ $COM | mysql -B -u$USER -p$PSWD -h$HOST -P$PORT
+fi
+
+exit 0
+#