commit:     e3ccd5cdcf12217d37448a857929c6ee28b7b0e4
Author:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
AuthorDate: Fri Aug  2 15:56:14 2019 +0000
Commit:     Thomas Deutschmann <whissi <AT> gentoo <DOT> org>
CommitDate: Fri Aug  2 16:04:04 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e3ccd5cd

dev-db/mysql: update ebuild draft

- Add USE=router to control building of MySQL router program

- Add GLEP 81 support

- Use USE=ssl logic from dev-db/mysql-connector-c (=use bundled
  WolfSSL when no system SSL is used)

- Don't install perror and zlib_decompress man pages (these are
  client tools, i.e. should be installed via dev-db/mysql-connector-c
  package)

- Use CMAKE_POSITION_INDEPENDENT_CODE=ON

- Provide own config files for MySQL v8.0 (mainly because of new
  default charset)

- Update LibreSSL patch

Package-Manager: Portage-2.3.69, Repoman-2.3.16
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org>

 dev-db/mysql/Manifest                              |  2 +-
 dev-db/mysql/files/my.cnf-8.0.distro-client        | 21 +++++++
 dev-db/mysql/files/my.cnf-8.0.distro-server        | 28 +++++++++
 dev-db/mysql/metadata.xml                          |  1 +
 ...-8.0.17_pre.ebuild => mysql-8.0.17_pre1.ebuild} | 72 ++++++++++++----------
 5 files changed, 90 insertions(+), 34 deletions(-)

diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index d07218b8b2b..e62e6cdd338 100644
--- a/dev-db/mysql/Manifest
+++ b/dev-db/mysql/Manifest
@@ -17,4 +17,4 @@ DIST mysql-extras-20181111-2314Z.tar.bz2 329013 BLAKE2B 
fa928b699ef0e6f092e028fc
 DIST mysql-extras-20190303-1852Z.tar.bz2 331026 BLAKE2B 
ee033fce8f1b6a58f1f690710fb9709a585cd45564b35e71d4f840a3a7f83a5d80f53c24236c9976319abd89c68c62c74a7111517f1b9721d3cbd0898bf0dd8d
 SHA512 
30361a0b848ed27f9170b1116458a9bc13b1b585c5fa1933c99927541c31e9bda4008b0563f2fc7db286f998089ebebf1fe3f18fce7a45e62acbf769ac62d8c1
 DIST mysql-extras-20190524-1046Z.tar.bz2 331517 BLAKE2B 
e6d48e34b0a7f7176de8740971f8151923beb20a520df73c22d44005059ef6779ad5aa8437e30018b9bbfe1d6d69043cbd8522b6f3662746205193b44372a6b3
 SHA512 
2f7238578f3aabd1701e1c54da36bc0100c9479871e3c77b22131fd6cde865037307f93b3343ea5e52251c45ef35cdc52cc2dec5a26d44fd41700598282c5c2c
 DIST mysql-extras-20190604-1109Z.tar.bz2 331780 BLAKE2B 
48b6f6ff36818ba3d1d9c0580b0ff5e2343d92a42ee78b6804841d7c4f511adcdc3d5cd0590f769f308ca52e271c07cb34219450f9b86e918ddcd0a4b956e18e
 SHA512 
19a85ba5a4c2de1688f39feb6ce1c1802e4d886436dc02afe1ba508b91365a0ac67d668cf7126588145ee55641992ad71b0d094246a94c89065876b9bb897425
-DIST mysql-extras-20190802-0031Z.tar.bz2 332871 BLAKE2B 
233b25bc0f3fb215c273210f688a9864fe98ace95859d5e5e530d7f9a77a1fa08bdb0ef773fa8db3858b512479e0b13fcbc3cc5bea3ece695393a9db02e3babf
 SHA512 
b74a9058f5ee439cac7063844b2a462e3b0ce6f906198bbb2aa966b93bfc2fb060d1d68cb4c0aafc4d1100338e48befcc53f4f5f74fa59aca305eee5882a971b
+DIST mysql-extras-20190802-1549Z.tar.bz2 335077 BLAKE2B 
c4c4e38d30c9e4e02cdbcf4117f020e044374370bf32f6e013aa37ae6794445f3ef12e46abbdb5fefd85a68fe5af6b417363012a64d1fd97d79d478bb4b3749d
 SHA512 
