Added sles11 repo packages
This commit is contained in:
parent
73b99f055e
commit
0773c7f422
@ -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)
|
||||
|
28
packaging/rpm-sles/CMakeLists.txt
Normal file
28
packaging/rpm-sles/CMakeLists.txt
Normal file
@ -0,0 +1,28 @@
|
||||
# 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()
|
||||
|
6
packaging/rpm-sles/filter-provides.sh
Normal file
6
packaging/rpm-sles/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-sles/filter-requires.sh
Normal file
6
packaging/rpm-sles/filter-requires.sh
Normal file
@ -0,0 +1,6 @@
|
||||
#! /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'
|
||||
|
31
packaging/rpm-sles/my.cnf
Normal file
31
packaging/rpm-sles/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/mysql/mysqld.log
|
||||
pid-file=/var/run/mysql/mysqld.pid
|
30
packaging/rpm-sles/my_config.h
Normal file
30
packaging/rpm-sles/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
|
66
packaging/rpm-sles/mysql-systemd-start
Normal file
66
packaging/rpm-sles/mysql-systemd-start
Normal file
@ -0,0 +1,66 @@
|
||||
#! /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
|
||||
|
1
packaging/rpm-sles/mysql.conf
Normal file
1
packaging/rpm-sles/mysql.conf
Normal file
@ -0,0 +1 @@
|
||||
d /var/run/mysqld 0755 mysql mysql -
|
236
packaging/rpm-sles/mysql.init
Normal file
236
packaging/rpm-sles/mysql.init
Normal file
@ -0,0 +1,236 @@
|
||||
#! /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
|
||||
|
||||
|
||||
|
||||
|
||||
|
1646
packaging/rpm-sles/mysql.spec.in
Normal file
1646
packaging/rpm-sles/mysql.spec.in
Normal file
File diff suppressed because it is too large
Load Diff
48
packaging/rpm-sles/mysqld.service
Normal file
48
packaging/rpm-sles/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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user