From 1954d1b45a5be3549aec01c3e900beb2db5184d6 Mon Sep 17 00:00:00 2001 From: Luca Longinotti Date: Tue, 6 Mar 2007 16:11:48 +0000 Subject: [PATCH] Fix mysql-5.0.34 ebuild madness. Package-Manager: portage-2.1.2.1 --- dev-db/mysql/ChangeLog | 6 +- dev-db/mysql/Manifest | 16 +- dev-db/mysql/mysql-5.0.34.ebuild | 660 +------------------------------ 3 files changed, 17 insertions(+), 665 deletions(-) diff --git a/dev-db/mysql/ChangeLog b/dev-db/mysql/ChangeLog index 57ec0f7fab82..d28e0fdedebe 100644 --- a/dev-db/mysql/ChangeLog +++ b/dev-db/mysql/ChangeLog @@ -1,6 +1,10 @@ # ChangeLog for dev-db/mysql # Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.389 2007/03/06 11:43:21 robbat2 Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/ChangeLog,v 1.390 2007/03/06 16:11:48 chtekk Exp $ + + 06 Mar 2007; Luca Longinotti mysql-5.0.34.ebuild: + Port libtool fix properly to mysql.eclass. + Revert eclass-in-ebuild, fixes bug #169618. 06 Mar 2007; Robin H. Johnson mysql-5.0.34.ebuild: Bug #167758 - fix to support libtool-1.5.23b. diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest index 8d85c090f73f..194061f550c7 100644 --- a/dev-db/mysql/Manifest +++ b/dev-db/mysql/Manifest @@ -49,14 +49,14 @@ EBUILD mysql-5.0.32.ebuild 2035 RMD160 034ca18af4539c6cc6440a6ac79a49d0ab429cdc MD5 23587316b99d3c689a0ef2d5a603a8c3 mysql-5.0.32.ebuild 2035 RMD160 034ca18af4539c6cc6440a6ac79a49d0ab429cdc mysql-5.0.32.ebuild 2035 SHA256 5aae1d10c426a63f6860727527c58d925ad2846d2d351f5847f9a0822f1cafd2 mysql-5.0.32.ebuild 2035 -EBUILD mysql-5.0.34.ebuild 20893 RMD160 7394ad6def649f07369226f92919830944a711d6 SHA1 8a8a6939955518e4fdd4b047149cbb5f78eb47c6 SHA256 9f38ebc70086ca4126d5dd5f0544d1e9318b68ca3b363ca54e172452007a55f7 -MD5 1bd39a87b78827c05dc0976084c6e37b mysql-5.0.34.ebuild 20893 -RMD160 7394ad6def649f07369226f92919830944a711d6 mysql-5.0.34.ebuild 20893 -SHA256 9f38ebc70086ca4126d5dd5f0544d1e9318b68ca3b363ca54e172452007a55f7 mysql-5.0.34.ebuild 20893 -MISC ChangeLog 79053 RMD160 05c605b11aac4fad4f4de272079ce53c0b11a2f0 SHA1 6a96dd679941b2e007f89d9223e04b5ccc0fa7da SHA256 da59f7ecf38236d17cc078024c2c606cdab3f2a7dfc834ecdf3fe4a717436792 -MD5 d6ff2dc2945cfebfd81e04578a7f4e13 ChangeLog 79053 -RMD160 05c605b11aac4fad4f4de272079ce53c0b11a2f0 ChangeLog 79053 -SHA256 da59f7ecf38236d17cc078024c2c606cdab3f2a7dfc834ecdf3fe4a717436792 ChangeLog 79053 +EBUILD mysql-5.0.34.ebuild 2053 RMD160 b6e4417d4645dfafceab4219247e6b4ecebadcfe SHA1 02c9448936243084fea0019c2376d27b7a4ec3fe SHA256 2359fda98097cdc84e2254601b6cc8bdbb2650149a8bdc6a563d373cfac58a55 +MD5 62685ebdf91e30eb7a80d2972d608bc7 mysql-5.0.34.ebuild 2053 +RMD160 b6e4417d4645dfafceab4219247e6b4ecebadcfe mysql-5.0.34.ebuild 2053 +SHA256 2359fda98097cdc84e2254601b6cc8bdbb2650149a8bdc6a563d373cfac58a55 mysql-5.0.34.ebuild 2053 +MISC ChangeLog 79216 RMD160 e0e2bedc2d30f2b81c7aaf4144b4df07d6654031 SHA1 ffd282bc1d84a998683e701738e9a7b0acfb8930 SHA256 4c37c0572d4b1787948a11a8ab2d225701cca1a6f0307767afe4f8bd096bf79b +MD5 2f2607646c84b5ff56abf9abc0c16ef3 ChangeLog 79216 +RMD160 e0e2bedc2d30f2b81c7aaf4144b4df07d6654031 ChangeLog 79216 +SHA256 4c37c0572d4b1787948a11a8ab2d225701cca1a6f0307767afe4f8bd096bf79b ChangeLog 79216 MISC metadata.xml 159 RMD160 a50a94af7706288c46f81d6c3da9b5f888050eee SHA1 5eb253a678d6faa0f1c6b3c5720a804ed8923566 SHA256 5cfd5aa0e8104c0326b5f4c9205a6449a94e0f6f6abfd2626f1e7a8fe77b98b7 MD5 f1c86d989c7ea2451931e7e2c3530f8c metadata.xml 159 RMD160 a50a94af7706288c46f81d6c3da9b5f888050eee metadata.xml 159 diff --git a/dev-db/mysql/mysql-5.0.34.ebuild b/dev-db/mysql/mysql-5.0.34.ebuild index 20a994276479..29ae784d4c1a 100644 --- a/dev-db/mysql/mysql-5.0.34.ebuild +++ b/dev-db/mysql/mysql-5.0.34.ebuild @@ -1,666 +1,14 @@ # Copyright 1999-2007 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.34.ebuild,v 1.2 2007/03/06 11:43:21 robbat2 Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-db/mysql/mysql-5.0.34.ebuild,v 1.3 2007/03/06 16:11:48 chtekk Exp $ MY_EXTRAS_VER="20070217" SERVER_URI="ftp://ftp.mysql.com/pub/mysql/src/mysql-${PV//_/-}.tar.gz" -KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" - - -# Both MYSQL_VERSION_ID and MYSQL_PATCHSET_REV must be set in the ebuild too! -# Note that MYSQL_VERSION_ID must be empty! - -WANT_AUTOCONF="latest" -WANT_AUTOMAKE="latest" - -inherit eutils flag-o-matic gnuconfig autotools mysql_fx - -# 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}/mysql" - -# MYSQL_VERSION_ID will be: -# major * 10e6 + minor * 10e4 + micro * 10e2 + gentoo revision number, all [0..99] -# This is an important part, because many of the choices the MySQL ebuild will do -# depend on this variable. -# In particular, the code below transforms a $PVR like "5.0.18-r3" in "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 length 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 by BASH) -MYSQL_VERSION_ID=${MYSQL_VERSION_ID##"0"} - -# Be warned, *DEPEND are version-dependant -DEPEND="ssl? ( >=dev-libs/openssl-0.9.6d ) - userland_GNU? ( sys-process/procps ) - >=sys-apps/sed-4 - >=sys-apps/texinfo-4.7-r1 - >=sys-libs/readline-4.1 - >=sys-libs/zlib-1.2.3" - -# Having different flavours at the same time is not a good idea -for i in "" "-community" ; do - [[ "${i}" == ${PN#mysql} ]] || - DEPEND="${DEPEND} !dev-db/mysql${i}" -done - -mysql_version_is_at_least "5.1.12" \ -&& DEPEND="${DEPEND} innodb? ( >=dev-util/cmake-2.4.3 )" - -# dev-perl/DBD-mysql is needed by some scripts installed by MySQL -PDEPEND="perl? ( >=dev-perl/DBD-mysql-2.9004 )" - -# Define correct SRC_URIs -SRC_URI="${SERVER_URI} - http://g3nt8.org/patches/mysql-extras-${MY_EXTRAS_VER}.tar.bz2" - -DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." -HOMEPAGE="http://www.mysql.com/" -LICENSE="GPL-2" -SLOT="0" -IUSE="big-tables debug embedded minimal perl selinux ssl static" -RESTRICT="confcache" - -mysql_version_is_at_least "4.1" \ -&& IUSE="${IUSE} latin1" - -mysql_version_is_at_least "4.1.3" \ -&& IUSE="${IUSE} cluster extraengine" - -mysql_version_is_at_least "5.0" \ -|| IUSE="${IUSE} raid" - -mysql_version_is_at_least "5.0.18" \ -&& IUSE="${IUSE} max-idx-128" - -RDEPEND="${DEPEND} - !minimal? ( dev-db/mysql-init-scripts ) - selinux? ( sec-policy/selinux-mysql )" - -# -# HELPER FUNCTIONS: -# - -mysql_disable_test() { - local testname="${1}" ; shift - local reason="${@}" - local mysql_disable_file="${S}/mysql-test/t/disabled.def" - echo ${testname} : ${reason} >> "${mysql_disable_file}" - ewarn "test '${testname}' disabled: '${reason}'" -} - -# void mysql_init_vars() -# -# Initialize global variables -# 2005-11-19 - -mysql_init_vars() { - MY_SHAREDSTATEDIR=${MY_SHAREDSTATEDIR="/usr/share/mysql"} - MY_SYSCONFDIR=${MY_SYSCONFDIR="/etc/mysql"} - MY_LIBDIR=${MY_LIBDIR="/usr/$(get_libdir)/mysql"} - MY_LOCALSTATEDIR=${MY_LOCALSTATEDIR="/var/lib/mysql"} - MY_LOGDIR=${MY_LOGDIR="/var/log/mysql"} - MY_INCLUDEDIR=${MY_INCLUDEDIR="/usr/include/mysql"} - - if [[ -z "${DATADIR}" ]] ; then - DATADIR="" - if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then - DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ - | sed -ne '/datadir/s|^--datadir=||p' \ - | tail -n1` - if [[ -z "${DATADIR}" ]] ; then - DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ - | sed -e 's/.*=\s*//'` - fi - fi - if [[ -z "${DATADIR}" ]] ; then - DATADIR="${MY_LOCALSTATEDIR}" - einfo "Using default DATADIR" - fi - elog "MySQL DATADIR is ${DATADIR}" - - if [[ -z "${PREVIOUS_DATADIR}" ]] ; then - if [[ -e "${DATADIR}" ]] ; then - elog "Previous datadir found, it's YOUR job to change" - elog "ownership and take care of it" - PREVIOUS_DATADIR="yes" - else - PREVIOUS_DATADIR="no" - fi - export PREVIOUS_DATADIR - fi - fi - - MY_SOURCEDIR=${SERVER_URI##*/} - MY_SOURCEDIR=${MY_SOURCEDIR%.tar*} - - export MY_SHAREDSTATEDIR MY_SYSCONFDIR - export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR - export MY_INCLUDEDIR DATADIR MY_SOURCEDIR -} - -configure_minimal() { - # These are things we exclude from a minimal build, please - # 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 bench berkeley-db row-based-replication" - - for i in ${minimal_exclude_list} ; do - myconf="${myconf} --without-${i}" - done - myconf="${myconf} --with-extra-charsets=none" - myconf="${myconf} --enable-local-infile" - - if use static ; then - myconf="${myconf} --with-client-ldflags=-all-static" - myconf="${myconf} --disable-shared" - else - myconf="${myconf} --enable-shared --enable-static" - fi - - if mysql_version_is_at_least "4.1" && ! use latin1 ; 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 -} - -configure_common() { - myconf="${myconf} $(use_with big-tables)" - myconf="${myconf} --enable-local-infile" - myconf="${myconf} --with-extra-charsets=all" - myconf="${myconf} --with-mysqld-user=mysql" - myconf="${myconf} --with-server" - myconf="${myconf} --with-unix-socket-path=/var/run/mysqld/mysqld.sock" - myconf="${myconf} --without-libwrap" - - if use 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 - - if use debug ; then - myconf="${myconf} --with-debug=full" - else - myconf="${myconf} --without-debug" - mysql_version_is_at_least "4.1.3" \ - && use cluster \ - && myconf="${myconf} --without-ndb-debug" - fi - - if mysql_version_is_at_least "4.1" && ! use latin1 ; 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 - - if use embedded ; then - myconf="${myconf} --with-embedded-privilege-control" - myconf="${myconf} --with-embedded-server" - else - myconf="${myconf} --without-embedded-privilege-control" - myconf="${myconf} --without-embedded-server" - fi - -} - -configure_40_41_50() { - myconf="${myconf} $(use_with perl bench)" - myconf="${myconf} --enable-assembler" - myconf="${myconf} --with-extra-tools" - myconf="${myconf} --with-innodb" - myconf="${myconf} --without-readline" - mysql_version_is_at_least "5.0" || myconf="${myconf} $(use_with raid)" - - # --with-vio is not needed anymore, it's on by default and - # has been removed from configure - if use ssl ; then - mysql_version_is_at_least "5.0.4" || myconf="${myconf} --with-vio" - fi - - myconf="${myconf} $(use_with ssl openssl)" - - # 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 use alpha || use amd64 || use hppa || use mips || use sparc ; then - elog "Berkeley DB support was disabled due to incompatible arch" - myconf="${myconf} --without-berkeley-db" - else - if use berkdb ; then - myconf="${myconf} --with-berkeley-db=./bdb" - else - myconf="${myconf} --without-berkeley-db" - fi - fi - - if mysql_version_is_at_least "4.1.3" ; then - myconf="${myconf} --with-geometry" - myconf="${myconf} $(use_with cluster ndbcluster)" - fi - - if mysql_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 - myconf="${myconf} --with-csv-storage-engine" - - # http://dev.mysql.com/doc/mysql/en/blackhole-storage-engine.html - myconf="${myconf} --with-blackhole-storage-engine" - - # http://dev.mysql.com/doc/mysql/en/federated-storage-engine.html - # 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.0.3" ; then - elog "Before using the Federated storage engine, please be sure to read" - elog "http://dev.mysql.com/doc/mysql/en/federated-limitations.html" - myconf="${myconf} --with-federated-storage-engine" - fi - fi - - mysql_version_is_at_least "5.0.18" \ - && use max-idx-128 \ - && myconf="${myconf} --with-max-indexes=128" -} - -# -# EBUILD FUNCTIONS -# - -pkg_setup() { - enewgroup mysql 60 || die "problem adding 'mysql' group" - enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" - - # Check for USE flag problems in pkg_setup - if use static && use ssl ; then - eerror "MySQL does not support being built statically with SSL support enabled!" - die "MySQL does not support being built statically with SSL support enabled!" - fi - - if ! mysql_version_is_at_least "5.0" \ - && use raid \ - && use static ; then - eerror "USE flags 'raid' and 'static' conflict, you cannot build MySQL statically" - eerror "with RAID support enabled." - die "USE flags 'raid' and 'static' conflict!" - fi - - if mysql_version_is_at_least "4.1.3" \ - && ( use cluster || use extraengine ) \ - && use minimal ; then - eerror "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" - die "USE flags 'cluster' and 'extraengine' conflict with 'minimal' USE flag!" - fi - - mysql_check_version_range "4.0 to 5.0.99.99" \ - && use berkdb \ - && elog "Berkeley DB support is deprecated and will be removed in future versions!" -} - -src_unpack() { - # Initialize the proper variables first - mysql_init_vars - - unpack ${A} - mv -f "${WORKDIR}/${MY_SOURCEDIR}" "${S}" - cd "${S}" - - # Apply the patches for this MySQL version - EPATCH_SUFFIX="patch" - mkdir -p "${EPATCH_SOURCE}" || die "Unable to create epatch directory" - mysql_mv_patches - epatch - - # Additional checks, 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" +inherit mysql - # Make charsets install in the right place - find . -name 'Makefile.am' \ - -exec sed --in-place -e 's!$(pkgdatadir)!'${MY_SHAREDSTATEDIR}'!g' {} \; - - if mysql_version_is_at_least "4.1" ; then - # Remove what needs to be recreated, so we're sure it's actually done - find . -name Makefile \ - -o -name Makefile.in \ - -o -name configure \ - -exec rm -f {} \; - rm -f "ltmain.sh" - rm -f "scripts/mysqlbug" - fi - - local rebuilddirlist d - - rebuilddirlist=". innobase" - - for d in ${rebuilddirlist} ; do - einfo "Reconfiguring dir '${d}'" - pushd "${d}" &>/dev/null - AT_GNUCONF_UPDATE="yes" eautoreconf - popd &>/dev/null - done - - if mysql_check_version_range "4.1 to 5.0.99.99" \ - && use berkdb ; then - [[ -w "bdb/dist/ltmain.sh" ]] && cp -f "ltmain.sh" "bdb/dist/ltmain.sh" - cp -f /usr/share/aclocal/libtool.m4 ${S}/bdb/dist/aclocal/libtool.ac \ - || die "Could not copy in libtool.m4" - pushd "bdb/dist" \ - && sh s_all \ - || die "Failed bdb reconfigure" \ - &>/dev/null - popd &>/dev/null - fi -} - -src_compile() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # $myconf is modified by the configure_* functions - local myconf="" - - if use minimal ; then - configure_minimal - else - configure_common - configure_40_41_50 - fi - - # Bug #114895, bug #110149 - filter-flags "-O" "-O[01]" - - # glib-2.3.2_pre fix, bug #16496 - append-flags "-DHAVE_ERRNO_AS_DEFINE=1" - - CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing" - CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti" - mysql_version_is_at_least "5.0" \ - && CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" - export CXXFLAGS - - econf \ - --libexecdir="/usr/sbin" \ - --sysconfdir="${MY_SYSCONFDIR}" \ - --localstatedir="${MY_LOCALSTATEDIR}" \ - --sharedstatedir="${MY_SHAREDSTATEDIR}" \ - --libdir="${MY_LIBDIR}" \ - --includedir="${MY_INCLUDEDIR}" \ - --with-low-memory \ - --with-client-ldflags=-lstdc++ \ - --enable-thread-safe-client \ - --with-comment="Gentoo Linux ${PF}" \ - --without-docs \ - ${myconf} || die "econf failed" - - # TODO: Move this before autoreconf !!! - find . -type f -name Makefile -print0 \ - | xargs -0 -n100 sed -i \ - -e 's|^pkglibdir *= *$(libdir)/mysql|pkglibdir = $(libdir)|;s|^pkgincludedir *= *$(includedir)/mysql|pkgincludedir = $(includedir)|' - - emake || die "emake failed" -} - -src_install() { - # Make sure the vars are correctly initialized - mysql_init_vars - - emake install DESTDIR="${D}" benchdir_root="${MY_SHAREDSTATEDIR}" || die "emake install failed" - - insinto "${MY_INCLUDEDIR}" - doins "${MY_INCLUDEDIR}"/my_{config,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 (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 - - # Clean up stuff for a minimal build - if use 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" - rm -f "${D}${MY_LIBDIR}"/lib{heap,merge,nisam,my{sys,strings,sqld,isammrg,isam},vio,dbug}.a - fi - - # Configuration stuff - if mysql_version_is_at_least "4.1" ; then - mysql_mycnf_version="4.1" - else - mysql_mycnf_version="4.0" - fi - insinto "${MY_SYSCONFDIR}" - doins scripts/mysqlaccess.conf - sed -e "s!@DATADIR@!${DATADIR}!g" \ - "${FILESDIR}/my.cnf-${mysql_mycnf_version}" \ - > "${TMPDIR}/my.cnf.ok" - if mysql_version_is_at_least "4.1" && use latin1 ; then - sed -e "s|utf8|latin1|g" -i "${TMPDIR}/my.cnf.ok" - fi - newins "${TMPDIR}/my.cnf.ok" my.cnf - - # Minimal builds don't have the MySQL server - if ! use minimal ; then - # Empty directories ... - 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 MySQL server - if ! use 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 scripts/mysql* ; do - [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" - done - fi - - mysql_lib_symlinks "${D}" -} - -pkg_preinst() { - enewgroup mysql 60 || die "problem adding 'mysql' group" - enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" -} - -pkg_postinst() { - # Make sure the vars are correctly initialized - mysql_init_vars - - # Check FEATURES="collision-protect" before removing this - [[ -d "${ROOT}/var/log/mysql" ]] || install -d -m0750 -o mysql -g mysql "${ROOT}${MY_LOGDIR}" - - # Secure the logfiles - touch "${ROOT}${MY_LOGDIR}"/mysql.{log,err} - chown mysql:mysql "${ROOT}${MY_LOGDIR}"/mysql* - chmod 0660 "${ROOT}${MY_LOGDIR}"/mysql* - - # Minimal builds don't have the MySQL server - if ! use 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 scripts/mysql* ; do - [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" - done - - einfo - elog "You might want to run:" - elog "\"emerge --config =${CATEGORY}/${PF}\"" - elog "if this is a new install." - einfo - fi - - mysql_check_version_range "4.0 to 5.0.99.99" \ - && use berkdb \ - && elog "Berkeley DB support is deprecated and will be removed in future versions!" -} - -pkg_config() { - # Make sure the vars are correctly initialized - mysql_init_vars - - [[ -z "${DATADIR}" ]] && die "Sorry, unable to find DATADIR" - - if built_with_use ${CATEGORY}/${PN} minimal ; then - die "Minimal builds do NOT include the MySQL server" - 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 "Retype 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}${MY_SHAREDSTATEDIR}/fill_help_tables.sql" - [[ -r "${help_tables}" ]] \ - && cp "${help_tables}" "${TMPDIR}/fill_help_tables.sql" \ - || touch "${TMPDIR}/fill_help_tables.sql" - help_tables="${TMPDIR}/fill_help_tables.sql" - - pushd "${TMPDIR}" &>/dev/null - "${ROOT}/usr/bin/mysql_install_db" | grep -B5 -A999 -i "ERROR" - popd &>/dev/null - [[ -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.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}" 2>/dev/null - - if [[ -r "${help_tables}" ]] ; then - cat "${help_tables}" >> "${sqltmp}" - fi - fi - - local socket="${ROOT}/var/run/mysqld/mysqld${RANDOM}.sock" - local pidfile="${ROOT}/var/run/mysqld/mysqld${RANDOM}.pid" - local mysqld="${ROOT}/usr/sbin/mysqld \ - ${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, as we don't want clear text passwords in temp files - local sql="UPDATE mysql.user SET Password = PASSWORD('${pwd1}') WHERE USER='root'" - "${ROOT}/usr/bin/mysql" \ - --socket=${socket} \ - -hlocalhost \ - -e "${sql}" - - einfo "Loading \"zoneinfo\", this step may require a few seconds ..." - - "${ROOT}/usr/bin/mysql" \ - --socket=${socket} \ - -hlocalhost \ - -uroot \ - -p"${pwd1}" \ - mysql < "${sqltmp}" - - # Stop the server and cleanup - kill $(< "${pidfile}" ) - rm -f "${sqltmp}" - einfo "Stopping the server ..." - wait %1 - einfo "Done" -} - -pkg_postrm() { - : # mysql_lib_symlinks "${D}" -} +# REMEMBER: also update eclass/mysql*.eclass before committing! +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" src_test() { make check || die "make check failed" -- 2.26.2