5c19a9ce9fe0d95788cc25fed0c2f987b46fa85accf7440a569066f4ac1b9f8522a0855fa884a128d7ccee17fecc25f4b16a16b3cd962c39f3670819eef2f6dc

diff --git a/dev-db/mysql/files/my.cnf-8.0.distro-client 
b/dev-db/mysql/files/my.cnf-8.0.distro-client
new file mode 100644
index 00000000000..5325c1a6d8f
--- /dev/null
+++ b/dev-db/mysql/files/my.cnf-8.0.distro-client
@@ -0,0 +1,21 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/50-distro-client.cnf: The global mysql 
configuration file.
+
+# The following options will be passed to all MySQL clients
+[client]
+socket                                         = 
@GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
+character-sets-dir                             = 
@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+loose-default-character-set                    = utf8mb4
+
+[mysql]
+# uncomment the next directive if you are not familiar with SQL
+#safe-updates
+
+[mysqldump]
+quick
+max_allowed_packet                     = 16M
+
+[myisamchk]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets
+
+[myisampack]
+character-sets-dir=@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql/charsets

diff --git a/dev-db/mysql/files/my.cnf-8.0.distro-server 
b/dev-db/mysql/files/my.cnf-8.0.distro-server
new file mode 100644
index 00000000000..248c68e393a
--- /dev/null
+++ b/dev-db/mysql/files/my.cnf-8.0.distro-server
@@ -0,0 +1,28 @@
+# @GENTOO_PORTAGE_EPREFIX@/etc/mysql/50-distro-server.cnf: The global mysql 
configuration file.
+
+# add a section [mysqld-8.0] for specific configurations
+[mysqld]
+character-set-server                           = utf8mb4
+user                                           = mysql
+port                                           = 3306
+socket                                         = 
@GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysqld.sock
+pid-file                                       = 
@GENTOO_PORTAGE_EPREFIX@/var/run/mysqld/mysql.pid
+log-error                                      = 
@GENTOO_PORTAGE_EPREFIX@/var/log/mysql/mysqld.err
+basedir                                                = 
@GENTOO_PORTAGE_EPREFIX@/usr
+datadir                                                = @DATADIR@
+skip-external-locking
+lc_messages_dir                                        = 
@GENTOO_PORTAGE_EPREFIX@/usr/share/mysql
+#Set this to your desired error message language
+lc_messages                                    = en_US
+
+# security:
+# using "localhost" in connects uses sockets by default
+# skip-networking
+bind-address                                   = 127.0.0.1
+
+log-bin
+server-id                                      = 1
+
+# point the following paths to different dedicated disks
+tmpdir                                         = @GENTOO_PORTAGE_EPREFIX@/tmp/
+#log-update                                    = 
@GENTOO_PORTAGE_EPREFIX@/path-to-dedicated-directory/hostname

diff --git a/dev-db/mysql/metadata.xml b/dev-db/mysql/metadata.xml
index d3fabed9ef6..e231245763e 100644
--- a/dev-db/mysql/metadata.xml
+++ b/dev-db/mysql/metadata.xml
@@ -19,6 +19,7 @@ dev-db/mariadb
   <flag name="libressl">Enable SSL connections and crypto functions using 
<pkg>dev-libs/libressl</pkg></flag>
   <flag name="numa">Enable NUMA support using <pkg>sys-process/numactl</pkg> 
(NUMA kernel support is also required)</flag>
   <flag name="profiling">Add support for statement profiling (requires 
USE=community).</flag>
+  <flag name="router">Build the MySQL router program</flag>
   <flag name="server">Build the server program</flag>
   <flag name="systemtap">Build support for profiling and tracing using 
<pkg>dev-util/systemtap</pkg></flag>
   <flag name="test">Install upstream testsuites for end use.</flag>

diff --git a/dev-db/mysql/mysql-8.0.17_pre.ebuild 
b/dev-db/mysql/mysql-8.0.17_pre1.ebuild
similarity index 96%
rename from dev-db/mysql/mysql-8.0.17_pre.ebuild
rename to dev-db/mysql/mysql-8.0.17_pre1.ebuild
index b00696209cb..bc4fb0cad0c 100644
--- a/dev-db/mysql/mysql-8.0.17_pre.ebuild
+++ b/dev-db/mysql/mysql-8.0.17_pre1.ebuild
@@ -2,16 +2,16 @@
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI="7"
-MY_EXTRAS_VER="20190802-0031Z"
+MY_EXTRAS_VER="20190802-1549Z"
 
 CMAKE_MAKEFILE_GENERATOR=emake
 
 # Keeping eutils in EAPI=6 for emktemp in pkg_config
 
 inherit cmake-utils eutils flag-o-matic linux-info \
