Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 267359 Details for
Bug 360731
dev-db/percona-server: new package request and proposal
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
percona-server 5.5 ebuild
percona-server-5.5.8_beta20.ebuild (text/plain), 9.94 KB, created by
Thomas Stein
on 2011-03-27 07:55:50 UTC
(
hide
)
Description:
percona-server 5.5 ebuild
Filename:
MIME Type:
Creator:
Thomas Stein
Created:
2011-03-27 07:55:50 UTC
Size:
9.94 KB
patch
obsolete
># Copyright 1999-2010 Gentoo Foundation ># Distributed under the terms of the GNU General Public License v2 > >EAPI=2 > >KEYWORDS="~amd64 ~x86" > >WANT_AUTOCONF="latest" >WANT_AUTOMAKE="latest" > >inherit rpm toolchain-funcs cmake-utils eutils flag-o-matic gnuconfig autotools versionator > >MY_PKG="percona-server" >MY_VER="5.5.8" >#SRC_URI="http://meine-oma.de/${MY_PKG}-${MY_VER}.tar.gz" >SRC_URI="http://www.percona.com/redir/downloads/Percona-Server-5.5/Percona-Server-5.5.8-beta20.0/source/rhel6/Percona-Server-55-5.5.8-beta20.0.46.rhel6.src.rpm" >S=${WORKDIR}/Percona-Server-5.5.8-20.0 > >DESCRIPTION="A fast, multi-threaded, multi-user SQL database server." >HOMEPAGE="http://www.percona.com/" >LICENSE="GPL-2" >SLOT="0" >IUSE="ssl static debug latin1 no-configs archive blackhole" > ># Be warned, *DEPEND are version-dependant ># These are used for both runtime and compiletime >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 "mysql" "mysql-community" "mysql-cluster" "mariadb" ; do > [[ "${i}" == ${PN} ]] || > DEPEND="${DEPEND} !dev-db/${i}" >done > >RDEPEND="${DEPEND} > !no-configs? ( dev-db/mysql-init-scripts )" > >percona_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 "${MY_DATADIR}" ]] ; then > MY_DATADIR="" > if [[ -f "${MY_SYSCONFDIR}/my.cnf" ]] ; then > MY_DATADIR=`"my_print_defaults" mysqld 2>/dev/null \ > | sed -ne '/datadir/s|^--datadir=||p' \ > | tail -n1` > if [[ -z "${MY_DATADIR}" ]] ; then > MY_DATADIR=`grep ^datadir "${MY_SYSCONFDIR}/my.cnf" \ > | sed -e 's/.*=\s*//' \ > | tail -n1` > fi > fi > if [[ -z "${MY_DATADIR}" ]] ; then > MY_DATADIR="${MY_LOCALSTATEDIR}" > einfo "Using default MY_DATADIR" > fi > elog "MySQL MY_DATADIR is ${MY_DATADIR}" > > if [[ -z "${PREVIOUS_DATADIR}" ]] ; then > if [[ -e "${MY_DATADIR}" ]] ; then > # If you get this and you're wondering about it, see bug #207636 > elog "MySQL datadir found in ${MY_DATADIR}" > elog "A new one will not be created." > PREVIOUS_DATADIR="yes" > else > PREVIOUS_DATADIR="no" > fi > export PREVIOUS_DATADIR > fi > fi > > if [ "${MY_SOURCEDIR:-unset}" == "unset" ]; then > MY_SOURCEDIR=${SERVER_URI##*/} > MY_SOURCEDIR=${MY_SOURCEDIR%.tar*} > fi > > export MY_SHAREDSTATEDIR MY_SYSCONFDIR > export MY_LIBDIR MY_LOCALSTATEDIR MY_LOGDIR > export MY_INCLUDEDIR MY_DATADIR MY_SOURCEDIR >} > >mysql_lib_symlinks() { > einfo "Updating MySQL .so symlinks" > local d dirlist maxdots soname sonameln reldir > reldir="${1}" > pushd "${reldir}/usr/$(get_libdir)" &> /dev/null > # dirlist must contain the less significative directory left > dirlist="mysql" > > # waste some time in removing and recreating symlinks > for d in $dirlist ; do > for soname in $( find "${d}" -name "*.so*" -and -not -type "l" 2>/dev/null ) ; do > # maxdot is a limit versus infinite loop > maxdots=0 > sonameln=${soname##*/} > # loop in version of the library to link it, similar to how > # libtool works > while [[ ${sonameln:0-3} != '.so' ]] && [[ ${maxdots} -lt 6 ]] ; do > rm -f "${sonameln}" > ln -s "${soname}" "${sonameln}" > (( ++maxdots )) > sonameln="${sonameln%.*}" > done > rm -f "${sonameln}" > ln -s "${soname}" "${sonameln}" > done > done > popd &> /dev/null >} > >pkg_setup () { > > enewgroup mysql 60 || die "problem adding 'mysql' group" > enewuser mysql 60 -1 /dev/null mysql || die "problem adding 'mysql' user" >} > >src_unpack () { > rpm_src_unpack ${A} > cd "${S}" > >} > >src_configure() { > > percona.cmake_src_configure >} > >src_compile() { > > percona.cmake_src_compile >} > >src_install() { > > percona.cmake_src_install >} > >percona.cmake_src_configure() { > > mycmakeargs=( > -DCMAKE_INSTALL_PREFIX=/usr > -DINSTALL_SBINDIR=sbin > -DINSTALL_BINDIR=bin > -DSYSCONFDIR=/etc/mysql > -DMYSQL_DATADIR=/var/lib/mysql > -DCOMPILATION_COMMENT="Gentoo Linux ${PF}" > -DINSTALL_MYSQLSHAREDIR=share/mysql > -DINSTALL_LIBDIR=lib/mysql > -DINSTALL_PLUGINDIR=lib/mysql/plugin > -DINSTALL_MANDIR=share/man > -DINSTALL_INFODIR=share/info > -DINSTALL_INCLUDEDIR=include/mysql > -DINSTALL_DOCREADMEDIR="share/doc/${PF}" > -DINSTALL_DOCDIR="share/doc/${PF}" > -DINSTALL_SCRIPTDIR="share/doc/${PF}/scripts" > -DINSTALL_SQLBENCHDIR=share/mysql > -DINSTALL_MYSQLTESTDIR=share/mysql-test > -DINSTALL_SUPPORTFILESDIR=share/mysql) > > if use ssl ; then > mycmakeargs+=( -DWITH_SSL=system) > else > mycmakeargs+=( -DWITH_SSL=no) > fi > mycmakeargs+=( > -DWITH-ZLIB=system > -DWITH-READLINE=1 > ) > configure_common_cmake > > CXXFLAGS="${CXXFLAGS} -fno-exceptions -fno-strict-aliasing" > CXXFLAGS="${CXXFLAGS} -felide-constructors -fno-rtti" > CXXFLAGS="${CXXFLAGS} -fno-implicit-templates" > > export CXXFLAGS > > # bug #283926, with GCC4.4, this is required to get correct behavior. > append-flags -fno-strict-aliasing > append-flags -fno-omit-frame-pointer > filter-flags -fomit-frame-pointer > > export CFLAGS > > cmake-utils_src_configure > >} > >configure_common_cmake() { > mycmakeargs+=( > -DENABLED_LOCAL_INFILE=1 > -DEXTRA_CHARSETS=all > -DMYSQL_USER=mysql > -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock > -DWITH_LIBWRAP=0 > -DWITHOUT_SERVER=0) > > if use static ; then > mycmakeargs+=( > -DDISABLE_SHARED=1 > -DWITH_PIC=1) > else > mycmakeargs+=( -DDISABLED_SHARED=0) > fi > > if use debug ; then > mycmakeargs+=( -DCMAKE_BUILD_TYPE=Debug ) > else > mycmakeargs+=( -DCMAKE_BUILD_TYPE=RelWithDebInfo ) > fi > > if use archive ; then > mycmakeargs+=( -DWITH_ARCHIVE_STORAGE_ENGINE=1 ) > else > mycmakeargs+=( -DWITH_ARCHIVE_STORAGE_ENGINE=0 ) > fi > > if use blackhole ; then > mycmakeargs+=( -DWITH_BLACKHOLE_STORAGE_ENGINE=1 ) > else > mycmakeargs+=( -DWITH_BLACKHOLE_STORAGE_ENGINE=0 ) > fi > > if [ -n "${MYSQL_DEFAULT_CHARSET}" -a -n "${MYSQL_DEFAULT_COLLATION}" ]; then > ewarn "You are using a custom charset of ${MYSQL_DEFAULT_CHARSET}" > ewarn "and a collation of ${MYSQL_DEFAULT_COLLATION}." > ewarn "You MUST file bugs without these variables set." > mycmakeargs+=( > -DDEFAULT-CHARSET="${MYSQL_DEFAULT_CHARSET}" > -DDEFAULT-COLLATION="${MYSQL_DEFAULT_COLLATION}") > elif ! use latin1 ; then > mycmakeargs+=( > -DDEFAULT-CHARSET=utf8 > -DDEFAULT-COLLATION=utf8_general_ci) > else > mycmakeargs+=( > -DDEFAULT-CHARSET=latin1 > -DDEFAULT-COLLATION=latin1_swedish_ci) > fi > >} > >percona.cmake_src_compile() { > # Be backwards compatible for now > case ${EAPI:-0} in > 2) : ;; > 0 | 1) percona.cmake_src_configure ;; > esac > > cmake-utils_src_compile > >} > >percona.cmake_src_install() { > # Make sure the vars are correctly initialized > percona_init_vars > cmake-utils_src_install > > # Convenience links > einfo "Making Convenience links for mysqlcheck multi-call binary" > 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) > einfo "Removing duplicate /usr/share/mysql files" > 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}"/${MY_SHAREDSTATEDIR}/${removeme} > done > > # Unless they explicitly specific USE=test, then do not install the > # testsuite. It DOES have a use to be installed, esp. when you want to do a > # validation of your database configuration after tuning it. > if use !test ; then > rm -rf "${D}"/${MY_SHAREDSTATEDIR}/mysql-test > fi > > # Configuration stuff > einfo "Building default my.cnf (${mysql_mycnf_version})" > insinto "${MY_SYSCONFDIR}" > doins scripts/mysqlaccess.conf > #mycnf_src="scripts/my-${mysql_mycnf_version}" > mycnf_src="${S}/support-files/my-huge.cnf.sh" > sed -e "s!@MYSQL_UNIX_ADDR@!/var/run/mysqld/mysqld.sock!g" "${mycnf_src}" > "${TMPDIR}/my.cnf.ok" > sed -e "s!@MYSQL_TCP_PORT@!3306!g" "${TMPDIR}/my.cnf.ok" > "${TMPDIR}/my.cnf-port.ok" > sed '26i\user = mysql' "${TMPDIR}/my.cnf-port.ok" >"${TMPDIR}/my.cnf-user.ok" > sed '27i\basedir = /usr' "${TMPDIR}/my.cnf-user.ok" >"${TMPDIR}/my.cnf-basedir.ok" > sed '28i\datadir = /var/lib/mysql' "${TMPDIR}/my.cnf-basedir.ok" >"${TMPDIR}/my.cnf-datadir.ok" > sed '29i\pid-file = /var/run/mysqld/mysqld.pid' "${TMPDIR}/my.cnf-datadir.ok" >"${TMPDIR}/my.cnf-pid.ok" > sed '30i\log-error = /var/log/mysql/mysqld.err' "${TMPDIR}/my.cnf-pid.ok" >"${TMPDIR}/my.cnf.okay" > if use latin1 ; then > sed -i \ > -e "/character-set/s|utf8|latin1|g" \ > "${TMPDIR}/my.cnf.okay" > fi > newins "${TMPDIR}/my.cnf.okay" my.cnf > > einfo "Creating initial directories" > # Empty directories ... > diropts "-m0750" > if [[ "${PREVIOUS_DATADIR}" != "yes" ]] ; then > dodir "${MY_DATADIR}" > keepdir "${MY_DATADIR}" > chown -R mysql:mysql "${D}/${MY_DATADIR}" > fi > > diropts "-m0755" > for folder in "${MY_LOGDIR}" "/var/run/mysqld" ; do > dodir "${folder}" > keepdir "${folder}" > chown -R mysql:mysql "${D}/${folder}" > done > > # Docs > einfo "Installing docs" > dodoc "${S}"/Docs/ChangeLog > doinfo "${S}"/Docs/mysql.info > > if ! use no-configs ; then > einfo "Including support files and sample configurations" > docinto "support-files" > for script in \ > "${S}"/support-files/my-*.cnf \ > "${S}"/support-files/magic \ > "${S}"/support-files/ndb-config-2-node.ini > do > [[ -f "$script" ]] && dodoc "${script}" > done > > docinto "scripts" > for script in "${S}"/scripts/mysql* ; do > [[ -f "$script" ]] && [[ "${script%.sh}" == "${script}" ]] && dodoc "${script}" > done > > fi > > mysql_lib_symlinks "${D}" >} > >pkg_postinst () { > > einfo > elog "mysql_install_db has been installed to" > elog "/usr/share/doc/percona-server-5.5.8_beta20/scripts/" > elog "" > elog "You can cd there and then issue the command:" > elog "./mysql_install_db --basedir=/usr/" > einfo > > einfo > elog "Please check my.cnf if this is a fresh install" > einfo >} > >percona_pkg_postrm() { > : #mysql_lib_symlinks "${D}" >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 360731
:
267357
|
267359
|
268571
|
268931
|
270655
|
271539
|
276455
|
276575
|
278883
|
283425
|
283427
|
285645
|
286545
|
287347
|
318750
|
318752
|
318764
|
347946