1# Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. 2# 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; version 2 of the License. 6# 7# This program is distributed in the hope that it will be useful, 8# but WITHOUT ANY WARRANTY; without even the implied warranty of 9# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10# GNU General Public License for more details. 11# 12# You should have received a copy of the GNU General Public License 13# along with this program; see the file COPYING. If not, write to the 14# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston 15# MA 02110-1301 USA. 16 17############################################################################## 18# Some common macro definitions 19############################################################################## 20 21# NOTE: "vendor" is used in upgrade/downgrade check, so you can't 22# change these, has to be exactly as is. 23%global mysql_old_vendor MySQL AB 24%global mysql_vendor_2 Sun Microsystems, Inc. 25%global mysql_vendor Oracle and/or its affiliates 26 27%global mysql_version @VERSION@ 28 29%global mysqld_user mysql 30%global mysqld_group mysql 31%global mysqldatadir /var/lib/mysql 32 33%global release 1 34 35 36# 37# Macros we use which are not available in all supported versions of RPM 38# 39# - defined/undefined are missing on RHEL4 40# 41%if %{expand:%{?defined:0}%{!?defined:1}} 42%define defined() %{expand:%%{?%{1}:1}%%{!?%{1}:0}} 43%endif 44%if %{expand:%{?undefined:0}%{!?undefined:1}} 45%define undefined() %{expand:%%{?%{1}:0}%%{!?%{1}:1}} 46%endif 47 48# ---------------------------------------------------------------------------- 49# RPM build tools now automatically detect Perl module dependencies. This 50# detection causes problems as it is broken in some versions, and it also 51# provides unwanted dependencies from mandatory scripts in our package. 52# It might not be possible to disable this in all versions of RPM, but here we 53# try anyway. We keep the "AutoReqProv: no" for the "test" sub package, as 54# disabling here might fail, and that package has the most problems. 55# See: 56# http://fedoraproject.org/wiki/Packaging/Perl#Filtering_Requires:_and_Provides 57# http://www.wideopen.com/archives/rpm-list/2002-October/msg00343.html 58# ---------------------------------------------------------------------------- 59%undefine __perl_provides 60%undefine __perl_requires 61 62############################################################################## 63# Command line handling 64############################################################################## 65# 66# To set options: 67# 68# $ rpmbuild --define="option <x>" ... 69# 70 71# ---------------------------------------------------------------------------- 72# Commercial builds 73# ---------------------------------------------------------------------------- 74%if %{undefined commercial} 75%define commercial 0 76%endif 77 78# ---------------------------------------------------------------------------- 79# Source name 80# ---------------------------------------------------------------------------- 81%if %{undefined src_base} 82%define src_base mysql 83%endif 84%define src_dir %{src_base}-%{mysql_version} 85 86# ---------------------------------------------------------------------------- 87# Feature set (storage engines, options). Default to community (everything) 88# ---------------------------------------------------------------------------- 89%if %{undefined feature_set} 90%define feature_set community 91%endif 92 93# ---------------------------------------------------------------------------- 94# Server comment strings 95# ---------------------------------------------------------------------------- 96%if %{undefined compilation_comment_debug} 97%define compilation_comment_debug MySQL Community Server - Debug (GPL) 98%endif 99%if %{undefined compilation_comment_release} 100%define compilation_comment_release MySQL Community Server (GPL) 101%endif 102 103# ---------------------------------------------------------------------------- 104# Product and server suffixes 105# ---------------------------------------------------------------------------- 106%if %{undefined product_suffix} 107 %if %{defined short_product_tag} 108 %define product_suffix -%{short_product_tag} 109 %else 110 %define product_suffix %{nil} 111 %endif 112%endif 113 114%if %{undefined server_suffix} 115%define server_suffix %{nil} 116%endif 117 118# ---------------------------------------------------------------------------- 119# Distribution support 120# ---------------------------------------------------------------------------- 121%if %{undefined distro_specific} 122%define distro_specific 0 123%endif 124%if %{distro_specific} 125 %if %(test -f /etc/enterprise-release && echo 1 || echo 0) 126 %define oelver %(rpm -qf --qf '%%{version}\\n' /etc/enterprise-release | sed -e 's/^\\([0-9]*\\).*/\\1/g') 127 %if "%oelver" == "4" 128 %define distro_description Oracle Enterprise Linux 4 129 %define distro_releasetag oel4 130 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel 131 %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools 132 %else 133 %if "%oelver" == "5" 134 %define distro_description Oracle Enterprise Linux 5 135 %define distro_releasetag oel5 136 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel 137 %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools 138 %else 139 %{error:Oracle Enterprise Linux %{oelver} is unsupported} 140 %endif 141 %endif 142 %else 143 %if %(test -f /etc/oracle-release && echo 1 || echo 0) 144 %define elver %(rpm -qf --qf '%%{version}\\n' /etc/oracle-release | sed -e 's/^\\([0-9]*\\).*/\\1/g') 145 %if "%elver" == "6" || "%elver" == "7" 146 %define distro_description Oracle Linux %elver 147 %define distro_releasetag el%elver 148 %define distro_buildreq gcc-c++ ncurses-devel perl perl(Data::Dumper) readline-devel time zlib-devel cmake libaio-devel 149 %define distro_requires chkconfig coreutils grep perl(Data::Dumper) procps shadow-utils net-tools 150 %else 151 %{error:Oracle Linux %{elver} is unsupported} 152 %endif 153 %else 154 %if %(test -f /etc/redhat-release && echo 1 || echo 0) 155 %define rhelver %(rpm -qf --qf '%%{version}\\n' /etc/redhat-release | sed -e 's/^\\([0-9]*\\).*/\\1/g') 156 %if "%rhelver" == "4" 157 %define distro_description Red Hat Enterprise Linux 4 158 %define distro_releasetag rhel4 159 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel 160 %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools 161 %else 162 %if "%rhelver" == "5" 163 %define distro_description Red Hat Enterprise Linux 5 164 %define distro_releasetag rhel5 165 %define distro_buildreq gcc-c++ gperf ncurses-devel perl readline-devel time zlib-devel cmake libaio-devel 166 %define distro_requires chkconfig coreutils grep procps shadow-utils net-tools 167 %else 168 %if "%rhelver" == "6" 169 %define distro_description Red Hat Enterprise Linux 6 170 %define distro_releasetag rhel6 171 %define distro_buildreq gcc-c++ ncurses-devel perl perl(Data::Dumper) readline-devel time zlib-devel cmake libaio-devel 172 %define distro_requires chkconfig coreutils grep perl(Data::Dumper) procps shadow-utils net-tools 173 %else 174 %{error:Red Hat Enterprise Linux %{rhelver} is unsupported} 175 %endif 176 %endif 177 %endif 178 %else 179 %if %(test -f /etc/SuSE-release && echo 1 || echo 0) 180 %define susever %(rpm -qf --qf '%%{version}\\n' /etc/SuSE-release | cut -d. -f1) 181 %if "%susever" == "10" 182 %define distro_description SUSE Linux Enterprise Server 10 183 %define distro_releasetag sles10 184 %define distro_buildreq gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client readline-devel zlib-devel cmake libaio-devel 185 %define distro_requires aaa_base coreutils grep procps pwdutils 186 %else 187 %if "%susever" == "11" 188 %define distro_description SUSE Linux Enterprise Server 11 189 %define distro_releasetag sles11 190 %define distro_buildreq gcc-c++ gdbm-devel gperf ncurses-devel openldap2-client procps pwdutils readline-devel zlib-devel cmake libaio-devel 191 %define distro_requires aaa_base coreutils grep procps pwdutils 192 %else 193 %{error:SuSE %{susever} is unsupported} 194 %endif 195 %endif 196 %else 197 %{error:Unsupported distribution} 198 %endif 199 %endif 200 %endif 201 %endif 202%else 203 %define generic_kernel %(uname -r | cut -d. -f1-2) 204 %define distro_description Generic Linux (kernel %{generic_kernel}) 205 %define distro_releasetag linux%{generic_kernel} 206 %define distro_buildreq gcc-c++ gperf ncurses-devel perl perl(Data::Dumper) readline-devel time zlib-devel 207 %define distro_requires coreutils grep perl(Data::Dumper) procps /sbin/chkconfig /usr/sbin/useradd /usr/sbin/groupadd 208%endif 209 210# Avoid debuginfo RPMs, leaves binaries unstripped 211%define debug_package %{nil} 212 213# Hack to work around bug in RHEL5 __os_install_post macro, wrong inverted 214# test for __debug_package 215%define __strip /bin/true 216 217# ---------------------------------------------------------------------------- 218# Support optional "tcmalloc" library (experimental) 219# ---------------------------------------------------------------------------- 220%if %{defined malloc_lib_target} 221%define WITH_TCMALLOC 1 222%else 223%define WITH_TCMALLOC 0 224%endif 225 226############################################################################## 227# Configuration based upon above user input, not to be set directly 228############################################################################## 229 230%if 0%{?commercial} 231%define license_files_server %{src_dir}/LICENSE.mysql 232%define license_type Commercial 233%else 234%define license_files_server %{src_dir}/COPYING %{src_dir}/README 235%define license_type GPL 236%endif 237 238############################################################################## 239# Main spec file section 240############################################################################## 241 242Name: MySQL%{product_suffix} 243Summary: MySQL: a very fast and reliable SQL database server 244Group: Applications/Databases 245Version: @MYSQL_RPM_VERSION@ 246Release: %{release}%{?distro_releasetag:.%{distro_releasetag}} 247Distribution: %{distro_description} 248License: Copyright (c) 2000, @MYSQL_COPYRIGHT_YEAR@, %{mysql_vendor}. All rights reserved. Under %{license_type} license as shown in the Description field. 249Source: http://www.mysql.com/Downloads/MySQL-@MYSQL_BASE_VERSION@/%{src_dir}.tar.gz 250URL: http://www.mysql.com/ 251Packager: MySQL Release Engineering <mysql-build@oss.oracle.com> 252Vendor: %{mysql_vendor} 253BuildRequires: %{distro_buildreq} 254%{?el7:Patch0: mysql-5.5-libmysqlclient-symbols.patch} 255 256# Regression tests may take a long time, override the default to skip them 257%{!?runselftest:%global runselftest 1} 258 259# Think about what you use here since the first step is to 260# run a rm -rf 261BuildRoot: %{_tmppath}/%{name}-%{version}-build 262 263# From the manual 264%description 265The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, 266and robust SQL (Structured Query Language) database server. MySQL Server 267is intended for mission-critical, heavy-load production systems as well 268as for embedding into mass-deployed software. MySQL is a trademark of 269%{mysql_vendor} 270 271The MySQL software has Dual Licensing, which means you can use the MySQL 272software free of charge under the GNU General Public License 273(http://www.gnu.org/licenses/). You can also purchase commercial MySQL 274licenses from %{mysql_vendor} if you do not wish to be bound by the terms of 275the GPL. See the chapter "Licensing and Support" in the manual for 276further info. 277 278The MySQL web site (http://www.mysql.com/) provides the latest 279news and information about the MySQL software. Also please see the 280documentation and the manual for more information. 281 282############################################################################## 283# Sub package definition 284############################################################################## 285 286%package -n MySQL-server%{product_suffix} 287Summary: MySQL: a very fast and reliable SQL database server 288Group: Applications/Databases 289Requires: %{distro_requires} 290%if 0%{?commercial} 291Obsoletes: MySQL-server 292%else 293Obsoletes: MySQL-server-advanced 294%endif 295Obsoletes: mysql-server < %{version}-%{release} 296Obsoletes: mysql-server-advanced 297Obsoletes: MySQL-server-classic MySQL-server-community MySQL-server-enterprise 298Obsoletes: MySQL-server-advanced-gpl MySQL-server-enterprise-gpl 299Provides: mysql-server = %{version}-%{release} 300Provides: mysql-server%{?_isa} = %{version}-%{release} 301 302%description -n MySQL-server%{product_suffix} 303The MySQL(TM) software delivers a very fast, multi-threaded, multi-user, 304and robust SQL (Structured Query Language) database server. MySQL Server 305is intended for mission-critical, heavy-load production systems as well 306as for embedding into mass-deployed software. MySQL is a trademark of 307%{mysql_vendor} 308 309The MySQL software has Dual Licensing, which means you can use the MySQL 310software free of charge under the GNU General Public License 311(http://www.gnu.org/licenses/). You can also purchase commercial MySQL 312licenses from %{mysql_vendor} if you do not wish to be bound by the terms of 313the GPL. See the chapter "Licensing and Support" in the manual for 314further info. 315 316The MySQL web site (http://www.mysql.com/) provides the latest news and 317information about the MySQL software. Also please see the documentation 318and the manual for more information. 319 320This package includes the MySQL server binary as well as related utilities 321to run and administer a MySQL server. 322 323If you want to access and work with the database, you have to install 324package "MySQL-client%{product_suffix}" as well! 325 326# ---------------------------------------------------------------------------- 327%package -n MySQL-client%{product_suffix} 328Summary: MySQL - Client 329Group: Applications/Databases 330%if 0%{?commercial} 331Obsoletes: MySQL-client 332%else 333Obsoletes: MySQL-client-advanced 334%endif 335Obsoletes: mysql < %{version}-%{release} 336Obsoletes: mysql-advanced < %{version}-%{release} 337Obsoletes: MySQL-client-classic MySQL-client-community MySQL-client-enterprise 338Obsoletes: MySQL-client-advanced-gpl MySQL-client-enterprise-gpl 339Provides: mysql = %{version}-%{release} 340Provides: mysql%{?_isa} = %{version}-%{release} 341 342%description -n MySQL-client%{product_suffix} 343This package contains the standard MySQL clients and administration tools. 344 345For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ 346 347# ---------------------------------------------------------------------------- 348%package -n MySQL-test%{product_suffix} 349Summary: MySQL - Test suite 350Group: Applications/Databases 351%if 0%{?commercial} 352Requires: MySQL-client-advanced perl 353Obsoletes: MySQL-test 354%else 355Requires: MySQL-client perl 356Obsoletes: MySQL-test-advanced 357%endif 358Obsoletes: mysql-test < %{version}-%{release} 359Obsoletes: mysql-test-advanced 360Obsoletes: mysql-bench MySQL-bench 361Obsoletes: MySQL-test-classic MySQL-test-community MySQL-test-enterprise 362Obsoletes: MySQL-test-advanced-gpl MySQL-test-enterprise-gpl 363Provides: mysql-test = %{version}-%{release} 364Provides: mysql-test%{?_isa} = %{version}-%{release} 365Requires: perl(Data::Dumper) 366AutoReqProv: no 367 368%description -n MySQL-test%{product_suffix} 369This package contains the MySQL regression test suite. 370 371For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ 372 373# ---------------------------------------------------------------------------- 374%package -n MySQL-devel%{product_suffix} 375Summary: MySQL - Development header files and libraries 376Group: Applications/Databases 377%if 0%{?commercial} 378Obsoletes: MySQL-devel 379%else 380Obsoletes: MySQL-devel-advanced 381%endif 382Obsoletes: mysql-devel < %{version}-%{release} 383Obsoletes: mysql-embedded-devel mysql-devel-advanced mysql-embedded-devel-advanced 384Obsoletes: MySQL-devel-classic MySQL-devel-community MySQL-devel-enterprise 385Obsoletes: MySQL-devel-advanced-gpl MySQL-devel-enterprise-gpl 386Provides: mysql-devel = %{version}-%{release} 387Provides: mysql-devel%{?_isa} = %{version}-%{release} 388 389%description -n MySQL-devel%{product_suffix} 390This package contains the development header files and libraries necessary 391to develop MySQL client applications. 392 393For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ 394 395# ---------------------------------------------------------------------------- 396%package -n MySQL-shared%{product_suffix} 397Summary: MySQL - Shared libraries 398Group: Applications/Databases 399%if 0%{?commercial} 400Obsoletes: MySQL-shared 401%else 402Obsoletes: MySQL-shared-advanced 403%endif 404Obsoletes: MySQL-shared-standard MySQL-shared-pro 405Obsoletes: MySQL-shared-pro-cert MySQL-shared-pro-gpl 406Obsoletes: MySQL-shared-pro-gpl-cert 407Obsoletes: MySQL-shared-classic MySQL-shared-community MySQL-shared-enterprise 408Obsoletes: MySQL-shared-advanced-gpl MySQL-shared-enterprise-gpl 409 410%description -n MySQL-shared%{product_suffix} 411This package contains the shared libraries (*.so*) which certain languages 412and applications need to dynamically load and use MySQL. 413 414# ---------------------------------------------------------------------------- 415%package -n MySQL-embedded%{product_suffix} 416Summary: MySQL - Embedded library 417Group: Applications/Databases 418%if 0%{?commercial} 419Requires: MySQL-devel-advanced 420Obsoletes: MySQL-embedded 421%else 422Requires: MySQL-devel 423Obsoletes: MySQL-embedded-advanced 424%endif 425Obsoletes: mysql-embedded < %{version}-%{release} 426Obsoletes: mysql-embedded-advanced 427Obsoletes: MySQL-embedded-pro 428Obsoletes: MySQL-embedded-classic MySQL-embedded-community MySQL-embedded-enterprise 429Obsoletes: MySQL-embedded-advanced-gpl MySQL-embedded-enterprise-gpl 430Provides: mysql-embedded = %{version}-%{release} 431Provides: mysql-embedded%{?_isa} = %{version}-%{release} 432 433%description -n MySQL-embedded%{product_suffix} 434This package contains the MySQL server as an embedded library. 435 436The embedded MySQL server library makes it possible to run a full-featured 437MySQL server inside the client application. The main benefits are increased 438speed and more simple management for embedded applications. 439 440The API is identical for the embedded MySQL version and the 441client/server version. 442 443For a description of MySQL see the base MySQL RPM or http://www.mysql.com/ 444 445############################################################################## 446%prep 447%setup -T -a 0 -c -n %{src_dir} 448pushd %{src_dir} 449%{?el7:%patch0 -p1} 450############################################################################## 451%build 452 453# Fail quickly and obviously if user tries to build as root 454%if %runselftest 455 if [ x"`id -u`" = x0 ]; then 456 echo "The MySQL regression tests may fail if run as root." 457 echo "If you really need to build the RPM as root, use" 458 echo "--define='runselftest 0' to skip the regression tests." 459 exit 1 460 fi 461%endif 462 463# Be strict about variables, bail at earliest opportunity, etc. 464set -eu 465 466# Optional package files 467touch optional-files-devel 468 469# 470# Set environment in order of preference, MYSQL_BUILD_* first, then variable 471# name, finally a default. RPM_OPT_FLAGS is assumed to be a part of the 472# default RPM build environment. 473# 474# We set CXX=gcc by default to support so-called 'generic' binaries, where we 475# do not have a dependancy on libgcc/libstdc++. This only works while we do 476# not require C++ features such as exceptions, and may need to be removed at 477# a later date. 478# 479 480# This is a hack, $RPM_OPT_FLAGS on ia64 hosts contains flags which break 481# the compile in cmd-line-utils/readline - needs investigation, but for now 482# we simply unset it and use those specified directly in cmake. 483%if "%{_arch}" == "ia64" 484RPM_OPT_FLAGS= 485%endif 486 487export PATH=${MYSQL_BUILD_PATH:-$PATH} 488export CC=${MYSQL_BUILD_CC:-${CC:-gcc}} 489export CXX=${MYSQL_BUILD_CXX:-${CXX:-gcc}} 490export CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}} 491export CXXFLAGS=${MYSQL_BUILD_CXXFLAGS:-${CXXFLAGS:-$RPM_OPT_FLAGS -felide-constructors -fno-exceptions -fno-rtti}} 492export LDFLAGS=${MYSQL_BUILD_LDFLAGS:-${LDFLAGS:-}} 493export CMAKE=${MYSQL_BUILD_CMAKE:-${CMAKE:-cmake}} 494export MAKE_JFLAG=${MYSQL_BUILD_MAKE_JFLAG:-} 495 496# Build debug mysqld and libmysqld.a 497mkdir debug 498( 499 cd debug 500 # Attempt to remove any optimisation flags from the debug build 501 CFLAGS=`echo " ${CFLAGS} " | \ 502 sed -e 's/ -O[0-9]* / /' \ 503 -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \ 504 -e 's/ -unroll2 / /' \ 505 -e 's/ -ip / /' \ 506 -e 's/^ //' \ 507 -e 's/ $//'` 508 CXXFLAGS=`echo " ${CXXFLAGS} " | \ 509 sed -e 's/ -O[0-9]* / /' \ 510 -e 's/-Wp,-D_FORTIFY_SOURCE=2/ /' \ 511 -e 's/ -unroll2 / /' \ 512 -e 's/ -ip / /' \ 513 -e 's/^ //' \ 514 -e 's/ $//'` 515 # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before 516 # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM 517 ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \ 518 -DCMAKE_BUILD_TYPE=Debug \ 519 -DENABLE_DTRACE=OFF \ 520 -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \ 521 -DFEATURE_SET="%{feature_set}" \ 522 -DCOMPILATION_COMMENT="%{compilation_comment_debug}" \ 523 -DMYSQL_SERVER_SUFFIX="%{server_suffix}" 524 echo BEGIN_DEBUG_CONFIG ; egrep '^#define' include/config.h ; echo END_DEBUG_CONFIG 525 make ${MAKE_JFLAG} VERBOSE=1 526) 527# Build full release 528mkdir release 529( 530 cd release 531 # XXX: MYSQL_UNIX_ADDR should be in cmake/* but mysql_version is included before 532 # XXX: install_layout so we can't just set it based on INSTALL_LAYOUT=RPM 533 ${CMAKE} ../%{src_dir} -DBUILD_CONFIG=mysql_release -DINSTALL_LAYOUT=RPM \ 534 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ 535 -DENABLE_DTRACE=OFF \ 536 -DMYSQL_UNIX_ADDR="%{mysqldatadir}/mysql.sock" \ 537 -DFEATURE_SET="%{feature_set}" \ 538 -DCOMPILATION_COMMENT="%{compilation_comment_release}" \ 539 -DMYSQL_SERVER_SUFFIX="%{server_suffix}" 540 echo BEGIN_NORMAL_CONFIG ; egrep '^#define' include/config.h ; echo END_NORMAL_CONFIG 541 make ${MAKE_JFLAG} VERBOSE=1 542) 543 544%if %runselftest 545 MTR_BUILD_THREAD=auto 546 export MTR_BUILD_THREAD 547 548 (cd release && make test-bt-fast || true) 549%endif 550 551############################################################################## 552%install 553 554RBR=$RPM_BUILD_ROOT 555MBD=$RPM_BUILD_DIR/%{src_dir} 556 557# Ensure that needed directories exists 558install -d $RBR%{_sysconfdir}/{logrotate.d,init.d} 559install -d $RBR%{mysqldatadir}/mysql 560install -d $RBR%{_datadir}/mysql-test 561install -d $RBR%{_datadir}/mysql/SELinux/RHEL4 562install -d $RBR%{_includedir} 563install -d $RBR%{_libdir} 564install -d $RBR%{_mandir} 565install -d $RBR%{_sbindir} 566install -d $RBR/var/lib/mysql-files 567 568mkdir -p $RBR%{_sysconfdir}/my.cnf.d 569 570# Install all binaries 571( 572 cd $MBD/release 573 make DESTDIR=$RBR install 574) 575 576# For gcc builds, include libgcc.a in the devel subpackage (BUG 4921). Do 577# this in a sub-shell to ensure we don't pollute the install environment 578# with compiler bits. 579( 580 PATH=${MYSQL_BUILD_PATH:-$PATH} 581 CC=${MYSQL_BUILD_CC:-${CC:-gcc}} 582 CFLAGS=${MYSQL_BUILD_CFLAGS:-${CFLAGS:-$RPM_OPT_FLAGS}} 583 if "${CC}" -v 2>&1 | grep '^gcc.version' >/dev/null 2>&1; then 584 libgcc=`${CC} ${CFLAGS} --print-libgcc-file` 585 if [ -f ${libgcc} ]; then 586 mkdir -p $RBR%{_libdir}/mysql 587 install -m 644 ${libgcc} $RBR%{_libdir}/mysql/libmygcc.a 588 echo "%{_libdir}/mysql/libmygcc.a" >>optional-files-devel 589 fi 590 fi 591) 592 593# FIXME: at some point we should stop doing this and just install everything 594# FIXME: directly into %{_libdir}/mysql - perhaps at the same time as renaming 595# FIXME: the shared libraries to use libmysql*-$major.$minor.so syntax 596mv -v $RBR/%{_libdir}/*.a $RBR/%{_libdir}/mysql/ 597 598# Install logrotate and autostart 599install -m 644 $MBD/release/support-files/mysql-log-rotate $RBR%{_sysconfdir}/logrotate.d/mysql 600install -m 755 $MBD/release/support-files/mysql.server $RBR%{_sysconfdir}/init.d/mysql 601 602# Create a symlink "rcmysql", pointing to the init.script. SuSE users 603# will appreciate that, as all services usually offer this. 604ln -s %{_sysconfdir}/init.d/mysql $RBR%{_sbindir}/rcmysql 605 606# Touch the place where the my.cnf config file might be located 607# Just to make sure it's in the file list and marked as a config file 608touch $RBR%{_sysconfdir}/my.cnf 609 610# Install SELinux files in datadir 611install -m 600 $MBD/%{src_dir}/support-files/RHEL4-SElinux/mysql.{fc,te} \ 612 $RBR%{_datadir}/mysql/SELinux/RHEL4 613 614%if %{WITH_TCMALLOC} 615# Even though this is a shared library, put it under /usr/lib*/mysql, so it 616# doesn't conflict with possible shared lib by the same name in /usr/lib*. See 617# `mysql_config --variable=pkglibdir` and mysqld_safe for how this is used. 618install -m 644 "%{malloc_lib_source}" \ 619 "$RBR%{_libdir}/mysql/%{malloc_lib_target}" 620%endif 621 622# Remove man pages we explicitly do not want to package, avoids 'unpackaged 623# files' warning. 624# This has become obsolete: rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1* 625 626############################################################################## 627# Post processing actions, i.e. when installed 628############################################################################## 629 630%pre -n MySQL-server%{product_suffix} 631# This is the code running at the beginning of a RPM upgrade action, 632# before replacing the old files with the new ones. 633 634# ATTENTION: Parts of this are duplicated in the "triggerpostun" ! 635 636# There are users who deviate from the default file system layout. 637# Check local settings to support them. 638if [ -x %{_bindir}/my_print_defaults ] 639then 640 mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'` 641 PID_FILE_PATT=`%{_bindir}/my_print_defaults server mysqld | grep '^--pid-file=' | sed -n 's/--pid-file=//p'` 642fi 643if [ -z "$mysql_datadir" ] 644then 645 mysql_datadir=%{mysqldatadir} 646fi 647if [ -z "$PID_FILE_PATT" ] 648then 649 PID_FILE_PATT="$mysql_datadir/*.pid" 650fi 651 652# Check if we can safely upgrade. An upgrade is only safe if it's from one 653# of our RPMs in the same version family. 654 655# Handle both ways of spelling the capability. 656installed=`rpm -q --whatprovides mysql-server 2> /dev/null` 657if [ $? -ne 0 -o -z "$installed" ]; then 658 installed=`rpm -q --whatprovides MySQL-server 2> /dev/null` 659fi 660if [ $? -eq 0 -a -n "$installed" ]; then 661 installed=`echo $installed | sed 's/\([^ ]*\) .*/\1/'` # Tests have shown duplicated package names 662 vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1` 663 version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1` 664 myoldvendor='%{mysql_old_vendor}' 665 myvendor_2='%{mysql_vendor_2}' 666 myvendor='%{mysql_vendor}' 667 myversion='%{mysql_version}' 668 669 old_family=`echo $version \ 670 | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'` 671 new_family=`echo $myversion \ 672 | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'` 673 674 [ -z "$vendor" ] && vendor='<unknown>' 675 [ -z "$old_family" ] && old_family="<unrecognized version $version>" 676 [ -z "$new_family" ] && new_family="<bad package specification: version $myversion>" 677 678 error_text= 679 if [ "$vendor" != "$myoldvendor" \ 680 -a "$vendor" != "$myvendor_2" \ 681 -a "$vendor" != "$myvendor" ]; then 682 error_text="$error_text 683The current MySQL server package is provided by a different 684vendor ($vendor) than $myoldvendor, $myvendor_2, or $myvendor. 685Some files may be installed to different locations, including log 686files and the service startup script in %{_sysconfdir}/init.d/. 687" 688 fi 689 690 if [ "$old_family" != "$new_family" ]; then 691 error_text="$error_text 692Upgrading directly from MySQL $old_family to MySQL $new_family may not 693be safe in all cases. A manual dump and restore using mysqldump is 694recommended. It is important to review the MySQL manual's Upgrading 695section for version-specific incompatibilities. 696" 697 fi 698 699 if [ -n "$error_text" ]; then 700 cat <<HERE >&2 701 702****************************************************************** 703A MySQL server package ($installed) is installed. 704$error_text 705A manual upgrade is required. 706 707- Ensure that you have a complete, working backup of your data and my.cnf 708 files 709- Shut down the MySQL server cleanly 710- Remove the existing MySQL packages. Usually this command will 711 list the packages you should remove: 712 rpm -qa | grep -i '^mysql-' 713 714 You may choose to use 'rpm --nodeps -ev <package-name>' to remove 715 the package which contains the mysqlclient shared library. The 716 library will be reinstalled by the MySQL-shared-compat package. 717- Install the new MySQL packages supplied by $myvendor 718- Ensure that the MySQL server is started 719- Run the 'mysql_upgrade' program 720 721This is a brief description of the upgrade process. Important details 722can be found in the MySQL manual, in the Upgrading section. 723****************************************************************** 724HERE 725 exit 1 726 fi 727fi 728 729# We assume that if there is exactly one ".pid" file, 730# it contains the valid PID of a running MySQL server. 731NR_PID_FILES=`ls -1 $PID_FILE_PATT 2>/dev/null | wc -l` 732case $NR_PID_FILES in 733 0 ) SERVER_TO_START='' ;; # No "*.pid" file == no running server 734 1 ) SERVER_TO_START='true' ;; 735 * ) SERVER_TO_START='' # Situation not clear 736 SEVERAL_PID_FILES=true ;; 737esac 738# That logic may be debated: We might check whether it is non-empty, 739# contains exactly one number (possibly a PID), and whether "ps" finds it. 740# OTOH, if there is no such process, it means a crash without a cleanup - 741# is that a reason not to start a new server after upgrade? 742 743STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER 744 745if [ -f "$STATUS_FILE" ]; then 746 echo "Some previous upgrade was not finished:" 747 ls -ld $STATUS_FILE 748 echo "Please check its status, then do" 749 echo " rm $STATUS_FILE" 750 echo "before repeating the MySQL upgrade." 751 exit 1 752elif [ -n "$SEVERAL_PID_FILES" ] ; then 753 echo "You have more than one PID file:" 754 ls -ld $PID_FILE_PATT 755 echo "Please check which one (if any) corresponds to a running server" 756 echo "and delete all others before repeating the MySQL upgrade." 757 exit 1 758fi 759 760NEW_VERSION=%{mysql_version}-%{release} 761 762# The "pre" section code is also run on a first installation, 763# when there is no data directory yet. Protect against error messages. 764if [ -d $mysql_datadir ] ; then 765 echo "MySQL RPM upgrade to version $NEW_VERSION" > $STATUS_FILE 766 echo "'pre' step running at `date`" >> $STATUS_FILE 767 echo >> $STATUS_FILE 768 fcount=`ls -ltr $mysql_datadir/*.err 2>/dev/null | wc -l` 769 if [ $fcount -gt 0 ] ; then 770 echo "ERR file(s):" >> $STATUS_FILE 771 ls -ltr $mysql_datadir/*.err >> $STATUS_FILE 772 echo >> $STATUS_FILE 773 echo "Latest 'Version' line in latest file:" >> $STATUS_FILE 774 grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \ 775 tail -1 >> $STATUS_FILE 776 echo >> $STATUS_FILE 777 fi 778 779 if [ -n "$SERVER_TO_START" ] ; then 780 # There is only one PID file, race possibility ignored 781 echo "PID file:" >> $STATUS_FILE 782 ls -l $PID_FILE_PATT >> $STATUS_FILE 783 cat $PID_FILE_PATT >> $STATUS_FILE 784 echo >> $STATUS_FILE 785 echo "Server process:" >> $STATUS_FILE 786 ps -fp `cat $PID_FILE_PATT` >> $STATUS_FILE 787 echo >> $STATUS_FILE 788 echo "SERVER_TO_START=$SERVER_TO_START" >> $STATUS_FILE 789 else 790 # Take a note we checked it ... 791 echo "PID file:" >> $STATUS_FILE 792 ls -l $PID_FILE_PATT >> $STATUS_FILE 2>&1 793 fi 794fi 795 796# Shut down a previously installed server first 797# Note we *could* make that depend on $SERVER_TO_START, but we rather don't, 798# so a "stop" is attempted even if there is no PID file. 799# (Maybe the "stop" doesn't work then, but we might fix that in itself.) 800if [ -x %{_sysconfdir}/init.d/mysql ] ; then 801 %{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1 802 echo "Giving mysqld 5 seconds to exit nicely" 803 sleep 5 804fi 805 806%post -n MySQL-server%{product_suffix} 807# This is the code running at the end of a RPM install or upgrade action, 808# after the (new) files have been written. 809 810# ATTENTION: Parts of this are duplicated in the "triggerpostun" ! 811 812# There are users who deviate from the default file system layout. 813# Check local settings to support them. 814if [ -x %{_bindir}/my_print_defaults ] 815then 816 mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'` 817fi 818if [ -z "$mysql_datadir" ] 819then 820 mysql_datadir=%{mysqldatadir} 821fi 822 823NEW_VERSION=%{mysql_version}-%{release} 824STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER 825 826# ---------------------------------------------------------------------- 827# Create data directory if needed, check whether upgrade or install 828# ---------------------------------------------------------------------- 829if [ ! -d "$mysql_datadir" ] ; then mkdir -m 755 "$mysql_datadir" ; fi 830if [ -f "$STATUS_FILE" ] ; then 831 SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-` 832else 833 SERVER_TO_START='' 834fi 835# echo "Analyzed: SERVER_TO_START=$SERVER_TO_START" 836if [ ! -d $mysql_datadir/mysql ] ; then 837 mkdir $mysql_datadir/mysql $mysql_datadir/test 838 echo "MySQL RPM installation of version $NEW_VERSION" >> $STATUS_FILE 839else 840 # If the directory exists, we may assume it is an upgrade. 841 echo "MySQL RPM upgrade to version $NEW_VERSION" >> $STATUS_FILE 842fi 843 844# ---------------------------------------------------------------------- 845# Make MySQL start/shutdown automatically when the machine does it. 846# ---------------------------------------------------------------------- 847# NOTE: This still needs to be debated. Should we check whether these links 848# for the other run levels exist(ed) before the upgrade? 849# use chkconfig on Enterprise Linux and newer SuSE releases 850if [ -x /sbin/chkconfig ] ; then 851 /sbin/chkconfig --add mysql 852# use insserv for older SuSE Linux versions 853elif [ -x /sbin/insserv ] ; then 854 /sbin/insserv %{_sysconfdir}/init.d/mysql 855fi 856 857# ---------------------------------------------------------------------- 858# Create a MySQL user and group. Do not report any problems if it already 859# exists. 860# ---------------------------------------------------------------------- 861groupadd -r %{mysqld_group} 2> /dev/null || true 862useradd -M -r -d $mysql_datadir -s /bin/bash -c "MySQL server" \ 863 -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true 864# The user may already exist, make sure it has the proper group nevertheless 865# (BUG#12823) 866usermod -g %{mysqld_group} %{mysqld_user} 2> /dev/null || true 867 868# ---------------------------------------------------------------------- 869# Change permissions so that the user that will run the MySQL daemon 870# owns all database files. 871# ---------------------------------------------------------------------- 872chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir 873 874# ---------------------------------------------------------------------- 875# Initiate databases if needed 876# ---------------------------------------------------------------------- 877if ! grep '^MySQL RPM upgrade' $STATUS_FILE >/dev/null 2>&1 ; then 878 # Fix bug#45415: no "mysql_install_db" on an upgrade 879 # Do this as a negative to err towards more "install" runs 880 # rather than to miss one. 881 %{_bindir}/mysql_install_db --rpm --user=%{mysqld_user} 882fi 883 884# ---------------------------------------------------------------------- 885# Upgrade databases if needed would go here - but it cannot be automated yet 886# ---------------------------------------------------------------------- 887 888# ---------------------------------------------------------------------- 889# Change permissions again to fix any new files. 890# ---------------------------------------------------------------------- 891chown -R %{mysqld_user}:%{mysqld_group} $mysql_datadir 892 893# ---------------------------------------------------------------------- 894# Fix permissions for the permission database so that only the user 895# can read them. 896# ---------------------------------------------------------------------- 897chmod -R og-rw $mysql_datadir/mysql 898 899# ---------------------------------------------------------------------- 900# install SELinux files - but don't override existing ones 901# ---------------------------------------------------------------------- 902SETARGETDIR=/etc/selinux/targeted/src/policy 903SEDOMPROG=$SETARGETDIR/domains/program 904SECONPROG=$SETARGETDIR/file_contexts/program 905if [ -f /etc/redhat-release ] \ 906 && (grep -q "Red Hat Enterprise Linux .. release 4" /etc/redhat-release \ 907 || grep -q "CentOS release 4" /etc/redhat-release) ; then 908 echo 909 echo 910 echo 'Notes regarding SELinux on this platform:' 911 echo '=========================================' 912 echo 913 echo 'The default policy might cause server startup to fail because it is' 914 echo 'not allowed to access critical files. In this case, please update' 915 echo 'your installation.' 916 echo 917 echo 'The default policy might also cause inavailability of SSL related' 918 echo 'features because the server is not allowed to access /dev/random' 919 echo 'and /dev/urandom. If this is a problem, please do the following:' 920 echo 921 echo ' 1) install selinux-policy-targeted-sources from your OS vendor' 922 echo ' 2) add the following two lines to '$SEDOMPROG/mysqld.te':' 923 echo ' allow mysqld_t random_device_t:chr_file read;' 924 echo ' allow mysqld_t urandom_device_t:chr_file read;' 925 echo ' 3) cd to '$SETARGETDIR' and issue the following command:' 926 echo ' make load' 927 echo 928 echo 929fi 930 931if [ -x sbin/restorecon ] ; then 932 sbin/restorecon -R var/lib/mysql 933fi 934 935# Was the server running before the upgrade? If so, restart the new one. 936if [ "$SERVER_TO_START" = "true" ] ; then 937 # Restart in the same way that mysqld will be started normally. 938 if [ -x %{_sysconfdir}/init.d/mysql ] ; then 939 %{_sysconfdir}/init.d/mysql start 940 echo "Giving mysqld 5 seconds to start" 941 sleep 5 942 fi 943fi 944 945# Collect an upgrade history ... 946echo "Upgrade/install finished at `date`" >> $STATUS_FILE 947echo >> $STATUS_FILE 948echo "=====" >> $STATUS_FILE 949STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY 950cat $STATUS_FILE >> $STATUS_HISTORY 951mv -f $STATUS_FILE ${STATUS_FILE}-LAST # for "triggerpostun" 952 953 954#echo "Thank you for installing the MySQL Community Server! For Production 955#systems, we recommend MySQL Enterprise, which contains enterprise-ready 956#software, intelligent advisory services, and full production support with 957#scheduled service packs and more. Visit www.mysql.com/enterprise for more 958#information." 959 960%preun -n MySQL-server%{product_suffix} 961 962# Which '$1' does this refer to? Fedora docs have info: 963# " ... a count of the number of versions of the package that are installed. 964# Action Count 965# Install the first time 1 966# Upgrade 2 or higher (depending on the number of versions installed) 967# Remove last version of package 0 " 968# 969# http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch09s04s05.html 970 971if [ $1 = 0 ] ; then 972 # Stop MySQL before uninstalling it 973 if [ -x %{_sysconfdir}/init.d/mysql ] ; then 974 %{_sysconfdir}/init.d/mysql stop > /dev/null 975 # Remove autostart of MySQL 976 # use chkconfig on Enterprise Linux and newer SuSE releases 977 if [ -x /sbin/chkconfig ] ; then 978 /sbin/chkconfig --del mysql 979 # For older SuSE Linux versions 980 elif [ -x /sbin/insserv ] ; then 981 /sbin/insserv -r %{_sysconfdir}/init.d/mysql 982 fi 983 fi 984fi 985 986# We do not remove the mysql user since it may still own a lot of 987# database files. 988 989%triggerpostun -n MySQL-server%{product_suffix} --MySQL-server-community 990 991# Setup: We renamed this package, so any existing "server-community" 992# package will be removed when this "server" is installed. 993# Problem: RPM will first run the "pre" and "post" sections of this script, 994# and only then the "preun" of that old community server. 995# But this "preun" includes stopping the server and uninstalling the service, 996# "chkconfig --del mysql" which removes the symlinks to the start script. 997# Solution: *After* the community server got removed, restart this server 998# and re-install the service. 999# 1000# For information about triggers in spec files, see the Fedora docs: 1001# http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch10s02.html 1002# For all details of this code, see the "pre" and "post" sections. 1003 1004# There are users who deviate from the default file system layout. 1005# Check local settings to support them. 1006if [ -x %{_bindir}/my_print_defaults ] 1007then 1008 mysql_datadir=`%{_bindir}/my_print_defaults server mysqld | grep '^--datadir=' | tail -1 | sed -n 's/--datadir=//p'` 1009fi 1010if [ -z "$mysql_datadir" ] 1011then 1012 mysql_datadir=%{mysqldatadir} 1013fi 1014 1015NEW_VERSION=%{mysql_version}-%{release} 1016STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER-LAST # Note the difference! 1017STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY 1018 1019if [ -f "$STATUS_FILE" ] ; then 1020 SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-` 1021else 1022 # This should never happen, but let's be prepared 1023 SERVER_TO_START='' 1024fi 1025echo "Analyzed: SERVER_TO_START=$SERVER_TO_START" 1026 1027if [ -x /sbin/chkconfig ] ; then 1028 /sbin/chkconfig --add mysql 1029# use insserv for older SuSE Linux versions 1030elif [ -x /sbin/insserv ] ; then 1031 /sbin/insserv %{_sysconfdir}/init.d/mysql 1032fi 1033 1034# Was the server running before the upgrade? If so, restart the new one. 1035if [ "$SERVER_TO_START" = "true" ] ; then 1036 # Restart in the same way that mysqld will be started normally. 1037 if [ -x %{_sysconfdir}/init.d/mysql ] ; then 1038 %{_sysconfdir}/init.d/mysql start 1039 echo "Giving mysqld 5 seconds to start" 1040 sleep 5 1041 fi 1042fi 1043 1044echo "Trigger 'postun --community' finished at `date`" >> $STATUS_HISTORY 1045echo >> $STATUS_HISTORY 1046echo "=====" >> $STATUS_HISTORY 1047 1048 1049# ---------------------------------------------------------------------- 1050# Clean up the BuildRoot after build is done 1051# ---------------------------------------------------------------------- 1052%clean 1053[ "$RPM_BUILD_ROOT" != "/" ] && [ -d $RPM_BUILD_ROOT ] \ 1054 && rm -rf $RPM_BUILD_ROOT; 1055 1056############################################################################## 1057# Files section 1058############################################################################## 1059 1060%files -n MySQL-server%{product_suffix} -f release/support-files/plugins.files 1061%defattr(-,root,root,0755) 1062 1063%if %{defined license_files_server} 1064%doc %{license_files_server} 1065%endif 1066%doc %{src_dir}/Docs/ChangeLog 1067%doc %{src_dir}/Docs/INFO_SRC* 1068%doc release/Docs/INFO_BIN* 1069%doc release/support-files/my-*.cnf 1070 1071%if 0%{?commercial} 1072%doc %attr(644, root, root) %{_infodir}/mysql.info* 1073%endif 1074 1075%doc %attr(644, root, man) %{_mandir}/man1/innochecksum.1* 1076%doc %attr(644, root, man) %{_mandir}/man1/my_print_defaults.1* 1077%doc %attr(644, root, man) %{_mandir}/man1/myisam_ftdump.1* 1078%doc %attr(644, root, man) %{_mandir}/man1/myisamchk.1* 1079%doc %attr(644, root, man) %{_mandir}/man1/myisamlog.1* 1080%doc %attr(644, root, man) %{_mandir}/man1/myisampack.1* 1081%doc %attr(644, root, man) %{_mandir}/man1/mysql_convert_table_format.1* 1082%doc %attr(644, root, man) %{_mandir}/man1/mysql_fix_extensions.1* 1083%doc %attr(644, root, man) %{_mandir}/man8/mysqld.8* 1084%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1* 1085%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1* 1086%doc %attr(644, root, man) %{_mandir}/man1/mysqldumpslow.1* 1087%doc %attr(644, root, man) %{_mandir}/man1/mysql_install_db.1* 1088%doc %attr(644, root, man) %{_mandir}/man1/mysql_plugin.1* 1089%doc %attr(644, root, man) %{_mandir}/man1/mysql_secure_installation.1* 1090%doc %attr(644, root, man) %{_mandir}/man1/mysql_setpermission.1* 1091%doc %attr(644, root, man) %{_mandir}/man1/mysql_upgrade.1* 1092%doc %attr(644, root, man) %{_mandir}/man1/mysqlhotcopy.1* 1093%doc %attr(644, root, man) %{_mandir}/man1/mysqlman.1* 1094%doc %attr(644, root, man) %{_mandir}/man1/mysql.server.1* 1095%doc %attr(644, root, man) %{_mandir}/man1/mysql_tzinfo_to_sql.1* 1096%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1* 1097%doc %attr(644, root, man) %{_mandir}/man1/mysqlbug.1* 1098%doc %attr(644, root, man) %{_mandir}/man1/perror.1* 1099%doc %attr(644, root, man) %{_mandir}/man1/replace.1* 1100%doc %attr(644, root, man) %{_mandir}/man1/resolve_stack_dump.1* 1101%doc %attr(644, root, man) %{_mandir}/man1/resolveip.1* 1102 1103%ghost %config(noreplace,missingok) %{_sysconfdir}/my.cnf 1104%dir %{_sysconfdir}/my.cnf.d 1105 1106%attr(755, root, root) %{_bindir}/innochecksum 1107%attr(755, root, root) %{_bindir}/my_print_defaults 1108%attr(755, root, root) %{_bindir}/myisam_ftdump 1109%attr(755, root, root) %{_bindir}/myisamchk 1110%attr(755, root, root) %{_bindir}/myisamlog 1111%attr(755, root, root) %{_bindir}/myisampack 1112%attr(755, root, root) %{_bindir}/mysql_convert_table_format 1113%attr(755, root, root) %{_bindir}/mysql_fix_extensions 1114%attr(755, root, root) %{_bindir}/mysql_install_db 1115%attr(755, root, root) %{_bindir}/mysql_plugin 1116%attr(755, root, root) %{_bindir}/mysql_secure_installation 1117%attr(755, root, root) %{_bindir}/mysql_setpermission 1118%attr(755, root, root) %{_bindir}/mysql_tzinfo_to_sql 1119%attr(755, root, root) %{_bindir}/mysql_upgrade 1120%attr(755, root, root) %{_bindir}/mysql_zap 1121%attr(755, root, root) %{_bindir}/mysqlbug 1122%attr(755, root, root) %{_bindir}/mysqld_multi 1123%attr(755, root, root) %{_bindir}/mysqld_safe 1124%attr(755, root, root) %{_bindir}/mysqldumpslow 1125%attr(755, root, root) %{_bindir}/mysqlhotcopy 1126%attr(755, root, root) %{_bindir}/mysqltest 1127%attr(755, root, root) %{_bindir}/perror 1128%attr(755, root, root) %{_bindir}/replace 1129%attr(755, root, root) %{_bindir}/resolve_stack_dump 1130%attr(755, root, root) %{_bindir}/resolveip 1131 1132%attr(755, root, root) %{_sbindir}/mysqld 1133%attr(755, root, root) %{_sbindir}/mysqld-debug 1134%attr(755, root, root) %{_sbindir}/rcmysql 1135%attr(755, root, root) %{_libdir}/mysql/plugin/daemon_example.ini 1136 1137%if %{WITH_TCMALLOC} 1138%attr(755, root, root) %{_libdir}/mysql/%{malloc_lib_target} 1139%endif 1140 1141%attr(644, root, root) %config(noreplace,missingok) %{_sysconfdir}/logrotate.d/mysql 1142%attr(755, root, root) %{_sysconfdir}/init.d/mysql 1143 1144%attr(755, root, root) %{_datadir}/mysql/ 1145%dir %attr(750, mysql, mysql) /var/lib/mysql-files 1146 1147# ---------------------------------------------------------------------------- 1148%files -n MySQL-client%{product_suffix} 1149 1150%defattr(-, root, root, 0755) 1151%attr(755, root, root) %{_bindir}/msql2mysql 1152%attr(755, root, root) %{_bindir}/mysql 1153%attr(755, root, root) %{_bindir}/mysql_find_rows 1154%attr(755, root, root) %{_bindir}/mysql_waitpid 1155%attr(755, root, root) %{_bindir}/mysqlaccess 1156# XXX: This should be moved to %{_sysconfdir} 1157%attr(644, root, root) %{_bindir}/mysqlaccess.conf 1158%attr(755, root, root) %{_bindir}/mysqladmin 1159%attr(755, root, root) %{_bindir}/mysqlbinlog 1160%attr(755, root, root) %{_bindir}/mysqlcheck 1161%attr(755, root, root) %{_bindir}/mysqldump 1162%attr(755, root, root) %{_bindir}/mysqlimport 1163%attr(755, root, root) %{_bindir}/mysqlshow 1164%attr(755, root, root) %{_bindir}/mysqlslap 1165 1166%doc %attr(644, root, man) %{_mandir}/man1/msql2mysql.1* 1167%doc %attr(644, root, man) %{_mandir}/man1/mysql.1* 1168%doc %attr(644, root, man) %{_mandir}/man1/mysql_find_rows.1* 1169%doc %attr(644, root, man) %{_mandir}/man1/mysql_waitpid.1* 1170%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1* 1171%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1* 1172%doc %attr(644, root, man) %{_mandir}/man1/mysqlbinlog.1* 1173%doc %attr(644, root, man) %{_mandir}/man1/mysqlcheck.1* 1174%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1* 1175%doc %attr(644, root, man) %{_mandir}/man1/mysqlimport.1* 1176%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1* 1177%doc %attr(644, root, man) %{_mandir}/man1/mysqlslap.1* 1178 1179# ---------------------------------------------------------------------------- 1180%files -n MySQL-devel%{product_suffix} -f optional-files-devel 1181%defattr(-, root, root, 0755) 1182%doc %attr(644, root, man) %{_mandir}/man1/comp_err.1* 1183%doc %attr(644, root, man) %{_mandir}/man1/mysql_config.1* 1184%attr(755, root, root) %{_bindir}/mysql_config 1185%dir %attr(755, root, root) %{_includedir}/mysql 1186%dir %attr(755, root, root) %{_libdir}/mysql 1187%{_includedir}/mysql/* 1188%{_datadir}/aclocal/mysql.m4 1189%{_libdir}/mysql/libmysqlclient.a 1190%{_libdir}/mysql/libmysqlclient_r.a 1191%{_libdir}/mysql/libmysqlservices.a 1192 1193# ---------------------------------------------------------------------------- 1194%files -n MySQL-shared%{product_suffix} 1195%defattr(-, root, root, 0755) 1196# Shared libraries (omit for architectures that don't support them) 1197%{_libdir}/libmysql*.so* 1198 1199%post -n MySQL-shared%{product_suffix} 1200/sbin/ldconfig 1201 1202%postun -n MySQL-shared%{product_suffix} 1203/sbin/ldconfig 1204 1205# ---------------------------------------------------------------------------- 1206%files -n MySQL-test%{product_suffix} 1207%defattr(-, root, root, 0755) 1208%attr(-, root, root) %{_datadir}/mysql-test 1209%attr(755, root, root) %{_bindir}/mysql_client_test 1210%attr(755, root, root) %{_bindir}/mysql_client_test_embedded 1211%attr(755, root, root) %{_bindir}/mysqltest_embedded 1212 1213# ---------------------------------------------------------------------------- 1214%files -n MySQL-embedded%{product_suffix} 1215%defattr(-, root, root, 0755) 1216%attr(755, root, root) %{_bindir}/mysql_embedded 1217%attr(644, root, root) %{_libdir}/mysql/libmysqld.a 1218%attr(644, root, root) %{_libdir}/mysql/libmysqld-debug.a 1219 1220############################################################################## 1221# The spec file changelog only includes changes made to the spec file 1222# itself - note that they must be ordered by date (important when 1223# merging BK trees) 1224############################################################################## 1225%changelog 1226* Wed Jan 10 2018 Bjorn Munch <bjorn.munch@oracle.com> 1227- No longer need to remove obsoleted mysqltest man pages 1228 1229* Tue Oct 31 2017 Bjorn Munch <bjorn.munch@oracle.com> 1230- Remove obsoleted mysqltest man pages 1231 1232* Mon Sep 26 2016 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> 1233- Include mysql-files directory 1234 1235* Wed Jul 02 2014 Bjorn Munch <bjorn.munch@oracle.com> 1236- Disable dtrace unconditionally, breaks after we install Oracle dtrace 1237 1238* Wed Oct 30 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> 1239- Removed non gpl file docs/mysql.info from community packages 1240 1241* Mon Sep 09 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> 1242- Updated logic to get the correct count of PID files 1243 1244* Fri Aug 16 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> 1245- Added provides lowercase mysql tags 1246 1247* Wed Jun 26 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com> 1248- Cleaned up spec file to resolve rpm dependencies. 1249 1250* Tue Jul 24 2012 Joerg Bruehe <joerg.bruehe@oracle.com> 1251 1252- Add a macro "runselftest": 1253 if set to 1 (default), the test suite will be run during the RPM build; 1254 this can be oveeridden via the command line by adding 1255 --define "runselftest 0" 1256 Failures of the test suite will NOT make the RPM build fail! 1257 1258* Mon Jun 11 2012 Joerg Bruehe <joerg.bruehe@oracle.com> 1259 1260- Make sure newly added "SPECIFIC-ULN/" directory does not disturb packaging. 1261 1262* Wed Sep 28 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1263 1264- Fix duplicate mentioning of "mysql_plugin" and its manual page, 1265 it is better to keep alphabetic order in the files list (merging!). 1266 1267* Wed Sep 14 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1268 1269- Let the RPM capabilities ("obsoletes" etc) ensure that an upgrade may replace 1270 the RPMs of any configuration (of the current or the preceding release series) 1271 by the new ones. This is done by not using the implicitly generated capabilities 1272 (which include the configuration name) and relying on more generic ones which 1273 just list the function ("server", "client", ...). 1274 The implicit generation cannot be prevented, so all these capabilities must be 1275 explicitly listed in "Obsoletes:" 1276 1277* Tue Sep 13 2011 Jonathan Perkin <jonathan.perkin@oracle.com> 1278 1279- Add support for Oracle Linux 6 and Red Hat Enterprise Linux 6. Due to 1280 changes in RPM behaviour ($RPM_BUILD_ROOT is removed prior to install) 1281 this necessitated a move of the libmygcc.a installation to the install 1282 phase, which is probably where it belonged in the first place. 1283 1284* Tue Sep 13 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1285 1286- "make_win_bin_dist" and its manual are dropped, cmake does it different. 1287 1288* Thu Sep 08 2011 Daniel Fischer <daniel.fischer@oracle.com> 1289 1290- Add mysql_plugin man page. 1291 1292* Tue Aug 30 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1293 1294- Add the manual page for "mysql_plugin" to the server package. 1295 1296* Fri Aug 19 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1297 1298- Null-upmerge the fix of bug#37165: This spec file is not affected. 1299- Replace "/var/lib/mysql" by the spec file variable "%%{mysqldatadir}". 1300 1301* Fri Aug 12 2011 Daniel Fischer <daniel.fischer@oracle.com> 1302 1303- Source plugin library files list from cmake-generated file. 1304 1305* Mon Jul 25 2011 Chuck Bell <chuck.bell@oracle.com> 1306 1307- Added the mysql_plugin client - enables or disables plugins. 1308 1309* Thu Jul 21 2011 Sunanda Menon <sunanda.menon@oracle.com> 1310 1311- Fix bug#12561297: Added the MySQL embedded binary 1312 1313* Thu Jul 07 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1314 1315- Fix bug#45415: "rpm upgrade recreates test database" 1316 Let the creation of the "test" database happen only during a new installation, 1317 not in an RPM upgrade. 1318 This affects both the "mkdir" and the call of "mysql_install_db". 1319 1320* Wed Feb 09 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1321 1322- Fix bug#56581: If an installation deviates from the default file locations 1323 ("datadir" and "pid-file"), the mechanism to detect a running server (on upgrade) 1324 should still work, and use these locations. 1325 The problem was that the fix for bug#27072 did not check for local settings. 1326 1327* Mon Jan 31 2011 Joerg Bruehe <joerg.bruehe@oracle.com> 1328 1329- Install the new "manifest" files: "INFO_SRC" and "INFO_BIN". 1330 1331* Tue Nov 23 2010 Jonathan Perkin <jonathan.perkin@oracle.com> 1332 1333- EXCEPTIONS-CLIENT has been deleted, remove it from here too 1334- Support MYSQL_BUILD_MAKE_JFLAG environment variable for passing 1335 a '-j' argument to make. 1336 1337* Mon Nov 1 2010 Georgi Kodinov <georgi.godinov@oracle.com> 1338 1339- Added test authentication (WL#1054) plugin binaries 1340 1341* Wed Oct 6 2010 Georgi Kodinov <georgi.godinov@oracle.com> 1342 1343- Added example external authentication (WL#1054) plugin binaries 1344 1345* Wed Aug 11 2010 Joerg Bruehe <joerg.bruehe@oracle.com> 1346 1347- With a recent spec file cleanup, names have changed: A "-community" part was dropped. 1348 Reflect that in the "Obsoletes" specifications. 1349- Add a "triggerpostun" to handle the uninstall of the "-community" server RPM. 1350- This fixes bug#55015 "MySQL server is not restarted properly after RPM upgrade". 1351 1352* Tue Jun 15 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1353 1354- Change the behaviour on installation and upgrade: 1355 On installation, do not autostart the server. 1356 *Iff* the server was stopped before the upgrade is started, this is taken as a 1357 sign the administrator is handling that manually, and so the new server will 1358 not be started automatically at the end of the upgrade. 1359 The start/stop scripts will still be installed, so the server will be started 1360 on the next machine boot. 1361 This is the 5.5 version of fixing bug#27072 (RPM autostarting the server). 1362 1363* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin@oracle.com> 1364 1365- Implement SELinux checks from distribution-specific spec file. 1366 1367* Wed May 12 2010 Jonathan Perkin <jonathan.perkin@oracle.com> 1368 1369- Large number of changes to build using CMake 1370- Introduce distribution-specific RPMs 1371- Drop debuginfo, build all binaries with debug/symbols 1372- Remove __os_install_post, use native macro 1373- Remove _unpackaged_files_terminate_build, make it an error to have 1374 unpackaged files 1375- Remove cluster RPMs 1376 1377* Wed Mar 24 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1378 1379- Add "--with-perfschema" to the configure options. 1380 1381* Mon Mar 22 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1382 1383- User "usr/lib*" to allow for both "usr/lib" and "usr/lib64", 1384 mask "rmdir" return code 1. 1385- Remove "ha_example.*" files from the list, they aren't built. 1386 1387* Wed Mar 17 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1388 1389- Fix a wrong path name in handling the debug plugins. 1390 1391* Wed Mar 10 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1392 1393- Take the result of the debug plugin build and put it into the optimized tree, 1394 so that it becomes part of the final installation; 1395 include the files in the packlist. Part of the fixes for bug#49022. 1396 1397* Mon Mar 01 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1398 1399- Set "Oracle and/or its affiliates" as the vendor and copyright owner, 1400 accept upgrading from packages showing MySQL or Sun as vendor. 1401 1402* Fri Feb 12 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1403 1404- Formatting changes: 1405 Have a consistent structure of separator lines and of indentation 1406 (8 leading blanks => tab). 1407- Introduce the variable "src_dir". 1408- Give the environment variables "MYSQL_BUILD_CC(CXX)" precedence 1409 over "CC" ("CXX"). 1410- Drop the old "with_static" argument analysis, this is not supported 1411 in 5.1 since ages. 1412- Introduce variables to control the handlers individually, as well 1413 as other options. 1414- Use the new "--with-plugin" notation for the table handlers. 1415- Drop handling "/etc/rc.d/init.d/mysql", the switch to "/etc/init.d/mysql" 1416 was done back in 2002 already. 1417- Make "--with-zlib-dir=bundled" the default, add an option to disable it. 1418- Add missing manual pages to the file list. 1419- Improve the runtime check for "libgcc.a", protect it against being tried 1420 with the Intel compiler "icc". 1421 1422* Mon Jan 11 2010 Joerg Bruehe <joerg.bruehe@sun.com> 1423 1424- Change RPM file naming: 1425 - Suffix like "-m2", "-rc" becomes part of version as "_m2", "_rc". 1426 - Release counts from 1, not 0. 1427 1428* Wed Dec 23 2009 Joerg Bruehe <joerg.bruehe@sun.com> 1429 1430- The "semisync" plugin file name has lost its introductory "lib", 1431 adapt the file lists for the subpackages. 1432 This is a part missing from the fix for bug#48351. 1433- Remove the "fix_privilege_tables" manual, it does not exist in 5.5 1434 (and likely, the whole script will go, too). 1435 1436* Mon Nov 16 2009 Joerg Bruehe <joerg.bruehe@sun.com> 1437 1438- Fix some problems with the directives around "tcmalloc" (experimental), 1439 remove erroneous traces of the InnoDB plugin (that is 5.1 only). 1440 1441* Tue Oct 06 2009 Magnus Blaudd <mvensson@mysql.com> 1442 1443- Removed mysql_fix_privilege_tables 1444 1445* Fri Oct 02 2009 Alexander Nozdrin <alexander.nozdrin@sun.com> 1446 1447- "mysqlmanager" got removed from version 5.4, all references deleted. 1448 1449* Fri Aug 28 2009 Joerg Bruehe <joerg.bruehe@sun.com> 1450 1451- Merge up from 5.1 to 5.4: Remove handling for the InnoDB plugin. 1452 1453* Thu Aug 27 2009 Joerg Bruehe <joerg.bruehe@sun.com> 1454 1455- This version does not contain the "Instance manager", "mysqlmanager": 1456 Remove it from the spec file so that packaging succeeds. 1457 1458* Mon Aug 24 2009 Jonathan Perkin <jperkin@sun.com> 1459 1460- Add conditionals for bundled zlib and innodb plugin 1461 1462* Fri Aug 21 2009 Jonathan Perkin <jperkin@sun.com> 1463 1464- Install plugin libraries in appropriate packages. 1465- Disable libdaemon_example and ftexample plugins. 1466 1467* Thu Aug 20 2009 Jonathan Perkin <jperkin@sun.com> 1468 1469- Update variable used for mysql-test suite location to match source. 1470 1471* Fri Nov 07 2008 Joerg Bruehe <joerg@mysql.com> 1472 1473- Correct yesterday's fix, so that it also works for the last flag, 1474 and fix a wrong quoting: un-quoted quote marks must not be escaped. 1475 1476* Thu Nov 06 2008 Kent Boortz <kent.boortz@sun.com> 1477 1478- Removed "mysql_upgrade_shell" 1479- Removed some copy/paste between debug and normal build 1480 1481* Thu Nov 06 2008 Joerg Bruehe <joerg@mysql.com> 1482 1483- Modify CFLAGS and CXXFLAGS such that a debug build is not optimized. 1484 This should cover both gcc and icc flags. Fixes bug#40546. 1485 1486* Fri Aug 29 2008 Kent Boortz <kent@mysql.com> 1487 1488- Removed the "Federated" storage engine option, and enabled in all 1489 1490* Tue Aug 26 2008 Joerg Bruehe <joerg@mysql.com> 1491 1492- Get rid of the "warning: Installed (but unpackaged) file(s) found:" 1493 Some generated files aren't needed in RPMs: 1494 - the "sql-bench/" subdirectory 1495 Some files were missing: 1496 - /usr/share/aclocal/mysql.m4 ("devel" subpackage) 1497 - Manual "mysqlbug" ("server" subpackage) 1498 - Program "innochecksum" and its manual ("server" subpackage) 1499 - Manual "mysql_find_rows" ("client" subpackage) 1500 - Script "mysql_upgrade_shell" ("client" subpackage) 1501 - Program "ndb_cpcd" and its manual ("ndb-extra" subpackage) 1502 - Manuals "ndb_mgm" + "ndb_restore" ("ndb-tools" subpackage) 1503 1504* Mon Mar 31 2008 Kent Boortz <kent@mysql.com> 1505 1506- Made the "Federated" storage engine an option 1507- Made the "Cluster" storage engine and sub packages an option 1508 1509* Wed Mar 19 2008 Joerg Bruehe <joerg@mysql.com> 1510 1511- Add the man pages for "ndbd" and "ndb_mgmd". 1512 1513* Mon Feb 18 2008 Timothy Smith <tim@mysql.com> 1514 1515- Require a manual upgrade if the alread-installed mysql-server is 1516 from another vendor, or is of a different major version. 1517 1518* Wed May 02 2007 Joerg Bruehe <joerg@mysql.com> 1519 1520- "ndb_size.tmpl" is not needed any more, 1521 "man1/mysql_install_db.1" lacked the trailing '*'. 1522 1523* Sat Apr 07 2007 Kent Boortz <kent@mysql.com> 1524 1525- Removed man page for "mysql_create_system_tables" 1526 1527* Wed Mar 21 2007 Daniel Fischer <df@mysql.com> 1528 1529- Add debug server. 1530 1531* Mon Mar 19 2007 Daniel Fischer <df@mysql.com> 1532 1533- Remove Max RPMs; the server RPMs contain a mysqld compiled with all 1534 features that previously only were built into Max. 1535 1536* Fri Mar 02 2007 Joerg Bruehe <joerg@mysql.com> 1537 1538- Add several man pages for NDB which are now created. 1539 1540* Fri Jan 05 2007 Kent Boortz <kent@mysql.com> 1541 1542- Put back "libmygcc.a", found no real reason it was removed. 1543 1544- Add CFLAGS to gcc call with --print-libgcc-file, to make sure the 1545 correct "libgcc.a" path is returned for the 32/64 bit architecture. 1546 1547* Mon Dec 18 2006 Joerg Bruehe <joerg@mysql.com> 1548 1549- Fix the move of "mysqlmanager" to section 8: Directory name was wrong. 1550 1551* Thu Dec 14 2006 Joerg Bruehe <joerg@mysql.com> 1552 1553- Include the new man pages for "my_print_defaults" and "mysql_tzinfo_to_sql" 1554 in the server RPM. 1555- The "mysqlmanager" man page got moved from section 1 to 8. 1556 1557* Thu Nov 30 2006 Joerg Bruehe <joerg@mysql.com> 1558 1559- Call "make install" using "benchdir_root=%%{_datadir}", 1560 because that is affecting the regression test suite as well. 1561 1562* Thu Nov 16 2006 Joerg Bruehe <joerg@mysql.com> 1563 1564- Explicitly note that the "MySQL-shared" RPMs (as built by MySQL AB) 1565 replace "mysql-shared" (as distributed by SuSE) to allow easy upgrading 1566 (bug#22081). 1567 1568* Mon Nov 13 2006 Joerg Bruehe <joerg@mysql.com> 1569 1570- Add "--with-partition" to all server builds. 1571 1572- Use "--report-features" in one test run per server build. 1573 1574* Tue Aug 15 2006 Joerg Bruehe <joerg@mysql.com> 1575 1576- The "max" server is removed from packages, effective from 5.1.12-beta. 1577 Delete all steps to build, package, or install it. 1578 1579* Mon Jul 10 2006 Joerg Bruehe <joerg@mysql.com> 1580 1581- Fix a typing error in the "make" target for the Perl script to run the tests. 1582 1583* Tue Jul 04 2006 Joerg Bruehe <joerg@mysql.com> 1584 1585- Use the Perl script to run the tests, because it will automatically check 1586 whether the server is configured with SSL. 1587 1588* Tue Jun 27 2006 Joerg Bruehe <joerg@mysql.com> 1589 1590- move "mysqldumpslow" from the client RPM to the server RPM (bug#20216) 1591 1592- Revert all previous attempts to call "mysql_upgrade" during RPM upgrade, 1593 there are some more aspects which need to be solved before this is possible. 1594 For now, just ensure the binary "mysql_upgrade" is delivered and installed. 1595 1596* Thu Jun 22 2006 Joerg Bruehe <joerg@mysql.com> 1597 1598- Close a gap of the previous version by explicitly using 1599 a newly created temporary directory for the socket to be used 1600 in the "mysql_upgrade" operation, overriding any local setting. 1601 1602* Tue Jun 20 2006 Joerg Bruehe <joerg@mysql.com> 1603 1604- To run "mysql_upgrade", we need a running server; 1605 start it in isolation and skip password checks. 1606 1607* Sat May 20 2006 Kent Boortz <kent@mysql.com> 1608 1609- Always compile for PIC, position independent code. 1610 1611* Wed May 10 2006 Kent Boortz <kent@mysql.com> 1612 1613- Use character set "all" when compiling with Cluster, to make Cluster 1614 nodes independent on the character set directory, and the problem 1615 that two RPM sub packages both wants to install this directory. 1616 1617* Mon May 01 2006 Kent Boortz <kent@mysql.com> 1618 1619- Use "./libtool --mode=execute" instead of searching for the 1620 executable in current directory and ".libs". 1621 1622* Fri Apr 28 2006 Kent Boortz <kent@mysql.com> 1623 1624- Install and run "mysql_upgrade" 1625 1626* Wed Apr 12 2006 Jim Winstead <jimw@mysql.com> 1627 1628- Remove sql-bench, and MySQL-bench RPM (will be built as an independent 1629 project from the mysql-bench repository) 1630 1631* Tue Apr 11 2006 Jim Winstead <jimw@mysql.com> 1632 1633- Remove old mysqltestmanager and related programs 1634* Sat Apr 01 2006 Kent Boortz <kent@mysql.com> 1635 1636- Set $LDFLAGS from $MYSQL_BUILD_LDFLAGS 1637 1638* Tue Mar 07 2006 Kent Boortz <kent@mysql.com> 1639 1640- Changed product name from "Community Edition" to "Community Server" 1641 1642* Mon Mar 06 2006 Kent Boortz <kent@mysql.com> 1643 1644- Fast mutexes is now disabled by default, but should be 1645 used in Linux builds. 1646 1647* Mon Feb 20 2006 Kent Boortz <kent@mysql.com> 1648 1649- Reintroduced a max build 1650- Limited testing of 'debug' and 'max' servers 1651- Berkeley DB only in 'max' 1652 1653* Mon Feb 13 2006 Joerg Bruehe <joerg@mysql.com> 1654 1655- Use "-i" on "make test-force"; 1656 this is essential for later evaluation of this log file. 1657 1658* Thu Feb 09 2006 Kent Boortz <kent@mysql.com> 1659 1660- Pass '-static' to libtool, link static with our own libraries, dynamic 1661 with system libraries. Link with the bundled zlib. 1662 1663* Wed Feb 08 2006 Kristian Nielsen <knielsen@mysql.com> 1664 1665- Modified RPM spec to match new 5.1 debug+max combined community packaging. 1666 1667* Sun Dec 18 2005 Kent Boortz <kent@mysql.com> 1668 1669- Added "client/mysqlslap" 1670 1671* Mon Dec 12 2005 Rodrigo Novo <rodrigo@mysql.com> 1672 1673- Added zlib to the list of (static) libraries installed 1674- Added check against libtool wierdness (WRT: sql/mysqld || sql/.libs/mysqld) 1675- Compile MySQL with bundled zlib 1676- Fixed %%packager name to "MySQL Production Engineering Team" 1677 1678* Mon Dec 05 2005 Joerg Bruehe <joerg@mysql.com> 1679 1680- Avoid using the "bundled" zlib on "shared" builds: 1681 As it is not installed (on the build system), this gives dependency 1682 problems with "libtool" causing the build to fail. 1683 (Change was done on Nov 11, but left uncommented.) 1684 1685* Tue Nov 22 2005 Joerg Bruehe <joerg@mysql.com> 1686 1687- Extend the file existence check for "init.d/mysql" on un-install 1688 to also guard the call to "insserv"/"chkconfig". 1689 1690* Thu Oct 27 2005 Lenz Grimmer <lenz@grimmer.com> 1691 1692- added more man pages 1693 1694* Wed Oct 19 2005 Kent Boortz <kent@mysql.com> 1695 1696- Made yaSSL support an option (off by default) 1697 1698* Wed Oct 19 2005 Kent Boortz <kent@mysql.com> 1699 1700- Enabled yaSSL support 1701 1702* Sat Oct 15 2005 Kent Boortz <kent@mysql.com> 1703 1704- Give mode arguments the same way in all places 1705- Moved copy of mysqld.a to "standard" build, but 1706 disabled it as we don't do embedded yet in 5.0 1707 1708* Fri Oct 14 2005 Kent Boortz <kent@mysql.com> 1709 1710- For 5.x, always compile with --with-big-tables 1711- Copy the config.log file to location outside 1712 the build tree 1713 1714* Fri Oct 14 2005 Kent Boortz <kent@mysql.com> 1715 1716- Removed unneeded/obsolete configure options 1717- Added archive engine to standard server 1718- Removed the embedded server from experimental server 1719- Changed suffix "-Max" => "-max" 1720- Changed comment string "Max" => "Experimental" 1721 1722* Thu Oct 13 2005 Lenz Grimmer <lenz@mysql.com> 1723 1724- added a usermod call to assign a potential existing mysql user to the 1725 correct user group (BUG#12823) 1726- Save the perror binary built during Max build so it supports the NDB 1727 error codes (BUG#13740) 1728- added a separate macro "mysqld_group" to be able to define the 1729 user group of the mysql user seperately, if desired. 1730 1731* Thu Sep 29 2005 Lenz Grimmer <lenz@mysql.com> 1732 1733- fixed the removing of the RPM_BUILD_ROOT in the %clean section (the 1734 $RBR variable did not get expanded, thus leaving old build roots behind) 1735 1736* Thu Aug 04 2005 Lenz Grimmer <lenz@mysql.com> 1737 1738- Fixed the creation of the mysql user group account in the postinstall 1739 section (BUG 12348) 1740- Fixed enabling the Archive storage engine in the Max binary 1741 1742* Tue Aug 02 2005 Lenz Grimmer <lenz@mysql.com> 1743 1744- Fixed the Requires: tag for the server RPM (BUG 12233) 1745 1746* Fri Jul 15 2005 Lenz Grimmer <lenz@mysql.com> 1747 1748- create a "mysql" user group and assign the mysql user account to that group 1749 in the server postinstall section. (BUG 10984) 1750 1751* Tue Jun 14 2005 Lenz Grimmer <lenz@mysql.com> 1752 1753- Do not build statically on i386 by default, only when adding either "--with 1754 static" or "--define '_with_static 1'" to the RPM build options. Static 1755 linking really only makes sense when linking against the specially patched 1756 glibc 2.2.5. 1757 1758* Mon Jun 06 2005 Lenz Grimmer <lenz@mysql.com> 1759 1760- added mysql_client_test to the "bench" subpackage (BUG 10676) 1761- added the libndbclient static and shared libraries (BUG 10676) 1762 1763* Wed Jun 01 2005 Lenz Grimmer <lenz@mysql.com> 1764 1765- use "mysqldatadir" variable instead of hard-coding the path multiple times 1766- use the "mysqld_user" variable on all occasions a user name is referenced 1767- removed (incomplete) Brazilian translations 1768- removed redundant release tags from the subpackage descriptions 1769 1770* Wed May 25 2005 Joerg Bruehe <joerg@mysql.com> 1771 1772- Added a "make clean" between separate calls to "BuildMySQL". 1773 1774* Thu May 12 2005 Guilhem Bichot <guilhem@mysql.com> 1775 1776- Removed the mysql_tableinfo script made obsolete by the information schema 1777 1778* Wed Apr 20 2005 Lenz Grimmer <lenz@mysql.com> 1779 1780- Enabled the "blackhole" storage engine for the Max RPM 1781 1782* Wed Apr 13 2005 Lenz Grimmer <lenz@mysql.com> 1783 1784- removed the MySQL manual files (html/ps/texi) - they have been removed 1785 from the MySQL sources and are now available seperately. 1786 1787* Mon Apr 4 2005 Petr Chardin <petr@mysql.com> 1788 1789- old mysqlmanager, mysqlmanagerc and mysqlmanager-pwger renamed into 1790 mysqltestmanager, mysqltestmanager and mysqltestmanager-pwgen respectively 1791 1792* Fri Mar 18 2005 Lenz Grimmer <lenz@mysql.com> 1793 1794- Disabled RAID in the Max binaries once and for all (it has finally been 1795 removed from the source tree) 1796 1797* Sun Feb 20 2005 Petr Chardin <petr@mysql.com> 1798 1799- Install MySQL Instance Manager together with mysqld, touch mysqlmanager 1800 password file 1801 1802* Mon Feb 14 2005 Lenz Grimmer <lenz@mysql.com> 1803 1804- Fixed the compilation comments and moved them into the separate build sections 1805 for Max and Standard 1806 1807* Mon Feb 7 2005 Tomas Ulin <tomas@mysql.com> 1808 1809- enabled the "Ndbcluster" storage engine for the max binary 1810- added extra make install in ndb subdir after Max build to get ndb binaries 1811- added packages for ndbcluster storage engine 1812 1813* Fri Jan 14 2005 Lenz Grimmer <lenz@mysql.com> 1814 1815- replaced obsoleted "BuildPrereq" with "BuildRequires" instead 1816 1817* Thu Jan 13 2005 Lenz Grimmer <lenz@mysql.com> 1818 1819- enabled the "Federated" storage engine for the max binary 1820 1821* Tue Jan 04 2005 Petr Chardin <petr@mysql.com> 1822 1823- ISAM and merge storage engines were purged. As well as appropriate 1824 tools and manpages (isamchk and isamlog) 1825 1826* Fri Dec 31 2004 Lenz Grimmer <lenz@mysql.com> 1827 1828- enabled the "Archive" storage engine for the max binary 1829- enabled the "CSV" storage engine for the max binary 1830- enabled the "Example" storage engine for the max binary 1831 1832* Thu Aug 26 2004 Lenz Grimmer <lenz@mysql.com> 1833 1834- MySQL-Max now requires MySQL-server instead of MySQL (BUG 3860) 1835 1836* Fri Aug 20 2004 Lenz Grimmer <lenz@mysql.com> 1837 1838- do not link statically on IA64/AMD64 as these systems do not have 1839 a patched glibc installed 1840 1841* Tue Aug 10 2004 Lenz Grimmer <lenz@mysql.com> 1842 1843- Added libmygcc.a to the devel subpackage (required to link applications 1844 against the the embedded server libmysqld.a) (BUG 4921) 1845 1846* Mon Aug 09 2004 Lenz Grimmer <lenz@mysql.com> 1847 1848- Added EXCEPTIONS-CLIENT to the "devel" package 1849 1850* Thu Jul 29 2004 Lenz Grimmer <lenz@mysql.com> 1851 1852- disabled OpenSSL in the Max binaries again (the RPM packages were the 1853 only exception to this anyway) (BUG 1043) 1854 1855* Wed Jun 30 2004 Lenz Grimmer <lenz@mysql.com> 1856 1857- fixed server postinstall (mysql_install_db was called with the wrong 1858 parameter) 1859 1860* Thu Jun 24 2004 Lenz Grimmer <lenz@mysql.com> 1861 1862- added mysql_tzinfo_to_sql to the server subpackage 1863- run "make clean" instead of "make distclean" 1864 1865* Mon Apr 05 2004 Lenz Grimmer <lenz@mysql.com> 1866 1867- added ncurses-devel to the build prerequisites (BUG 3377) 1868 1869* Thu Feb 12 2004 Lenz Grimmer <lenz@mysql.com> 1870 1871- when using gcc, _always_ use CXX=gcc 1872- replaced Copyright with License field (Copyright is obsolete) 1873 1874* Tue Feb 03 2004 Lenz Grimmer <lenz@mysql.com> 1875 1876- added myisam_ftdump to the Server package 1877 1878* Tue Jan 13 2004 Lenz Grimmer <lenz@mysql.com> 1879 1880- link the mysql client against libreadline instead of libedit (BUG 2289) 1881 1882* Mon Dec 22 2003 Lenz Grimmer <lenz@mysql.com> 1883 1884- marked /etc/logrotate.d/mysql as a config file (BUG 2156) 1885 1886* Sat Dec 13 2003 Lenz Grimmer <lenz@mysql.com> 1887 1888- fixed file permissions (BUG 1672) 1889 1890* Thu Dec 11 2003 Lenz Grimmer <lenz@mysql.com> 1891 1892- made testing for gcc3 a bit more robust 1893 1894* Fri Dec 05 2003 Lenz Grimmer <lenz@mysql.com> 1895 1896- added missing file mysql_create_system_tables to the server subpackage 1897 1898* Fri Nov 21 2003 Lenz Grimmer <lenz@mysql.com> 1899 1900- removed dependency on MySQL-client from the MySQL-devel subpackage 1901 as it is not really required. (BUG 1610) 1902 1903* Fri Aug 29 2003 Lenz Grimmer <lenz@mysql.com> 1904 1905- Fixed BUG 1162 (removed macro names from the changelog) 1906- Really fixed BUG 998 (disable the checking for installed but 1907 unpackaged files) 1908 1909* Tue Aug 05 2003 Lenz Grimmer <lenz@mysql.com> 1910 1911- Fixed BUG 959 (libmysqld not being compiled properly) 1912- Fixed BUG 998 (RPM build errors): added missing files to the 1913 distribution (mysql_fix_extensions, mysql_tableinfo, mysqldumpslow, 1914 mysql_fix_privilege_tables.1), removed "-n" from install section. 1915 1916* Wed Jul 09 2003 Lenz Grimmer <lenz@mysql.com> 1917 1918- removed the GIF Icon (file was not included in the sources anyway) 1919- removed unused variable shared_lib_version 1920- do not run automake before building the standard binary 1921 (should not be necessary) 1922- add server suffix '-standard' to standard binary (to be in line 1923 with the binary tarball distributions) 1924- Use more RPM macros (_exec_prefix, _sbindir, _libdir, _sysconfdir, 1925 _datadir, _includedir) throughout the spec file. 1926- allow overriding CC and CXX (required when building with other compilers) 1927 1928* Fri May 16 2003 Lenz Grimmer <lenz@mysql.com> 1929 1930- re-enabled RAID again 1931 1932* Wed Apr 30 2003 Lenz Grimmer <lenz@mysql.com> 1933 1934- disabled MyISAM RAID (--with-raid) - it throws an assertion which 1935 needs to be investigated first. 1936 1937* Mon Mar 10 2003 Lenz Grimmer <lenz@mysql.com> 1938 1939- added missing file mysql_secure_installation to server subpackage 1940 (BUG 141) 1941 1942* Tue Feb 11 2003 Lenz Grimmer <lenz@mysql.com> 1943 1944- re-added missing pre- and post(un)install scripts to server subpackage 1945- added config file /etc/my.cnf to the file list (just for completeness) 1946- make sure to create the datadir with 755 permissions 1947 1948* Mon Jan 27 2003 Lenz Grimmer <lenz@mysql.com> 1949 1950- removed unused CC and CXX variables 1951- CFLAGS and CXXFLAGS should honor RPM_OPT_FLAGS 1952 1953* Fri Jan 24 2003 Lenz Grimmer <lenz@mysql.com> 1954 1955- renamed package "MySQL" to "MySQL-server" 1956- fixed Copyright tag 1957- added mysql_waitpid to client subpackage (required for mysql-test-run) 1958 1959* Wed Nov 27 2002 Lenz Grimmer <lenz@mysql.com> 1960 1961- moved init script from /etc/rc.d/init.d to /etc/init.d (the majority of 1962 Linux distributions now support this scheme as proposed by the LSB either 1963 directly or via a compatibility symlink) 1964- Use new "restart" init script action instead of starting and stopping 1965 separately 1966- Be more flexible in activating the automatic bootup - use insserv (on 1967 older SuSE versions) or chkconfig (Red Hat, newer SuSE versions and 1968 others) to create the respective symlinks 1969 1970* Wed Sep 25 2002 Lenz Grimmer <lenz@mysql.com> 1971 1972- MySQL-Max now requires MySQL >= 4.0 to avoid version mismatches 1973 (mixing 3.23 and 4.0 packages) 1974 1975* Fri Aug 09 2002 Lenz Grimmer <lenz@mysql.com> 1976 1977- Turn off OpenSSL in MySQL-Max for now until it works properly again 1978- enable RAID for the Max binary instead 1979- added compatibility link: safe_mysqld -> mysqld_safe to ease the 1980 transition from 3.23 1981 1982* Thu Jul 18 2002 Lenz Grimmer <lenz@mysql.com> 1983 1984- Reworked the build steps a little bit: the Max binary is supposed 1985 to include OpenSSL, which cannot be linked statically, thus trying 1986 to statically link against a special glibc is futile anyway 1987- because of this, it is not required to make yet another build run 1988 just to compile the shared libs (saves a lot of time) 1989- updated package description of the Max subpackage 1990- clean up the BuildRoot directory afterwards 1991 1992* Mon Jul 15 2002 Lenz Grimmer <lenz@mysql.com> 1993 1994- Updated Packager information 1995- Fixed the build options: the regular package is supposed to 1996 include InnoDB and linked statically, while the Max package 1997 should include BDB and SSL support 1998 1999* Fri May 03 2002 Lenz Grimmer <lenz@mysql.com> 2000 2001- Use more RPM macros (e.g. infodir, mandir) to make the spec 2002 file more portable 2003- reorganized the installation of documentation files: let RPM 2004 take care of this 2005- reorganized the file list: actually install man pages along 2006 with the binaries of the respective subpackage 2007- do not include libmysqld.a in the devel subpackage as well, if we 2008 have a special "embedded" subpackage 2009- reworked the package descriptions 2010 2011* Mon Oct 8 2001 Monty 2012 2013- Added embedded server as a separate RPM 2014 2015* Fri Apr 13 2001 Monty 2016 2017- Added mysqld-max to the distribution 2018 2019* Tue Jan 2 2001 Monty 2020 2021- Added mysql-test to the bench package 2022 2023* Fri Aug 18 2000 Tim Smith <tim@mysql.com> 2024 2025- Added separate libmysql_r directory; now both a threaded 2026 and non-threaded library is shipped. 2027 2028* Tue Sep 28 1999 David Axmark <davida@mysql.com> 2029 2030- Added the support-files/my-example.cnf to the docs directory. 2031 2032- Removed devel dependency on base since it is about client 2033 development. 2034 2035* Wed Sep 8 1999 David Axmark <davida@mysql.com> 2036 2037- Cleaned up some for 3.23. 2038 2039* Thu Jul 1 1999 David Axmark <davida@mysql.com> 2040 2041- Added support for shared libraries in a separate sub 2042 package. Original fix by David Fox (dsfox@cogsci.ucsd.edu) 2043 2044- The --enable-assembler switch is now automatically disables on 2045 platforms there assembler code is unavailable. This should allow 2046 building this RPM on non i386 systems. 2047 2048* Mon Feb 22 1999 David Axmark <david@detron.se> 2049 2050- Removed unportable cc switches from the spec file. The defaults can 2051 now be overridden with environment variables. This feature is used 2052 to compile the official RPM with optimal (but compiler version 2053 specific) switches. 2054 2055- Removed the repetitive description parts for the sub rpms. Maybe add 2056 again if RPM gets a multiline macro capability. 2057 2058- Added support for a pt_BR translation. Translation contributed by 2059 Jorge Godoy <jorge@bestway.com.br>. 2060 2061* Wed Nov 4 1998 David Axmark <david@detron.se> 2062 2063- A lot of changes in all the rpm and install scripts. This may even 2064 be a working RPM :-) 2065 2066* Sun Aug 16 1998 David Axmark <david@detron.se> 2067 2068- A developers changelog for MySQL is available in the source RPM. And 2069 there is a history of major user visible changed in the Reference 2070 Manual. Only RPM specific changes will be documented here. 2071