-       prefix toolchain-funcs user
+       prefix toolchain-funcs
 
-MY_PV="${PV//_pre}"
+MY_PV="${PV//_pre*}"
 MY_P="${PN}-${MY_PV}"
 
 S="${WORKDIR}/${PN}-${MY_PV}"
@@ -32,7 +32,7 @@ DESCRIPTION="A fast, multi-threaded, multi-user SQL database 
server"
 LICENSE="GPL-2"
 SLOT="0/21"
 IUSE="cjk cracklib debug experimental jemalloc latin1 libressl numa +perl 
profiling
-       selinux static static-libs tcmalloc test"
+       router selinux ssl static tcmalloc test"
 
 # Tests always fail when libressl is enabled due to hard-coded ciphers in the 
tests
 RESTRICT="libressl? ( test )"
@@ -74,10 +74,8 @@ COMMON_DEPEND="net-misc/curl:=
        >=app-arch/lz4-0_p131:=
        dev-libs/libedit
        cjk? ( app-text/mecab:= )
-       experimental? (
-               dev-libs/libevent:=
-               net-libs/libtirpc:=
-       )
+       dev-libs/libevent:=
+       net-libs/libtirpc:=
        numa? ( sys-process/numactl )
        >=sys-libs/zlib-1.2.3:0=
        jemalloc? ( dev-libs/jemalloc:0= )
@@ -86,8 +84,10 @@ COMMON_DEPEND="net-misc/curl:=
                sys-process/procps:0=
        )
        tcmalloc? ( dev-util/google-perftools:0= )
-       !libressl? ( >=dev-libs/openssl-1.0.0:0= )
-       libressl? ( dev-libs/libressl:0= )
+       ssl? (
+               !libressl? ( >=dev-libs/openssl-1.0.0:0= )
+               libressl? ( dev-libs/libressl:0= )
+       )
 "
 DEPEND="${COMMON_DEPEND}
        || ( >=sys-devel/gcc-3.4.6 >=sys-devel/gcc-apple-4.0 )
@@ -95,12 +95,18 @@ DEPEND="${COMMON_DEPEND}
        dev-libs/libevent
        experimental? ( net-libs/rpcsvc-proto )
        static? ( sys-libs/ncurses[static-libs] )
-       test? ( dev-perl/JSON )
+       test? (
+               acct-group/mysql acct-user/mysql
+               dev-perl/JSON
+       )
 "
 RDEPEND="${COMMON_DEPEND}
        !dev-db/mariadb !dev-db/mariadb-galera !dev-db/percona-server 
!dev-db/mysql-cluster
        selinux? ( sec-policy/selinux-mysql )
-       !prefix? ( dev-db/mysql-init-scripts )
+       !prefix? (
+               acct-group/mysql acct-user/mysql
+               dev-db/mysql-init-scripts
+       )
 "
 # For other stuff to bring us in
 # dev-perl/DBD-mysql is needed by some scripts installed by MySQL
@@ -229,19 +235,12 @@ src_prepare() {
                echo > "${S}/support-files/SELinux/CMakeLists.txt" || die
        fi
 
-       ## Remove bundled libs so we cannot accidentally use them
-       ## We keep extra/lz4 directory because we use extra/lz4/xxhash.c via 
sql/CMakeLists.txt:394
-       #rm -rv \
-       #       "${S}"/extra/libevent \
-       #       "${S}"/extra/zlib \
-       #       || die
-
-       if use libressl ; then
-               sed -i 's/OPENSSL_MAJOR_VERSION STREQUAL 
"1"/OPENSSL_MAJOR_VERSION STREQUAL "2"/' \
-                       "${S}/cmake/ssl.cmake" || die
-       fi
+       # man pages for client-lib tools we don't install
+       rm \
+               man/perror.1 \
+               man/zlib_decompress.1 \
+               || die
 
-       #sed -i 's~ADD_SUBDIRECTORY(storage/ndb)~~' CMakeLists.txt || die
        cmake-utils_src_prepare
 }
 
