summaryrefslogtreecommitdiff
path: root/dev-db
diff options
context:
space:
mode:
authorThomas Deutschmann <whissi@gentoo.org>2019-08-02 17:56:14 +0200
committerThomas Deutschmann <whissi@gentoo.org>2019-08-02 18:04:04 +0200
commite3ccd5cdcf12217d37448a857929c6ee28b7b0e4 (patch)
tree48f96adb600c558f95cb6dcb9b7a9827fd1c3c97 /dev-db
parentsys-apps/inxi: Drop old (diff)
downloadgentoo-e3ccd5cdcf12217d37448a857929c6ee28b7b0e4.tar.gz
gentoo-e3ccd5cdcf12217d37448a857929c6ee28b7b0e4.tar.bz2
gentoo-e3ccd5cdcf12217d37448a857929c6ee28b7b0e4.zip
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@gentoo.org>
Diffstat (limited to 'dev-db')
-rw-r--r--dev-db/mysql/Manifest2
-rw-r--r--dev-db/mysql/files/my.cnf-8.0.distro-client21
-rw-r--r--dev-db/mysql/files/my.cnf-8.0.distro-server28
-rw-r--r--dev-db/mysql/metadata.xml1
-rw-r--r--dev-db/mysql/mysql-8.0.17_pre1.ebuild (renamed from dev-db/mysql/mysql-8.0.17_pre.ebuild)72
5 files changed, 90 insertions, 34 deletions
diff --git a/dev-db/mysql/Manifest b/dev-db/mysql/Manifest
index d07218b8b2bd..e62e6cdd3383 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 000000000000..5325c1a6d8fd
--- /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 000000000000..248c68e393ad
--- /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 d3fabed9ef6b..e231245763ea 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
index b00696209cb5..bc4fb0cad0c3 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
}