diff --git a/srcpkgs/libmysqlclient b/srcpkgs/libmysqlclient new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/libmysqlclient @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/libmysqlclient-devel b/srcpkgs/libmysqlclient-devel new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/libmysqlclient-devel @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/libmysqld-devel b/srcpkgs/libmysqld-devel new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/libmysqld-devel @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/libndbclient b/srcpkgs/libndbclient new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/libndbclient @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/libndbclient-devel b/srcpkgs/libndbclient-devel new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/libndbclient-devel @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/mysql-client b/srcpkgs/mysql-client new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/mysql-client @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/mysql-ndb b/srcpkgs/mysql-ndb new file mode 120000 index 00000000000..0d46ca32142 --- /dev/null +++ b/srcpkgs/mysql-ndb @@ -0,0 +1 @@ +mysql \ No newline at end of file diff --git a/srcpkgs/mysql/INSTALL b/srcpkgs/mysql/INSTALL new file mode 100644 index 00000000000..0b8594685c4 --- /dev/null +++ b/srcpkgs/mysql/INSTALL @@ -0,0 +1,33 @@ +# *-*-shell-*-* +# +case ${ACTION} in +post) + cat << _EOF +========================================================================== + +PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER +To do so, start the server with: + + $ /etc/init.d/mysqld start + +and then issue the following commands: + + $ mysqladmin -u root password 'new-password' + $ mysqladmin -u root -h $hostname password 'new-password' + +Alternatively you can run: + + $ mysql_secure_installation + +which will also give you the option of removing the test +databases and anonymous user created by default. This is +strongly recommended for production servers. + +Don't forget that you should also tweak /etc/mysql/my.cnf +for server settings. Additional configuration files are available +in the /usr/share/mysql/my-*.cnf files. + +========================================================================== +_EOF + ;; +esac diff --git a/srcpkgs/mysql/depends b/srcpkgs/mysql/depends new file mode 100644 index 00000000000..c54a40ac191 --- /dev/null +++ b/srcpkgs/mysql/depends @@ -0,0 +1,2 @@ +abi_depends=">=5.1.14" +api_depends="${abi_depends}" diff --git a/srcpkgs/mysql/files/my.cnf b/srcpkgs/mysql/files/my.cnf new file mode 100644 index 00000000000..81a49b7e755 --- /dev/null +++ b/srcpkgs/mysql/files/my.cnf @@ -0,0 +1,150 @@ +# Example MySQL config file for large systems. +# +# This is for a large system with memory = 512M where the system runs mainly +# MySQL. +# +# You can copy this file to +# /etc/my.cnf to set global options, +# mysql-data-dir/my.cnf to set server-specific options (in this +# installation this directory is /var) or +# ~/.my.cnf to set user-specific options. +# +# In this file, you can use all long options that a program supports. +# If you want to know which options a program supports, run the program +# with the "--help" option. + +# The following options will be passed to all MySQL clients +[client] +#password = your_password +port = 3306 +socket = /var/run/mysqld/mysqld.sock + +# Here follows entries for some specific programs + +# The MySQL server +[mysqld] +port = 3306 +socket = /var/run/mysqld/mysqld.sock +skip-locking +key_buffer_size = 256M +max_allowed_packet = 1M +table_open_cache = 256 +sort_buffer_size = 1M +read_buffer_size = 1M +read_rnd_buffer_size = 4M +myisam_sort_buffer_size = 64M +thread_cache_size = 8 +query_cache_size= 16M +# Try number of CPU's*2 for thread_concurrency +thread_concurrency = 8 + +# 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=mysql-bin + +# binary logging format - mixed recommended +binlog_format=mixed + +# 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=, MASTER_PORT=, +# MASTER_USER=, MASTER_PASSWORD= ; +# +# where you replace , , by quoted strings and +# 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 = +# +# The username the slave will use for authentication when connecting +# to the master - required +#master-user = +# +# The password the slave will authenticate with when connecting to +# the master - required +#master-password = +# +# The port the master is listening on. +# optional - defaults to 3306 +#master-port = +# +# binary logging - not required for slaves, but recommended +#log-bin=mysql-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 InnoDB tables +#innodb_data_home_dir = /var/ +#innodb_data_file_path = ibdata1:10M:autoextend +#innodb_log_group_home_dir = /var/ +# You can set .._buffer_pool_size up to 50 - 80 % +# of RAM but beware of setting memory usage too high +#innodb_buffer_pool_size = 256M +#innodb_additional_mem_pool_size = 20M +# Set .._log_file_size to 25 % of buffer pool size +#innodb_log_file_size = 64M +#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 + +[myisamchk] +key_buffer_size = 128M +sort_buffer_size = 128M +read_buffer = 2M +write_buffer = 2M + +[mysqlhotcopy] +interactive-timeout diff --git a/srcpkgs/mysql/files/mysqld.confd b/srcpkgs/mysql/files/mysqld.confd new file mode 100644 index 00000000000..46c4d6f1bc2 --- /dev/null +++ b/srcpkgs/mysql/files/mysqld.confd @@ -0,0 +1,10 @@ +# Configuration file for MySQL server. +# +# Directory to store database files. Set to /var/lib/mysql by default. +# +#MYSQLD_DATADIR=/var/lib/mysql +# +# Additional arguments to be passed to the MySQL server daemon. +# Please note that you should also tweak /etc/mysql/my.cnf. +# +#MYSQLD_ARGS="" diff --git a/srcpkgs/mysql/files/mysqld.rc b/srcpkgs/mysql/files/mysqld.rc new file mode 100644 index 00000000000..103dc8cfad4 --- /dev/null +++ b/srcpkgs/mysql/files/mysqld.rc @@ -0,0 +1,47 @@ +#!/sbin/runscript +# + +: ${MYSQLD_PIDFILE:=/var/run/mysqld/mysqld.pid} +: ${MYSQLD_DATADIR=/var/lib/mysql} + +depend() +{ + need net localmount + provide mysqld +} + +start_pre() +{ + if [ ! -d /var/run/mysqld ]; then + mkdir -p /var/run/mysqld + chown mysqld:mysqld /var/run/mysqld + fi + + if [ ! -d ${MYSQLD_DATADIR} ]; then + ebegin "Initializing MySQL datadir: ${MYSQLD_DATADIR}" + mkdir -p ${MYSQLD_DATADIR} + /usr/bin/mysql_install_db --datadir=${MYSQLD_DATADIR} \ + --user=mysqld 2>&1 >/dev/null && \ + chown -R mysqld:mysqld ${MYSQLD_DATADIR} + eend $? + fi +} + +start() +{ + ebegin "Starting MySQL server" + start-stop-daemon --start --user mysqld:mysqld \ + --pidfile ${MYSQLD_PIDFILE} --background \ + --exec /usr/sbin/mysqld -- \ + --basedir=/usr --datadir=${MYSQLD_DATADIR} \ + --user=mysqld --pid-file=${MYSQLD_PIDFILE} \ + --external-locking ${MYSQLD_ARGS} 2>&1 >/dev/null + eend $? +} + +stop() +{ + ebegin "Stopping MySQL server" + start-stop-daemon --stop --pidfile ${MYSQLD_PIDFILE} + eend $? +} diff --git a/srcpkgs/mysql/libmysqlclient-devel.template b/srcpkgs/mysql/libmysqlclient-devel.template new file mode 100644 index 00000000000..a3a1f0c59af --- /dev/null +++ b/srcpkgs/mysql/libmysqlclient-devel.template @@ -0,0 +1,29 @@ +# Template file for 'libmysqlclient-devel'. +# +short_desc="MySQL database development files" +long_desc="${long_desc} + + This package includes development libraries and header files." + +Add_dependency run libstdc++-devel +Add_dependency run libmysqlclient + +noverifyrdeps=yes + +do_install() +{ + mkdir -p ${DESTDIR}/usr/lib/mysql/plugin \ + ${DESTDIR}/usr/share/man/man1 ${DESTDIR}/usr/bin \ + ${DESTDIR}/usr/include/mysql + + mv ${SRCPKGDESTDIR}/usr/bin/mysql_config ${DESTDIR}/usr/bin + mv ${SRCPKGDESTDIR}/usr/share/man/man1/mysql_config.1 \ + ${DESTDIR}/usr/share/man/man1 + mv ${SRCPKGDESTDIR}/usr/include/mysql/*.h ${DESTDIR}/usr/include/mysql + mv ${SRCPKGDESTDIR}/usr/lib/mysql/libmysqlclient*.{a,so} ${DESTDIR}/usr/lib + mv ${SRCPKGDESTDIR}/usr/share/aclocal ${DESTDIR}/usr/share + for p in *example* mypluglib* *.{a,so}; do + mv ${SRCPKGDESTDIR}/usr/lib/mysql/plugin/${p} \ + ${DESTDIR}/usr/lib/mysql/plugin + done +} diff --git a/srcpkgs/mysql/libmysqlclient.template b/srcpkgs/mysql/libmysqlclient.template new file mode 100644 index 00000000000..61ce2e612f3 --- /dev/null +++ b/srcpkgs/mysql/libmysqlclient.template @@ -0,0 +1,16 @@ +# Template file for 'libmysqlclient'. +# +short_desc="MySQL database client library" +long_desc="${long_desc} + + This package includes the client library." + +Add_dependency run glibc +Add_dependency run zlib +Add_dependency run openssl + +do_install() +{ + mkdir -p ${DESTDIR}/usr/lib + mv ${SRCPKGDESTDIR}/usr/lib/mysql/libmysqlclient*.so.* ${DESTDIR}/usr/lib +} diff --git a/srcpkgs/mysql/libmysqld-devel.template b/srcpkgs/mysql/libmysqld-devel.template new file mode 100644 index 00000000000..9cb625a4dca --- /dev/null +++ b/srcpkgs/mysql/libmysqld-devel.template @@ -0,0 +1,15 @@ +# Template file for 'libmysqld-devel'. +# +short_desc="MySQL embedded database development files" +long_desc="${long_desc} + + This package includes the client library." + +Add_dependency run glibc +Add_dependency run libmysqlclient-devel + +do_install() +{ + mkdir -p ${DESTDIR}/usr/lib/mysql + mv ${SRCPKGDESTDIR}/usr/lib/mysql/*.a ${DESTDIR}/usr/lib/mysql +} diff --git a/srcpkgs/mysql/libndbclient-devel.template b/srcpkgs/mysql/libndbclient-devel.template new file mode 100644 index 00000000000..e7367014665 --- /dev/null +++ b/srcpkgs/mysql/libndbclient-devel.template @@ -0,0 +1,24 @@ +# Template file for 'libndbclient-devel'. +# +short_desc="MySQL NDB (Network Database) development files" +long_desc="${long_desc} + + This package includes the NDB development files." + +Add_dependency run glibc +Add_dependency run libndbclient + +noverifyrdeps=yes + +do_install() +{ + mkdir -p ${DESTDIR}/usr/lib ${DESTDIR}/usr/share/man/man1 \ + ${DESTDIR}/usr/bin + + mv ${SRCPKGDESTDIR}/usr/lib/mysql/libndbclient*.{a,so} \ + ${DESTDIR}/usr/lib + mv ${SRCPKGDESTDIR}/usr/bin/ndb_config ${DESTDIR}/usr/bin + mv ${SRCPKGDESTDIR}/usr/share/man/man1/ndb_config.1 \ + ${DESTDIR}/usr/share/man/man1 + mv ${SRCPKGDESTDIR}/usr/include ${DESTDIR}/usr +} diff --git a/srcpkgs/mysql/libndbclient.template b/srcpkgs/mysql/libndbclient.template new file mode 100644 index 00000000000..9ded370f0b0 --- /dev/null +++ b/srcpkgs/mysql/libndbclient.template @@ -0,0 +1,15 @@ +# Template file for 'libndbclient'. +# +short_desc="MySQL NDB (Network Database) client library" +long_desc="${long_desc} + + This package includes the NDB client library." + +Add_dependency run glibc +Add_dependency run zlib + +do_install() +{ + mkdir -p ${DESTDIR}/usr/lib + mv ${SRCPKGDESTDIR}/usr/lib/mysql/libndbclient*.so.* ${DESTDIR}/usr/lib +} diff --git a/srcpkgs/mysql/mysql-client.template b/srcpkgs/mysql/mysql-client.template new file mode 100644 index 00000000000..23f26f98e68 --- /dev/null +++ b/srcpkgs/mysql/mysql-client.template @@ -0,0 +1,44 @@ +# Template file for 'mysql-client'. +# +short_desc="MySQL database client binaries" +long_desc="${long_desc} + + This package includes the client binaries and the additional tools + innotop and mysqlreport." + +Add_dependency run libgcc +Add_dependency run glibc +Add_dependency run libstdc++ +Add_dependency run ncursesw +Add_dependency run libmysqlclient +Add_dependency run zlib +Add_dependency run tcp_wrappers-libs +Add_dependency run readline +Add_dependency run openssl +Add_dependency run perl + +do_install() +{ + mkdir -p ${DESTDIR}/usr/{,s}bin ${DESTDIR}/usr/share/man/man{1,8} + + for f in innochecksum innotop myisam_ftdump mysql mysql_client_test \ + mysql_client_test_embedded mysqldumpslow mysqlbinlog \ + mysql_find_rows mysql_fix_extensions mysql_waitpid mysqlaccess \ + mysqladmin mysqlanalyze mysqlbug mysqlcheck mysqldump \ + mysqlimport mysqloptimize mysqlrepair mysqlreport mysqlshow \ + mysqlslap mysqltest_embedded mysqlmanager mysqltest \ + mysqlhotcopy mysql_upgrade mysql_zap; do + if [ -f ${SRCPKGDESTDIR}/usr/bin/${f} ]; then + mv ${SRCPKGDESTDIR}/usr/bin/${f} ${DESTDIR}/usr/bin + elif [ -f ${SRCPKGDESTDIR}/usr/sbin/${f} ]; then + mv ${SRCPKGDESTDIR}/usr/sbin/${f} ${DESTDIR}/usr/sbin + fi + if [ -f ${SRCPKGDESTDIR}/usr/share/man/man1/${f}.1 ]; then + mv ${SRCPKGDESTDIR}/usr/share/man/man1/${f}.1 \ + ${DESTDIR}/usr/share/man/man1 + elif [ -f ${SRCPKGDESTDIR}/usr/share/man/man8/${f}.8 ]; then + mv ${SRCPKGDESTDIR}/usr/share/man/man8/${f}.8 \ + ${DESTDIR}/usr/share/man/man8 + fi + done +} diff --git a/srcpkgs/mysql/mysql-ndb.template b/srcpkgs/mysql/mysql-ndb.template new file mode 100644 index 00000000000..76fcf26f468 --- /dev/null +++ b/srcpkgs/mysql/mysql-ndb.template @@ -0,0 +1,26 @@ +# Template file for 'mysql-ndb'. +# +short_desc="MySQL NDB (Network Database) binaries" +long_desc="${long_desc} + + This package includes the binaries for the MySQL NDB (Network Database) + component." + +Add_dependency run libgcc +Add_dependency run glibc +Add_dependency run libstdc++ +Add_dependency run ncursesw +Add_dependency run zlib +Add_dependency run readline + +do_install() +{ + mkdir -p ${DESTDIR}/usr/{,s}bin ${DESTDIR}/usr/share/man/man{1,8} + + mv ${SRCPKGDESTDIR}/usr/bin/ndb_* ${DESTDIR}/usr/bin + mv ${SRCPKGDESTDIR}/usr/sbin/ndb* ${DESTDIR}/usr/sbin + mv ${SRCPKGDESTDIR}/usr/share/man/man1/ndb* \ + ${DESTDIR}/usr/share/man/man1 + mv ${SRCPKGDESTDIR}/usr/share/man/man8/ndb* \ + ${DESTDIR}/usr/share/man/man8 +} diff --git a/srcpkgs/mysql/template b/srcpkgs/mysql/template new file mode 100644 index 00000000000..c55a79a35a8 --- /dev/null +++ b/srcpkgs/mysql/template @@ -0,0 +1,67 @@ +# Template file for 'mysql' +pkgname=mysql +version=5.1.44 +distfiles="http://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.1/mysql-${version}.tar.gz" +build_style=gnu_configure +configure_args="--localstatedir=/var --sysconfdir=/etc/mysql +--with-libwrap --with-charset=utf8 --with-collation=utf8_general_ci +--with-extra-charsets=complex --with-embedded-server --enable-local-infile +--with-unix-socket-path=/var/run/mysqld/mysqld.sock --enable-assembler +--with-pthread --with-named-curses-libs=\"-lncursesw\" --with-ssl=/usr +--with-zlib-dir=/usr --with-fast-mutexes --with-big-tables +--with-plugins=all --with-embedded-privilege-control --with-mysqlmanager +--with-mysqld-user=mysqld --enable-thread-safe-client +--libexecdir=/usr/sbin --without-readline" +short_desc="The world's most popular open source database" +maintainer="Juan RP " +checksum=15dfccb34082a633a3f1793c21c7bf1432bf009a35acef0068885b7b68ecb540 +long_desc=" + MySQL is the world's most popular open source database software, with over + 100 million copies of its software downloaded or distributed throughout + it's history. With its superior speed, reliability, and ease of use, MySQL + has become the preferred choice for Web, Web 2.0, SaaS, ISV, Telecom + companies and forward-thinking corporate IT Managers because it eliminates + the major problems associated with downtime, maintenance and administration + for modern, online applications." + +# Fix build with gcc-4.4. +CFLAGS="-fPIC -fno-strict-aliasing" +CXXFLAGS="-fPIC -fno-strict-aliasing" + +subpackages="libmysqlclient libmysqlclient-devel libndbclient" +subpackages="${subpackages} libndbclient-devel libmysqld-devel" +subpackages="${subpackages} mysql-client mysql-ndb" + +conf_files="/etc/mysql/my.cnf /etc/conf.d/mysqld" +openrc_services="mysqld default" + +# Create mysqld user/group. +system_accounts="mysqld" +mysqld_homedir="/var/lib/mysql" + +Add_dependency run glibc +Add_dependency run libgcc +Add_dependency run libstdc++ +Add_dependency run zlib +Add_dependency run tcp_wrappers-libs +Add_dependency run openssl +Add_dependency run mysql-client + +Add_dependency build libstdc++-devel +Add_dependency build zlib-devel +Add_dependency build tcp_wrappers-devel +Add_dependency build ncursesw-devel +Add_dependency build openssl-devel +Add_dependency build readline-devel +Add_dependency full perl + +post_install() +{ + # Remove tests + rm -rf ${DESTDIR}/usr/sql-bench ${DESTDIR}/usr/mysql-test + + # Install config files and OpenRC service. + install -D -m640 ${FILESDIR}/my.cnf ${DESTDIR}/etc/mysql/my.cnf + install -D -m644 ${FILESDIR}/mysqld.confd ${DESTDIR}/etc/conf.d/mysqld + install -D -m755 ${FILESDIR}/mysqld.rc ${DESTDIR}/etc/init.d/mysqld +} diff --git a/xbps-src/common/mapping_shlib_binpkg.txt b/xbps-src/common/mapping_shlib_binpkg.txt index f14808b3c83..17f95f18b80 100644 --- a/xbps-src/common/mapping_shlib_binpkg.txt +++ b/xbps-src/common/mapping_shlib_binpkg.txt @@ -480,3 +480,6 @@ libecpg_compat.so postgresql-libs postgresql-libs-devel libecpg.so postgresql-libs postgresql-libs-devel libpgtypes.so postgresql-libs postgresql-libs-devel libpq.so postgresql-libs postgresql-libs-devel +libmysqlclient_r.so.16 libmysqlclient libmysqlclient-devel +libmysqlclient.so.16 libmysqlclient libmysqlclient-devel +libndbclient.so.16 libndbclient libndbclient-devel