| 1 | # Copyright 1999-2005 Gentoo Foundation |
1 | # Copyright 1999-2005 Gentoo Foundation |
| 2 | # Distributed under the terms of the GNU General Public License v2 |
2 | # Distributed under the terms of the GNU General Public License v2 |
| 3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.4 2006/01/07 16:43:39 vivo Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/mysql.eclass,v 1.5 2006/01/08 23:29:20 vivo Exp $ |
| 4 | |
4 | |
| 5 | # Author: Francesco Riosa <vivo at gentoo.org> |
5 | # Author: Francesco Riosa <vivo at gentoo.org> |
| 6 | # Maintainer: Francesco Riosa <vivo at gentoo.org> |
6 | # Maintainer: Francesco Riosa <vivo at gentoo.org> |
| 7 | |
7 | |
| 8 | inherit eutils flag-o-matic gnuconfig mysql_fx |
8 | inherit eutils flag-o-matic gnuconfig mysql_fx |
| … | |
… | |
| 361 | # config stuff |
361 | # config stuff |
| 362 | insinto "${MY_SYSCONFDIR}" |
362 | insinto "${MY_SYSCONFDIR}" |
| 363 | doins scripts/mysqlaccess.conf |
363 | doins scripts/mysqlaccess.conf |
| 364 | newins "${FILESDIR}/my.cnf-4.1" my.cnf |
364 | newins "${FILESDIR}/my.cnf-4.1" my.cnf |
| 365 | insinto "/etc/conf.d" |
365 | insinto "/etc/conf.d" |
| 366 | newins "${FILESDIR}/mysql-slot.conf.d-r1" "mysql" |
366 | newins "${FILESDIR}/mysql-slot.conf.d-r2" "mysql" |
| 367 | mysql_version_is_at_least "5.00.11.00" \ |
367 | mysql_version_is_at_least "5.00.11.00" \ |
| 368 | && newins "${FILESDIR}/mysqlmanager-slot.conf.d" "mysqlmanager" |
368 | && newins "${FILESDIR}/mysqlmanager-slot.conf.d" "mysqlmanager" |
| 369 | |
369 | |
| 370 | local charset='utf8' |
370 | local charset='utf8' |
| 371 | ! useq utf8 && local charset='latin1' |
371 | ! useq utf8 && local charset='latin1' |
| … | |
… | |
| 375 | "${D}/etc/mysql${MY_SUFFIX}/my.cnf" |
375 | "${D}/etc/mysql${MY_SUFFIX}/my.cnf" |
| 376 | |
376 | |
| 377 | # minimal builds don't have the server |
377 | # minimal builds don't have the server |
| 378 | if ! useq minimal; then |
378 | if ! useq minimal; then |
| 379 | exeinto /etc/init.d |
379 | exeinto /etc/init.d |
| 380 | newexe "${FILESDIR}/mysql-slot.rc6-r1" "mysql" |
380 | newexe "${FILESDIR}/mysql-slot.rc6-r2" "mysql" |
|
|
381 | [[ ${SLOT} -gt 0 ]] && dosym "/etc/init.d/mysql" "/etc/init.d/mysql${MY_SUFFIX}" |
|
|
382 | |
| 381 | mysql_version_is_at_least "5.00.11.00" \ |
383 | mysql_version_is_at_least "5.00.11.00" \ |
| 382 | && newexe "${FILESDIR}/mysqlmanager-slot.rc6" "mysqlmanager" |
384 | && newexe "${FILESDIR}/mysqlmanager-slot.rc6" "mysqlmanager" |
| 383 | insinto /etc/logrotate.d |
385 | insinto /etc/logrotate.d |
| 384 | # TODO |
386 | # TODO |
| 385 | newins "${FILESDIR}/logrotate.mysql" "mysql${MY_SUFFIX}" |
387 | newins "${FILESDIR}/logrotate.mysql" "mysql${MY_SUFFIX}" |
| … | |
… | |
| 422 | # oops, temporary fix |
424 | # oops, temporary fix |
| 423 | mysql_check_version_range "5.00.16.00 to 5.00.18.99" \ |
425 | mysql_check_version_range "5.00.16.00 to 5.00.18.99" \ |
| 424 | && cp -f \ |
426 | && cp -f \ |
| 425 | "${WORKDIR}/mysql-extras/fill_help_tables.sql-5.0.15" \ |
427 | "${WORKDIR}/mysql-extras/fill_help_tables.sql-5.0.15" \ |
| 426 | "${D}/usr/share/mysql${MY_SUFFIX}/fill_help_tables.sql" |
428 | "${D}/usr/share/mysql${MY_SUFFIX}/fill_help_tables.sql" |
| 427 | |
|
|
| 428 | # create a list of executable files, to be used |
|
|
| 429 | # by external utilities |
|
|
| 430 | # uncompressed because of the small size |
|
|
| 431 | local exelist="usr/share/mysql${MY_SUFFIX}/.exe-list" |
|
|
| 432 | pushd "${D}/" &>/dev/null |
|
|
| 433 | env -i find usr/bin/ usr/sbin/ usr/share/man \ |
|
|
| 434 | -type f -name "*${MY_SUFFIX}*" \ |
|
|
| 435 | > "${exelist}" |
|
|
| 436 | echo "${MY_SYSCONFDIR##"/"}" >> "${exelist}" |
|
|
| 437 | echo "${MY_INCLUDEDIR##"/"}" >> "${exelist}" |
|
|
| 438 | echo "${MY_LIBDIR##"/"}" >> "${exelist}" |
|
|
| 439 | echo "${MY_SHAREDSTATEDIR##"/"}" >> "${exelist}" |
|
|
| 440 | popd &>/dev/null |
|
|
| 441 | } |
429 | } |
| 442 | |
430 | |
| 443 | mysql_pkg_preinst() { |
431 | mysql_pkg_preinst() { |
| 444 | |
432 | |
| 445 | enewgroup mysql 60 || die "problem adding group mysql" |
433 | enewgroup mysql 60 || die "problem adding group mysql" |
| … | |
… | |
| 459 | #secure the logfiles... does this bother anybody? |
447 | #secure the logfiles... does this bother anybody? |
| 460 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
448 | touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} |
| 461 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
449 | chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* |
| 462 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
450 | chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* |
| 463 | |
451 | |
|
|
452 | # create a list of files, to be used |
|
|
453 | # by external utilities |
|
|
454 | # uncompressed because of the small size |
|
|
455 | local filelist="${ROOT}/var/lib/eselect/mysql/mysql${MY_SUFFIX}" |
|
|
456 | pushd "${D}/" &>/dev/null |
|
|
457 | mkdir -p "${ROOT}/var/lib/eselect/mysql/" |
|
|
458 | env -i find usr/bin/ usr/sbin/ usr/share/man \ |
|
|
459 | -type f -name "*${MY_SUFFIX}*" \ |
|
|
460 | > "${filelist}.filelist" |
|
|
461 | echo "${MY_SYSCONFDIR#"/"}" >> "${filelist}.filelist" |
|
|
462 | echo "${MY_INCLUDEDIR#"/"}" >> "${filelist}.filelist" |
|
|
463 | echo "${MY_LIBDIR#"/"}" >> "${filelist}.filelist" |
|
|
464 | echo "${MY_SHAREDSTATEDIR#"/"}" >> "${filelist}.filelist" |
|
|
465 | popd &>/dev/null |
|
|
466 | |
| 464 | if ! useq minimal; then |
467 | if ! useq minimal; then |
|
|
468 | if [[ ${SLOT} -gt 0 ]] ; then |
|
|
469 | if [[ -f "${ROOT}/usr/sbin/mysqld" ]] ; then |
|
|
470 | einfo "you may want to run unmerge any unslotted MySQL versions with " |
|
|
471 | einfo "emerge -C --pretend dev-db/mysql" |
|
|
472 | einfo "emerge -C =dev-db/mysql-X.Y.Z" |
|
|
473 | einfo "After the unmerge run \"eselect myqsl list\" followed by a " |
|
|
474 | einfo "\"eselect myqsl set 1\" to chose the default mysql server" |
|
|
475 | else |
|
|
476 | local tmpres="$( eselect mysql show )" |
|
|
477 | # "like grep -q unset" |
|
|
478 | if [[ "{$tmpres}" == "{$tmpres/unset/}" ]] ; then |
|
|
479 | eselect mysql set 1 |
|
|
480 | else |
|
|
481 | einfo "The version of mysql emerged now stils is _NOT_ the default" |
|
|
482 | einfo "you may want to run \"eselect myqsl list\" followed by a " |
|
|
483 | einfo "\"eselect myqsl set 1\" to chose the default mysql server" |
|
|
484 | fi |
|
|
485 | fi |
|
|
486 | fi |
|
|
487 | |
| 465 | # your friendly public service announcement... |
488 | # your friendly public service announcement... |
| 466 | einfo |
489 | einfo |
| 467 | einfo "You might want to run:" |
490 | einfo "You might want to run:" |
| 468 | einfo "\"emerge --config =${CATEGORY}/${PF}\"" |
491 | einfo "\"emerge --config =${CATEGORY}/${PF}\"" |
| 469 | einfo "if this is a new install." |
492 | einfo "if this is a new install." |
| 470 | einfo |
493 | einfo |
| 471 | fi |
|
|
| 472 | |
|
|
| 473 | einfo "InnoDB is not optional as of MySQL-4.0.24, at the request of upstream." |
494 | einfo "InnoDB is not optional as of MySQL-4.0.24, at the request of upstream." |
| 474 | if [[ ${SLOT} -gt 0 ]] ; then |
|
|
| 475 | einfo "you may want to run \"eselect myqsl list\" followed by a " |
|
|
| 476 | einfo "\"eselect myqsl list\" to chose the default mysql server" |
|
|
| 477 | einfo "Prior to do this unmerge any unslotted MySQL versions with " |
|
|
| 478 | einfo "emerge -C -p dev-db/mysql <<< NOTICE the \"-p\"" |
|
|
| 479 | einfo "emerge -C =dev-db/mysql-X.Y.Z" |
|
|
| 480 | fi |
495 | fi |
| 481 | } |
496 | } |
| 482 | |
497 | |
| 483 | mysql_pkg_config() { |
498 | mysql_pkg_config() { |
| 484 | mysql_init_vars |
499 | mysql_init_vars |