diff options
Diffstat (limited to 'abs/core/mysql')
-rw-r--r-- | abs/core/mysql/PKGBUILD | 54 | ||||
-rw-r--r-- | abs/core/mysql/my.cnf | 149 | ||||
-rw-r--r-- | abs/core/mysql/mysql-no-clients.patch | 65 | ||||
-rwxr-xr-x | abs/core/mysql/mysqld | 87 | ||||
-rw-r--r-- | abs/core/mysql/mysqld.conf.d | 1 |
5 files changed, 356 insertions, 0 deletions
diff --git a/abs/core/mysql/PKGBUILD b/abs/core/mysql/PKGBUILD new file mode 100644 index 0000000..88460bc --- /dev/null +++ b/abs/core/mysql/PKGBUILD @@ -0,0 +1,54 @@ +# $Id: PKGBUILD 2465 2008-06-02 11:38:50Z alexander $ +# Maintainer: Alexander Baldeck <alexander@archlinux.org> +# Contributor: judd <jvinet@zeroflux.org> +pkgname=mysql +pkgver=5.0.60 +pkgrel=1 +pkgdesc="A fast SQL database server" +arch=(i686 x86_64) +backup=(etc/my.cnf etc/conf.d/mysqld) +depends=("mysql-clients>=${pkgver}" 'tcp_wrappers') +makedepends=('libtool') +url=('http://www.mysql.com/') +options=('!libtool') +license=('GPL') +source=(http://mirror.provenscaling.com/mysql/enterprise/source/5.0/mysql-${pkgver}.tar.gz + mysql-no-clients.patch + mysqld + my.cnf + mysqld.conf.d) + +build() { + # PIC + cd ${startdir}/src/${pkgname}-${pkgver} + patch -Np1 -i ${startdir}/src/mysql-no-clients.patch || return 1 + ./configure --prefix=/usr --libexecdir=/usr/sbin \ + --without-debug --without-docs --without-bench --without-readline \ + --with-innodb --enable-local-infile --with-openssl \ + --with-charset=latin1 --with-collation=latin1_general_ci \ + --with-extra-charsets=complex --enable-thread-safe-client \ + --with-libwrap --with-berkeley-db + + # fixes + sed -i -e 's/^.*HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE.*$/#define\ HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE/g' include/config.h || return 1 + sed -i -e 's/size_socket/socklen_t/g' sql/mysqld.cc || return 1 + + pushd include || return + make || return 1 + popd + pushd libmysql + make link_sources get_password.lo || return + popd + make || return 1 + make DESTDIR=${startdir}/pkg install + rm -rf ${startdir}/pkg/usr/{mysql-test,sql-bench} + install -D -m644 ../my.cnf ${startdir}/pkg/etc/my.cnf + install -D -m755 ../mysqld ${startdir}/pkg/etc/rc.d/mysqld + install -D -m644 ../mysqld.conf.d ${startdir}/pkg/etc/conf.d/mysqld + rm -f ${startdir}/pkg/usr/bin/mysql_config +} +md5sums=('2709a53f3da6f1cd868825ed2ea80431' + 'e892aac36cbeb57f0e003ec0936afb3b' + '64d79a5a34043c1de949d734b720c217' + '0ee035590ffc61d32de994f461fd2bd2' + '4a9077fc95ec6db1d5420e0cdc74d31c') diff --git a/abs/core/mysql/my.cnf b/abs/core/mysql/my.cnf new file mode 100644 index 0000000..927b9c8 --- /dev/null +++ b/abs/core/mysql/my.cnf @@ -0,0 +1,149 @@ +# mysql config file for medium systems. +# +# This is for a system with little memory (32M - 64M) where MySQL plays +# a important part and systems up to 128M where MySQL is used together with +# other programs (like a web server) +# +# One can in this file use all long options that the program supports. +# If you want to know which options a program support, run the program +# with --help option. + +# The following options will be passed to all MySQL clients +[client] +#password = your_password +port = 3306 +socket = /tmp/mysql.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +port = 3306 +socket = /tmp/mysql.sock +datadir = /var/lib/mysql +skip-locking +key_buffer = 16M +max_allowed_packet = 1M +table_cache = 64 +sort_buffer_size = 512K +net_buffer_length = 16K +myisam_sort_buffer_size = 8M + +# Don't listen on a TCP/IP port at all. This can be a security enhancement, +# if all processes that need to connect to mysqld run on the same host. +# All interaction with mysqld must be made via Unix sockets or named pipes. +# Note that using this option without enabling named pipes on Windows +# (via the "enable-named-pipe" option) will render mysqld useless! +# +skip-networking + +# Replication Master Server (default) +# binary logging is required for replication +#log-bin + +# required unique id between 1 and 2^32 - 1 +# defaults to 1 if master-host is not set +# but will not function as a master if omitted +server-id = 1 + +# Replication Slave (comment out master section to use this) +# +# To configure this host as a replication slave, you can choose between +# two methods : +# +# 1) Use the CHANGE MASTER TO command (fully described in our manual) - +# the syntax is: +# +# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>, +# MASTER_USER=<user>, MASTER_PASSWORD=<password> ; +# +# where you replace <host>, <user>, <password> by quoted strings and +# <port> by the master's port number (3306 by default). +# +# Example: +# +# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306, +# MASTER_USER='joe', MASTER_PASSWORD='secret'; +# +# OR +# +# 2) Set the variables below. However, in case you choose this method, then +# start replication for the first time (even unsuccessfully, for example +# if you mistyped the password in master-password and the slave fails to +# connect), the slave will create a master.info file, and any later +# change in this file to the variables' values below will be ignored and +# overridden by the content of the master.info file, unless you shutdown +# the slave server, delete master.info and restart the slaver server. +# For that reason, you may want to leave the lines below untouched +# (commented) and instead use CHANGE MASTER TO (see above) +# +# required unique id between 2 and 2^32 - 1 +# (and different from the master) +# defaults to 2 if master-host is set +# but will not function as a slave if omitted +#server-id = 2 +# +# The replication master for this slave - required +#master-host = <hostname> +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = <username> +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = <password> +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = <port> +# +# binary logging - not required for slaves, but recommended +#log-bin + +# Point the following paths to different dedicated disks +#tmpdir = /tmp/ +#log-update = /path-to-dedicated-directory/hostname + +# Uncomment the following if you are using BDB tables +#bdb_cache_size = 4M +#bdb_max_lock = 10000 + +# Uncomment the following if you are using InnoDB tables +#innodb_data_home_dir = /var/lib/mysql +#innodb_data_file_path = ibdata1:10M:autoextend +#innodb_log_group_home_dir = /var/lib/mysql +#innodb_log_arch_dir = /var/lib/mysql +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +#innodb_buffer_pool_size = 16M +#innodb_additional_mem_pool_size = 2M +# Set .._log_file_size to 25 % of buffer pool size +#innodb_log_file_size = 5M +#innodb_log_buffer_size = 8M +#innodb_flush_log_at_trx_commit = 1 +#innodb_lock_wait_timeout = 50 + +[mysqldump] +quick +max_allowed_packet = 16M + +[mysql] +#no-auto-rehash +# Remove the next comment character if you are not familiar with SQL +#safe-updates + +[isamchk] +key_buffer = 20M +sort_buffer_size = 20M +read_buffer = 2M +write_buffer = 2M + +[myisamchk] +key_buffer = 20M +sort_buffer_size = 20M +read_buffer = 2M +write_buffer = 2M + +[mysqlhotcopy] +interactive-timeout diff --git a/abs/core/mysql/mysql-no-clients.patch b/abs/core/mysql/mysql-no-clients.patch new file mode 100644 index 0000000..e1fb5e0 --- /dev/null +++ b/abs/core/mysql/mysql-no-clients.patch @@ -0,0 +1,65 @@ +diff -ruN mysql-5.0.51.orig/Makefile.in mysql-5.0.51/Makefile.in +--- mysql-5.0.51.orig/Makefile.in 2007-12-07 12:59:21.000000000 +0000 ++++ mysql-5.0.51/Makefile.in 2007-12-07 13:03:21.000000000 +0000 +@@ -376,7 +376,7 @@ + SUBDIRS = . include @docs_dirs@ @zlib_dir@ @yassl_dir@ \ + @readline_topdir@ sql-common scripts \ + @thread_dirs@ pstack \ +- @sql_union_dirs@ @man_dirs@ tests \ ++ strings mysys dbug extra regex bdb innobase myisam myisammrg heap vio sql @man_dirs@ tests \ + netware @libmysqld_dirs@ \ + @bench_dirs@ support-files @tools_dirs@ + +diff -ruN mysql-5.0.51.orig/include/Makefile.in mysql-5.0.51/include/Makefile.in +--- mysql-5.0.51.orig/include/Makefile.in 2007-12-07 12:59:20.000000000 +0000 ++++ mysql-5.0.51/include/Makefile.in 2007-12-07 13:00:12.000000000 +0000 +@@ -557,7 +557,6 @@ + test -z "$$dir" || $(mkdir_p) "$$dir"; \ + done + install: $(BUILT_SOURCES) +- $(MAKE) $(AM_MAKEFLAGS) install-am + install-exec: install-exec-am + install-data: install-data-am + uninstall: uninstall-am +diff -ruN mysql-5.0.51.orig/tests/Makefile.in mysql-5.0.51/tests/Makefile.in +--- mysql-5.0.51.orig/tests/Makefile.in 2007-12-07 12:59:20.000000000 +0000 ++++ mysql-5.0.51/tests/Makefile.in 2007-12-07 13:01:51.000000000 +0000 +@@ -96,7 +96,7 @@ + am_mysql_client_test_OBJECTS = mysql_client_test.$(OBJEXT) \ + my_memmem.$(OBJEXT) + mysql_client_test_OBJECTS = $(am_mysql_client_test_OBJECTS) +-am__DEPENDENCIES_1 = $(top_builddir)/libmysql/libmysqlclient.la ++am__DEPENDENCIES_1 = /usr/lib/mysql/libmysqlclient.so + am__DEPENDENCIES_2 = + mysql_client_test_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_2) +@@ -106,7 +106,7 @@ + thread_test_SOURCES = thread_test.c + thread_test_OBJECTS = thread_test.$(OBJEXT) + thread_test_LDADD = $(LDADD) +-thread_test_DEPENDENCIES = $(top_builddir)/libmysql/libmysqlclient.la ++thread_test_DEPENDENCIES = /usr/lib/mysql/libmysqlclient.so + DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include + depcomp = $(SHELL) $(top_srcdir)/depcomp + am__depfiles_maybe = depfiles +@@ -405,7 +405,7 @@ + $(openssl_includes) + + LDADD = @CLIENT_EXTRA_LDFLAGS@ \ +- $(top_builddir)/libmysql/libmysqlclient.la ++ /usr/lib/mysql/libmysqlclient.so + + mysql_client_test_LDADD = $(LDADD) $(CXXLDFLAGS) + mysql_client_test_SOURCES = mysql_client_test.c\ +diff -ruN mysql-5.0.51.orig/tools/Makefile.in mysql-5.0.51/tools/Makefile.in +--- mysql-5.0.51.orig/tools/Makefile.in 2007-12-07 12:59:19.000000000 +0000 ++++ mysql-5.0.51/tools/Makefile.in 2007-12-07 13:02:32.000000000 +0000 +@@ -369,7 +369,7 @@ + $(openssl_includes) + + LDADD = @CLIENT_EXTRA_LDFLAGS@ \ +- $(top_builddir)/libmysql_r/libmysqlclient_r.la \ ++ /usr/lib/mysql/libmysqlclient_r.so \ + @openssl_libs@ @yassl_libs@ @ZLIB_LIBS@ + + mysqltestmanager_SOURCES = mysqlmanager.c diff --git a/abs/core/mysql/mysqld b/abs/core/mysql/mysqld new file mode 100755 index 0000000..0fcecf7 --- /dev/null +++ b/abs/core/mysql/mysqld @@ -0,0 +1,87 @@ +#!/bin/bash + +MYSQLD_ROOT="/var/lib/mysql" +# source application-specific settings +[ -f /etc/conf.d/mysqld ] && . /etc/conf.d/mysqld + +# general config +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/mysqld` +if [ ! `egrep '^mysql:' /etc/group` ]; then + stat_busy "Adding mysql group" + groupadd -g 89 mysql + stat_done +fi +if [ ! `egrep '^mysql:' /etc/passwd` ]; then + stat_busy "Adding mysql user" + useradd -u 89 -g mysql -d $MYSQLD_ROOT -s /bin/false mysql + [ -d $MYSQLD_ROOT ] && chown -R mysql.mysql $MYSQLD_ROOT + stat_done +fi + +if [ ! -d $MYSQLD_ROOT ]; then + mkdir $MYSQLD_ROOT + /usr/bin/mysql_install_db --datadir=$MYSQLD_ROOT --user=mysql + chown -R mysql.mysql $MYSQLD_ROOT +fi + +if [ ! -e /var/log/mysqld.log ]; then + touch /var/log/mysqld.log + chown mysql /var/log/mysqld.log +fi + +case "$1" in + start) + stat_busy "Starting MySQL" + if [ -z "$PID" ]; then + /usr/bin/mysqld_safe --datadir=$MYSQLD_ROOT &>/dev/null & + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + sleep 1 # wait on children + PID=`pidof -o %PPID /usr/sbin/mysqld` + if [ -z "$PID" ]; then + stat_fail + exit 1 + else + echo $PID >/var/run/mysqld.pid + add_daemon mysqld + stat_done + fi + fi + else + stat_fail + exit 1 + fi + ;; + + stop) + stat_busy "Stopping MySQL" + if [ ! -z "$PID" ]; then + kill $PID &> /dev/null + if [ $? -gt 0 ]; then + stat_fail + exit 1 + else + rm -f /var/run/mysqld.pid &>/dev/null + rm_daemon mysqld + stat_done + fi + else + stat_fail + exit 1 + fi + ;; + + restart) + $0 stop + sleep 3 + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/abs/core/mysql/mysqld.conf.d b/abs/core/mysql/mysqld.conf.d new file mode 100644 index 0000000..04752b1 --- /dev/null +++ b/abs/core/mysql/mysqld.conf.d @@ -0,0 +1 @@ +MYSQLD_ROOT="/var/lib/mysql" |