Commit d9f49a64 authored by Balasubramanian Kandasamy's avatar Balasubramanian Kandasamy Committed by Daniel Fischer

Added sles11 repo packages

parent c5dfdec5
......@@ -411,6 +411,7 @@ IF(NOT WITHOUT_SERVER)
ADD_SUBDIRECTORY(internal)
ENDIF()
ADD_SUBDIRECTORY(packaging/rpm-oel)
ADD_SUBDIRECTORY(packaging/rpm-sles)
ENDIF()
INCLUDE(cmake/abi_check.cmake)
......
# 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")
# 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.init
mysqld.service mysql-systemd-start mysql.conf
filter-requires.sh filter-provides.sh)
CONFIGURE_FILE(${fedfile} ${CMAKE_CURRENT_BINARY_DIR}/${fedfile} COPYONLY)
ENDFOREACH()
ENDIF()
#! /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'
#! /bin/bash
#
/usr/lib/rpm/perl.req $* |
sed -e '/perl(GD)/d' -e '/perl(hostnames)/d' -e '/perl(lib::mtr.*/d' -e '/perl(lib::v1.*/d' -e '/perl(mtr_.*/d' -e '/perl(My::.*/d'
# 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/mysql/mysqld.log
pid-file=/var/run/mysql/mysqld.pid
/*
* 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
#! /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
# Create a file to trigger execution of mysql_secure_installation
# after server has started
touch "$datadir"/.phase_two_required
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
ret=1
while /bin/true ; do
sleep 1
mysqladmin ping >/dev/null 2>&1 && ret=0 && break
done
# If server has been started successfully and file created in
# install_db step is present we run mysql_secure_installation
if [ $ret -eq 0 -a -e "$datadir"/.phase_two_required -a -x /usr/bin/mysql_secure_installation ] ; then
/usr/bin/mysql_secure_installation --use-default --defaults-file=/etc/my.cnf
rm -f "$datadir"/.phase_two_required
fi
exit 0
}
# main
case $1 in
"pre") install_db ;;
"post") pinger ;;
esac
exit 0
d /var/run/mysqld 0755 mysql mysql -
#! /bin/bash
#
# MySQL Database start/stop script
# chkconfig: - 64 36
# description: MySQL Database
# processname: mysqld
# config: /etc/my.cnf
# pidfile: /var/run/mysql/mysqld.pid
# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 3 5
# Default-Stop: 0 1 6
# Short-Description: MySQL Database
# Description: MySQL Database
### END INIT INFO
#
# https://en.opensuse.org/openSUSE:Packaging_init_scripts#Exit_Status_Codes
#
[ -e /etc/rc.status ] && . /etc/rc.status
rc_reset
STARTTIMEOUT=180
STOPTIMEOUT=60
PROG=/usr/bin/mysqld_safe
[ -e /etc/sysconfig/mysql ] && . /etc/sysconfig/mysql
# Lock directory
lockfile=/var/lock/subsys/mysql
get_option () {
local section=$1
local option=$2
local default=$3
ret=$(/usr/bin/my_print_defaults $section | grep '^--'${option}'=' | cut -d= -f2-)
[ -z $ret ] && ret=$default
echo $ret
}
datadir=$(get_option mysqld datadir "/var/lib/mysql")
socket=$(get_option mysqld socket "$datadir/mysql.sock")
pidfile=$(get_option mysqld_safe pid-file "/var/run/mysql/mysqld.pid")
logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log")
install_db () {
# Note: something different than datadir=/var/lib/mysql requires
# SELinux policy changes (in enforcing mode)
datadir=$(get_option mysqld datadir "/var/lib/mysql")
logfile=$(get_option mysqld_safe log-error "/var/log/mysql/mysqld.log")
# Restore log, dir, perms and SELinux contexts
[ -d "$datadir" ] || install -d -m 0755 -omysql -gmysql "$datadir" || return 1
[ -e $logfile ] || touch $logfile || return 1
chmod 0640 $logfile
chown mysql:mysql $logfile || return 1
if [ -x /usr/sbin/restorecon ]; then
/usr/sbin/restorecon "$datadir"
/usr/sbin/restorecon $logfile
fi
# If special mysql dir is in place, skip db install
[ -d "$datadir/mysql" ] && return 0
# Create initial db
/usr/bin/mysql_install_db --datadir="$datadir" --rpm --user=mysql
return $?
}
# Wait for ping to answer to signal startup completed,
# might take a while in case of e.g. crash recovery
pinger () {
mysqld_safe_pid=$1
timer=$STARTTIMEOUT
ret=0
while [ $timer -gt 0 ]; do
sleep 1
mysqladmin --no-defaults --socket="$socket" ping >/dev/null 2>&1 && break
timer=$(expr $timer - 1)
# Check if mysqld_safe is still alive, if not there is no hope
if ! kill -0 $mysqld_safe_pid >/dev/null 2>&1 ; then
ret=1
break
fi
done
# Did we timeout?
if [ $timer = 0 ]; then
echo "MySQL Database start up timeout after ${STARTTIMEOUT}s"
ret=1
fi
return $ret
}
# Check if mysqld is running
chk_running () {
ret=0
if [ -e "$pidfile" ]; then
pid=$(cat "$pidfile") || ret=4
else
ret=7
fi
# Check if $pid is a mysqld pid
if [ $ret -eq 0 ]; then
[ -L "/proc/$pid/exe" ] || ret=7
fi
if [ $ret -eq 0 ]; then
exec=$(readlink "/proc/$pid/exe") || ret=7
fi
if [ $ret -eq 0 ]; then
[ "x$(basename $exec)" = "xmysqld" ] || ret=7
fi
return $ret
}
start () {
if chk_running && mysqladmin --no-defaults --socket="$socket" ping >/dev/null 2>&1 ; then
echo -n "Starting service MySQL:"
rc_reset ; rc_status -v ; rc_exit
fi
if ! install_db; then
echo -n "MySQL Database could not initialize data directory:"
rc_failed 6 ; rc_status -v ; rc_exit
fi
$PROG --basedir=/usr --datadir="$datadir" --pid-file="$pidfile" >/dev/null 2>&1 &
if pinger $! ; then
echo -n "Starting service MySQL:"
touch $lockfile
rc_reset
else
echo -n "Failed to start service MySQL:"
rc_failed 3
fi
rc_status -v
}
stop () {
chk_running
ret=$?
if [ $ret -ne 0 ]; then
echo -n "Shutting down service MySQL:"
rc_reset ; rc_status -v ; return 0
fi
# chk_running has verified this works
pid=$(cat "$pidfile")
# We use a signal to avoid having to know the root password
# Send single kill command and then wait
if kill $pid >/dev/null 2>&1; then
timer=$STOPTIMEOUT
while [ $timer -gt 0 ]; do
kill -0 $pid >/dev/null 2>&1 || break
sleep 1
timer=$(expr $timer - 1)
done
else
echo -n "Shutting down service MySQL:"
rc_failed 4 ; rc_status -v ; rc_exit
fi
if [ $timer -eq 0 ]; then
echo -n "Failed to stop service MySQL:"
rc_failed 1
else
rm -f $lockfile
rm -f "$socketfile"
echo -n "Shutting down service MySQL:"
rc_reset
fi
rc_status -v
}
restart () {
stop
start
}
reload () {
ret=0
if chk_running && mysqladmin --no-defaults --socket="$socket" ping >/dev/null 2>&1 ; then
pid=$(cat "$pidfile")
kill -HUP $pid >/dev/null 2>&1
echo -n "Reloading service MySQL:"
rc_reset
else
echo -n "Reloading of service MySQL failed:"
rc_failed 7
fi
rc_status -v
}
condrestart () {
if chk_running && mysqladmin --no-defaults --socket="$socket" ping >/dev/null 2>&1 ; then
restart
fi
}
status () {
echo -n "Checking for service MySQL:"
checkproc mysqld
rc_status -v
}
case "$1" in
start ) start ;;
stop ) stop ;;
restart) restart ;;
status ) status ;;
condrestart ) condrestart ;;
reload|force-reload) reload ;;
*) echo $"Usage: $0 {start|stop|restart|condrestart|status|reload|force-reload}"; exit 1 ;;
esac
rc_exit
This diff is collapsed.
#
# 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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment