summaryrefslogtreecommitdiffstats
path: root/abs/core/mysql
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/mysql')
-rw-r--r--abs/core/mysql/PKGBUILD54
-rw-r--r--abs/core/mysql/my.cnf149
-rw-r--r--abs/core/mysql/mysql-no-clients.patch65
-rwxr-xr-xabs/core/mysql/mysqld87
-rw-r--r--abs/core/mysql/mysqld.conf.d1
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"