summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrancesco Riosa <vivo@gentoo.org>2005-07-29 11:39:14 +0000
committerFrancesco Riosa <vivo@gentoo.org>2005-07-29 11:39:14 +0000
commitc346ddb91cf2d44f716b2636f566d605bc5f780f (patch)
tree88fe2eed8da8912a3d691e0130d90ea3228c3e7f /dev-db/mysql
parentAltering package mask on mod_perl so that the real mod_perl-2 series can be e... (diff)
downloadhistorical-c346ddb91cf2d44f716b2636f566d605bc5f780f.tar.gz
historical-c346ddb91cf2d44f716b2636f566d605bc5f780f.tar.bz2
historical-c346ddb91cf2d44f716b2636f566d605bc5f780f.zip
New mysql-5.0.10, fix bug #99891, typos
Package-Manager: portage-2.0.51.22-r2
Diffstat (limited to 'dev-db/mysql')
-rw-r--r--dev-db/mysql/ChangeLog20
-rw-r--r--dev-db/mysql/Manifest11
-rw-r--r--dev-db/mysql/files/035_x86_asm-pic-fixes-r2.patch343
-rw-r--r--dev-db/mysql/files/digest-mysql-5.0.10_beta1
-rw-r--r--dev-db/mysql/mysql-4.0.25-r2.ebuild4
-rw-r--r--dev-db/mysql/mysql-4.1.13-r1.ebuild36
-rw-r--r--dev-db/mysql/mysql-5.0.10_beta.ebuild544
-rw-r--r--dev-db/mysql/mysql-5.0.9_beta-r2.ebuild35
8 files changed, 976 insertions, 18 deletions
diff --git a/dev-db/mysql/ChangeLog b/dev-db/mysql/ChangeLog
index 980f44508b41..ffe2b475608a 100644
--- a/dev-db/mysql/ChangeLog
+++ b/dev-db/mysql/ChangeLog
@@ -1,6 +1,24 @@
# ChangeLog for dev-db/mysql
# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.214 2005/07/27 00:22:45 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.215 2005/07/29 11:39:14 vivo Exp $
+
+ 29 Jul 2005; Francesco Riosa <vivo@gentoo.org>
+ mysql-4.0.25-r2.ebuild:
+ missing $DATADIR in src_install() .
+
+*mysql-5.0.10_beta (29 Jul 2005)
+
+ 29 Jul 2005; Francesco Riosa <vivo@gentoo.org> mysql-4.1.13-r1.ebuild,
+ mysql-5.0.9_beta-r2.ebuild, +mysql-5.0.10_beta.ebuild,
+ +files/035_x86_asm-pic-fixes-r2.patch:
+ New beta version of MySQL 5.0.10
+ This new versions use a different patch to avoid text relocations in the x86
+ assembler files. The new patch has been extracted from upstream one, in the
+ future will be applied to 4.1 series too.
+
+ fix bug #99891 if datadir (usually "/var/lib/mysql") is in place don't touch
+ it. Applied to MySQL versions 4.1 and 5.0 this change defer to the user the
+ responsibility to manage his own datadir.
27 Jul 2005; Francesco Riosa <vivo@gentoo.org> mysql-3.23.58.ebuild,
mysql-3.23.58-r1.ebuild:
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index c666ceda9031..ca95927da5c4 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -3,9 +3,10 @@ MD5 e43e3bc71ccf6832470f216636dd156b mysql-4.0.24-r2.ebuild 13747
MD5 44dc5280381a06b8ce48d2a92d8bc416 mysql-3.23.58.ebuild 6947
MD5 4934e2f34bd00ba4dd037222836a3697 mysql-4.0.23.ebuild 9059
MD5 0cfe352d9d7ac0595951401ad80c72eb mysql-4.0.25-r1.ebuild 13809
-MD5 1148c79dcf415b3e5d500376a1962e6c mysql-5.0.9_beta-r2.ebuild 16096
+MD5 e430eaffa5d4bdd93e99c0e4379ec594 mysql-5.0.9_beta-r2.ebuild 16671
MD5 d7ff11dcd8af325be5a80286307e5a56 mysql-4.0.23-r2.ebuild 9427
-MD5 b5d7a4268d3c13fb157d5e1f807747f4 mysql-4.1.13-r1.ebuild 15737
+MD5 37e6225722bee3143be5102fd0615b79 mysql-4.1.13-r1.ebuild 16296
+MD5 768db2f57552ab30e9914b714fd8b9fa mysql-5.0.10_beta.ebuild 16669
MD5 1b9b5ba4d58d54c962b3592dd26900e8 mysql-4.1.8-r1.ebuild 9243
MD5 a9cebc508de69f6c21bad7776432d9f8 mysql-4.0.24-r1.ebuild 11918
MD5 72f1eb68e70c1bccc2d4972a7e155412 mysql-4.0.22.ebuild 8776
@@ -14,9 +15,9 @@ MD5 82eebc79341497bc468d529ecac22ab1 mysql-3.23.58-r1.ebuild 7064
MD5 1f8d9a7c214e1f7ce3227fc915a44d8c mysql-4.1.8.ebuild 9105
MD5 344659e307cb1ee515bc0cabc4ac9015 mysql-4.0.23-r1.ebuild 9179
MD5 7a2300e4b7c4f1c68d680ea6fa75aab1 mysql-4.0.24.ebuild 9835
-MD5 e98d3e590d7386a06be088d98c3bb346 ChangeLog 35637
+MD5 433359a98b13ddcf52a911a0befc261e ChangeLog 36397
MD5 a2a9fdc7d010a7c04c96cb3b7c05f06b metadata.xml 158
-MD5 68090c6d3dc6b561b360b9d3659e542c mysql-4.0.25-r2.ebuild 13809
+MD5 40616a826638aeea1f00ecf5e2a6d190 mysql-4.0.25-r2.ebuild 13806
MD5 4541e130a1b0fa90db8612973b0adb75 files/mysql-4.0-mysqld-safe-sh.diff 1477
MD5 36aa23522b241aafdb833ac4f11c4fd1 files/mysql-4.0.4-install-db-sh.diff 1439
MD5 93827506c0de13cf7b5023847a4afd95 files/digest-mysql-5.0.9_beta-r2 70
@@ -24,9 +25,11 @@ MD5 a755fb5a3ed724046a4f83fafd819c77 files/mysql-test-myisam-geometry.patch 1217
MD5 76446c512e91b2f8e9e69a0379178e5c files/mysql-4.0.25-r2-asm-pic-fixes.patch 7295
MD5 e37e03b4ce894ff87fda12ce6f7b31a6 files/mysql-4.0.21-install-db-sh.diff 585
MD5 ad883e978e48b2040477a12951c01806 files/digest-mysql-4.1.13-r1 66
+MD5 2a38459933c8b182b2b7ee08ac4e4509 files/035_x86_asm-pic-fixes-r2.patch 8162
MD5 3e399acddc48f209b53e260eec64938c files/mysql-4.0.rc6 933
MD5 625b4007f035e3da9a4f1eeee1db6b9c files/mysql-4.0.15.rc6 1187
MD5 6e0ae36e30287df25336d8bd71c0e764 files/digest-mysql-3.23.58-r1 67
+MD5 49aaf02181386f4a7d8c97c7e21f7d66 files/digest-mysql-5.0.10_beta 71
MD5 8eaeb1372c41d2fef1622dd707a7a9d0 files/mysql-3.23-nisam.h.diff 452
MD5 d3830060b3f74d6c0916ed85a6bbf02d files/mysql-3.23-install-db-sh.diff 1368
MD5 58c4d09c5c2712254b1881a6fcc7abff files/mysql-4.0.18-gentoo-nptl.diff 587
diff --git a/dev-db/mysql/files/035_x86_asm-pic-fixes-r2.patch b/dev-db/mysql/files/035_x86_asm-pic-fixes-r2.patch
new file mode 100644
index 000000000000..cc91a57d72f5
--- /dev/null
+++ b/dev-db/mysql/files/035_x86_asm-pic-fixes-r2.patch
@@ -0,0 +1,343 @@
+###MY_VER_RANGE [4.1.13-r1,)
+diff -aur mysql.orig/strings/longlong2str-x86.s mysql.notextrel/strings/longlong2str-x86.s
+--- mysql.orig/strings/longlong2str-x86.s 2005-07-26 17:52:18.000000000 +0200
++++ mysql.notextrel/strings/longlong2str-x86.s 2005-07-26 19:29:23.000000000 +0200
+@@ -13,8 +13,9 @@
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+-# Optimized longlong2str function for Intel 80x86 (gcc/gas syntax)
+-# Some set sequences are optimized for pentuimpro II
++# longlong2str function for Intel 80x86 (gcc/gas syntax)
++
++# See longlong2str(dst,radix,val) description in longlong2str.c.
+
+ .file "longlong2str.s"
+ .version "1.01"
+@@ -24,99 +25,88 @@
+
+ .globl longlong2str
+ .type longlong2str,@function
+-
++
+ longlong2str:
+- subl $80,%esp
++ subl $80,%esp # Temporary buffer for up to 64 radix-2 digits
+ pushl %ebp
+ pushl %esi
+ pushl %edi
+ pushl %ebx
+- movl 100(%esp),%esi # Lower part of val
+- movl 104(%esp),%ebp # Higher part of val
+- movl 108(%esp),%edi # get dst
+- movl 112(%esp),%ebx # Radix
+- movl %ebx,%eax
+- testl %eax,%eax
+- jge .L144
+-
+- addl $36,%eax
+- cmpl $34,%eax
+- ja .Lerror # Wrong radix
++
++ movl 100(%esp),%esi # esi = Lower part of val
++ movl 112(%esp),%ebx # ebx = Radix
++ movl 104(%esp),%ebp # ebp = Higher part of val
++ movl 108(%esp),%edi # edi -> dst
++
++ testl %ebx,%ebx
++ jge .L144 # (Radix >= 0)
++
+ testl %ebp,%ebp
+- jge .L146
+- movb $45,(%edi) # Add sign
+- incl %edi # Change sign of val
+- negl %esi
+- adcl $0,%ebp
+- negl %ebp
++ jge .L146 # (Higher part of val >= 0)
++ movb $45,(%edi) # Add '-' sign
++ incl %edi
++ negl %esi # Change val to positive
++ adcl $0,%ebp
++ negl %ebp
+ .L146:
+- negl %ebx # Change radix to positive
+- jmp .L148
+- .align 4
++ negl %ebx # Change radix to positive
+ .L144:
+- addl $-2,%eax
+- cmpl $34,%eax
+- ja .Lerror # Radix in range
++ cmpl $36,%ebx # Radix must be between 2 and 36
++ ja .Lerror # (Radix not in range)
++ cmpl $2,%ebx
++ jb .Lerror # (Radix not in range)
++
++ movl %esi,%eax # eax = lower part of val ...
++ orl %ebp,%eax # and it stays thus if ebp=0
++ je Lzero # (Treat zero as special case)
+
+-.L148:
+- movl %esi,%eax # Test if zero (for easy loop)
+- orl %ebp,%eax
+- jne .L150
+- movb $48,(%edi)
+- incl %edi
+- jmp .L10_end
+- .align 4
+-
+-.L150:
+- leal 92(%esp),%ecx # End of buffer
+- jmp .L155
+- .align 4
+-
+-.L153:
+- # val is stored in in ebp:esi
+-
+- movl %ebp,%eax # High part of value
+- xorl %edx,%edx
+- divl %ebx
+- movl %eax,%ebp
+- movl %esi,%eax
+- divl %ebx
+- decl %ecx
+- movl %eax,%esi # quotent in ebp:esi
+- movb _dig_vec_upper(%edx),%al # al is faster than dl
+- movb %al,(%ecx) # store value in buff
+- .align 4
+-.L155:
++ leal 92(%esp),%ecx # ecx -> End of temporary buffer
++
+ testl %ebp,%ebp
+- ja .L153
+- testl %esi,%esi # rest value
+- jl .L153
+- je .L10_mov # Ready
+- movl %esi,%eax
+- movl $_dig_vec_upper,%ebp
+- .align 4
+-
+-.L154: # Do rest with integer precision
+- cltd
+- divl %ebx
+- decl %ecx
+- movb (%edx,%ebp),%dl # bh is always zero as ebx=radix < 36
+- testl %eax,%eax
+- movb %dl,(%ecx)
+- jne .L154
+-
+-.L10_mov:
+- movl %ecx,%esi
+- leal 92(%esp),%ecx # End of buffer
+- subl %esi,%ecx
+- rep
+- movsb
+-
+-.L10_end:
+- movl %edi,%eax # Pointer to end null
+- movb $0,(%edi) # Store the end null
+-
+-.L165:
++ je Llow # (Higher part of val = 0)
++
++Lhigh:
++ #val in ebp:esi. div the high part by the radix,
++ #then div remainder + low part by the radix.
++ movl %ebp,%eax # edx=0,eax=high(from ebp)
++ xorl %edx,%edx
++ decl %ecx
++ divl %ebx
++ movl %eax,%ebp # edx=result of last, eax=low(from esi)
++ movl %esi,%eax
++ divl %ebx
++ movl %eax,%esi # ebp:esi = quotient
++ movb %dl,(%ecx) # store byte in temporary buffer
++ testl %ebp,%ebp
++ jne Lhigh # (Higher part of val still > 0)
++
++Llow:
++ #val in 0:eax. div 0 + low part by the radix.
++ xorl %edx,%edx
++ decl %ecx
++ divl %ebx
++ movb %dl,(%ecx) # store byte in temporary buffer
++ testl %eax,%eax
++ jne Llow # (Lower part of val still <> 0)
++
++ leal 92(%esp),%esi # esi -> End of temporary buffer
++
++Lmov:
++ movb (%ecx),%dl # dl = byte from temporary buffer
++ movb $-1,%bl
++ cmpb $10,%dl # add 7 if dl > '9'
++ adcb $0,%bl
++ addb $48,%dl # add '0'
++ andb $7,%bl
++ addb %bl,%dl
++ incl %ecx
++ movb %dl,(%edi) # put dl in dst
++ incl %edi
++ cmpl %ecx,%esi
++ ja Lmov # (more bytes exist in temporary buffer)
++ movb $0,(%edi) # trailing '\0' in dst
++ movl %edi,%eax # eax = return value = pointer to '\0'
++.Lret:
+ popl %ebx
+ popl %edi
+ popl %esi
+@@ -126,20 +116,28 @@
+
+ .Lerror:
+ xorl %eax,%eax # Wrong radix
+- jmp .L165
++ jmp .Lret
+
+-.Lfe3:
+- .size longlong2str,.Lfe3-longlong2str
++Lzero:
++ # Treat 0 as a special case. Unnecessary but we
++ # expect 0 will be frequent.
++ movl 108(%esp),%eax # eax = dst
++ popl %ebx
++ movb $48,(%eax) # '0'
++ popl %edi
++ incl %eax
++ popl %esi
++ popl %ebp
++ addl $80,%esp
++ movb $0,(%eax) # '\0'
++ ret
+
+ #
+ # This is almost equal to the above, except that we can do the final
+ # loop much more efficient
+-#
++#
+
+ .align 4
+-.Ltmp:
+- .long 0xcccccccd
+- .align 4
+
+ .globl longlong10_to_str
+ .type longlong10_to_str,@function
+@@ -202,7 +200,7 @@
+
+ # The following code uses some tricks to change division by 10 to
+ # multiplication and shifts
+- movl .Ltmp,%esi # set %esi to 0xcccccccd
++ movl $0xcccccccd,%esi # set %esi to 0xcccccccd
+
+ .L10_40:
+ movl %ebx,%eax
+@@ -217,7 +215,30 @@
+ movl %edx,%ebx
+ testl %ebx,%ebx
+ jne .L10_40
+- jmp .L10_mov # Shared end with longlong10_to_str
++# jmp .L10_mov # Shared end with longlong10_to_str
++
+
++.L10_mov:
++ movl %ecx,%esi
++ leal 92(%esp),%ecx # End of buffer
++ subl %esi,%ecx
++ rep
++ movsb
++
++.L10_end:
++ movl %edi,%eax # Pointer to end null
++ movb $0,(%edi) # Store the end null
++
++.L165:
++ popl %ebx
++ popl %edi
++ popl %esi
++ popl %ebp
++ addl $80,%esp
++ ret
++
+ .L10end:
+ .size longlong10_to_str,.L10end-longlong10_to_str
++
++ .section .note.GNU-stack,"",@progbits
++
+diff -aur mysql.orig/strings/my_strtoll10-x86.s mysql.notextrel/strings/my_strtoll10-x86.s
+--- mysql.orig/strings/my_strtoll10-x86.s 2005-07-26 17:52:18.000000000 +0200
++++ mysql.notextrel/strings/my_strtoll10-x86.s 2005-07-26 19:29:33.000000000 +0200
+@@ -18,20 +18,7 @@
+
+ .file "my_strtoll10-x86.s"
+ .version "01.01"
+-.data
+- .align 32
+- .type lfactor,@object
+- .size lfactor,36
+-lfactor:
+- .long 1
+- .long 10
+- .long 100
+- .long 1000
+- .long 10000
+- .long 100000
+- .long 1000000
+- .long 10000000
+- .long 100000000
++
+ .text
+ .align 4
+
+@@ -315,9 +302,32 @@
+ .Lend_i_and_j:
+ movl %esi,%ecx
+ subl -12(%ebp),%ecx # ecx= number of digits in second part
+- movl lfactor(,%ecx,4),%eax
+- jmp .L523
+-
++ movl $1,%eax
++ cmpb $0,%cl
++ je .L523 # 0 so 1
++ movl $10,%eax
++ cmpb $1,%cl
++ je .L523 # 1 so 10
++ movl $100,%eax
++ cmpb $2,%cl
++ je .L523 # 2 so 100
++ movl $1000,%eax
++ cmpb $3,%cl
++ je .L523 # 3 so 1000
++ movl $10000,%eax
++ cmpb $4,%cl
++ je .L523 # 4 so 10000
++ movl $100000,%eax
++ cmpb $5,%cl
++ je .L523 # 5 so 100000
++ movl $1000000,%eax
++ cmpb $6,%cl
++ je .L523 # 6 so 1000000
++ movl $10000000,%eax
++ cmpb $7,%cl
++ je .L523 # 7 so 10000000
++ movl $100000000,%eax
++ jmp .L523 # 8 so 100000000
+ # Return -8(%ebp) * $1000000000 + edi
+ .p2align 4,,7
+ .Lend3:
+@@ -400,3 +410,6 @@
+ .comm end_ptr,120,32
+ .comm error,120,32
+ .ident "Monty"
++
++ .section .note.GNU-stack,"",@progbits
++
+diff -aur mysql.orig/strings/strings-x86.s mysql.notextrel/strings/strings-x86.s
+--- mysql.orig/strings/strings-x86.s 2005-07-26 17:52:18.000000000 +0200
++++ mysql.notextrel/strings/strings-x86.s 2005-07-26 19:29:42.000000000 +0200
+@@ -415,3 +415,6 @@
+ ret
+ .strxmov_end:
+ .size strxmov,.strxmov_end-strxmov
++
++ .section .note.GNU-stack,"",@progbits
++
diff --git a/dev-db/mysql/files/digest-mysql-5.0.10_beta b/dev-db/mysql/files/digest-mysql-5.0.10_beta
new file mode 100644
index 000000000000..f24f83d13f50
--- /dev/null
+++ b/dev-db/mysql/files/digest-mysql-5.0.10_beta
@@ -0,0 +1 @@
+MD5 9f228e9975153ac9872a79398c17e7c1 mysql-5.0.10-beta.tar.gz 18759927
diff --git a/dev-db/mysql/mysql-4.0.25-r2.ebuild b/dev-db/mysql/mysql-4.0.25-r2.ebuild
index cad44edfb674..77368d778c88 100644
--- a/dev-db/mysql/mysql-4.0.25-r2.ebuild
+++ b/dev-db/mysql/mysql-4.0.25-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.0.25-r2.ebuild,v 1.4 2005/07/26 17:14:23 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.0.25-r2.ebuild,v 1.5 2005/07/29 11:39:14 vivo Exp $
inherit eutils gnuconfig flag-o-matic versionator
@@ -245,7 +245,7 @@ src_install() {
dodir /var/run/mysqld
keepdir "${DATADIR}" /var/run/mysqld /var/log/mysql
- chown -R mysql:mysql ${D}/var/lib/mysql \
+ chown -R mysql:mysql ${D}/${DATADIR} \
${D}/var/run/mysqld \
${D}/var/log/mysql
diff --git a/dev-db/mysql/mysql-4.1.13-r1.ebuild b/dev-db/mysql/mysql-4.1.13-r1.ebuild
index 524046b4001e..b8f070c9c2a2 100644
--- a/dev-db/mysql/mysql-4.1.13-r1.ebuild
+++ b/dev-db/mysql/mysql-4.1.13-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.1.13-r1.ebuild,v 1.2 2005/07/26 17:14:23 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-4.1.13-r1.ebuild,v 1.3 2005/07/29 11:39:14 vivo Exp $
inherit eutils gnuconfig flag-o-matic versionator
@@ -73,6 +73,19 @@ mysql_get_datadir() {
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
+
export DATADIR
}
@@ -268,13 +281,19 @@ src_install() {
make install DESTDIR="${D}" benchdir_root="/usr/share/mysql" || die
diropts "-m0750"
- dodir "${DATADIR}" /var/run/mysqld /var/log/mysql
+ if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
+ dodir "${DATADIR}"
+ keepdir "${DATADIR}"
+ chown -R "${D}/${DATADIR}"
+ fi
+
+ dodir /var/log/mysql
diropts "-m0755"
dodir /var/run/mysqld
- keepdir "${DATADIR}" /var/run/mysqld /var/log/mysql
- chown -R mysql:mysql ${D}/var/lib/mysql \
+ keepdir /var/run/mysqld /var/log/mysql
+ chown -R mysql:mysql \
${D}/var/run/mysqld \
${D}/var/log/mysql
@@ -406,7 +425,7 @@ pkg_config() {
${ROOT}/usr/bin/mysql_install_db || die "MySQL databases not installed"
- # MySQL 5.0 don't ned this
+ # MySQL 5.0 don't need this
chown -R mysql:mysql ${DATADIR}
chmod 0750 ${ROOT}/${DATADIR}
@@ -473,7 +492,8 @@ pkg_postinst() {
if ! useq minimal; then
#empty dirs...
- [ -d "${ROOT}/${DATADIR}" ] || install -d -m0750 -o mysql -g mysql ${ROOT}/var/lib/mysql
+ [[ "${PREVIOUS_DATADIR}" != "yes" ]] \
+ && [ -d "${ROOT}/${DATADIR}" ] || install -d -m0750 -o mysql -g mysql ${ROOT}/var/lib/mysql
[ -d "${ROOT}/var/run/mysqld" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/run/mysqld
[ -d "${ROOT}/var/log/mysql" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/log/mysql
@@ -490,6 +510,10 @@ pkg_postinst() {
einfo "\"ebuild /var/db/pkg/dev-db/${PF}/${PF}.ebuild config\""
einfo "if this is a new install."
einfo
+ if [[ "${PREVIOUS_DATADIR}" == "yes" ]] ; then
+ ewarn "Previous datadir found, it's YOUR job to change"
+ ewarn "ownership and have care of it"
+ fi
fi
mysql_upgrade_warning
diff --git a/dev-db/mysql/mysql-5.0.10_beta.ebuild b/dev-db/mysql/mysql-5.0.10_beta.ebuild
new file mode 100644
index 000000000000..37349b9ddede
--- /dev/null
+++ b/dev-db/mysql/mysql-5.0.10_beta.ebuild
@@ -0,0 +1,544 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.10_beta.ebuild,v 1.1 2005/07/29 11:39:14 vivo Exp $
+
+inherit flag-o-matic versionator
+
+SVER=${PV%.*}
+NEWP="${PN}-${PV}"
+NEWP="${NEWP/_beta/-beta}"
+
+
+# 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/"
+SRC_URI="mirror://mysql/Downloads/MySQL-${SVER}/${NEWP}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86 ~amd64 ~sparc ~ia64 ~ppc ~ppc64"
+
+IUSE="debug doc minimal perl readline selinux ssl static tcpd big-tables"
+RESTRICT="primaryuri"
+
+DEPEND="readline? ( >=sys-libs/readline-4.1 )
+ bdb? ( sys-apps/ed )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6-r6 )
+ ssl? ( >=dev-libs/openssl-0.9.6d )
+ perl? ( dev-lang/perl )
+ >=sys-libs/zlib-1.2.3
+ >=sys-apps/texinfo-4.7-r1
+ sys-process/procps
+ >=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 )"
+
+if version_is_at_least "4.1.3" ; then
+ IUSE="${IUSE} cluster utf8 geometry extraengine"
+fi
+
+mysql_upgrade_error() {
+ mysql_get_datadir
+ ewarn "Sorry plain upgrade from version of MySQL before 4.1.4 is NOT supported."
+ ewarn "Be sure to read \"Upgrading from version 4.0 to 4.1\" section"
+ ewarn "http://dev.mysql.com/doc/mysql/en/upgrading-from-4-0.html"
+ ewarn "then unmerge previous version of MySQL with"
+ ewarn "#emerge -C dev-db/mysql"
+ ewarn "move your data out of \"${DATADIR}\""
+ ewarn "#emerge =dev-db/${P}"
+ ewarn "reload data you dumped with \"mysqldump\" Because you have read "
+ ewarn "the documentation on how to upgrade"
+ ewarn ""
+ ewarn "You can also choose to preview some new MySQL 4.1 behaviour"
+ ewarn "adding a section \"[mysqld-4.0]\" followed by the word \"new\""
+ ewarn "into /etc/mysql/my.cnf (you need a recent MySQL version)"
+}
+
+mysql_upgrade_warning() {
+ ewarn "If you're upgrading from MySQL-3.x to 4.0, or 4.0.x to 4.1.x, you"
+ ewarn "must recompile the other packages on your system that link with"
+ ewarn "libmysqlclient after the upgrade completes. To obtain such a list"
+ ewarn "of packages for your system, you may use 'revdep-rebuild' from"
+ ewarn "app-portage/gentoolkit."
+}
+
+mysql_get_datadir() {
+ DATADIR=""
+ if [ -f '/etc/mysql/my.cnf' ] ; then
+ #DATADIR=`grep ^datadir /etc/mysql/my.cnf | sed -e 's/.*= //'`
+ #DATADIR=`/usr/sbin/mysqld --help |grep '^datadir' | awk '{print $2}'`
+ #DATADIR=`my_print_defaults mysqld | grep -- '^--datadir' | tail -n1 | sed -e 's|^--datadir=||'`
+ DATADIR=`my_print_defaults mysqld 2>/dev/null | sed -ne '/datadir/s|^--datadir=||p' | tail -n1`
+ fi
+ if [ -z "${DATADIR}" ]; then
+ DATADIR="/var/lib/mysql/"
+ 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
+
+ export DATADIR
+}
+
+pkg_setup() {
+ mysql_get_datadir
+ if ! useq minimal && version_is_at_least "4.1.4"; then
+ if has_version "<=dev-db/mysql-4.1.4" \
+ && ! built_with_use dev-db/mysql minimal \
+ && [ -d "${DATADIR}/mysql" ]; then
+ mysql_upgrade_error
+ die
+ fi
+ fi
+ mysql_upgrade_warning
+}
+
+src_unpack() {
+ if use static && use ssl; then
+ local msg="MySQL does not support building statically with SSL support"
+ eerror "${msg}"
+ die "${msg}"
+ fi
+
+ if version_is_at_least "4.1.3" \
+ && useq cluster \
+ || useq geometry \
+ || useq extraengine \
+ && useq minimal ; then
+ die "USEs cluster, geometry, extraengine conflicts with \"minimal\""
+ fi
+
+ unpack ${A} || die
+
+ mv "${WORKDIR}/${NEWP}" "${S}"
+ cd "${S}"
+
+ epatch "${FILESDIR}/010_all_my-print-defaults-r2.patch"
+ epatch "${FILESDIR}/035_x86_asm-pic-fixes-r2.patch"
+ epatch "${FILESDIR}/701_all_test-myisam-geometry.patch"
+ epatch "${FILESDIR}/703_all_test-rpl_rotate_logs.patch"
+
+ find . -name Makefile -o -name Makefile.in -o -name configure -exec rm {} \;
+ aclocal && autoheader \
+ || die "failed reconfigure step 01"
+ libtoolize --automake --force \
+ || die "failed reconfigure step 02"
+ automake --force --add-missing && autoconf \
+ || die "failed reconfigure step 03"
+ pushd innobase && aclocal && autoheader && autoconf && automake \
+ || die "failed innobase reconfigure"
+ popd
+ pushd bdb/dist && sh s_all \
+ || die "failed bdb reconfigure"
+ popd
+}
+
+src_compile() {
+ local myconf
+
+ # readline pair reads backwards on purpose, DONT change it around, Ok?
+ # this is because it refers to the building of a bundled readline
+ # versus the system copy
+ useq readline && myconf="${myconf} --without-readline"
+ useq readline || myconf="${myconf} --with-readline"
+
+ 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`"
+
+ if useq ssl ; then
+ # --with-vio is not needed anymore, it's on by default and
+ # has been removed from configure
+ version_is_at_least "5.0.4_beta" || myconf="${myconf} --with-vio"
+ if version_is_at_least "5.0.6_beta" ; 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"
+ version_is_at_least "4.1.3" && 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 raid"
+ if ! useq minimal; then
+ for i in ${minimal_exclude_list}; do
+ myconf="${myconf} --with-${i}"
+ done
+
+ # this one break things at least in mysql [5.0,5.0.6_beta]
+ #if version_is_at_least "4.1.3" && use utf8; then
+ # myconf="${myconf} --with-charset=utf8 --with-collation=utf8_general_ci"
+ #else
+ # myconf="${myconf} --with-charset=latin1 --with-collation=latin1_swedish_ci"
+ #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
+ then
+ myconf="${myconf} --without-berkeley-db"
+ else
+ use berkdb \
+ && myconf="${myconf} --with-berkeley-db=./bdb" \
+ || myconf="${myconf} --without-berkeley-db"
+ fi
+
+ if version_is_at_least "4.1.3" ; then
+ myconf="${myconf} $(use_with geometry)"
+ myconf="${myconf} $(use_with cluster ndbcluster)"
+ fi
+
+ version_is_at_least "4.1.11_alpha20050403" && myconf="${myconf} --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
+
+ # documentation
+ myconf="${myconf} `use_with doc docs`"
+
+ if version_is_at_least "4.1.3" && use 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
+ version_is_at_least "4.1.4" \
+ && myconf="${myconf} --with-csv-storage-engine"
+ # http://dev.mysql.com/doc/mysql/en/federated-description.html
+ # http://dev.mysql.com/doc/mysql/en/federated-limitations.html
+ if version_is_at_least "5.0.3" ; then
+ einfo "before to use federated engine be sure to read"
+ einfo "http://dev.mysql.com/doc/mysql/en/federated-limitations.html"
+ myconf="${myconf} --with-federated-storage-engine"
+ fi
+ version_is_at_least "4.1.11_alpha20050403" \
+ && myconf="${myconf} --with-blackhole-storage-engine"
+ fi
+
+ myconf="${myconf} `use_with big-tables`"
+
+ #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} -fno-implicit-templates -felide-constructors -fno-exceptions -fno-rtti"
+
+ econf \
+ --libexecdir=/usr/sbin \
+ --sysconfdir=/etc/mysql \
+ --localstatedir=/var/lib/mysql \
+ --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.sock \
+ --with-zlib-dir=/usr \
+ --with-lib-ccflags="-fPIC" \
+ ${myconf} || die "bad ./configure"
+
+ emake || die "compile problem"
+}
+
+src_install() {
+
+ make install DESTDIR="${D}" benchdir_root="/usr/share/mysql" || die
+
+ diropts "-m0750"
+ if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
+ dodir "${DATADIR}"
+ keepdir "${DATADIR}"
+ chown -R "${D}/${DATADIR}"
+ fi
+
+ dodir /var/log/mysql
+
+ diropts "-m0755"
+ dodir /var/run/mysqld
+
+ keepdir /var/run/mysqld /var/log/mysql
+ chown -R mysql:mysql \
+ ${D}/var/run/mysqld \
+ ${D}/var/log/mysql
+
+ # move client libs, install a couple of missing headers
+ local lib=$(get_libdir)
+ mv ${D}/usr/${lib}/mysql/libmysqlclient*.so* ${D}/usr/${lib}
+ dosym ../libmysqlclient.so /usr/${lib}/mysql/libmysqlclient.so
+ dosym ../libmysqlclient_r.so /usr/${lib}/mysql/libmysqlclient_r.so
+ insinto /usr/include/mysql ; doins include/{my_config.h,my_dir.h}
+
+ # convenience links
+ dosym /usr/bin/mysqlcheck /usr/bin/mysqlanalyze
+ dosym /usr/bin/mysqlcheck /usr/bin/mysqlrepair
+ dosym /usr/bin/mysqlcheck /usr/bin/mysqloptimize
+
+ # various junk
+ rm -f ${D}/usr/bin/make*distribution
+ rm -f ${D}/usr/share/mysql/make_*_distribution
+ rm -f ${D}/usr/share/mysql/mysql.server
+ rm -f ${D}/usr/share/mysql/binary-configure
+ rm -f ${D}/usr/share/mysql/mysql-log-rotate
+ rm -f ${D}/usr/share/mysql/{post,pre}install
+ rm -f ${D}/usr/share/mysql/mi_test*
+ rm -f ${D}/usr/share/mysql/*.spec # Redhat gunk
+ rm -f ${D}/usr/share/mysql/*.plist # Apple gunk
+ rm -f ${D}/usr/share/mysql/my-*.cnf # Put them elsewhere
+
+ # All of these (ab)use Perl.
+ if ! use perl; then
+ rm -f ${D}/usr/bin/{mysqlhotcopy,mysql_find_rows,mysql_convert_table_format,mysqld_multi,mysqlaccess,mysql_fix_extensions,mysqldumpslow,mysql_zap,mysql_explain_log,mysql_tableinfo,mysql_setpermission}
+ rm -f ${D}/usr/bin/mysqlhotcopy
+ rm -rf ${D}/usr/share/mysql/sql-bench
+ fi
+
+ # clean up stuff for a minimal build
+ # this is anything server-specific
+ if useq minimal; then
+ rm -rf ${D}/usr/share/mysql/{mysql-test,sql-bench}
+ rm -f ${D}/usr/bin/{mysql_install_db,mysqlmanager*,mysql_secure_installation,mysql_fix_privilege_tables,mysqlhotcopy,mysql_convert_table_format,mysqld_multi,mysql_fix_extensions,mysql_zap,mysql_explain_log,mysql_tableinfo,mysqld_safe,myisam*,isam*,mysql_install,mysql_waitpid,mysqlbinlog,mysqltest,pack_isam}
+ rm -f ${D}/usr/sbin/mysqld
+ rm -f ${D}/usr/lib/mysql/lib{heap,merge,nisam,mysys,mystrings,mysqld,myisammrg,vio,dbug,myisam}.a
+ fi
+
+ # config stuff
+ insinto /etc/mysql
+ doins scripts/mysqlaccess.conf
+
+ newins "${FILESDIR}/my.cnf-4.1" my.cnf
+
+ if version_is_at_least "4.1.3" && ! use utf8; then
+ sed --in-place "s/utf8/latin1/" \
+ ${D}/etc/mysql/my.cnf
+ fi
+
+ # minimal builds don't have the server
+ if ! useq minimal; then
+ exeinto /etc/init.d
+ newexe "${FILESDIR}/mysql-4.0.24-r2.rc6" mysql
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/logrotate.mysql" mysql
+ fi
+
+ # docs
+ dodoc README COPYING ChangeLog EXCEPTIONS-CLIENT INSTALL-SOURCE
+ # minimal builds don't have the server
+ if useq doc && ! useq minimal; then
+ dohtml Docs/*.html
+ dodoc Docs/manual.{txt,ps}
+ docinto conf-samples
+ dodoc support-files/my-*.cnf
+ fi
+}
+
+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
+
+ version_is_at_least "5.0.6_beta" \
+ && make test-force \
+ || 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
+}
+
+pkg_config() {
+ mysql_get_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 "${DATADIR}/mysql" ]] ; then
+ ewarn "You have already a MySQL database in place."
+ ewarn "Please rename it 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 "the password will be visible on the screen"
+
+ echo -n " >" && read -r pwd1
+ einfo "Check the password"
+ echo -n " >" && read -r pwd2
+
+ if (( pwd1 != pwd2 )) ; then
+ die "Passwords are not the same"
+ fi
+
+ ${ROOT}/usr/bin/mysql_install_db || die "MySQL databases not installed"
+
+ # MySQL 5.0 don't need this
+ chown -R mysql:mysql ${DATADIR}
+ chmod 0750 ${ROOT}/${DATADIR}
+
+ local options=""
+ local sqltmp="$(emktemp)"
+ local help_tables="${ROOT}/usr/share/mysql/fill_help_tables.sql"
+
+ if version_is_at_least "4.1.3" ; 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 ${ROOT}/usr/share/zoneinfo \
+ > "${sqltmp}"
+
+ if [[ -r "${help_tables}" ]] ; then
+ cat "${help_tables}" >> "${sqltmp}"
+ fi
+ fi
+
+ local socket=${ROOT}/var/run/mysqld/mysqld.sock
+ local mysqld="${ROOT}/usr/sbin/mysqld \
+ ${options} \
+ --skip-grant-tables \
+ --basedir=${ROOT}/usr \
+ --datadir=${ROOT}/var/lib/mysql \
+ --skip-innodb \
+ --skip-bdb \
+ --max_allowed_packet=8M \
+ --net_buffer_length=16K \
+ --socket=${socket} \
+ --pid-file=${ROOT}/var/run/mysqld/mysqld.pid"
+
+ $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 \
+ --socket=${ROOT}/var/run/mysqld/mysqld.sock \
+ -hlocalhost \
+ -e "${sql}"
+
+ einfo "Loading \"zoneinfo\" this step may require few seconds"
+
+ ${ROOT}/usr/bin/mysql \
+ --socket=${socket} \
+ -hlocalhost \
+ -uroot \
+ -p"${pwd1}" \
+ mysql < "${sqltmp}"
+
+ kill $( cat ${ROOT}/var/run/mysqld/mysqld.pid )
+ rm "${sqltmp}"
+ einfo "done"
+}
+
+pkg_preinst() {
+ enewgroup mysql 60 || die "problem adding group mysql"
+ enewuser mysql 60 /bin/false /var/lib/mysql mysql \
+ || die "problem adding user mysql"
+}
+
+pkg_postinst() {
+ mysql_get_datadir
+
+ if ! useq minimal; then
+ #empty dirs...
+ [[ "${PREVIOUS_DATADIR}" != "yes" ]] \
+ && [ -d "${ROOT}/${DATADIR}" ] || install -d -m0750 -o mysql -g mysql ${ROOT}/var/lib/mysql
+ [ -d "${ROOT}/var/run/mysqld" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/run/mysqld
+ [ -d "${ROOT}/var/log/mysql" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/log/mysql
+
+ # secure the logfiles... does this bother anybody?
+ touch ${ROOT}/var/log/mysql/mysql.{log,err}
+ chown mysql:mysql ${ROOT}/var/log/mysql/mysql*
+ chmod 0660 ${ROOT}/var/log/mysql/mysql*
+ # secure some directories
+ chmod 0750 ${ROOT}/var/log/mysql ${ROOT}/${DATADIR}
+
+ # your friendly public service announcement...
+ einfo
+ einfo "You might want to run:"
+ einfo "\"ebuild /var/db/pkg/dev-db/${PF}/${PF}.ebuild config\""
+ einfo "if this is a new install."
+ einfo
+ if [[ "${PREVIOUS_DATADIR}" == "yes" ]] ; then
+ ewarn "Previous datadir found, it's YOUR job to change"
+ ewarn "ownership and have care of it"
+ fi
+ fi
+
+ mysql_upgrade_warning
+ einfo "InnoDB is not optional as of MySQL-4.0.24, at the request of upstream."
+}
diff --git a/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild b/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild
index 979f30c7ca2f..028b99a611d2 100644
--- a/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild
+++ b/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild,v 1.2 2005/07/26 17:14:23 vivo Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.9_beta-r2.ebuild,v 1.3 2005/07/29 11:39:14 vivo Exp $
inherit flag-o-matic versionator
@@ -79,6 +79,19 @@ mysql_get_datadir() {
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
+
export DATADIR
}
@@ -278,16 +291,23 @@ src_compile() {
}
src_install() {
+
make install DESTDIR="${D}" benchdir_root="/usr/share/mysql" || die
diropts "-m0750"
- dodir "${DATADIR}" /var/log/mysql
+ if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then
+ dodir "${DATADIR}"
+ keepdir "${DATADIR}"
+ chown -R "${D}/${DATADIR}"
+ fi
+
+ dodir /var/log/mysql
diropts "-m0755"
dodir /var/run/mysqld
- keepdir "${DATADIR}" /var/run/mysqld /var/log/mysql
- chown -R mysql:mysql ${D}/var/lib/mysql \
+ keepdir /var/run/mysqld /var/log/mysql
+ chown -R mysql:mysql \
${D}/var/run/mysqld \
${D}/var/log/mysql
@@ -495,7 +515,8 @@ pkg_postinst() {
if ! useq minimal; then
#empty dirs...
- [ -d "${ROOT}/${DATADIR}" ] || install -d -m0750 -o mysql -g mysql ${ROOT}/var/lib/mysql
+ [[ "${PREVIOUS_DATADIR}" != "yes" ]] \
+ && [ -d "${ROOT}/${DATADIR}" ] || install -d -m0750 -o mysql -g mysql ${ROOT}/var/lib/mysql
[ -d "${ROOT}/var/run/mysqld" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/run/mysqld
[ -d "${ROOT}/var/log/mysql" ] || install -d -m0755 -o mysql -g mysql ${ROOT}/var/log/mysql
@@ -512,6 +533,10 @@ pkg_postinst() {
einfo "\"ebuild /var/db/pkg/dev-db/${PF}/${PF}.ebuild config\""
einfo "if this is a new install."
einfo
+ if [[ "${PREVIOUS_DATADIR}" == "yes" ]] ; then
+ ewarn "Previous datadir found, it's YOUR job to change"
+ ewarn "ownership and have care of it"
+ fi
fi
mysql_upgrade_warning