@@ -249,9 +248,7 @@ src_configure(){
        # Bug #114895, bug #110149
        filter-flags "-O" "-O[01]"
 
-       append-cflags -fPIC
-
-       append-cxxflags -felide-constructors -fPIC
+       append-cxxflags -felide-constructors
 
        # bug #283926, with GCC4.4, this is required to get correct behavior.
        append-flags -fno-strict-aliasing
@@ -282,6 +279,7 @@ src_configure(){
                ### TODO: make this system but issues with UTF-8 prevent it
                -DWITH_EDITLINE=system
                -DWITH_ZLIB=system
+               -DWITH_SSL=$(usex ssl system wolfssl)
                -DWITH_LIBWRAP=0
                -DENABLED_LOCAL_INFILE=1
                -DMYSQL_UNIX_ADDR="${EPREFIX}/var/run/mysqld/mysqld.sock"
@@ -290,8 +288,10 @@ src_configure(){
                # The build forces this to be defined when cross-compiling. We 
pass it
                # all the time for simplicity and to make sure it is actually 
correct.
                -DSTACK_DIRECTION=$(tc-stack-grows-down && echo -1 || echo 1)
+               -DCMAKE_POSITION_INDEPENDENT_CODE=ON
                -DWITH_CURL=system
                -DWITH_BOOST="${S}/boost"
+               -DWITH_ROUTER=$(usex router ON OFF)
        )
        if use test ; then
                mycmakeargs+=( -DINSTALL_MYSQLTESTDIR=share/mysql/mysql-test )
@@ -299,8 +299,6 @@ src_configure(){
                mycmakeargs+=( -DINSTALL_MYSQLTESTDIR='' )
        fi
 
-       mycmakeargs+=( -DWITH_SSL=system )
-
        mycmakeargs+=( -DWITHOUT_CLIENTLIBS=YES )
 
        # client/mysql.cc:1131:16: error: redefinition of ‘struct _hist_entry’
@@ -318,7 +316,6 @@ src_configure(){
                -DWITH_PROTOBUF=bundled
                -DWITH_MECAB=$(usex cjk system OFF)
                -DWITH_NUMA=$(usex numa ON OFF)
-               -DWITH_RAPID=$(usex experimental ON OFF)
                # Our dev-libs/rapidjson doesn't carry necessary fixes for 
std::regex
                -DWITH_RAPIDJSON=bundled
        )
@@ -548,11 +545,11 @@ src_install() {
        eprefixify "${TMPDIR}/my.cnf"
        doins "${TMPDIR}/my.cnf"
        insinto "${MY_SYSCONFDIR#${EPREFIX}}/mysql.d"
-       cp "${FILESDIR}/my.cnf.distro-client" "${TMPDIR}/50-distro-client.cnf" 
|| die
+       cp "${FILESDIR}/my.cnf-8.0.distro-client" 
"${TMPDIR}/50-distro-client.cnf" || die
        eprefixify "${TMPDIR}/50-distro-client.cnf"
        doins "${TMPDIR}/50-distro-client.cnf"
 
-       mycnf_src="my.cnf.distro-server"
+       mycnf_src="my.cnf-8.0.distro-server"
        sed -e "s!@DATADIR@!${MY_DATADIR}!g" \
                "${FILESDIR}/${mycnf_src}" \
                > "${TMPDIR}/my.cnf.ok" || die
@@ -564,7 +561,7 @@ src_install() {
 
        if use latin1 ; then
                sed -i \
-                       -e "/character-set/s|utf8|latin1|g" \
+                       -e "/character-set/s|utf8mb4|latin1|g" \
                        "${TMPDIR}/my.cnf.ok" || die
        fi
 
@@ -575,6 +572,15 @@ src_install() {
        #Remove mytop if perl is not selected
        [[ -e "${ED}/usr/bin/mytop" ]] && ! use perl && rm -f 
"${ED}/usr/bin/mytop"
 
+       if use router ; then
+               rm -rf \
+                       "${ED}/usr/LICENSE.router" \
+                       "${ED}/usr/README.router" \
+                       "${ED}/usr/run" \
+                       "${ED}/usr/var" \
+                       || die
+       fi
+
        # Kill old libmysqclient_r symlinks if they exist. Time to fix what 
depends on them.
        find "${D}" -name 'libmysqlclient_r.*' -type l -delete || die
 }

Reply via email to