Added backported repo rpm files from mysql-5.5.35-uln branch
This commit is contained in:
commit
13ac2d8ff8
@ -406,6 +406,7 @@ IF(NOT WITHOUT_SERVER)
|
||||
ADD_SUBDIRECTORY(internal)
|
||||
ENDIF()
|
||||
ADD_SUBDIRECTORY(packaging/rpm-uln)
|
||||
ADD_SUBDIRECTORY(packaging/rpm-oel)
|
||||
ENDIF()
|
||||
|
||||
INCLUDE(cmake/abi_check.cmake)
|
||||
|
36
packaging/rpm-oel/CMakeLists.txt
Normal file
36
packaging/rpm-oel/CMakeLists.txt
Normal file
@ -0,0 +1,36 @@
|
||||
# Copyright (c) 2012, 2013, 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-1301 USA
|
||||
|
||||
|
||||
IF(UNIX)
|
||||
SET(prefix ${CMAKE_INSTALL_PREFIX})
|
||||
|
||||
SET(SPECFILENAME "mysql.spec")
|
||||
IF("${VERSION}" MATCHES "-ndb-")
|
||||
STRING(REGEX REPLACE "^.*-ndb-" "" NDBVERSION "${VERSION}")
|
||||
SET(SPECFILENAME "mysql-cluster-${NDBVERSION}.spec")
|
||||
ENDIF()
|
||||
|
||||
# Left in current directory, to be taken during build
|
||||
CONFIGURE_FILE(mysql.spec.in ${CMAKE_CURRENT_BINARY_DIR}/${SPECFILENAME} @ONLY)
|
||||
|
||||
FOREACH(fedfile my.cnf my_config.h mysql_config.sh
|
||||
mysqld.service mysql-systemd-start mysql.conf
|
||||
filter-requires.sh filter-provides.sh
|
||||
mysql-embedded-check.c mysql.init)
|
||||
CONFIGURE_FILE(${fedfile} ${CMAKE_CURRENT_BINARY_DIR}/${fedfile} COPYONLY)
|
||||
ENDFOREACH()
|
||||
ENDIF()
|
||||
|
6
packaging/rpm-oel/filter-provides.sh
Normal file
6
packaging/rpm-oel/filter-provides.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
|
||||
/usr/lib/rpm/perl.prov $* |
|
||||
sed -e '/perl(hostnames)/d' -e '/perl(lib::mtr.*/d' -e '/perl(lib::v1.*/d' -e '/perl(mtr_.*/d' -e '/perl(My::.*/d'
|
||||
|
6
packaging/rpm-oel/filter-requires.sh
Normal file
6
packaging/rpm-oel/filter-requires.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
|
||||
/usr/lib/rpm/perl.req $* |
|
||||
sed -e '/perl(hostnames)/d' -e '/perl(lib::mtr.*/d' -e '/perl(lib::v1.*/d' -e '/perl(mtr_.*/d' -e '/perl(My::.*/d'
|
||||
|
31
packaging/rpm-oel/my.cnf
Normal file
31
packaging/rpm-oel/my.cnf
Normal file
@ -0,0 +1,31 @@
|
||||
# For advice on how to change settings please see
|
||||
# http://dev.mysql.com/doc/refman/5.5/en/server-configuration-defaults.html
|
||||
|
||||
[mysqld]
|
||||
#
|
||||
# Remove leading # and set to the amount of RAM for the most important data
|
||||
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
|
||||
# innodb_buffer_pool_size = 128M
|
||||
#
|
||||
# Remove leading # to turn on a very important data integrity option: logging
|
||||
# changes to the binary log between backups.
|
||||
# log_bin
|
||||
#
|
||||
# Remove leading # to set options mainly useful for reporting servers.
|
||||
# The server defaults are faster for transactions and fast SELECTs.
|
||||
# Adjust sizes as needed, experiment to find the optimal values.
|
||||
# join_buffer_size = 128M
|
||||
# sort_buffer_size = 2M
|
||||
# read_rnd_buffer_size = 2M
|
||||
datadir=/var/lib/mysql
|
||||
socket=/var/lib/mysql/mysql.sock
|
||||
|
||||
# Disabling symbolic-links is recommended to prevent assorted security risks
|
||||
symbolic-links=0
|
||||
|
||||
# Recommended in standard MySQL setup
|
||||
#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
|
||||
|
||||
[mysqld_safe]
|
||||
log-error=/var/log/mysqld.log
|
||||
pid-file=/var/run/mysqld/mysqld.pid
|
30
packaging/rpm-oel/my_config.h
Normal file
30
packaging/rpm-oel/my_config.h
Normal file
@ -0,0 +1,30 @@
|
||||
/*
|
||||
* Fedora supports multi arch: having 32 and 64 versions of MySQL
|
||||
* installed at the same time. my_config.h will differ due arch
|
||||
* dependent defs creating a file conflict. We move arch specific
|
||||
* headers to arch specific file names and include the correct arch
|
||||
* specific file by installing this generic file.
|
||||
*
|
||||
*/
|
||||
|
||||
#if defined(__i386__)
|
||||
#include "my_config_i386.h"
|
||||
#elif defined(__ia64__)
|
||||
#include "my_config_ia64.h"
|
||||
#elif defined(__powerpc__)
|
||||
#include "my_config_ppc.h"
|
||||
#elif defined(__powerpc64__)
|
||||
#include "my_config_ppc64.h"
|
||||
#elif defined(__s390x__)
|
||||
#include "my_config_s390x.h"
|
||||
#elif defined(__s390__)
|
||||
#include "my_config_s390.h"
|
||||
#elif defined(__sparc__) && defined(__arch64__)
|
||||
#include "my_config_sparc64.h"
|
||||
#elif defined(__sparc__)
|
||||
#include "my_config_sparc.h"
|
||||
#elif defined(__x86_64__)
|
||||
#include "my_config_x86_64.h"
|
||||
#else
|
||||
#error "This MySQL devel package does not work your architecture?"
|
||||
#endif
|
26
packaging/rpm-oel/mysql-embedded-check.c
Normal file
26
packaging/rpm-oel/mysql-embedded-check.c
Normal file
@ -0,0 +1,26 @@
|
||||
/* simple test program to see if we can link the embedded server library */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "mysql.h"
|
||||
|
||||
MYSQL *mysql;
|
||||
|
||||
static char *server_options[] = \
|
||||
{ "mysql_test", "--defaults-file=my.cnf", NULL };
|
||||
int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;
|
||||
|
||||
static char *server_groups[] = { "libmysqld_server",
|
||||
"libmysqld_client", NULL };
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
mysql_library_init(num_elements, server_options, server_groups);
|
||||
mysql = mysql_init(NULL);
|
||||
mysql_close(mysql);
|
||||
mysql_library_end();
|
||||
|
||||
return 0;
|
||||
}
|
52
packaging/rpm-oel/mysql-systemd-start
Normal file
52
packaging/rpm-oel/mysql-systemd-start
Normal file
@ -0,0 +1,52 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# Scripts to run by MySQL systemd service
|
||||
#
|
||||
# Needed argument: pre | post
|
||||
#
|
||||
# pre mode : try to run mysql_install_db and fix perms and SELinux contexts
|
||||
# post mode : ping server until answer is received
|
||||
#
|
||||
|
||||
install_db () {
|
||||
# Note: something different than datadir=/var/lib/mysql requires SELinux policy changes (in enforcing mode)
|
||||
datadir=$(/usr/bin/my_print_defaults server mysqld | grep '^--datadir=' | sed -n 's/--datadir=//p')
|
||||
|
||||
# Restore log, dir, perms and SELinux contexts
|
||||
[ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || exit 1
|
||||
log=/var/log/mysqld.log
|
||||
[ -e $log ] || touch $log
|
||||
chmod 0640 $log
|
||||
chown mysql:mysql $log || exit 1
|
||||
if [ -x /usr/sbin/restorecon ]; then
|
||||
/usr/sbin/restorecon "$datadir"
|
||||
/usr/sbin/restorecon $log
|
||||
fi
|
||||
|
||||
# If special mysql dir is in place, skip db install
|
||||
[ -d "$datadir/mysql" ] && exit 0
|
||||
|
||||
# Create initial db
|
||||
/usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql
|
||||
exit 0
|
||||
}
|
||||
|
||||
pinger () {
|
||||
# Wait for ping to answer to signal startup completed,
|
||||
# might take a while in case of e.g. crash recovery
|
||||
# MySQL systemd service will timeout script if no answer
|
||||
while /bin/true ; do
|
||||
sleep 1
|
||||
mysqladmin ping >/dev/null 2>&1 && break
|
||||
done
|
||||
exit 0
|
||||
}
|
||||
|
||||
# main
|
||||
case $1 in
|
||||
"pre") install_db ;;
|
||||
"post") pinger ;;
|
||||
esac
|
||||
|
||||
exit 0
|
||||
|
1
packaging/rpm-oel/mysql.conf
Normal file
1
packaging/rpm-oel/mysql.conf
Normal file
@ -0,0 +1 @@
|
||||
d /var/run/mysqld 0755 mysql mysql -
|
209
packaging/rpm-oel/mysql.init
Normal file
209
packaging/rpm-oel/mysql.init
Normal file
@ -0,0 +1,209 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# mysqld This shell script takes care of starting and stopping
|
||||
# the MySQL subsystem (mysqld).
|
||||
#
|
||||
# chkconfig: - 64 36
|
||||
# description: MySQL database server.
|
||||
# processname: mysqld
|
||||
# config: /etc/my.cnf
|
||||
# pidfile: /var/run/mysqld/mysqld.pid
|
||||
|
||||
# Source function library.
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
# Source networking configuration.
|
||||
. /etc/sysconfig/network
|
||||
|
||||
|
||||
exec="/usr/bin/mysqld_safe"
|
||||
prog="mysqld"
|
||||
|
||||
# Set timeouts here so they can be overridden from /etc/sysconfig/mysqld
|
||||
STARTTIMEOUT=120
|
||||
STOPTIMEOUT=60
|
||||
|
||||
[ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
|
||||
|
||||
lockfile=/var/lock/subsys/$prog
|
||||
|
||||
|
||||
# extract value of a MySQL option from config files
|
||||
# Usage: get_mysql_option SECTION VARNAME DEFAULT
|
||||
# result is returned in $result
|
||||
# We use my_print_defaults which prints all options from multiple files,
|
||||
# with the more specific ones later; hence take the last match.
|
||||
get_mysql_option(){
|
||||
result=`/usr/bin/my_print_defaults "$1" | sed -n "s/^--$2=//p" | tail -n 1`
|
||||
if [ -z "$result" ]; then
|
||||
# not found, use default
|
||||
result="$3"
|
||||
fi
|
||||
}
|
||||
|
||||
get_mysql_option mysqld datadir "/var/lib/mysql"
|
||||
datadir="$result"
|
||||
get_mysql_option mysqld socket "$datadir/mysql.sock"
|
||||
socketfile="$result"
|
||||
get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
|
||||
errlogfile="$result"
|
||||
get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
|
||||
mypidfile="$result"
|
||||
|
||||
|
||||
start(){
|
||||
[ -x $exec ] || exit 5
|
||||
# check to see if it's already running
|
||||
RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1`
|
||||
if [ $? = 0 ]; then
|
||||
# already running, do nothing
|
||||
action $"Starting $prog: " /bin/true
|
||||
ret=0
|
||||
elif echo "$RESPONSE" | grep -q "Access denied for user"
|
||||
then
|
||||
# already running, do nothing
|
||||
action $"Starting $prog: " /bin/true
|
||||
ret=0
|
||||
else
|
||||
# prepare for start
|
||||
touch "$errlogfile"
|
||||
chown mysql:mysql "$errlogfile"
|
||||
chmod 0640 "$errlogfile"
|
||||
[ -x /sbin/restorecon ] && /sbin/restorecon "$errlogfile"
|
||||
if [ ! -d "$datadir/mysql" ] ; then
|
||||
# First, make sure $datadir is there with correct permissions
|
||||
if [ ! -e "$datadir" -a ! -h "$datadir" ]
|
||||
then
|
||||
mkdir -p "$datadir" || exit 1
|
||||
fi
|
||||
chown mysql:mysql "$datadir"
|
||||
chmod 0755 "$datadir"
|
||||
[ -x /sbin/restorecon ] && /sbin/restorecon "$datadir"
|
||||
# Now create the database
|
||||
action $"Initializing MySQL database: " /usr/bin/mysql_install_db --rpm --datadir="$datadir" --user=mysql
|
||||
ret=$?
|
||||
chown -R mysql:mysql "$datadir"
|
||||
if [ $ret -ne 0 ] ; then
|
||||
return $ret
|
||||
fi
|
||||
fi
|
||||
chown mysql:mysql "$datadir"
|
||||
chmod 0755 "$datadir"
|
||||
# Pass all the options determined above, to ensure consistent behavior.
|
||||
# In many cases mysqld_safe would arrive at the same conclusions anyway
|
||||
# but we need to be sure. (An exception is that we don't force the
|
||||
# log-error setting, since this script doesn't really depend on that,
|
||||
# and some users might prefer to configure logging to syslog.)
|
||||
# Note: set --basedir to prevent probes that might trigger SELinux
|
||||
# alarms, per bug #547485
|
||||
$exec --datadir="$datadir" --socket="$socketfile" \
|
||||
--pid-file="$mypidfile" \
|
||||
--basedir=/usr --user=mysql >/dev/null 2>&1 &
|
||||
safe_pid=$!
|
||||
# Spin for a maximum of N seconds waiting for the server to come up;
|
||||
# exit the loop immediately if mysqld_safe process disappears.
|
||||
# Rather than assuming we know a valid username, accept an "access
|
||||
# denied" response as meaning the server is functioning.
|
||||
ret=0
|
||||
TIMEOUT="$STARTTIMEOUT"
|
||||
while [ $TIMEOUT -gt 0 ]; do
|
||||
RESPONSE=`/usr/bin/mysqladmin --socket="$socketfile" --user=UNKNOWN_MYSQL_USER ping 2>&1` && break
|
||||
echo "$RESPONSE" | grep -q "Access denied for user" && break
|
||||
if ! /bin/kill -0 $safe_pid 2>/dev/null; then
|
||||
echo "MySQL Daemon failed to start."
|
||||
ret=1
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
let TIMEOUT=${TIMEOUT}-1
|
||||
done
|
||||
if [ $TIMEOUT -eq 0 ]; then
|
||||
echo "Timeout error occurred trying to start MySQL Daemon."
|
||||
ret=1
|
||||
fi
|
||||
if [ $ret -eq 0 ]; then
|
||||
action $"Starting $prog: " /bin/true
|
||||
touch $lockfile
|
||||
else
|
||||
action $"Starting $prog: " /bin/false
|
||||
fi
|
||||
fi
|
||||
return $ret
|
||||
}
|
||||
|
||||
stop(){
|
||||
if [ ! -f "$mypidfile" ]; then
|
||||
# not running; per LSB standards this is "ok"
|
||||
action $"Stopping $prog: " /bin/true
|
||||
return 0
|
||||
fi
|
||||
MYSQLPID=`cat "$mypidfile"`
|
||||
if [ -n "$MYSQLPID" ]; then
|
||||
/bin/kill "$MYSQLPID" >/dev/null 2>&1
|
||||
ret=$?
|
||||
if [ $ret -eq 0 ]; then
|
||||
TIMEOUT="$STOPTIMEOUT"
|
||||
while [ $TIMEOUT -gt 0 ]; do
|
||||
/bin/kill -0 "$MYSQLPID" >/dev/null 2>&1 || break
|
||||
sleep 1
|
||||
let TIMEOUT=${TIMEOUT}-1
|
||||
done
|
||||
if [ $TIMEOUT -eq 0 ]; then
|
||||
echo "Timeout error occurred trying to stop MySQL Daemon."
|
||||
ret=1
|
||||
action $"Stopping $prog: " /bin/false
|
||||
else
|
||||
rm -f $lockfile
|
||||
rm -f "$socketfile"
|
||||
action $"Stopping $prog: " /bin/true
|
||||
fi
|
||||
else
|
||||
action $"Stopping $prog: " /bin/false
|
||||
fi
|
||||
else
|
||||
# failed to read pidfile, probably insufficient permissions
|
||||
action $"Stopping $prog: " /bin/false
|
||||
ret=4
|
||||
fi
|
||||
return $ret
|
||||
}
|
||||
|
||||
restart(){
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
condrestart(){
|
||||
[ -e $lockfile ] && restart || :
|
||||
}
|
||||
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status -p "$mypidfile" $prog
|
||||
;;
|
||||
restart)
|
||||
restart
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
condrestart
|
||||
;;
|
||||
reload)
|
||||
exit 3
|
||||
;;
|
||||
force-reload)
|
||||
restart
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit $?
|
1556
packaging/rpm-oel/mysql.spec.in
Normal file
1556
packaging/rpm-oel/mysql.spec.in
Normal file
File diff suppressed because it is too large
Load Diff
28
packaging/rpm-oel/mysql_config.sh
Normal file
28
packaging/rpm-oel/mysql_config.sh
Normal file
@ -0,0 +1,28 @@
|
||||
#! /bin/bash
|
||||
#
|
||||
# Wrapper script for mysql_config to support multilib
|
||||
#
|
||||
# Only works on OEL6/RHEL6 and similar
|
||||
#
|
||||
# This command respects setarch
|
||||
|
||||
bits=$(rpm --eval %__isa_bits)
|
||||
|
||||
case $bits in
|
||||
32|64) status=known ;;
|
||||
*) status=unknown ;;
|
||||
esac
|
||||
|
||||
if [ "$status" = "unknown" ] ; then
|
||||
echo "$0: error: command 'rpm --eval %__isa_bits' returned unknown value: $bits"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
if [ -x /usr/bin/mysql_config-$bits ] ; then
|
||||
/usr/bin/mysql_config-$bits "$@"
|
||||
else
|
||||
echo "$0: error: needed binary: /usr/bin/mysql_config-$bits is missing. Please check your MySQL installation."
|
||||
exit 1
|
||||
fi
|
||||
|
48
packaging/rpm-oel/mysqld.service
Normal file
48
packaging/rpm-oel/mysqld.service
Normal file
@ -0,0 +1,48 @@
|
||||
#
|
||||
# Simple MySQL systemd service file
|
||||
#
|
||||
# systemd supports lots of fancy features, look here (and linked docs) for a full list:
|
||||
# http://www.freedesktop.org/software/systemd/man/systemd.exec.html
|
||||
#
|
||||
# Note: this file ( /usr/lib/systemd/system/mysql.service )
|
||||
# will be overwritten on package upgrade, please copy the file to
|
||||
#
|
||||
# /etc/systemd/system/mysql.service
|
||||
#
|
||||
# to make needed changes.
|
||||
#
|
||||
# systemd-delta can be used to check differences between the two mysql.service files.
|
||||
#
|
||||
|
||||
[Unit]
|
||||
Description=MySQL Community Server
|
||||
After=network.target
|
||||
After=syslog.target
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Alias=mysql.service
|
||||
|
||||
[Service]
|
||||
User=mysql
|
||||
Group=mysql
|
||||
|
||||
# Execute pre and post scripts as root
|
||||
PermissionsStartOnly=true
|
||||
|
||||
# Needed to create system tables etc.
|
||||
ExecStartPre=/usr/bin/mysql-systemd-start pre
|
||||
|
||||
# Start main service
|
||||
ExecStart=/usr/bin/mysqld_safe
|
||||
|
||||
# Don't signal startup success before a ping works
|
||||
ExecStartPost=/usr/bin/mysql-systemd-start post
|
||||
|
||||
# Give up if ping don't get an answer
|
||||
TimeoutSec=600
|
||||
|
||||
Restart=always
|
||||
PrivateTmp=false
|
||||
|
||||
|
@ -858,7 +858,9 @@ fi
|
||||
%files -n mysql-server%{product_suffix} -f release/support-files/plugins.files
|
||||
%defattr(-,root,root)
|
||||
%doc release/support-files/*.cnf
|
||||
%doc %{_datadir}/info/mysql.info*
|
||||
%if 0%{?commercial}
|
||||
%doc %{_datadir}/info/mysql.info*
|
||||
%endif
|
||||
%doc %{src_dir}/Docs/ChangeLog
|
||||
%doc %{src_dir}/Docs/INFO_SRC*
|
||||
%doc release/Docs/INFO_BIN*
|
||||
@ -981,6 +983,9 @@ fi
|
||||
%{_mandir}/man1/mysql_client_test.1*
|
||||
|
||||
%changelog
|
||||
* Tue Nov 05 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
|
||||
- Removed non gpl file mysql.info from community packages
|
||||
|
||||
* Wed Jul 10 2013 Balasubramanian Kandasamy <balasubramanian.kandasamy@oracle.com>
|
||||
- Removed directory /usr/share/mysql/solaris/postinstall-solaris to resolve build
|
||||
error
|
||||
|
Loading…
x
Reference in New Issue
Block a user