diff options
author | Francesco Riosa <vivo@gentoo.org> | 2005-07-29 11:39:14 +0000 |
---|---|---|
committer | Francesco Riosa <vivo@gentoo.org> | 2005-07-29 11:39:14 +0000 |
commit | c346ddb91cf2d44f716b2636f566d605bc5f780f (patch) | |
tree | 88fe2eed8da8912a3d691e0130d90ea3228c3e7f /dev-db/mysql | |
parent | Altering package mask on mod_perl so that the real mod_perl-2 series can be e... (diff) | |
download | historical-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/ChangeLog | 20 | ||||
-rw-r--r-- | dev-db/mysql/Manifest | 11 | ||||
-rw-r--r-- | dev-db/mysql/files/035_x86_asm-pic-fixes-r2.patch | 343 | ||||
-rw-r--r-- | dev-db/mysql/files/digest-mysql-5.0.10_beta | 1 | ||||
-rw-r--r-- | dev-db/mysql/mysql-4.0.25-r2.ebuild | 4 | ||||
-rw-r--r-- | dev-db/mysql/mysql-4.1.13-r1.ebuild | 36 | ||||
-rw-r--r-- | dev-db/mysql/mysql-5.0.10_beta.ebuild | 544 | ||||
-rw-r--r-- | dev-db/mysql/mysql-5.0.9_beta-r2.ebuild | 35 |
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 |