diff options
author | Francesco Riosa <vivo@gentoo.org> | 2006-03-16 20:39:44 +0000 |
---|---|---|
committer | Francesco Riosa <vivo@gentoo.org> | 2006-03-16 20:39:44 +0000 |
commit | 2ca89d0495f393d5b4e0400e3e6f61fdf5b39a40 (patch) | |
tree | 29209fc76e87e3f8b225774726934bf6e2b90f20 /dev-db | |
parent | Further cleanup. (diff) | |
download | gentoo-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/ChangeLog | 11 | ||||
-rw-r--r-- | dev-db/mysql/Manifest | 61 | ||||
-rw-r--r-- | dev-db/mysql/files/digest-mysql-4.1.16 | 6 | ||||
-rw-r--r-- | dev-db/mysql/files/digest-mysql-4.1.16-r30 | 6 | ||||
-rw-r--r-- | dev-db/mysql/files/digest-mysql-5.0.18 | 6 | ||||
-rw-r--r-- | dev-db/mysql/files/mysql-slot.conf.d | 69 | ||||
-rw-r--r-- | dev-db/mysql/files/mysql-slot.rc6 | 312 | ||||
-rw-r--r-- | dev-db/mysql/files/mysql-slot.rc6-r1 | 300 | ||||
-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.ebuild | 61 | ||||
-rw-r--r-- | dev-db/mysql/mysql-4.1.16.ebuild | 823 | ||||
-rw-r--r-- | dev-db/mysql/mysql-5.0.18.ebuild | 823 |
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" -} |