summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorFrancesco Riosa <vivo@gentoo.org>2006-03-16 20:39:44 +0000
committerFrancesco Riosa <vivo@gentoo.org>2006-03-16 20:39:44 +0000
commit2ca89d0495f393d5b4e0400e3e6f61fdf5b39a40 (patch)
tree29209fc76e87e3f8b225774726934bf6e2b90f20 /dev-db
parentFurther cleanup. (diff)
downloadgentoo-2-2ca89d0495f393d5b4e0400e3e6f61fdf5b39a40.tar.gz
gentoo-2-2ca89d0495f393d5b4e0400e3e6f61fdf5b39a40.tar.bz2
gentoo-2-2ca89d0495f393d5b4e0400e3e6f61fdf5b39a40.zip
Further cleanup.
(Portage version: 2.1_pre6-r1)
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/mysql/ChangeLog11
-rw-r--r--dev-db/mysql/Manifest61
-rw-r--r--dev-db/mysql/files/digest-mysql-4.1.166
-rw-r--r--dev-db/mysql/files/digest-mysql-4.1.16-r306
-rw-r--r--dev-db/mysql/files/digest-mysql-5.0.186
-rw-r--r--dev-db/mysql/files/mysql-slot.conf.d69
-rw-r--r--dev-db/mysql/files/mysql-slot.rc6312
-rw-r--r--dev-db/mysql/files/mysql-slot.rc6-r1300
-rw-r--r--dev-db/mysql/files/mysql.conf.d-r1 (renamed from dev-db/mysql/files/mysql-slot.conf.d-r1)24
-rw-r--r--dev-db/mysql/files/mysql.rc6-r3 (renamed from dev-db/mysql/files/mysql-slot.rc6-r3)2
-rw-r--r--dev-db/mysql/files/mysqlmanager.conf.d (renamed from dev-db/mysql/files/mysqlmanager-slot.conf.d)0
-rw-r--r--dev-db/mysql/files/mysqlmanager.rc6 (renamed from dev-db/mysql/files/mysqlmanager-slot.rc6)2
-rw-r--r--dev-db/mysql/mysql-4.1.16-r30.ebuild61
-rw-r--r--dev-db/mysql/mysql-4.1.16.ebuild823
-rw-r--r--dev-db/mysql/mysql-5.0.18.ebuild823
15 files changed, 32 insertions, 2474 deletions
diff --git a/dev-db/mysql/ChangeLog b/dev-db/mysql/ChangeLog
index c900a421841d..b1ec2efd40e7 100644
--- a/dev-db/mysql/ChangeLog
+++ b/dev-db/mysql/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-db/mysql
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.308 2006/03/10 19:53:03 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.309 2006/03/16 20:39:43 vivo Exp $
+
+ 16 Mar 2006; Francesco Riosa <vivo@gentoo.org> +files/mysql.conf.d-r1,
+ +files/mysql.rc6-r3, -files/mysql-slot.conf.d,
+ -files/mysql-slot.conf.d-r1, -files/mysql-slot.rc6,
+ -files/mysql-slot.rc6-r1, -files/mysql-slot.rc6-r3,
+ +files/mysqlmanager.conf.d, +files/mysqlmanager.rc6,
+ -files/mysqlmanager-slot.conf.d, -files/mysqlmanager-slot.rc6,
+ -mysql-4.1.16.ebuild, -mysql-4.1.16-r30.ebuild, -mysql-5.0.18.ebuild:
+ Further cleanup.
10 Mar 2006; Francesco Riosa <vivo@gentoo.org> mysql-4.1.14.ebuild,
mysql-5.0.18.ebuild:
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index 38f092af810c..113ce5859b6c 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -1,6 +1,3 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
MD5 bc751eab383fd11d346845ff56b95189 ChangeLog 63488
RMD160 18ba821daed4879fe0126f88accb65b18338695a ChangeLog 63488
SHA256 dadd8b2e94d1d1d695a9b4344752267b36b906a6619e00aaf0e40ca83e4b4b5c ChangeLog 63488
@@ -16,21 +13,12 @@ SHA256 e4e4320bbb1b04818e364c0ad68e3df6fa8149e57d0ed3359bd3cd1dcedad96a files/di
MD5 76b0ff7ee0c64222a2cc9f09f0306a93 files/digest-mysql-4.1.14 509
RMD160 7413311cadac22b111cc049e49b0a86f734537d7 files/digest-mysql-4.1.14 509
SHA256 580756dca82c751758e5ecd856b3c8883876a94306304f52eef62a24fd3c45ab files/digest-mysql-4.1.14 509
-MD5 7d7315892d166bd5073dd83254e2f9d0 files/digest-mysql-4.1.16 509
-RMD160 c4f52ac5e5ee1681aeec5c1b9e0e36b0fc54a5a1 files/digest-mysql-4.1.16 509
-SHA256 929e03145ba51d9845061456c1118d1c014641aded45aae3d586584e51af3441 files/digest-mysql-4.1.16 509
-MD5 49ef1c38d0b70a6678c7b51a4ed56aac files/digest-mysql-4.1.16-r30 509
-RMD160 f0e3dec3c42454299504d565e3eb471148cce226 files/digest-mysql-4.1.16-r30 509
-SHA256 0802f09103dc675570e9133773d845780b5b8f7b441366a9bc4dcc48d8fb435e files/digest-mysql-4.1.16-r30 509
MD5 9cc8cf047c6784b87d9ffc2f9bdbeec3 files/digest-mysql-4.1.18-r30 509
RMD160 f19f66a83eb82c60a5384d58ff0d0da932ad11f5 files/digest-mysql-4.1.18-r30 509
SHA256 ee801d4d2f1f3d2f86ae1cf267ed32a662bc80488da29c5348e28f1cd4b5abd3 files/digest-mysql-4.1.18-r30 509
MD5 3ca576554af70984f5bbbbdbf1de91e9 files/digest-mysql-4.1.18-r60 509
RMD160 4bd2d873ef19fb3a50729285c16c47252ae7f5f5 files/digest-mysql-4.1.18-r60 509
SHA256 15eb9398057e36a260ed9f8a20b52131879844f3589bf2bddfe043b154714d19 files/digest-mysql-4.1.18-r60 509
-MD5 61fb608f7d62d7c79a6e214ff6080464 files/digest-mysql-5.0.18 509
-RMD160 9c7c0e613946b7d4b994dd754937eaf2ac0eca6c files/digest-mysql-5.0.18 509
-SHA256 5a6cf4a50060b5e13c7bcfe4e9bb7e1596d03eaaf6871c1c33e82bddfbc17ea8 files/digest-mysql-5.0.18 509
MD5 9ea44731bd30b0dd36a7572c044696e9 files/digest-mysql-5.0.18-r30 509
RMD160 4589dd0c639033b3de7055f6fce456381d670209 files/digest-mysql-5.0.18-r30 509
SHA256 de83a353e7d4d66bfd5186afe2f8b461ed00d6ad7a3a47bcd8f55172cb949c5d files/digest-mysql-5.0.18-r30 509
@@ -73,30 +61,21 @@ SHA256 df9d9e80bdf69023e1692691a4e7f32d605b635fee8b1d6fbed58117f199a6d5 files/my
MD5 356c1b4211a0b3d229bcb09c7c8742a7 files/mysql-4.0.24-r2.rc6 2151
RMD160 135141528b176b9210c35c0b3b49101f7d16c872 files/mysql-4.0.24-r2.rc6 2151
SHA256 15c87eeac5ecabb1ba18ad6671e006f5a89c4bf69cfb016e71385658e02c8753 files/mysql-4.0.24-r2.rc6 2151
-MD5 c8a9f17eb53cb46bd7ec6b3105cd8d23 files/mysql-slot.conf.d 3218
-RMD160 611f56da433809eca0c50a59e0069b2698643eab files/mysql-slot.conf.d 3218
-SHA256 de1e78d31f6dac4ba54d19504294f7b458df37ba047c694fe2144d171dc96fec files/mysql-slot.conf.d 3218
-MD5 9e2fe99528ea29fb4b4da6b7c564c90c files/mysql-slot.conf.d-r1 3693
-RMD160 326369722880a8b076c8b28e56005e2f9ea26cb9 files/mysql-slot.conf.d-r1 3693
-SHA256 f646be532735c03968128b86ab7099dbae25d99b1ac1c644aec031ea01d5c7de files/mysql-slot.conf.d-r1 3693
-MD5 2e915001528cb4b44591d907168b6a51 files/mysql-slot.rc6 8691
-RMD160 68483ad2541fd6c43cd1cf242085d7157c639fbe files/mysql-slot.rc6 8691
-SHA256 d08fc106553f5442c331f9d90a4b9403c0815010aefdd5a245e4fa148b55eadd files/mysql-slot.rc6 8691
-MD5 8158f25fbd80fba48f0d01b0889ea0b3 files/mysql-slot.rc6-r1 9016
-RMD160 d01c789f6f21e7c786205f195033e1a007cab8c7 files/mysql-slot.rc6-r1 9016
-SHA256 b35229af374e06af90f95531536fa29d01222f13c42cef7735ce6816dfb450b6 files/mysql-slot.rc6-r1 9016
-MD5 15804a2675c4c86a9b977c34d95c5802 files/mysql-slot.rc6-r3 10487
-RMD160 171e1b824534c2d8d35dd2cdd49c0c896b1f91bd files/mysql-slot.rc6-r3 10487
-SHA256 0e0646ad07bae4cf7d497f1a1ed54aa9c08283c68a10f19446a9c8adde54c77a files/mysql-slot.rc6-r3 10487
+MD5 048977e1cd12b4d57554468962c0b996 files/mysql.conf.d-r1 3154
+RMD160 3955e1ba119a23e4b8f67f1aca956f0f72c53149 files/mysql.conf.d-r1 3154
+SHA256 6269c09a01c1b210a07c520d32b74bc70e371b5a14691de535997c36a4ef50b5 files/mysql.conf.d-r1 3154
MD5 73be6460f548f6f73c70246a4cfd13a0 files/mysql.init 886
RMD160 26b8aa45af3f930db01f0db731865b9293626fb1 files/mysql.init 886
SHA256 2d7faf6d88fd13e5c10368a20074fdb59554635f8b1fd17e088d82208e611c12 files/mysql.init 886
-MD5 9ff84042930f67b14f418a9dcf78d860 files/mysqlmanager-slot.conf.d 1021
-RMD160 3868b32a4ac59a89ae870299d8ecf684ba2d320e files/mysqlmanager-slot.conf.d 1021
-SHA256 5b36b46e0a5ec1afbf8ae659ad7f901289421ecf1b100924c5fe4db11bbd1475 files/mysqlmanager-slot.conf.d 1021
-MD5 b5588fffc4abe92076d805705def2d25 files/mysqlmanager-slot.rc6 6625
-RMD160 f67a7d8888fabe9334642ddace6361321329f6b3 files/mysqlmanager-slot.rc6 6625
-SHA256 9fb188daf74f3245ec5c3d75ee86de52e905e01ba9bff7dd3be1a90bbdb97759 files/mysqlmanager-slot.rc6 6625
+MD5 15804a2675c4c86a9b977c34d95c5802 files/mysql.rc6-r3 10487
+RMD160 171e1b824534c2d8d35dd2cdd49c0c896b1f91bd files/mysql.rc6-r3 10487
+SHA256 0e0646ad07bae4cf7d497f1a1ed54aa9c08283c68a10f19446a9c8adde54c77a files/mysql.rc6-r3 10487
+MD5 9ff84042930f67b14f418a9dcf78d860 files/mysqlmanager.conf.d 1021
+RMD160 3868b32a4ac59a89ae870299d8ecf684ba2d320e files/mysqlmanager.conf.d 1021
+SHA256 5b36b46e0a5ec1afbf8ae659ad7f901289421ecf1b100924c5fe4db11bbd1475 files/mysqlmanager.conf.d 1021
+MD5 b5588fffc4abe92076d805705def2d25 files/mysqlmanager.rc6 6625
+RMD160 f67a7d8888fabe9334642ddace6361321329f6b3 files/mysqlmanager.rc6 6625
+SHA256 9fb188daf74f3245ec5c3d75ee86de52e905e01ba9bff7dd3be1a90bbdb97759 files/mysqlmanager.rc6 6625
MD5 a2a9fdc7d010a7c04c96cb3b7c05f06b metadata.xml 158
RMD160 17ad87fdb088c4a22ea1849e25da6efdddf26aa5 metadata.xml 158
SHA256 a212959a64142f5508788a3d336b55cdb97645b6e54d8a887e7308c67791d569 metadata.xml 158
@@ -112,12 +91,6 @@ SHA256 a8f336963e9034dc8bb622d1b1acebdb44b474bfb232e015c96965ba9e49bf8a mysql-4.
MD5 ba3537b01eaaaac66366eb84d573a370 mysql-4.1.14.ebuild 18832
RMD160 a05497bd54b072eb38a47bc4da947c142ce24661 mysql-4.1.14.ebuild 18832
SHA256 a88ae368bee8a109a2affe84b1c952b51d53f5ca9457937cf5f39b05ffd05aad mysql-4.1.14.ebuild 18832
-MD5 1e3dbcc5c4ad8ae7035bf8f177538f4d mysql-4.1.16-r30.ebuild 2066
-RMD160 a60ff58d6deb7b6d448df417cafe8776e2205001 mysql-4.1.16-r30.ebuild 2066
-SHA256 8fd2efc77b8be3c67b8aeb25a22e0be2b8ee99b67b22e0ce497a4b781bb5965d mysql-4.1.16-r30.ebuild 2066
-MD5 9a9f3bf1b1543e528b35ac43b7bc66e3 mysql-4.1.16.ebuild 24850
-RMD160 7b9664f1782c4b28fc2cdef98669bef33bd4e270 mysql-4.1.16.ebuild 24850
-SHA256 64e479fb6f7a704cc2001c20853a6cc3deb9041cdf07bc35743a8ba0f7c0311d mysql-4.1.16.ebuild 24850
MD5 9df67f755fb4daf4f7da5dc96a59531c mysql-4.1.18-r30.ebuild 2062
RMD160 0594e52b0889f3dc26d695ea68c51817d76cba35 mysql-4.1.18-r30.ebuild 2062
SHA256 74413770684726b78c82f27a1fe5e812f49727f27658294e870c7e7d6c3cbb02 mysql-4.1.18-r30.ebuild 2062
@@ -130,19 +103,9 @@ SHA256 4ecddc90a006eac39436aa345fbcb608706af27517d6db67019234f2a8b63ddb mysql-5.
MD5 fcacdb77a568e41ee9387604b2fe91f9 mysql-5.0.18-r60.ebuild 2072
RMD160 d0c3282ea4c8d310cb68020e6ecf79b4a9135546 mysql-5.0.18-r60.ebuild 2072
SHA256 71881207007193709f935da54a67a4c27fed00836d49e1780113cd258807629b mysql-5.0.18-r60.ebuild 2072
-MD5 8fbc7733900fc5c960fccabd05990fc6 mysql-5.0.18.ebuild 24848
-RMD160 92265abe30c7ee6fe5ab90593b3ce5a975290023 mysql-5.0.18.ebuild 24848
-SHA256 9b5cf20443af3fcaef4728cf63718d685ee4e09d1cfc82bebdf565e2d075d72c mysql-5.0.18.ebuild 24848
MD5 34bf5f3fed2d2b77dd44b3c0bb28d39c mysql-5.0.19.ebuild 2068
RMD160 83159a20fd36a8c435427ef6652b5182c58f1b9d mysql-5.0.19.ebuild 2068
SHA256 b029268b01f10a1861a65667bb9878d5b38b8ba5103d27c7ac38dc5e022541ff mysql-5.0.19.ebuild 2068
MD5 3afe047568e65a91f01ec766e588cad5 mysql-5.1.7_beta.ebuild 2072
RMD160 1ac81a589e8d75e9b3c354a0ce09de4204e6740b mysql-5.1.7_beta.ebuild 2072
SHA256 40629470b8b992952b536fdfa7f5a20c560a943b7999dbce849967a8b8175174 mysql-5.1.7_beta.ebuild 2072
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.2.1 (GNU/Linux)
-
-iD8DBQFEEdoOKolR564NvWYRAn/WAJ95K5XS4FJVho8CxtbID5uWERPxsACgnP2o
-wqpiTk9DkvJHfBiKPIr5RlQ=
-=E9O7
------END PGP SIGNATURE-----
diff --git a/dev-db/mysql/files/digest-mysql-4.1.16 b/dev-db/mysql/files/digest-mysql-4.1.16
deleted file mode 100644
index 15a644b7dc69..000000000000
--- a/dev-db/mysql/files/digest-mysql-4.1.16
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 13c5fdd05e28863db3a1261635890b5f mysql-4.1.16.tar.gz 17146702
-RMD160 d3f85616f3e7a139da62f6b640d96981d5c0b8ff mysql-4.1.16.tar.gz 17146702
-SHA256 e135f6089a0b49aeb2f3a1396820089c232505cfda010e77a680921750485557 mysql-4.1.16.tar.gz 17146702
-MD5 4f3c297c14745c5a30d7b3dc5a867990 mysql-extras-20051220.tar.bz2 69528
-RMD160 978800c7f9e2369377ff6641532ee7f272891bd8 mysql-extras-20051220.tar.bz2 69528
-SHA256 9850410c58f5a187d1d0cf66c7c421a23e2663252c8e078f3e569c7a426abf12 mysql-extras-20051220.tar.bz2 69528
diff --git a/dev-db/mysql/files/digest-mysql-4.1.16-r30 b/dev-db/mysql/files/digest-mysql-4.1.16-r30
deleted file mode 100644
index 15651fd5da17..000000000000
--- a/dev-db/mysql/files/digest-mysql-4.1.16-r30
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 13c5fdd05e28863db3a1261635890b5f mysql-4.1.16.tar.gz 17146702
-RMD160 d3f85616f3e7a139da62f6b640d96981d5c0b8ff mysql-4.1.16.tar.gz 17146702
-SHA256 e135f6089a0b49aeb2f3a1396820089c232505cfda010e77a680921750485557 mysql-4.1.16.tar.gz 17146702
-MD5 d4e55fc358750d878ddb3c9450a95a5c mysql-extras-20060115.tar.bz2 78365
-RMD160 8ea4c995b3b3dbb7fe2f86418f0d327496ace99d mysql-extras-20060115.tar.bz2 78365
-SHA256 6a53bcd68b16de2f1990c2f523b898120f8fc32d28ad589e70452930391a6f09 mysql-extras-20060115.tar.bz2 78365
diff --git a/dev-db/mysql/files/digest-mysql-5.0.18 b/dev-db/mysql/files/digest-mysql-5.0.18
deleted file mode 100644
index ec9b5ece2dd7..000000000000
--- a/dev-db/mysql/files/digest-mysql-5.0.18
+++ /dev/null
@@ -1,6 +0,0 @@
-MD5 f18153b0239aaa03fc5a751f2d82cb71 mysql-5.0.18.tar.gz 19169082
-RMD160 1987df6d9446637c8e353f61e269e9a57d995803 mysql-5.0.18.tar.gz 19169082
-SHA256 bd3d4b56de636eb14330be20e58f6fc58b015ff9d43926661e2e688ca7b6188a mysql-5.0.18.tar.gz 19169082
-MD5 4f3c297c14745c5a30d7b3dc5a867990 mysql-extras-20051220.tar.bz2 69528
-RMD160 978800c7f9e2369377ff6641532ee7f272891bd8 mysql-extras-20051220.tar.bz2 69528
-SHA256 9850410c58f5a187d1d0cf66c7c421a23e2663252c8e078f3e569c7a426abf12 mysql-extras-20051220.tar.bz2 69528
diff --git a/dev-db/mysql/files/mysql-slot.conf.d b/dev-db/mysql/files/mysql-slot.conf.d
deleted file mode 100644
index 16b582454bd9..000000000000
--- a/dev-db/mysql/files/mysql-slot.conf.d
+++ /dev/null
@@ -1,69 +0,0 @@
-# here is where to define which server start.
-#> Additional parameters to be passed to mysqld at startup may be added here,
-#> these one will override the ones in "my.cnf".
-#
-# Below are described some suggested parameters to use
-# The parameters not recognized will be passed through to the mysqld daemon
-#
-# Parameter : description
-# ----------------+-----------------------------------------------------------
-# nice : integer [-20 .. 19 ] default 0
-# : change the priority of the server -20 (high) to 19 (low)
-# : see "man nice 1" for description
-# ----------------+-----------------------------------------------------------
-# mycnf : string [full path to my.cnf]
-# : specify the path to my.cnf file to be used
-# ----------------+-----------------------------------------------------------
-# TODO chroot : string [path to chroot directory]
-# : Tell the script that the server will be run in a chrooted
-# : environment.
-# : You may want to "mount -obind" a shared directory for the
-# : socket (usually /var/lib/run) or to instruct every client
-# : that connect to localhost (thus using sock connection)
-# : (will NOT be passed to the MySQL server)
-# ----------------+-----------------------------------------------------------
-#
-# Additional parameters
-# Parameter : description
-# ----------------+-----------------------------------------------------------
-# server-id : integer [1 .. 255]
-# : Uniquely identifies the server instance in the community
-# : of replication partners.
-# ----------------+-----------------------------------------------------------
-# port : integer [1025 .. 65535] default 3306
-# : Port number to use for connection.
-# : loose any meaning if skip-networking is set.
-# ----------------+-----------------------------------------------------------
-# skip-networking : NULL, Don't allow connection with TCP/IP.
-# log-bin : string [name of the binlog files]
-# : Log update queries in binary format. Optional (but
-# : strongly recommended to avoid replication problems if
-# : server's hostname changes) argument should be the chosen
-# : location for the binary log files.
-# ----------------+-----------------------------------------------------------
-#
-# start a default server with default options:
-# need symlinks (try emerge --config =dev-db/mysql-[version])
-#
-#mysql_slot_0=()
-#
-# start MySQL 7.5.x reniced, chrooted and overriding some start parameters
-#
-#mysql_slot_705=(
-# "nice=-5"
-# "chroot=/chroot/mysql-705"
-# "server-id=123"
-# "log-bin="myhost"
-# "port=3307"
-#)
-# start another server, same version, different my.cnf
-#
-#mysql_slot_705_1=(
-# "mycnf=/home/test/my.cnf"
-# "server-id=124"
-#)
-# To avoid starting a server just comment it's definition
-# To avoid confusion mysql init script MUST found at least one definition
-#> here or it will rant (no default start)
-# Last but not least, spaces are NOT allowed inside the parameters
-
diff --git a/dev-db/mysql/files/mysql-slot.rc6 b/dev-db/mysql/files/mysql-slot.rc6
deleted file mode 100644
index efd6ff978cf2..000000000000
--- a/dev-db/mysql/files/mysql-slot.rc6
+++ /dev/null
@@ -1,312 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql-slot.rc6,v 1.6 2005/11/24 14:59:24 vivo Exp $
-
-# external binaryes used: which, sed, tac
-
-depend() {
- use dns net
-}
-
-# int in_list(char * elem, char * list)
-function in_list() {
- local elem=${1:-"none"}
- local list=${2:-","}
-
- [[ "${list}" == "${list/,${elem},/}" ]] \
- && return 1 \
- || return 0
-}
-
-# int get_slot_config(srv_slot=0, srv_num)
-get_slot_config() {
- srv_slot="${1:-"0"}"
- srv_num="${2}"
- basedir=""
- datadir=""
- pidfile=""
- socket=""
- CHROOT=""
- NICE=""
- # grab the parameters from conf.d/mysql definition
- local tmp_eval="mysql_slot_${srv_slot}${srv_num:+"_"}${srv_num}[@]"
- local conf_d_parameters="${!tmp_eval}"
- [[ ${conf_d_parameters[*]} == '()' ]] && conf_d_parameters=''
- MY_SUFFIX="-${srv_slot}"
- [[ "${MY_SUFFIX}" == '-0' ]] && MY_SUFFIX=''
- MY_CNF="/etc/mysql${MY_SUFFIX}/my.cnf"
- unmanagedparams=""
- local my_print_defaults="$(which my_print_defaults${MY_SUFFIX} 2>/dev/null)"
- local paramlist=","
- local mycnf
-
- # check my_print_defaults executable
- if [[ ! -x "${my_print_defaults}" ]]; then
- eerror "my_print_defaults NOT found or not executable"
- return 1
- fi
- my_print_defaults="${my_print_defaults} --loose-verbose"
-
- # svc script force bash sourcing of same-name conf.d file ...
- #> so it's not possible to use my_print_defaults with that one
- for my_default in ${conf_d_parameters[*]}; do
- case "${my_default}" in
- nice=*)
- NICE="${my_default#nice=}"
- nice -n $NICE ls /tmp &>/dev/null || NICE=""
- ;;
- mycnf=*)
- MY_CNF="${my_default#mycnf=}"
- ;;
- chroot=*)
- # do not pass this to the mysqld it has different meanings
- CHROOT="${my_default#chroot=}"
- #TODO
- CHROOT=''
- ;;
-
- basedir=*)
- basedir="${my_default#basedir=}"
- paramlist="${paramlist}--${my_default%%=*},"
- ;;
- datadir=*)
- datadir="${my_default#datadir=}"
- paramlist="${paramlist}--${my_default%%=*},"
- ;;
- pid-file=*)
- pidfile="${my_default#pid-file=}"
- paramlist="${paramlist}--${my_default%%=*},"
- ;;
- socket=*)
- socket="${my_default#socket=}"
- paramlist="${paramlist}--${my_default%%=*},"
- ;;
- *=*)
- # list of parameters we already have
- # prepend "--" because my_print_defaults do it
- paramlist="${paramlist}--${my_default%%=*},"
- # little trick from mysqld_safe
- unmanagedparams="${unmanagedparams} $(echo "--${my_default}" | sed -e 's,\([^=/a-zA-Z0-9_:.-]\),\\\1,g')"
- ;;
- *)
- paramlist="${paramlist}--${my_default},"
- unmanagedparams="${unmanagedparams} --${my_default}"
- ;;
- esac
- done
-
- if [[ ! -r "${MY_CNF}" ]]; then
- ewarn "Cannot access ${MY_CNF} ! Using automatic defaults!"
- my_defaults=$(${my_print_defaults} mysqld server)
- else
- my_defaults=$(${my_print_defaults} --config-file=${MY_CNF} mysqld server)
- fi
-
- for my_default in ${my_defaults}; do
- case "${my_default}" in
- --basedir=*)
- if ! in_list "${my_default%%=*}" "${paramlist}" ; then
- basedir="${my_default#--basedir=}"
- fi ;;
- --datadir=*)
- if ! in_list "${my_default%%=*}" "${paramlist}" ; then
- datadir="${my_default#--datadir=}"
- fi ;;
- --pid-file=*)
- if ! in_list "${my_default%%=*}" "${paramlist}" ; then
- pidfile="${my_default#--pid-file=}"
- fi ;;
- --socket=*)
- if ! in_list "${my_default%%=*}" "${paramlist}" ; then
- socket="${my_default#--socket=}"
- fi ;;
- *=*)
- # check into the list of parameters we already have
- if ! in_list "${my_default%%=*}" "${paramlist}"; then
- paramlist="${paramlist}${my_default%%=*},"
- unmanagedparams="${unmanagedparams} $(echo "${my_default}" | sed -e 's,\([^=/a-zA-Z0-9_:.-]\),\\\1,g')"
- fi
- ;;
- *)
- if ! in_list "${my_default}" "${paramlist}"; then
- paramlist="${paramlist}${my_default%%=*},"
- unmanagedparams="${unmanagedparams} $(echo "${my_default}" | sed -e 's,\([^=/a-zA-Z0-9_.-]\),\\\1,g')"
- fi
- ;;
- esac
- done
-
- for i in basedir datadir pidfile socket ; do
- if [[ -z "${!i}" ]] ; then
- eerror "undefined $i"
- return 1
- fi
- done
-
- for i in "server-id" "log-bin" ; do
- if ! in_list "--${i}" "${paramlist}" ; then
- ewarn "undefined $i, it's good practice set it"
- fi
- done
-
- # push these out to the script
- export MY_SUFFIX NICE MY_CNF pidfile datadir basedir socket CHROOT unmanagedparams
- return 0
-}
-
-checkconfig() {
- local datadir="$1"
- if [ ! -d "${datadir}" ]; then
- eerror "MySQL datadir is empty or invalid"
- eerror "Please check your my.cnf : ${MY_CNF}"
- return 1
- fi
-
- if [ ! -d "$datadir/mysql" ]; then
- eerror "You don't appear to have the mysql database installed yet."
- eerror "Please run /usr/bin/mysql_install_db to have this done..."
- return 1
- fi
- return 0
-}
-
-start() {
- MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"}
- # servers are defined in /etc/conf.d/mysql
- local serverlist=${!mysql_slot_*}
- # provide default for empty conf.d/mysql
- if [[ -z "${serverlist}" ]] ; then
- serverlist=0
- export mysql_slot_0=()
- fi
- local maxtry retstatus
- local globretstatus=1
- local srv_slot srv_num
- # server MUST NOT share same location for these
- local pidfilelist=',' datadirlist=',' socketlist=','
-
- # additional security
- rm -f "${MYSQL_GLOB_PID_FILE}" ; touch "${MYSQL_GLOB_PID_FILE}"
- if [[ $? -ne 0 ]] ; then
- eerror "cannot create MYSQL_GLOB_PID_FILE: ${MYSQL_GLOB_PID_FILE}"
- return 1
- fi
-
- # try to start each server
- for srv in ${serverlist[*]} ; do
- einfo "working on ${srv}"
-
- srv_slot="${srv#mysql_slot_}"
- if [[ "${srv_slot}" == "${srv_slot#*_}" ]] ; then
- srv_num=''
- else
- srv_num="${srv_slot#*_}"
- fi
- srv_slot="${srv_slot%%_*}"
-
- # timeout (seconds) before declare failed the startup
- maxtry=10
- retstatus=0
-
- get_slot_config "${srv_slot}" "${srv_num}" || retstatus=1
- # pre_run checks
- [[ "$retstatus" -eq 0 ]] && checkconfig "${datadir}" || retstatus=2
- if [[ "$retstatus" -eq 0 ]] ; then
- if in_list "${pidfile}" "${pidfilelist}" ; then
- retstatus=3
- eerror "Cowardly refusing to start another server with same ${pidfile}"
- fi
- if in_list "${datadir}" "${datadirlist}" ; then
- retstatus=4
- eerror "Cowardly refusing to start another server with same ${datadir}"
- fi
- if in_list "${socket}" "${socketlist}" ; then
- retstatus=5
- eerror "Cowardly refusing to start another server with same ${socket}"
- fi
- fi
-
- if [[ $retstatus -eq 0 ]] ; then
- # additional security
- rm -f ${pidfile} ${socket}
- ebegin "Starting mysqld${MY_SUFFIX:+"_"}${srv_slot}${srv_num:+"_"}${srv_num} (${MY_CNF})"
-
- start-stop-daemon --start --quiet --background \
- ${NICE:+"--nicelevel="}${NICE} \
- --pidfile="${pidfile}" \
- --exec ${basedir}/sbin/mysqld${MY_SUFFIX} -- \
- --basedir="${basedir}" \
- --datadir="${datadir}" \
- --pid-file="${pidfile}" \
- --socket="${socket}" \
- ${unmanagedparams} >/dev/null 2>&1
- retstatus=$?
- # wait for socket creation
- while ! [[ -S "${socket}" || "${maxtry}" -lt 1 || "${retstatus}" -ne 0 ]] ; do
- maxtry=$(($maxtry - 1))
- # mostt people don't like it
- # echo -n "."
- sleep 1
- done
- if [[ ! -S "${socket}" ]] ; then
- eerror "MySQL${MY_SUFFIX} NOT started (${retstatus})"
- retstatus=1
- else
- pidfilelist="${pidfilelist}${pidfile},"
- datadirlist="${datadirlist}${datadir},"
- socketlist="${socketlist}${socket},"
- fi
- fi
-
- if [[ $retstatus -eq 0 ]]; then
- globretstatus=0
- echo "${srv_slot}${srv_num:+"_"}${srv_num}=${pidfile}" >> "${MYSQL_GLOB_PID_FILE}"
- fi
- done
- # successfull if at least one mysqld started
- eend $globretstatus
-}
-
-stop () {
- MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"}
- local runwhat pidfile shutdown_elem
- local PID cnt
- local retstatus=0
- local shutdown_list="$(tac "${MYSQL_GLOB_PID_FILE}")"
- # shutdown in reverse order
- for shutdown_elem in $shutdown_list; do
- runwhat=${shutdown_elem%%=*}
- pidfile=${shutdown_elem#*=}
- ebegin "Stopping mysqld (${runwhat})"
- # following code grabbed from the squid rc script
- PID=$(cat "${pidfile}" 2>/dev/null)
- start-stop-daemon --stop --quiet --pidfile="${pidfile}"
- sleep 2
- if test -n "$PID" && kill -0 $PID 2>/dev/null
- then
- einfon "Waiting ."
- cnt=0
- while kill -0 $PID 2>/dev/null
- do
- cnt=`expr $cnt + 1`
- if [ $cnt -gt 60 ]
- then
- # Waited 120 seconds now. Fail.
- eend 1 "Failed."
- break
- fi
- sleep 2
- echo -n "."
- done
- echo -n "done."
- eend 0
- else
- eend 0
- fi
- # end stolen code
- retstatus=$(( $retstatus + $? ))
- done
- [[ "$retstatus" -eq 0 ]] && rm -f "$MYSQL_GLOB_PID_FILE"
- eend $retstatus
-}
diff --git a/dev-db/mysql/files/mysql-slot.rc6-r1 b/dev-db/mysql/files/mysql-slot.rc6-r1
deleted file mode 100644
index 7a2cc597bbdc..000000000000
--- a/dev-db/mysql/files/mysql-slot.rc6-r1
+++ /dev/null
@@ -1,300 +0,0 @@
-#!/sbin/runscript
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql-slot.rc6-r1,v 1.2 2005/12/08 17:44:12 vivo Exp $
-
-# external binaryes used: which, sed, tac
-
-depend() {
- use dns net localmount netmount nfsmount
-}
-
-# int in_list(char * elem, char * list)
-function in_list() {
- local elem=${1:-"none"}
- local list=${2:-","}
-
- [[ "${list}" == "${list/,${elem},/}" ]] \
- && return 1 \
- || return 0
-}
-
-do_escape() {
- # Ihatethisreallyverymuch
- #echo "$1" | sed -e "s|'| |" -e "s|=|='|" -e "s|$|'|"
- echo "$1"
-}
-
-# int get_slot_config(srv_slot=0, srv_num)
-get_slot_config() {
- [[ ${DEBUG} -ge 4 ]] && einfo ">>> get_slot_config(\"${1}\", \"${2}\")"
-
- srv_slot="${1:-"0"}"
- srv_num="${2}"
- MY_SUFFIX="-${srv_slot}"
- [[ "${MY_SUFFIX}" == '-0' ]] && MY_SUFFIX=''
-
- basedir="" datadir="" pidfile="" socket=""
- CHROOT="" NICE="" STARTUPTIMEOUT=5
-
- local tmp_eval="mysql_slot_${srv_slot}${srv_num:+"_"}${srv_num}[@]"
- local conf_d_parameters="${!tmp_eval}"
- # collations need to be defined *after* the character sets,
- #>so we will duplicate them
- local collations=""
- [[ ${conf_d_parameters[*]} == '()' ]] && conf_d_parameters=''
-
- MY_CNF="/etc/mysql${MY_SUFFIX}/my.cnf"
- # summa of unmanaged parameters
- #>some parameters may be present multiple times
- unmanagedparams=""
-
- # grab the parameters from conf.d/mysql definition
- for my_default in ${conf_d_parameters[*]}; do
- case "${my_default}" in
- nice=*)
- NICE="${my_default#nice=}"
- nice -n $NICE ls /tmp &>/dev/null || NICE=""
- ;;
- mycnf=*) MY_CNF="${my_default#mycnf=}" ;;
- startup_timeout=*)
- STARTUPTIMEOUT="${my_default#startup_timeout=}" ;;
- basedir=*) basedir="${my_default#basedir=}" ;;
- datadir=*) datadir="${my_default#datadir=}" ;;
- pid-file=*) pidfile="${my_default#pid-file=}" ;;
- socket=*) socket="${my_default#socket=}" ;;
- *collation*=)
- collations="${collations} --$( do_escape "${my_default}" )"
- ;;
- *=*)
- # list of parameters we already have
- # prepend "--" because my_print_defaults do it
- unmanagedparams="${unmanagedparams} --$( do_escape "${my_default}" )"
- ;;
- *)
- unmanagedparams="${unmanagedparams} --${my_default}"
- ;;
- esac
- done
-
- if [[ ! -r "${MY_CNF}" ]]; then
- ewarn "Cannot access ${MY_CNF} !"
- MY_CNF=""
- my_defaults=""
- else
- local my_print_defaults="$(which my_print_defaults${MY_SUFFIX} 2>/dev/null)"
- if [[ ! -x "${my_print_defaults}" ]]; then
- eerror "my_print_defaults NOT found or not executable"
- my_defaults=""
- else
- my_defaults=$( ${my_print_defaults} \
- --loose-verbose \
- --config-file="${MY_CNF}" \
- mysqld server )
- fi
- fi
-
- # grab needed parameters from my.cnf, don't override the ones from
- # conf.d mysql
- for my_default in ${my_defaults}; do
- case "${my_default}" in
- --basedir=*)
- [[ -z "${basedir}" ]] && basedir="${my_default#--basedir=}" ;;
- --datadir=*)
- [[ -z "${datadir}" ]] && datadir="${my_default#--datadir=}" ;;
- --pid-file=*)
- [[ -z "${pidfile}" ]] && pidfile="${my_default#--pid-file=}" ;;
- --socket=*)
- [[ -z "${socket}" ]] && socket="${my_default#--socket=}" ;;
- --*collation*=)
- # the order is inversed because we want the conf.d ones override
- collations="$( do_escape "${my_default}" ) ${collations}"
- ;;
- esac
- done
-
- # still empty, I'm in doubt if assign a default or break, will see
- basedir="${basedir:-"/usr"}"
- datadir="${datadir:-"/var/lib/mysql${MY_SUFFIX}"}"
- pidfile="${pidfile:-"/var/run/mysqld/mysqld${MY_SUFFIX}.pid"}"
- socket="${socket:-"/var/run/mysqld/mysqld${MY_SUFFIX}.sock"}"
- unmanagedparams="${unmanagedparams} ${collations}"
-
- if [[ ${DEBUG} -ge 3 ]] ; then
- einfo "chroot dir => ${CHROOT}"
- einfo "niceness => ${NICE}"
- einfo "basedir => ${basedir}"
- einfo "datadir => ${datadir}"
- einfo "pidfile => ${pidfile}"
- einfo "socket => ${socket}"
- einfo "Unamanged => ${unmanagedparams}"
- fi
-
- # push these out to the script
- export MY_SUFFIX NICE MY_CNF pidfile datadir basedir socket CHROOT
- export unmanagedparams STARTUPTIMEOUT
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< get_slot_config() ok"
- return 0
-}
-
-checkconfig() {
- [[ ${DEBUG} -ge 4 ]] && einfo ">>> checkconfig(\"${1}\")"
- local datadir="$1"
- if [ ! -d "${datadir}" ]; then
- eerror "MySQL datadir is empty or invalid"
- eerror "Please check your my.cnf : ${MY_CNF}"
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() KO"
- return 1
- fi
-
- if [ ! -d "$datadir/mysql" ]; then
- eerror "You don't appear to have the mysql database installed yet."
- eerror "Please run /usr/bin/mysql_install_db to have this done..."
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() KO"
- return 1
- fi
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< checkconfig() ok"
- return 0
-}
-
-start() {
- [[ ${DEBUG} -ge 4 ]] && einfo ">>> start()"
- MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"}
- # servers are defined in /etc/conf.d/mysql
- local serverlist=${!mysql_slot_*}
- # provide default for empty conf.d/mysql
- if [[ -z "${serverlist}" ]] ; then
- serverlist=0
- export mysql_slot_0=()
- fi
- local retstatus timeout
- local globretstatus=1
- local srv_slot srv_num
- # server MUST NOT share same location for these
- local pidfilelist=',' datadirlist=',' socketlist=','
-
- # additional security
- rm -f "${MYSQL_GLOB_PID_FILE}" ; touch "${MYSQL_GLOB_PID_FILE}"
- if [[ $? -ne 0 ]] ; then
- eerror "cannot create MYSQL_GLOB_PID_FILE: ${MYSQL_GLOB_PID_FILE}"
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< start() KO"
- return 1
- fi
-
- ebegin
- # try to start each server
- for srv in ${serverlist[*]} ; do
- einfo "working on ${srv}"
-
- srv_slot="${srv#mysql_slot_}"
- if [[ "${srv_slot}" == "${srv_slot#*_}" ]] ; then
- srv_num=''
- else
- srv_num="${srv_slot#*_}"
- fi
- srv_slot="${srv_slot%%_*}"
-
- retstatus=0
- get_slot_config "${srv_slot}" "${srv_num}" || retstatus=1
-
- # timeout (seconds) before declare failed the startup
- timeout=${STARTUPTIMEOUT}
-
- # pre_run checks
- [[ "$retstatus" -eq 0 ]] && checkconfig "${datadir}" || retstatus=2
- if [[ "$retstatus" -eq 0 ]] ; then
- if in_list "${pidfile}" "${pidfilelist}" ; then
- retstatus=3
- eerror "Sorry, won't start with same pid-file: ${pidfile}"
- fi
- if in_list "${datadir}" "${datadirlist}" ; then
- retstatus=4
- eerror "Sorry, won't start with same datadir: ${datadir}"
- fi
- if in_list "${socket}" "${socketlist}" ; then
- retstatus=5
- eerror "Sorry, won't start with same socket: ${socket}"
- fi
- fi
-
- if [[ $retstatus -eq 0 ]] ; then
- # additional security
- rm -f ${pidfile} ${socket}
- einfo "Starting mysqld${MY_SUFFIX:+"_"}${srv_slot}${srv_num:+"_"}${srv_num} (${MY_CNF})"
-
- [[ ${DEBUG} -ge 2 ]] && echo "starting mysqld with: "${basedir}/sbin/mysqld${MY_SUFFIX} ${unmanagedparams} --basedir=${basedir} --datadir=${datadir} --pid-file=${pidfile} --socket=${socket}
-
- start-stop-daemon --quiet --start --background \
- ${NICE:+"--nicelevel "}${NICE} \
- --pidfile "${pidfile}" \
- --exec ${basedir}/sbin/mysqld${MY_SUFFIX} \
- -- \
- ${MY_CNF:+"--defaults-file="}${MY_CNF} \
- ${unmanagedparams} \
- --basedir=${basedir} \
- --datadir=${datadir} \
- --pid-file=${pidfile} \
- --socket=${socket}
-
- retstatus=$?
-
- # wait for socket creation
- [[ ${DEBUG} -ge 1 ]] && echo ""
- while ! [[ -S "${socket}" || "${timeout}" -lt 1 || "${retstatus}" -ne 0 ]] ; do
- timeout=$(($timeout - 1))
- [[ ${DEBUG} -ge 1 ]] && echo -n $(( $STARTUPTIMEOUT - $timeout ))
- sleep 1
- done
- [[ ${DEBUG} -ge 1 ]] && echo ""
- if [[ ! -S "${socket}" ]] ; then
- eerror "MySQL${MY_SUFFIX} NOT started (${retstatus})"
- retstatus=1
- else
- pidfilelist="${pidfilelist}${pidfile},"
- datadirlist="${datadirlist}${datadir},"
- socketlist="${socketlist}${socket},"
- fi
- fi
-
- if [[ $retstatus -eq 0 ]]; then
- globretstatus=0
- echo "${srv_slot}${srv_num:+"_"}${srv_num}=${pidfile}" >> "${MYSQL_GLOB_PID_FILE}"
- fi
- done
- # successfull if at least one mysqld started
- [[ ${DEBUG} -ge 4 ]] && einfo "<<< start()"
- eend $globretstatus
-}
-
-stop () {
- MYSQL_GLOB_PID_FILE=${MYSQL_GLOB_PID_FILE:-"/var/run/svc-started-mysqld"}
- local runwhat pidfile shutdown_elem
- local PID cnt timeout
- local retstatus=0
- local shutdown_list="$(tac "${MYSQL_GLOB_PID_FILE}")"
-
- # shutdown in reverse order
- ebegin
- for shutdown_elem in $shutdown_list; do
- runwhat=${shutdown_elem%%=*}
- pidfile=${shutdown_elem#*=}
- timeout=${STOPTIMEOUT:-"120"}
-
- einfo "Stopping mysqld (${runwhat})"
-
- PID=$(cat "${pidfile}" 2>/dev/null)
- start-stop-daemon --stop --quiet --pidfile="${pidfile}"
- [[ ${DEBUG} -ge 1 ]] && echo ""
- while ! [[ -n "$PID" || $( kill -0 $PID 2>/dev/null ) || "${timeout}" -lt 1 ]] ; do
- timeout=$(($timeout - 1))
- [[ ${DEBUG} -ge 1 ]] && echo -n $(( $STOPTIMEOUT - $timeout ))
- sleep 1
- done
- if [[ "${timeout}" -lt 1 ]] ; then
- retstatus=$(( $retstatus + 1 ))
- fi
- done
-
- [[ "$retstatus" -eq 0 ]] && rm -f "$MYSQL_GLOB_PID_FILE"
- eend $retstatus
-}
diff --git a/dev-db/mysql/files/mysql-slot.conf.d-r1 b/dev-db/mysql/files/mysql.conf.d-r1
index faac4ad9031d..02fb8ce197d4 100644
--- a/dev-db/mysql/files/mysql-slot.conf.d-r1
+++ b/dev-db/mysql/files/mysql.conf.d-r1
@@ -5,7 +5,8 @@
# Below are described some suggested parameters to use
# The parameters not recognized will be passed through to the mysqld daemon
# To avoid starting a server just comment it's definition
-# Last but not least, spaces are NOT allowed inside the parameters
+#
+# Last but not least, SPACES are NOT allowed inside the parameters
#
# Parameter : description
# ----------------+-----------------------------------------------------------
@@ -52,33 +53,24 @@
#
## The parameters are passed in a bash array variable,
-# the variable name is mysql_slot_[server-ver]_[server-num]
-# Where "server-ver" and "server-num" are optional.
-# in case are defined "server-num" MUST be of three digits.
-# The first digit is the mayor version, the following two the minor
-# i.e. having installed mysql-5.1.x "server-num" will be "501"
-# "server-num" it's an optional number used mainly to start more servers
-# of the same version.
-#
-# The /etc/init.d/mysql-* script will choose the parameters analyzing it's own name
-# i.e. /etc/init.d/mysql-501 will look for mysql_slot_501
-# side note the script could be called "mysql-501_1" or "mysql.501.1" with the same result
+# the variable name is mysql_slot_0_[server-num]
+# "server-num" is an optional number used to start multiple servers
#
# Examples:
#
# start a default server with default options:
#mysql_slot_0=()
#
-# start MySQL 7.5.x reniced, overriding some start parameters
-#mysql_slot_705=(
+# start MySQL reniced, overriding some start parameters
+#mysql_slot_0=(
# "nice=-5"
# "server-id=123"
# "log-bin="myhost"
# "port=3307"
#)
#
-# start another server, same version, different my.cnf
-#mysql_slot_705_1=(
+# start another server, different my.cnf
+#mysql_slot_0_1=(
# "mycnf=/home/test/my.cnf"
# "server-id=124"
#)
diff --git a/dev-db/mysql/files/mysql-slot.rc6-r3 b/dev-db/mysql/files/mysql.rc6-r3
index b40d5c682231..d60082cc08f7 100644
--- a/dev-db/mysql/files/mysql-slot.rc6-r3
+++ b/dev-db/mysql/files/mysql.rc6-r3
@@ -1,7 +1,7 @@
#!/sbin/runscript
# Copyright 1999-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql-slot.rc6-r3,v 1.4 2006/03/02 23:08:41 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysql.rc6-r3,v 1.1 2006/03/16 20:39:44 vivo Exp $
# external binaryes used: which, sed, tac
diff --git a/dev-db/mysql/files/mysqlmanager-slot.conf.d b/dev-db/mysql/files/mysqlmanager.conf.d
index a36241ad4c01..a36241ad4c01 100644
--- a/dev-db/mysql/files/mysqlmanager-slot.conf.d
+++ b/dev-db/mysql/files/mysqlmanager.conf.d
diff --git a/dev-db/mysql/files/mysqlmanager-slot.rc6 b/dev-db/mysql/files/mysqlmanager.rc6
index 8d55103cb00d..5dc58f4bfc90 100644
--- a/dev-db/mysql/files/mysqlmanager-slot.rc6
+++ b/dev-db/mysql/files/mysqlmanager.rc6
@@ -1,7 +1,7 @@
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysqlmanager-slot.rc6,v 1.3 2006/02/05 16:59:03 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/files/mysqlmanager.rc6,v 1.1 2006/03/16 20:39:44 vivo Exp $
# external binaryes used: which, sed, tac
diff --git a/dev-db/mysql/mysql-4.1.16-r30.ebuild b/dev-db/mysql/mysql-4.1.16-r30.ebuild
deleted file mode 100644
index 57b6482d6edf..000000000000
--- a/dev-db/mysql/mysql-4.1.16-r30.ebuild
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.1.16-r30.ebuild,v 1.10 2006/03/03 01:31:54 vivo Exp $
-
-# MYSQL_VERSION_ID will be
-# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo magic number, all [0..99]
-# this is an important piece, becouse from this variable depends many of the
-# choices the ebuild will do.
-# in particular the code below work only with PVR like "5.0.18-r3"
-# the result with the previous PVR is "5001803"
-MYSQL_VERSION_ID=""
-tpv=( ${PV//[-._]/ } ) ; tpv[3]="${PVR:${#PV}}" ; tpv[3]="${tpv[3]##*-r}"
-for vatom in 0 1 2 3; do
- # pad to lenght 2
- tpv[${vatom}]="00${tpv[${vatom}]}"
- MYSQL_VERSION_ID="${MYSQL_VERSION_ID}${tpv[${vatom}]:0-2}"
-done
-# strip leading "0" (otherwise it's considered an octal number from bash)
-MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"}
-
-# for future use ...
-NDB_VERSION_ID=$(( ${MYSQL_VERSION_ID} / 100 ))
-MY_EXTRAS_VER="20060115"
-
-inherit mysql_fx mysql
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-
-DEPEND="${DEPEND}
- >=sys-libs/readline-4.1
- berkdb? ( sys-apps/ed )
- ssl? ( >=dev-libs/openssl-0.9.6d )
- userland_GNU? ( sys-process/procps )
- >=sys-libs/zlib-1.2.3
- >=sys-apps/texinfo-4.7-r1
- >=sys-apps/sed-4"
-RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-mysql )"
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-src_test() {
- cd ${S}
- einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
- make check || die "make check failed"
- if ! useq minimal; then
- einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- local retstatus
- addpredict /this-dir-does-not-exist/t9.MYI
-
- cd mysql-test
- sed -i -e "s|MYSQL_TCP_PORT=3306|MYSQL_TCP_PORT=3307|" mysql-test-run
- ./mysql-test-run
- retstatus=$?
-
- # to be sure ;)
- pkill -9 -f "${S}/ndb" 2>/dev/null
- pkill -9 -f "${S}/sql" 2>/dev/null
- [[ $retstatus -eq 0 ]] || die "make test failed"
- else
- einfo "Skipping server tests due to minimal build."
- fi
-}
diff --git a/dev-db/mysql/mysql-4.1.16.ebuild b/dev-db/mysql/mysql-4.1.16.ebuild
deleted file mode 100644
index 4fd4277938e2..000000000000
--- a/dev-db/mysql/mysql-4.1.16.ebuild
+++ /dev/null
@@ -1,823 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.1.16.ebuild,v 1.9 2006/03/10 18:39:57 vivo Exp $
-
-# helper function, version (integer) may have section separated by dots
-# for readbility
-stripdots() {
- local dotver=${1:-"0"}
- while [[ "${dotver/./}" != "${dotver}" ]] ; do dotver="${dotver/./}" ; done
- echo "${dotver:-"0"}"
-}
-
-# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo magic number, all [0..99]
-MYSQL_VERSION_ID=$(stripdots "4.01.16.00")
-NDB_VERSION_ID=40116
-#major, minor only in the slot
-SLOT=0
-#NOSLOT SLOT=$(( ${MYSQL_VERSION_ID} / 10000 ))
-
-inherit eutils flag-o-matic gnuconfig
-
-# shorten the path because the socket path length must be shorter than 107 chars
-# and we will run a mysql server during test phase
-S="${WORKDIR}/${PN}"
-
-DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
-HOMEPAGE="http://www.mysql.com/"
-NEWP="${PN}-${PV/_/-}"
-SRC_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/${NEWP}.tar.gz
- mirror://gentoo/mysql-extras-20051220.tar.bz2"
-
-LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="big-tables berkdb debug minimal perl selinux ssl static"
-RESTRICT="primaryuri"
-
-DEPEND=">=sys-libs/readline-4.1
- berkdb? ( sys-apps/ed )
- ssl? ( >=dev-libs/openssl-0.9.6d )
- userland_GNU? ( sys-process/procps )
- >=sys-libs/zlib-1.2.3
- >=sys-apps/texinfo-4.7-r1
- >=sys-apps/sed-4"
-RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-mysql )"
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-# Is $2 (defaults to $MYSQL_VERSION_ID) at least version $1?
-# (nice) idea from versionator.eclass
-mysql_version_is_at_least() {
- local want_s=$(stripdots "$1") have_s=$( stripdots "${2:-${MYSQL_VERSION_ID}}")
- [[ -z "${want_s}" ]] && die "mysql_version_is_at_least missing value"
- [[ ${want_s} -le ${have_s} ]] && return 0 || return 1
-}
-
-mysql_version_is_at_least "4.01.03.00" \
-&& IUSE="${IUSE} cluster utf8 extraengine"
-
-mysql_version_is_at_least "5.00.18.00" \
-&& IUSE="${IUSE} max-idx-128"
-
-mysql_version_is_at_least "5.01.00.00" \
-&& IUSE="${IUSE} innodb"
-
-# bool mysql_check_version_range(char * range, int ver=MYSQL_VERSION_ID, int die_on_err=MYSQL_DIE_ON_RANGE_ERROR)
-#
-# Check if a version number fall inside a range.
-# the range include the extremes and must be specified as
-# "low_version to hi_version" i.e. "4.00.00.00 to 5.01.99.99"
-# Return true if inside the range
-# 2005-11-19 <vivo at gentoo.org>
-mysql_check_version_range() {
- local lbound="${1%% to *}" ; lbound=$(stripdots "${lbound}")
- local rbound="${1#* to }" ; rbound=$(stripdots "${rbound}")
- local my_ver="${2:-"${MYSQL_VERSION_ID}"}"
- [[ $lbound -le $my_ver && $my_ver -le $rbound ]] && return 0
- return 1
-}
-
-# private bool _mysql_test_patch_easy( int flags, char * pname )
-#
-# true if found at least one appliable range
-# 2005-11-19 <vivo at gentoo.org>
-_mysql_test_patch_easy() {
- local filesdir="${WORKDIR}/mysql-extras"
- [[ -d "${filesdir}" ]] || die 'sourcedir must be a directory'
- local flags=$1 pname=$2
- if [[ $(( $flags & 5 )) -eq 5 ]] ; then
- einfo "using \"${pname}\""
- mv "${filesdir}/${pname}" "${EPATCH_SOURCE}" || die "cannot move ${pname}"
- return 0
- fi
- return 1
-}
-
-# void mysql_mv_patches(char * index_file, char * filesdir, int my_ver)
-#
-# parse a "index_file" looking for patches to apply to current
-# version.
-# If the patch apply then print it's description
-# 2005-11-19 <vivo at gentoo.org>
-mysql_mv_patches() {
- local index_file="${1:-"${WORKDIR}/mysql-extras/index.txt"}"
- local my_ver="${2:-"${MYSQL_VERSION_ID}"}"
- local my_test_fx=${3:-"_mysql_test_patch_easy"}
- local dsc ndsc=0 i
- dsc=( )
-
- # values for flags are (2^x):
- # 1 - one patch found
- # 2 - at least one version range is wrong
- # 4 - at least one version range is _good_
- local flags=0 pname='' comments=''
- while read row; do
- case "${row}" in
- @patch\ *)
- ${my_test_fx} $flags "${pname}" \
- && for (( i=0 ; $i < $ndsc ; i++ )) ; do einfo "> ${dsc[$i]}" ; done
- flags=1 ; ndsc=0 ; dsc=()
- pname=${row#"@patch "}
- ;;
- @ver\ *)
- if mysql_check_version_range "${row#"@ver "}" "${my_ver}" ; then
- flags=$(( $flags | 4 ))
- else
- flags=$(( $flags | 2 ))
- fi
- ;;
- # @use\ *) ;;
- @@\ *)
- dsc[$ndsc]="${row#"@@ "}"
- (( ++ndsc ))
- ;;
- esac
- done < "${index_file}"
- ${my_test_fx} $flags "${pname}" \
- && for (( i=0 ; $i < $ndsc ; i++ )) ; do einfo "> ${dsc[$i]}" ; done
-}
-
-
-# void mysql_init_vars()
-#
-# initialize global variables
-# 2005-11-19 <vivo at gentoo.org>
-mysql_init_vars() {
-
- MY_SUFFIX=""
- #NOSLOT MY_SUFFIX=${MY_SUFFIX:-"-${SLOT}"}
- MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR:-"/usr/share/mysql${MY_SUFFIX}"}
- MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql${MY_SUFFIX}"}
- MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql${MY_SUFFIX}"}
- MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql${MY_SUFFIX}"}
- MY_LOGDIR=${MY_LOGDIR="/var/log/mysql${MY_SUFFIX}"}
- MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql${MY_SUFFIX}"}
-
- if [ -z "${DATADIR}" ]; then
- DATADIR=""
- if [ -f "${SYSCONFDIR}/my.cnf" ] ; then
- DATADIR=`"my_print_defaults${MY_SUFFIX}" mysqld 2>/dev/null | sed -ne '/datadir/s|^--datadir=||p' | tail -n1`
- if [ -z "${DATADIR}" ]; then
- DATADIR=`grep ^datadir "${SYSCONFDIR}/my.cnf" | sed -e 's/.*=\s*//'`
- fi
- fi
- if [ -z "${DATADIR}" ]; then
- DATADIR="${MY_LOCALSTATEDIR}"
- einfo "Using default DATADIR"
- fi
- einfo "MySQL DATADIR is ${DATADIR}"
-
- if [ -z "${PREVIOUS_DATADIR}" ] ; then
- if [ -a "${DATADIR}" ] ; then
- ewarn "Previous datadir found, it's YOUR job to change"
- ewarn "ownership and have care of it"
- PREVIOUS_DATADIR="yes"
- export PREVIOUS_DATADIR
- else
- PREVIOUS_DATADIR="no"
- export PREVIOUS_DATADIR
- fi
- fi
- fi
-
- export MY_SUFFIX MY_SHAREDSTATEDIR MY_SYSCONFDIR
- export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
- export MY_INCLUDEDIR
- export DATADIR
-}
-
-mysql_strip_double_slash() {
- local path="${1}"
- local newpath="${path/\/\///}"
- while [[ ${path} != ${newpath} ]]; do
- path=${newpath}
- newpath="${path/\/\///}"
- done
- echo "${newpath}"
-}
-
-pkg_setup() {
-
- enewgroup mysql 60 || die "problem adding group mysql"
- enewuser mysql 60 -1 /dev/null mysql \
- || die "problem adding user mysql"
-}
-
-src_unpack() {
-
- mysql_init_vars
-
- if useq static && useq ssl; then
- local msg="MySQL does not support building statically with SSL support"
- eerror "${msg}"
- die "${msg}"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" \
- && useq cluster \
- || useq extraengine \
- && useq minimal ; then
- die "USEs cluster, extraengine conflicts with \"minimal\""
- fi
-
- unpack ${A} || die
-
- mv "${WORKDIR}/${NEWP}" "${S}"
- cd "${S}"
-
- EPATCH_SUFFIX="patch"
- mkdir -p "${EPATCH_SOURCE}" || die "unable to create epatch directory"
- mysql_mv_patches
- epatch || die "failed to apply all patches"
-
- # additional check, remove bundled zlib
- rm -f "${S}/zlib/"*.[ch]
- sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
- rm -f scripts/mysqlbug
-
- # Multilib issue with zlib detection
- mysql_version_is_at_least "5.00.15.00" \
- && sed -i -e "s:zlib_dir/lib:zlib_dir/$(get_libdir):g" \
- "${S}/config/ac-macros/zlib.m4"
-
- # Make charsets install in the right place
- find . -name 'Makefile.am' \
- -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
-
- # Manage mysqlmanager
- mysql_version_is_at_least "5.00.15.00" \
- && sed -i -e "s!@GENTOO_EXT@!${MY_SUFFIX}!g" \
- -e "s!@GENTOO_SOCK_PATH@!var/run/mysqld!g" \
- "${S}/server-tools/instance-manager/Makefile.am"
-
- # remove what need to be recreated, so we are sure it's actually done
- find . -name Makefile -o -name Makefile.in -o -name configure -exec rm -f {} \;
- rm ltmain.sh
-
- local rebuilddirlist d buildstep bdbdir
-
- if mysql_version_is_at_least "5.01.00.00" ; then
- rebuilddirlist=". storage/innobase"
- bdbdir='storage/bdb/dist'
- else
- rebuilddirlist=". innobase"
- bdbdir='bdb/dist'
- fi
-
- for d in ${rebuilddirlist}; do
- einfo "reconfiguring dir \"${d}\""
- pushd "${d}"
- for buildstep in \
- 'libtoolize --copy --force' \
- 'aclocal --force' \
- 'autoheader --force -Wnone' \
- 'autoconf --force -Wnone' \
- 'automake --force --force-missing -Wnone' \
- 'gnuconfig_update'
- do
- einfo "performing ${buildstep}"
- ${buildstep} || die "failed ${buildstep/ */} dir \"${d}\""
- done
- popd
- done
-
- if ! mysql_check_version_range "5.01.00.00 to 5.01.06.99" ; then
- [[ -w "${bdbdir}/ltmain.sh" ]] && cp ltmain.sh "${bdbdir}/ltmain.sh"
- pushd "${bdbdir}" && sh s_all || die "failed bdb reconfigure"
- popd
- fi
-
- # Temporary workaround for bug in test suite, a correct solution
- # should work inside the include files to enable/disable the tests
- # for the current configuration
-
- if ! useq extraengine ; then
- einfo "disabling unneded extraengine tests"
- local disable_test="archive bdb blackhole federated view csv"
- for i in $disable_test ; do
- mv "${S}/mysql-test/t/${i}.test" "${S}/mysql-test/t/${i}.disabled" \
- &> /dev/null
- done
- fi
-
- if ! useq berkdb ; then
- einfo "disabling unneded berkdb tests"
- local disable_test="auto_increment bdb-alter-table-1 bdb-alter-table-2 bdb-crash bdb-deadlock bdb bdb_cache binlog ctype_sjis ctype_utf8 heap_auto_increment index_merge_bdb multi_update mysqldump ps_1general ps_6bdb rowid_order_bdb"
- for i in $disable_test ; do
- mv "${S}/mysql-test/t/${i}.test" "${S}/mysql-test/t/${i}.disabled" \
- &> /dev/null
- done
- fi
-}
-
-src_compile() {
-
- mysql_init_vars
- local myconf
-
- if useq static ; then
- myconf="${myconf} --with-mysqld-ldflags=-all-static"
- myconf="${myconf} --with-client-ldflags=-all-static"
- myconf="${myconf} --disable-shared"
- else
- myconf="${myconf} --enable-shared --enable-static"
- fi
-
- #myconf="${myconf} `use_with tcpd libwrap`"
- myconf="${myconf} --without-libwrap"
-
- if useq ssl ; then
- # --with-vio is not needed anymore, it's on by default and
- # has been removed from configure
- mysql_version_is_at_least "5.00.04.00" || myconf="${myconf} --with-vio"
- if mysql_version_is_at_least "5.00.06.00" ; then
- # yassl-0.96 is young break with gcc-4.0 || amd64
- #myconf="${myconf} --with-yassl"
- myconf="${myconf} --with-openssl"
- else
- myconf="${myconf} --with-openssl"
- fi
- else
- myconf="${myconf} --without-openssl"
- fi
-
- if useq debug; then
- myconf="${myconf} --with-debug=full"
- else
- myconf="${myconf} --without-debug"
- mysql_version_is_at_least "4.01.03.00" && useq cluster && myconf="${myconf} --without-ndb-debug"
- fi
-
- # benchmarking stuff needs perl
- # and shouldn't be bothered with on minimal builds
- if useq perl && ! useq minimal; then
- myconf="${myconf} --with-bench"
- else
- myconf="${myconf} --without-bench"
- fi
-
- # these are things we exclude from a minimal build
- # note that the server actually does get built and installed
- # but we then delete it before packaging.
- local minimal_exclude_list="server embedded-server extra-tools innodb"
- if ! useq minimal; then
- for i in ${minimal_exclude_list}; do
- myconf="${myconf} --with-${i}"
- done
-
- if useq static ; then
- myconf="${myconf} --without-raid"
- ewarn "disabling raid support, has problem with static"
- else
- myconf="${myconf} --with-raid"
- fi
-
- if ! mysql_version_is_at_least "5.00.00.00" ; then
- if mysql_version_is_at_least "4.01.00.00" && useq utf8; then
- myconf="${myconf} --with-charset=utf8"
- myconf="${myconf} --with-collation=utf8_general_ci"
- else
- myconf="${myconf} --with-charset=latin1"
- myconf="${myconf} --with-collation=latin1_swedish_ci"
- fi
- fi
-
- # optional again from 2005-12-05
- if mysql_version_is_at_least "5.01.00.00" ; then
- myconf="${myconf} $(use_with innodb)"
- else
- myconf="${myconf} --with-innodb"
- fi
-
- # lots of chars
- myconf="${myconf} --with-extra-charsets=all"
-
- #The following fix is due to a bug with berkdb on sparc's. See:
- #http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
- # it comes down to non-64-bit safety problems
- if useq sparc || useq alpha || useq hppa || useq mips || useq amd64 \
- || mysql_check_version_range "5.01.00.00 to 5.01.06.99"
- then
- ewarn "berkdb berkeley-db disabled due to arch or version"
- myconf="${myconf} --without-berkeley-db"
- else
- useq berkdb \
- && myconf="${myconf} --with-berkeley-db=./bdb" \
- || myconf="${myconf} --without-berkeley-db"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" ; then
- #myconf="${myconf} $(use_with geometry)"
- myconf="${myconf} --with-geometry"
- myconf="${myconf} $(use_with cluster ndbcluster)"
- fi
-
- mysql_version_is_at_least "4.01.11.00" && myconf="${myconf} `use_with big-tables`"
- else
- for i in ${minimal_exclude_list}; do
- myconf="${myconf} --without-${i}"
- done
- myconf="${myconf} --without-berkeley-db"
- myconf="${myconf} --with-extra-charsets=none"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" && useq extraengine; then
- # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
- myconf="${myconf} --with-archive-storage-engine"
- # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
-
- mysql_version_is_at_least "4.01.04.00" \
- && myconf="${myconf} --with-csv-storage-engine"
-
- mysql_version_is_at_least "4.01.11.00" \
- && myconf="${myconf} --with-blackhole-storage-engine"
-
- # http://dev.mysql.com/doc/mysql/en/federated-description.html
- # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
- if mysql_version_is_at_least "5.00.03.00" ; then
- einfo "before to use federated engine be sure to read"
- einfo "http://dev.mysql.com/doc/refman/5.0/en/federated-limitations.html"
- myconf="${myconf} --with-federated-storage-engine"
-
- # http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
- if mysql_version_is_at_least "5.01.00.00" ; then
- myconf="${myconf} --with-partition"
- fi
- fi
-
- mysql_version_is_at_least "5.00.18.00" \
- && useq "max-idx-128" \
- && myconf="${myconf} --with-max-indexes=128"
- fi
-
- #Bug #114895,Bug #110149
- filter-flags "-O" "-O[01]"
- #glibc-2.3.2_pre fix; bug #16496
- append-flags "-DHAVE_ERRNO_AS_DEFINE=1"
-
- #the compiler flags are as per their "official" spec ;)
- #CFLAGS="${CFLAGS/-O?/} -O3" \
- export CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-exceptions -fno-rtti"
- mysql_version_is_at_least "5.00.00.00" \
- && export CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
-
- econf \
- --program-suffix="${MY_SUFFIX}" \
- --libexecdir="/usr/sbin" \
- --sysconfdir="${MY_SYSCONFDIR}" \
- --localstatedir="${MY_LOCALSTATEDIR}" \
- --sharedstatedir="${MY_SHAREDSTATEDIR}" \
- --libdir="${MY_LIBDIR}" \
- --includedir="${MY_INCLUDEDIR}" \
- --with-low-memory \
- --enable-assembler \
- --enable-local-infile \
- --with-mysqld-user=mysql \
- --with-client-ldflags=-lstdc++ \
- --enable-thread-safe-client \
- --with-comment="Gentoo Linux ${PF}" \
- --with-unix-socket-path="/var/run/mysqld/mysqld${MY_SUFFIX}.sock" \
- --with-zlib-dir=/usr \
- --with-lib-ccflags="-fPIC" \
- --without-readline \
- --without-docs \
- ${myconf} || die "bad ./configure"
-
- # TODO Move this before autoreconf !!!
- find . -name 'Makefile' \
- -exec sed --in-place \
- -e 's|^pkglibdir\s*=\s*$(libdir)/mysql|pkglibdir = $(libdir)|' \
- -e 's|^pkgincludedir\s*=\s*$(includedir)/mysql|pkgincludedir = $(includedir)|' \
- {} \;
-
- emake || die "compile problem"
-}
-
-src_test() {
- cd ${S}
- einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
- make check || die "make check failed"
- if ! useq minimal; then
- einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- local retstatus
- addpredict /this-dir-does-not-exist/t9.MYI
-
- mysql_version_is_at_least "5.00.15.00" \
- && make test-force-pl \
- || make test
- retstatus=$?
-
- # to be sure ;)
- pkill -9 -f "${S}/ndb" 2>/dev/null
- pkill -9 -f "${S}/sql" 2>/dev/null
- [[ $retstatus -eq 0 ]] || die "make test failed"
- else
- einfo "Skipping server tests due to minimal build."
- fi
-}
-
-src_install() {
-
- mysql_init_vars
- make install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die
-
- # create globally visible symlinks
- # TODO : what abaut ndb ?
- local mylib mylibfullver mylibtmpver maxdots sonamelist
- pushd "${D}/${MY_LIBDIR}"
- for mylib in libmysqlclient_r libmysqlclient libndbclient; do
- mylibfullver="$(ls "${mylib}.so"* | sort | tail -n 1)"
- mylibtmpver="${mylibfullver}"
- maxdots=0
- while [[ ${mylibtmpver} != ${mylib} ]] && [[ ${maxdots} -lt 6 ]]; do
- (( ++maxdots ))
- dosym \
- $(mysql_strip_double_slash "${MY_LIBDIR}/${mylibfullver}") \
- $(mysql_strip_double_slash "${MY_LIBDIR}/../${mylibtmpver}")
- mylibtmpver=${mylibtmpver%.*}
- done
- done
- popd
-
- insinto "${MY_INCLUDEDIR}"
- doins "${MY_INCLUDEDIR}"/my_{config,dir}.h
-
- # convenience links
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqlanalyze${MY_SUFFIX}"
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqlrepair${MY_SUFFIX}"
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqloptimize${MY_SUFFIX}"
-
- # various junk (my-*.cnf moved elsewhere)
- rm -rf "${D}/usr/share/info"
- for removeme in "mysql-log-rotate" mysql.server* \
- binary-configure* my-*.cnf mi_test_all*
- do
- rm -f "${D}/usr/share/mysql/${removeme}"
- done
-
- # oops
- mysql_check_version_range "5.00.16.00 to 5.00.18.99" \
- && cp "${WORKDIR}/mysql-extras/fill_help_tables.sql-5.0.15" "${D}/usr/share/mysql/"
-
- # TODO change at Makefile-am level
- for moveme in "mysql_fix_privilege_tables.sql" \
- "fill_help_tables.sql" "ndb-config-2-node.ini"
- do
- mv "${D}/usr/share/mysql/${moveme}"/ "${D}/usr/share/mysql${MY_SUFFIX}/" 2>/dev/null
- done
-
- if [[ -n "${MY_SUFFIX}" ]] ; then
- local notcatched=$(ls "${D}/usr/share/mysql"/*)
- if [[ -n "${notcatched}" ]] ; then
- ewarn "QA notice"
- ewarn "${notcatched} files in /usr/share/mysql"
- ewarn "bug mysql-herd to manage them"
- fi
- rm -rf "${D}/usr/share/mysql"
- fi
-
- # clean up stuff for a minimal build
- # this is anything server-specific
- if useq minimal; then
- rm -rf ${D}${MY_SHAREDSTATEDIR}/{mysql-test,sql-bench}
- rm -f ${D}/usr/bin/{mysql{_install_db,manager*,_secure_installation,_fix_privilege_tables,hotcopy,_convert_table_format,d_multi,_fix_extensions,_zap,_explain_log,_tableinfo,d_safe,_install,_waitpid,binlog,test},myisam*,isam*,pack_isam}
- rm -f "${D}/usr/sbin/mysqld${MY_SUFFIX}"
- rm -f ${D}${MY_LIBDIR}/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
- fi
-
- # config stuff
- insinto "${MY_SYSCONFDIR}"
- doins scripts/mysqlaccess.conf
- newins "${FILESDIR}/my.cnf-4.1" my.cnf
- insinto "/etc/conf.d"
- newins "${FILESDIR}/mysql-slot.conf.d-r1" "mysql"
- mysql_version_is_at_least "5.00.11.00" \
- && newins "${FILESDIR}/mysqlmanager-slot.conf.d" "mysqlmanager"
-
- local charset='utf8'
- ! useq utf8 && local charset='latin1'
- sed --in-place \
- -e "s/@MY_SUFFIX@/${MY_SUFFIX}/" \
- -e "s/@CHARSET@/${charset}/" \
- "${D}/etc/mysql${MY_SUFFIX}/my.cnf"
-
- # minimal builds don't have the server
- if ! useq minimal; then
- exeinto /etc/init.d
- newexe "${FILESDIR}/mysql-slot.rc6-r1" "mysql"
- mysql_version_is_at_least "5.00.11.00" \
- && newexe "${FILESDIR}/mysqlmanager-slot.rc6" "mysqlmanager"
- insinto /etc/logrotate.d
- # TODO
- newins "${FILESDIR}/logrotate.mysql" "mysql${MY_SUFFIX}"
-
- #empty dirs...
- diropts "-m0750"
- if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
- dodir "${DATADIR}"
- keepdir "${DATADIR}"
- chown -R mysql:mysql "${D}/${DATADIR}"
- fi
-
- diropts "-m0755"
- for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do
- dodir "${folder}"
- keepdir "${folder}"
- chown -R mysql:mysql "${D}/${folder}"
- done
- fi
-
- # docs
- dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
- # minimal builds don't have the server
- if ! useq minimal; then
- docinto "support-files"
- for script in \
- support-files/my-*.cnf \
- support-files/magic \
- support-files/ndb-config-2-node.ini
- do
- dodoc "${script}"
- done
-
- docinto "scripts"
- for script in \
- $(ls scripts/mysql* | grep -v '.sh$')
- do
- dodoc "${script}"
- done
- fi
-}
-
-pkg_preinst() {
-
- enewgroup mysql 60 || die "problem adding group mysql"
- enewuser mysql 60 -1 /dev/null mysql \
- || die "problem adding user mysql"
-}
-
-pkg_postinst() {
-
- mysql_init_vars
-
- ## TODO : make the check
- ## TODO : what abaut ndb ?
- #local mylib mylibfullver mylibtmpver maxdots sonamelist prevlink
- #pushd "${ROOT}/${MY_LIBDIR}"
- #for mylib in libmysqlclient_r libmysqlclient libndbclient; do
- # mylibfullver="$(ls "${mylib}.so"* | sort | tail -n 1)"
- # mylibtmpver="${mylibfullver}"
- # maxdots=0
- # while [[ ${mylibtmpver} != ${mylib} ]] && [[ ${maxdots} -lt 6 ]]; do
- # (( ++maxdots ))
- # prevlink=$(readlink -f "../${mylibtmpver}")
- # if [[ -n "${prevlink}" ]] ; then
- # if [[ "${mylibtmpver}" != "${mylibfullver}" ]] \
- # && [[ "${prevlink##*/}" != "${mylibfullver}" ]]
- # then
- # # gah this is not totally correct
- # einfo "found previous library, please run"
- # einfo "revdep-rebuild --soname=${mylibtmpver}"
- # fi
- # rm -f "../${mylibtmpver}"
- # fi
- # ln -snf \
- # $(mysql_strip_double_slash "${ROOT}/${MY_LIBDIR}/${mylibfullver}") \
- # $(mysql_strip_double_slash "${ROOT}/${MY_LIBDIR}/../${mylibtmpver}")
- # mylibtmpver=${mylibtmpver%.*}
- # done
- #done
- #popd
-
- # mind at FEATURES=collision-protect before to remove this
- [ -d "${ROOT}/var/log/mysql" ] \
- || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
-
- #secure the logfiles... does this bother anybody?
- touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err}
- chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql*
- chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
-
- if ! useq minimal; then
- # your friendly public service announcement...
- einfo
- einfo "You might want to run:"
- einfo "\"emerge --config =${CATEGORY}/${PF}\""
- einfo "if this is a new install."
- einfo
- fi
-
- einfo "InnoDB is not optional as of MySQL-4.0.24, at the request of upstream."
-}
-
-pkg_config() {
- mysql_init_vars
- [[ -z "${DATADIR}" ]] && die "sorry, unable to find DATADIR"
-
- if built_with_use dev-db/mysql minimal; then
- die "Minimal builds do NOT include the MySQL server"
- fi
-
- if [[ "$(pgrep mysqld)" != "" ]] ; then
- die "Oops you already have a mysql daemon running!"
- fi
-
- local pwd1="a"
- local pwd2="b"
- local maxtry=5
-
- if [[ -d "${ROOT}/${DATADIR}/mysql" ]] ; then
- ewarn "You have already a MySQL database in place."
- ewarn "(${ROOT}/${DATADIR}/*)"
- ewarn "Please rename or delete it if you wish to replace it."
- die "MySQL database already exists!"
- fi
-
- einfo "Creating the mysql database and setting proper"
- einfo "permissions on it..."
-
- einfo "Insert a password for the mysql 'root' user"
- ewarn "Avoid [\"'\\_%] characters in the password"
-
- read -rsp " >" pwd1 ; echo
- einfo "Check the password"
- read -rsp " >" pwd2 ; echo
-
- if [[ "x$pwd1" != "x$pwd2" ]] ; then
- die "Passwords are not the same"
- fi
-
- local options=""
- local sqltmp="$(emktemp)"
-
- local help_tables="${ROOT}/usr/share/doc/mysql-${PVR}/scripts/fill_help_tables.sql.gz"
- [[ -r "${help_tables}" ]] \
- && zcat "${help_tables}" > "${TMPDIR}/fill_help_tables.sql" \
- || touch "${TMPDIR}/fill_help_tables.sql"
- help_tables="${TMPDIR}/fill_help_tables.sql"
-
- pushd "${TMPDIR}"
- ${ROOT}/usr/bin/mysql_install_db${MY_SUFFIX} | grep -B5 -A999 -i "ERROR"
- popd
- [[ -f ${ROOT}/${DATADIR}/mysql/user.frm ]] || die "MySQL databases not installed"
- chown -R mysql:mysql ${ROOT}/${DATADIR} 2> /dev/null
- chmod 0750 ${ROOT}/${DATADIR} 2> /dev/null
-
- if mysql_version_is_at_least "4.01.03.00" ; then
- options="--skip-ndbcluster"
-
- # Filling timezones, see
- # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
- ${ROOT}/usr/bin/mysql_tzinfo_to_sql${MY_SUFFIX} ${ROOT}/usr/share/zoneinfo \
- > "${sqltmp}" 2>/dev/null
-
- if [[ -r "${help_tables}" ]] ; then
- cat "${help_tables}" >> "${sqltmp}"
- fi
- fi
-
- local socket=${ROOT}/var/run/mysqld/mysqld${MY_SUFFIX}${RANDOM}.sock
- local pidfile=${ROOT}/var/run/mysqld/mysqld${MY_SUFFIX}${RANDOM}.sock
- local mysqld="${ROOT}/usr/sbin/mysqld${MY_SUFFIX} \
- ${options} \
- --user=mysql \
- --skip-grant-tables \
- --basedir=${ROOT}/usr \
- --datadir=${ROOT}/${DATADIR} \
- --skip-innodb \
- --skip-bdb \
- --skip-networking \
- --max_allowed_packet=8M \
- --net_buffer_length=16K \
- --socket=${socket} \
- --pid-file=${pidfile}"
- $mysqld &
- while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
- maxtry=$(($maxtry-1))
- echo -n "."
- sleep 1
- done
-
- # do this from memory we don't want clear text password in temp files
- local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'"
- ${ROOT}/usr/bin/mysql${MY_SUFFIX} \
- --socket=${socket} \
- -hlocalhost \
- -e "${sql}"
-
- einfo "Loading \"zoneinfo\" this step may require few seconds"
-
- ${ROOT}/usr/bin/mysql${MY_SUFFIX} \
- --socket=${socket} \
- -hlocalhost \
- -uroot \
- -p"${pwd1}" \
- mysql < "${sqltmp}"
-
- # server stop and cleanup
- kill $(< "${pidfile}" )
- rm "${sqltmp}"
- einfo "stopping the server,"
- wait %1
- einfo "done"
-}
diff --git a/dev-db/mysql/mysql-5.0.18.ebuild b/dev-db/mysql/mysql-5.0.18.ebuild
deleted file mode 100644
index db66cf2c1325..000000000000
--- a/dev-db/mysql/mysql-5.0.18.ebuild
+++ /dev/null
@@ -1,823 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.18.ebuild,v 1.7 2006/03/10 19:53:03 vivo Exp $
-
-# helper function, version (integer) may have section separated by dots
-# for readbility
-stripdots() {
- local dotver=${1:-"0"}
- while [[ "${dotver/./}" != "${dotver}" ]] ; do dotver="${dotver/./}" ; done
- echo "${dotver:-"0"}"
-}
-
-# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo magic number, all [0..99]
-MYSQL_VERSION_ID=$(stripdots "5.00.18.00")
-NDB_VERSION_ID=50018
-#major, minor only in the slot
-SLOT=0
-#NOSLOT SLOT=$(( ${MYSQL_VERSION_ID} / 10000 ))
-
-inherit eutils flag-o-matic gnuconfig
-
-# shorten the path because the socket path length must be shorter than 107 chars
-# and we will run a mysql server during test phase
-S="${WORKDIR}/${PN}"
-
-DESCRIPTION="A fast, multi-threaded, multi-user SQL database server"
-HOMEPAGE="http://www.mysql.com/"
-NEWP="${PN}-${PV/_/-}"
-SRC_URI="mirror://mysql/Downloads/MySQL-${PV%.*}/${NEWP}.tar.gz
- mirror://gentoo/mysql-extras-20051220.tar.bz2"
-
-LICENSE="GPL-2"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
-IUSE="big-tables berkdb debug minimal perl selinux ssl static"
-RESTRICT="primaryuri"
-
-DEPEND=">=sys-libs/readline-4.1
- berkdb? ( sys-apps/ed )
- ssl? ( >=dev-libs/openssl-0.9.6d )
- userland_GNU? ( sys-process/procps )
- >=sys-libs/zlib-1.2.3
- >=sys-apps/texinfo-4.7-r1
- >=sys-apps/sed-4"
-RDEPEND="${DEPEND} selinux? ( sec-policy/selinux-mysql )"
-# dev-perl/DBD-mysql is needed by some scripts installed by MySQL
-PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )"
-
-# Is $2 (defaults to $MYSQL_VERSION_ID) at least version $1?
-# (nice) idea from versionator.eclass
-mysql_version_is_at_least() {
- local want_s=$(stripdots "$1") have_s=$( stripdots "${2:-${MYSQL_VERSION_ID}}")
- [[ -z "${want_s}" ]] && die "mysql_version_is_at_least missing value"
- [[ ${want_s} -le ${have_s} ]] && return 0 || return 1
-}
-
-mysql_version_is_at_least "4.01.03.00" \
-&& IUSE="${IUSE} cluster utf8 extraengine"
-
-mysql_version_is_at_least "5.00.18.00" \
-&& IUSE="${IUSE} max-idx-128"
-
-mysql_version_is_at_least "5.01.00.00" \
-&& IUSE="${IUSE} innodb"
-
-# bool mysql_check_version_range(char * range, int ver=MYSQL_VERSION_ID, int die_on_err=MYSQL_DIE_ON_RANGE_ERROR)
-#
-# Check if a version number fall inside a range.
-# the range include the extremes and must be specified as
-# "low_version to hi_version" i.e. "4.00.00.00 to 5.01.99.99"
-# Return true if inside the range
-# 2005-11-19 <vivo at gentoo.org>
-mysql_check_version_range() {
- local lbound="${1%% to *}" ; lbound=$(stripdots "${lbound}")
- local rbound="${1#* to }" ; rbound=$(stripdots "${rbound}")
- local my_ver="${2:-"${MYSQL_VERSION_ID}"}"
- [[ $lbound -le $my_ver && $my_ver -le $rbound ]] && return 0
- return 1
-}
-
-# private bool _mysql_test_patch_easy( int flags, char * pname )
-#
-# true if found at least one appliable range
-# 2005-11-19 <vivo at gentoo.org>
-_mysql_test_patch_easy() {
- local filesdir="${WORKDIR}/mysql-extras"
- [[ -d "${filesdir}" ]] || die 'sourcedir must be a directory'
- local flags=$1 pname=$2
- if [[ $(( $flags & 5 )) -eq 5 ]] ; then
- einfo "using \"${pname}\""
- mv "${filesdir}/${pname}" "${EPATCH_SOURCE}" || die "cannot move ${pname}"
- return 0
- fi
- return 1
-}
-
-# void mysql_mv_patches(char * index_file, char * filesdir, int my_ver)
-#
-# parse a "index_file" looking for patches to apply to current
-# version.
-# If the patch apply then print it's description
-# 2005-11-19 <vivo at gentoo.org>
-mysql_mv_patches() {
- local index_file="${1:-"${WORKDIR}/mysql-extras/index.txt"}"
- local my_ver="${2:-"${MYSQL_VERSION_ID}"}"
- local my_test_fx=${3:-"_mysql_test_patch_easy"}
- local dsc ndsc=0 i
- dsc=( )
-
- # values for flags are (2^x):
- # 1 - one patch found
- # 2 - at least one version range is wrong
- # 4 - at least one version range is _good_
- local flags=0 pname='' comments=''
- while read row; do
- case "${row}" in
- @patch\ *)
- ${my_test_fx} $flags "${pname}" \
- && for (( i=0 ; $i < $ndsc ; i++ )) ; do einfo "> ${dsc[$i]}" ; done
- flags=1 ; ndsc=0 ; dsc=()
- pname=${row#"@patch "}
- ;;
- @ver\ *)
- if mysql_check_version_range "${row#"@ver "}" "${my_ver}" ; then
- flags=$(( $flags | 4 ))
- else
- flags=$(( $flags | 2 ))
- fi
- ;;
- # @use\ *) ;;
- @@\ *)
- dsc[$ndsc]="${row#"@@ "}"
- (( ++ndsc ))
- ;;
- esac
- done < "${index_file}"
- ${my_test_fx} $flags "${pname}" \
- && for (( i=0 ; $i < $ndsc ; i++ )) ; do einfo "> ${dsc[$i]}" ; done
-}
-
-
-# void mysql_init_vars()
-#
-# initialize global variables
-# 2005-11-19 <vivo at gentoo.org>
-mysql_init_vars() {
-
- MY_SUFFIX=""
- #NOSLOT MY_SUFFIX=${MY_SUFFIX:-"-${SLOT}"}
- MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR:-"/usr/share/mysql${MY_SUFFIX}"}
- MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql${MY_SUFFIX}"}
- MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql${MY_SUFFIX}"}
- MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql${MY_SUFFIX}"}
- MY_LOGDIR=${MY_LOGDIR="/var/log/mysql${MY_SUFFIX}"}
- MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql${MY_SUFFIX}"}
-
- if [ -z "${DATADIR}" ]; then
- DATADIR=""
- if [ -f "${SYSCONFDIR}/my.cnf" ] ; then
- DATADIR=`"my_print_defaults${MY_SUFFIX}" mysqld 2>/dev/null | sed -ne '/datadir/s|^--datadir=||p' | tail -n1`
- if [ -z "${DATADIR}" ]; then
- DATADIR=`grep ^datadir "${SYSCONFDIR}/my.cnf" | sed -e 's/.*=\s*//'`
- fi
- fi
- if [ -z "${DATADIR}" ]; then
- DATADIR="${MY_LOCALSTATEDIR}"
- einfo "Using default DATADIR"
- fi
- einfo "MySQL DATADIR is ${DATADIR}"
-
- if [ -z "${PREVIOUS_DATADIR}" ] ; then
- if [ -a "${DATADIR}" ] ; then
- ewarn "Previous datadir found, it's YOUR job to change"
- ewarn "ownership and have care of it"
- PREVIOUS_DATADIR="yes"
- export PREVIOUS_DATADIR
- else
- PREVIOUS_DATADIR="no"
- export PREVIOUS_DATADIR
- fi
- fi
- fi
-
- export MY_SUFFIX MY_SHAREDSTATEDIR MY_SYSCONFDIR
- export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR
- export MY_INCLUDEDIR
- export DATADIR
-}
-
-mysql_strip_double_slash() {
- local path="${1}"
- local newpath="${path/\/\///}"
- while [[ ${path} != ${newpath} ]]; do
- path=${newpath}
- newpath="${path/\/\///}"
- done
- echo "${newpath}"
-}
-
-pkg_setup() {
-
- enewgroup mysql 60 || die "problem adding group mysql"
- enewuser mysql 60 -1 /dev/null mysql \
- || die "problem adding user mysql"
-}
-
-src_unpack() {
-
- mysql_init_vars
-
- if useq static && useq ssl; then
- local msg="MySQL does not support building statically with SSL support"
- eerror "${msg}"
- die "${msg}"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" \
- && useq cluster \
- || useq extraengine \
- && useq minimal ; then
- die "USEs cluster, extraengine conflicts with \"minimal\""
- fi
-
- unpack ${A} || die
-
- mv "${WORKDIR}/${NEWP}" "${S}"
- cd "${S}"
-
- EPATCH_SUFFIX="patch"
- mkdir -p "${EPATCH_SOURCE}" || die "unable to create epatch directory"
- mysql_mv_patches
- epatch || die "failed to apply all patches"
-
- # additional check, remove bundled zlib
- rm -f "${S}/zlib/"*.[ch]
- sed -i -e "s/zlib\/Makefile dnl/dnl zlib\/Makefile/" "${S}/configure.in"
- rm -f scripts/mysqlbug
-
- # Multilib issue with zlib detection
- mysql_version_is_at_least "5.00.15.00" \
- && sed -i -e "s:zlib_dir/lib:zlib_dir/$(get_libdir):g" \
- "${S}/config/ac-macros/zlib.m4"
-
- # Make charsets install in the right place
- find . -name 'Makefile.am' \
- -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \;
-
- # Manage mysqlmanager
- mysql_version_is_at_least "5.00.15.00" \
- && sed -i -e "s!@GENTOO_EXT@!${MY_SUFFIX}!g" \
- -e "s!@GENTOO_SOCK_PATH@!var/run/mysqld!g" \
- "${S}/server-tools/instance-manager/Makefile.am"
-
- # remove what need to be recreated, so we are sure it's actually done
- find . -name Makefile -o -name Makefile.in -o -name configure -exec rm -f {} \;
- rm ltmain.sh
-
- local rebuilddirlist d buildstep bdbdir
-
- if mysql_version_is_at_least "5.01.00.00" ; then
- rebuilddirlist=". storage/innobase"
- bdbdir='storage/bdb/dist'
- else
- rebuilddirlist=". innobase"
- bdbdir='bdb/dist'
- fi
-
- for d in ${rebuilddirlist}; do
- einfo "reconfiguring dir \"${d}\""
- pushd "${d}"
- for buildstep in \
- 'libtoolize --copy --force' \
- 'aclocal --force' \
- 'autoheader --force -Wnone' \
- 'autoconf --force -Wnone' \
- 'automake --force --force-missing -Wnone' \
- 'gnuconfig_update'
- do
- einfo "performing ${buildstep}"
- ${buildstep} || die "failed ${buildstep/ */} dir \"${d}\""
- done
- popd
- done
-
- if ! mysql_check_version_range "5.01.00.00 to 5.01.06.99" ; then
- [[ -w "${bdbdir}/ltmain.sh" ]] && cp ltmain.sh "${bdbdir}/ltmain.sh"
- pushd "${bdbdir}" && sh s_all || die "failed bdb reconfigure"
- popd
- fi
-
- # Temporary workaround for bug in test suite, a correct solution
- # should work inside the include files to enable/disable the tests
- # for the current configuration
-
- if ! useq extraengine ; then
- einfo "disabling unneded extraengine tests"
- local disable_test="archive bdb blackhole federated view csv"
- for i in $disable_test ; do
- mv "${S}/mysql-test/t/${i}.test" "${S}/mysql-test/t/${i}.disabled" \
- &> /dev/null
- done
- fi
-
- if ! useq berkdb ; then
- einfo "disabling unneded berkdb tests"
- local disable_test="auto_increment bdb-alter-table-1 bdb-alter-table-2 bdb-crash bdb-deadlock bdb bdb_cache binlog ctype_sjis ctype_utf8 heap_auto_increment index_merge_bdb multi_update mysqldump ps_1general ps_6bdb rowid_order_bdb"
- for i in $disable_test ; do
- mv "${S}/mysql-test/t/${i}.test" "${S}/mysql-test/t/${i}.disabled" \
- &> /dev/null
- done
- fi
-}
-
-src_compile() {
-
- mysql_init_vars
- local myconf
-
- if useq static ; then
- myconf="${myconf} --with-mysqld-ldflags=-all-static"
- myconf="${myconf} --with-client-ldflags=-all-static"
- myconf="${myconf} --disable-shared"
- else
- myconf="${myconf} --enable-shared --enable-static"
- fi
-
- #myconf="${myconf} `use_with tcpd libwrap`"
- myconf="${myconf} --without-libwrap"
-
- if useq ssl ; then
- # --with-vio is not needed anymore, it's on by default and
- # has been removed from configure
- mysql_version_is_at_least "5.00.04.00" || myconf="${myconf} --with-vio"
- if mysql_version_is_at_least "5.00.06.00" ; then
- # yassl-0.96 is young break with gcc-4.0 || amd64
- #myconf="${myconf} --with-yassl"
- myconf="${myconf} --with-openssl"
- else
- myconf="${myconf} --with-openssl"
- fi
- else
- myconf="${myconf} --without-openssl"
- fi
-
- if useq debug; then
- myconf="${myconf} --with-debug=full"
- else
- myconf="${myconf} --without-debug"
- mysql_version_is_at_least "4.01.03.00" && useq cluster && myconf="${myconf} --without-ndb-debug"
- fi
-
- # benchmarking stuff needs perl
- # and shouldn't be bothered with on minimal builds
- if useq perl && ! useq minimal; then
- myconf="${myconf} --with-bench"
- else
- myconf="${myconf} --without-bench"
- fi
-
- # these are things we exclude from a minimal build
- # note that the server actually does get built and installed
- # but we then delete it before packaging.
- local minimal_exclude_list="server embedded-server extra-tools innodb"
- if ! useq minimal; then
- for i in ${minimal_exclude_list}; do
- myconf="${myconf} --with-${i}"
- done
-
- if useq static ; then
- myconf="${myconf} --without-raid"
- ewarn "disabling raid support, has problem with static"
- else
- myconf="${myconf} --with-raid"
- fi
-
- if ! mysql_version_is_at_least "5.00.00.00" ; then
- if mysql_version_is_at_least "4.01.00.00" && useq utf8; then
- myconf="${myconf} --with-charset=utf8"
- myconf="${myconf} --with-collation=utf8_general_ci"
- else
- myconf="${myconf} --with-charset=latin1"
- myconf="${myconf} --with-collation=latin1_swedish_ci"
- fi
- fi
-
- # optional again from 2005-12-05
- if mysql_version_is_at_least "5.01.00.00" ; then
- myconf="${myconf} $(use_with innodb)"
- else
- myconf="${myconf} --with-innodb"
- fi
-
- # lots of chars
- myconf="${myconf} --with-extra-charsets=all"
-
- #The following fix is due to a bug with bdb on sparc's. See:
- #http://www.geocrawler.com/mail/msg.php3?msg_id=4754814&list=8
- # it comes down to non-64-bit safety problems
- if useq sparc || useq alpha || useq hppa || useq mips || useq amd64 \
- || mysql_check_version_range "5.01.00.00 to 5.01.06.99"
- then
- ewarn "bdb berkeley-db disabled due to arch or version"
- myconf="${myconf} --without-berkeley-db"
- else
- useq berkdb \
- && myconf="${myconf} --with-berkeley-db=./bdb" \
- || myconf="${myconf} --without-berkeley-db"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" ; then
- #myconf="${myconf} $(use_with geometry)"
- myconf="${myconf} --with-geometry"
- myconf="${myconf} $(use_with cluster ndbcluster)"
- fi
-
- mysql_version_is_at_least "4.01.11.00" && myconf="${myconf} `use_with big-tables`"
- else
- for i in ${minimal_exclude_list}; do
- myconf="${myconf} --without-${i}"
- done
- myconf="${myconf} --without-berkeley-db"
- myconf="${myconf} --with-extra-charsets=none"
- fi
-
- if mysql_version_is_at_least "4.01.03.00" && useq extraengine; then
- # http://dev.mysql.com/doc/mysql/en/archive-storage-engine.html
- myconf="${myconf} --with-archive-storage-engine"
- # http://dev.mysql.com/doc/mysql/en/csv-storage-engine.html
-
- mysql_version_is_at_least "4.01.04.00" \
- && myconf="${myconf} --with-csv-storage-engine"
-
- mysql_version_is_at_least "4.01.11.00" \
- && myconf="${myconf} --with-blackhole-storage-engine"
-
- # http://dev.mysql.com/doc/mysql/en/federated-description.html
- # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
- if mysql_version_is_at_least "5.00.03.00" ; then
- einfo "before to use federated engine be sure to read"
- einfo "http://dev.mysql.com/doc/refman/5.0/en/federated-limitations.html"
- myconf="${myconf} --with-federated-storage-engine"
-
- # http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html
- if mysql_version_is_at_least "5.01.00.00" ; then
- myconf="${myconf} --with-partition"
- fi
- fi
-
- mysql_version_is_at_least "5.00.18.00" \
- && useq "max-idx-128" \
- && myconf="${myconf} --with-max-indexes=128"
- fi
-
- #Bug #114895,Bug #110149
- filter-flags "-O" "-O[01]"
- #glibc-2.3.2_pre fix; bug #16496
- append-flags "-DHAVE_ERRNO_AS_DEFINE=1"
-
- #the compiler flags are as per their "official" spec ;)
- #CFLAGS="${CFLAGS/-O?/} -O3" \
- export CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-exceptions -fno-rtti"
- mysql_version_is_at_least "5.00.00.00" \
- && export CXXFLAGS="${CXXFLAGS} -fno-implicit-templates"
-
- econf \
- --program-suffix="${MY_SUFFIX}" \
- --libexecdir="/usr/sbin" \
- --sysconfdir="${MY_SYSCONFDIR}" \
- --localstatedir="${MY_LOCALSTATEDIR}" \
- --sharedstatedir="${MY_SHAREDSTATEDIR}" \
- --libdir="${MY_LIBDIR}" \
- --includedir="${MY_INCLUDEDIR}" \
- --with-low-memory \
- --enable-assembler \
- --enable-local-infile \
- --with-mysqld-user=mysql \
- --with-client-ldflags=-lstdc++ \
- --enable-thread-safe-client \
- --with-comment="Gentoo Linux ${PF}" \
- --with-unix-socket-path="/var/run/mysqld/mysqld${MY_SUFFIX}.sock" \
- --with-zlib-dir=/usr \
- --with-lib-ccflags="-fPIC" \
- --without-readline \
- --without-docs \
- ${myconf} || die "bad ./configure"
-
- # TODO Move this before autoreconf !!!
- find . -name 'Makefile' \
- -exec sed --in-place \
- -e 's|^pkglibdir\s*=\s*$(libdir)/mysql|pkglibdir = $(libdir)|' \
- -e 's|^pkgincludedir\s*=\s*$(includedir)/mysql|pkgincludedir = $(includedir)|' \
- {} \;
-
- emake || die "compile problem"
-}
-
-src_test() {
- cd ${S}
- einfo ">>> Test phase [check]: ${CATEGORY}/${PF}"
- make check || die "make check failed"
- if ! useq minimal; then
- einfo ">>> Test phase [test]: ${CATEGORY}/${PF}"
- local retstatus
- addpredict /this-dir-does-not-exist/t9.MYI
-
- mysql_version_is_at_least "5.00.15.00" \
- && make test-force-pl \
- || make test-pl
- retstatus=$?
-
- # to be sure ;)
- pkill -9 -f "${S}/ndb" 2>/dev/null
- pkill -9 -f "${S}/sql" 2>/dev/null
- [[ $retstatus -eq 0 ]] || die "make test failed"
- else
- einfo "Skipping server tests due to minimal build."
- fi
-}
-
-src_install() {
-
- mysql_init_vars
- make install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die
-
- # create globally visible symlinks
- # TODO : what abaut ndb ?
- local mylib mylibfullver mylibtmpver maxdots sonamelist
- pushd "${D}/${MY_LIBDIR}"
- for mylib in libmysqlclient_r libmysqlclient libndbclient; do
- mylibfullver="$(ls "${mylib}.so"* | sort | tail -n 1)"
- mylibtmpver="${mylibfullver}"
- maxdots=0
- while [[ ${mylibtmpver} != ${mylib} ]] && [[ ${maxdots} -lt 6 ]]; do
- (( ++maxdots ))
- dosym \
- $(mysql_strip_double_slash "${MY_LIBDIR}/${mylibfullver}") \
- $(mysql_strip_double_slash "${MY_LIBDIR}/../${mylibtmpver}")
- mylibtmpver=${mylibtmpver%.*}
- done
- done
- popd
-
- insinto "${MY_INCLUDEDIR}"
- doins "${MY_INCLUDEDIR}"/my_{config,dir}.h
-
- # convenience links
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqlanalyze${MY_SUFFIX}"
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqlrepair${MY_SUFFIX}"
- dosym "/usr/bin/mysqlcheck${MY_SUFFIX}" "/usr/bin/mysqloptimize${MY_SUFFIX}"
-
- # various junk (my-*.cnf moved elsewhere)
- rm -rf "${D}/usr/share/info"
- for removeme in "mysql-log-rotate" mysql.server* \
- binary-configure* my-*.cnf mi_test_all*
- do
- rm -f "${D}/usr/share/mysql/${removeme}"
- done
-
- # oops
- mysql_check_version_range "5.00.16.00 to 5.00.18.99" \
- && cp "${WORKDIR}/mysql-extras/fill_help_tables.sql-5.0.15" "${D}/usr/share/mysql/"
-
- # TODO change at Makefile-am level
- for moveme in "mysql_fix_privilege_tables.sql" \
- "fill_help_tables.sql" "ndb-config-2-node.ini"
- do
- mv "${D}/usr/share/mysql/${moveme}"/ "${D}/usr/share/mysql${MY_SUFFIX}/" 2>/dev/null
- done
-
- if [[ -n "${MY_SUFFIX}" ]] ; then
- local notcatched=$(ls "${D}/usr/share/mysql"/*)
- if [[ -n "${notcatched}" ]] ; then
- ewarn "QA notice"
- ewarn "${notcatched} files in /usr/share/mysql"
- ewarn "bug mysql-herd to manage them"
- fi
- rm -rf "${D}/usr/share/mysql"
- fi
-
- # clean up stuff for a minimal build
- # this is anything server-specific
- if useq minimal; then
- rm -rf ${D}${MY_SHAREDSTATEDIR}/{mysql-test,sql-bench}
- rm -f ${D}/usr/bin/{mysql{_install_db,manager*,_secure_installation,_fix_privilege_tables,hotcopy,_convert_table_format,d_multi,_fix_extensions,_zap,_explain_log,_tableinfo,d_safe,_install,_waitpid,binlog,test},myisam*,isam*,pack_isam}
- rm -f "${D}/usr/sbin/mysqld${MY_SUFFIX}"
- rm -f ${D}${MY_LIBDIR}/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a
- fi
-
- # config stuff
- insinto "${MY_SYSCONFDIR}"
- doins scripts/mysqlaccess.conf
- newins "${FILESDIR}/my.cnf-4.1" my.cnf
- insinto "/etc/conf.d"
- newins "${FILESDIR}/mysql-slot.conf.d-r1" "mysql"
- mysql_version_is_at_least "5.00.11.00" \
- && newins "${FILESDIR}/mysqlmanager-slot.conf.d" "mysqlmanager"
-
- local charset='utf8'
- ! useq utf8 && local charset='latin1'
- sed --in-place \
- -e "s/@MY_SUFFIX@/${MY_SUFFIX}/" \
- -e "s/@CHARSET@/${charset}/" \
- "${D}/etc/mysql${MY_SUFFIX}/my.cnf"
-
- # minimal builds don't have the server
- if ! useq minimal; then
- exeinto /etc/init.d
- newexe "${FILESDIR}/mysql-slot.rc6-r1" "mysql"
- mysql_version_is_at_least "5.00.11.00" \
- && newexe "${FILESDIR}/mysqlmanager-slot.rc6" "mysqlmanager"
- insinto /etc/logrotate.d
- # TODO
- newins "${FILESDIR}/logrotate.mysql" "mysql${MY_SUFFIX}"
-
- #empty dirs...
- diropts "-m0750"
- if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
- dodir "${DATADIR}"
- keepdir "${DATADIR}"
- chown -R mysql:mysql "${D}/${DATADIR}"
- fi
-
- diropts "-m0755"
- for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do
- dodir "${folder}"
- keepdir "${folder}"
- chown -R mysql:mysql "${D}/${folder}"
- done
- fi
-
- # docs
- dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
- # minimal builds don't have the server
- if ! useq minimal; then
- docinto "support-files"
- for script in \
- support-files/my-*.cnf \
- support-files/magic \
- support-files/ndb-config-2-node.ini
- do
- dodoc "${script}"
- done
-
- docinto "scripts"
- for script in \
- $(ls scripts/mysql* | grep -v '.sh$')
- do
- dodoc "${script}"
- done
- fi
-}
-
-pkg_preinst() {
-
- enewgroup mysql 60 || die "problem adding group mysql"
- enewuser mysql 60 -1 /dev/null mysql \
- || die "problem adding user mysql"
-}
-
-pkg_postinst() {
-
- mysql_init_vars
-
- ## TODO : make the check
- ## TODO : what abaut ndb ?
- #local mylib mylibfullver mylibtmpver maxdots sonamelist prevlink
- #pushd "${ROOT}/${MY_LIBDIR}"
- #for mylib in libmysqlclient_r libmysqlclient libndbclient; do
- # mylibfullver="$(ls "${mylib}.so"* | sort | tail -n 1)"
- # mylibtmpver="${mylibfullver}"
- # maxdots=0
- # while [[ ${mylibtmpver} != ${mylib} ]] && [[ ${maxdots} -lt 6 ]]; do
- # (( ++maxdots ))
- # prevlink=$(readlink -f "../${mylibtmpver}")
- # if [[ -n "${prevlink}" ]] ; then
- # if [[ "${mylibtmpver}" != "${mylibfullver}" ]] \
- # && [[ "${prevlink##*/}" != "${mylibfullver}" ]]
- # then
- # # gah this is not totally correct
- # einfo "found previous library, please run"
- # einfo "revdep-rebuild --library=${mylibtmpver}"
- # fi
- # rm -f "../${mylibtmpver}"
- # fi
- # ln -snf \
- # $(mysql_strip_double_slash "${ROOT}/${MY_LIBDIR}/${mylibfullver}") \
- # $(mysql_strip_double_slash "${ROOT}/${MY_LIBDIR}/../${mylibtmpver}")
- # mylibtmpver=${mylibtmpver%.*}
- # done
- #done
- #popd
-
- # mind at FEATURES=collision-protect before to remove this
- [ -d "${ROOT}/var/log/mysql" ] \
- || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}"
-
- #secure the logfiles... does this bother anybody?
- touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err}
- chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql*
- chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql*
-
- if ! useq minimal; then
- # your friendly public service announcement...
- einfo
- einfo "You might want to run:"
- einfo "\"emerge --config =${CATEGORY}/${PF}\""
- einfo "if this is a new install."
- einfo
- fi
-
- einfo "InnoDB is not optional as of MySQL-4.0.24, at the request of upstream."
-}
-
-pkg_config() {
- mysql_init_vars
- [[ -z "${DATADIR}" ]] && die "sorry, unable to find DATADIR"
-
- if built_with_use dev-db/mysql minimal; then
- die "Minimal builds do NOT include the MySQL server"
- fi
-
- if [[ "$(pgrep mysqld)" != "" ]] ; then
- die "Oops you already have a mysql daemon running!"
- fi
-
- local pwd1="a"
- local pwd2="b"
- local maxtry=5
-
- if [[ -d "${ROOT}/${DATADIR}/mysql" ]] ; then
- ewarn "You have already a MySQL database in place."
- ewarn "(${ROOT}/${DATADIR}/*)"
- ewarn "Please rename or delete it if you wish to replace it."
- die "MySQL database already exists!"
- fi
-
- einfo "Creating the mysql database and setting proper"
- einfo "permissions on it..."
-
- einfo "Insert a password for the mysql 'root' user"
- ewarn "Avoid [\"'\\_%] characters in the password"
-
- read -rsp " >" pwd1 ; echo
- einfo "Check the password"
- read -rsp " >" pwd2 ; echo
-
- if [[ "x$pwd1" != "x$pwd2" ]] ; then
- die "Passwords are not the same"
- fi
-
- local options=""
- local sqltmp="$(emktemp)"
-
- local help_tables="${ROOT}/usr/share/doc/mysql-${PVR}/scripts/fill_help_tables.sql.gz"
- [[ -r "${help_tables}" ]] \
- && zcat "${help_tables}" > "${TMPDIR}/fill_help_tables.sql" \
- || touch "${TMPDIR}/fill_help_tables.sql"
- help_tables="${TMPDIR}/fill_help_tables.sql"
-
- pushd "${TMPDIR}"
- ${ROOT}/usr/bin/mysql_install_db${MY_SUFFIX} | grep -B5 -A999 -i "ERROR"
- popd
- [[ -f ${ROOT}/${DATADIR}/mysql/user.frm ]] || die "MySQL databases not installed"
- chown -R mysql:mysql ${ROOT}/${DATADIR} 2> /dev/null
- chmod 0750 ${ROOT}/${DATADIR} 2> /dev/null
-
- if mysql_version_is_at_least "4.01.03.00" ; then
- options="--skip-ndbcluster"
-
- # Filling timezones, see
- # http://dev.mysql.com/doc/mysql/en/time-zone-support.html
- ${ROOT}/usr/bin/mysql_tzinfo_to_sql${MY_SUFFIX} ${ROOT}/usr/share/zoneinfo \
- > "${sqltmp}" 2>/dev/null
-
- if [[ -r "${help_tables}" ]] ; then
- cat "${help_tables}" >> "${sqltmp}"
- fi
- fi
-
- local socket=${ROOT}/var/run/mysqld/mysqld${MY_SUFFIX}${RANDOM}.sock
- local pidfile=${ROOT}/var/run/mysqld/mysqld${MY_SUFFIX}${RANDOM}.sock
- local mysqld="${ROOT}/usr/sbin/mysqld${MY_SUFFIX} \
- ${options} \
- --user=mysql \
- --skip-grant-tables \
- --basedir=${ROOT}/usr \
- --datadir=${ROOT}/${DATADIR} \
- --skip-innodb \
- --skip-bdb \
- --skip-networking \
- --max_allowed_packet=8M \
- --net_buffer_length=16K \
- --socket=${socket} \
- --pid-file=${pidfile}"
- $mysqld &
- while ! [[ -S "${socket}" || "${maxtry}" -lt 1 ]] ; do
- maxtry=$(($maxtry-1))
- echo -n "."
- sleep 1
- done
-
- # do this from memory we don't want clear text password in temp files
- local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'"
- ${ROOT}/usr/bin/mysql${MY_SUFFIX} \
- --socket=${socket} \
- -hlocalhost \
- -e "${sql}"
-
- einfo "Loading \"zoneinfo\" this step may require few seconds"
-
- ${ROOT}/usr/bin/mysql${MY_SUFFIX} \
- --socket=${socket} \
- -hlocalhost \
- -uroot \
- -p"${pwd1}" \
- mysql < "${sqltmp}"
-
- # server stop and cleanup
- kill $(< "${pidfile}" )
- rm "${sqltmp}"
- einfo "stopping the server,"
- wait %1
- einfo "done"
-}