b4ee46b15657a9ed9ab32e3e0a170c3f69a1423b
[gentoo.git] / dev-db / mysql-connector-c / mysql-connector-c-8.0.19.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 inherit cmake-multilib
7
8 # wrap the config script
9 MULTILIB_CHOST_TOOLS=( /usr/bin/mysql_config )
10
11 DESCRIPTION="C client library for MariaDB/MySQL"
12 HOMEPAGE="https://dev.mysql.com/downloads/"
13 LICENSE="GPL-2"
14
15 SRC_URI="https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-${PV}.tar.gz"
16 KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ppc ~ppc64 s390 ~sh sparc x86"
17
18 SLOT="0/21"
19 IUSE="ldap libressl static-libs"
20
21 RDEPEND="
22         >=app-arch/lz4-0_p131:=
23         sys-libs/zlib:=[${MULTILIB_USEDEP}]
24         ldap? ( dev-libs/cyrus-sasl:=[${MULTILIB_USEDEP}] )
25         libressl? ( dev-libs/libressl:0=[${MULTILIB_USEDEP}] )
26         !libressl? ( dev-libs/openssl:0=[${MULTILIB_USEDEP}] )
27         "
28 DEPEND="${RDEPEND}"
29
30 # Avoid file collisions, #692580
31 RDEPEND+=" !<dev-db/mysql-5.6.45-r1"
32 RDEPEND+=" !=dev-db/mysql-5.7.23*"
33 RDEPEND+=" !=dev-db/mysql-5.7.24*"
34 RDEPEND+=" !=dev-db/mysql-5.7.25*"
35 RDEPEND+=" !=dev-db/mysql-5.7.26-r0"
36 RDEPEND+=" !=dev-db/mysql-5.7.27-r0"
37 RDEPEND+=" !<dev-db/percona-server-5.7.26.29-r1"
38
39 DOCS=( README )
40
41 S="${WORKDIR}/mysql-${PV}"
42
43 PATCHES=(
44         "${FILESDIR}"/${PN}-8.0.18-always-build-decompress-utilities.patch
45         "${FILESDIR}"/${PN}-8.0.17-use-relative-include-path-for-udf_registration_types-h.patch
46         "${FILESDIR}"/${PN}-8.0.19-do-not-install-comp_err.patch
47         "${FILESDIR}"/${PN}-8.0.19-libressl.patch
48 )
49
50 src_prepare() {
51         sed -i -e 's/CLIENT_LIBS/CONFIG_CLIENT_LIBS/' "${S}/scripts/CMakeLists.txt" || die
52
53         # All these are for the server only.
54         # Disable rpm call which would trigger sandbox, #692368
55         sed -i \
56                 -e '/MYSQL_CHECK_LIBEVENT/d' \
57                 -e '/MYSQL_CHECK_RAPIDJSON/d' \
58                 -e '/MYSQL_CHECK_ICU/d' \
59                 -e '/MYSQL_CHECK_EDITLINE/d' \
60                 -e '/MYSQL_CHECK_CURL/d' \
61                 -e '/ADD_SUBDIRECTORY(man)/d' \
62                 -e '/ADD_SUBDIRECTORY(share)/d' \
63                 -e '/INCLUDE(cmake\/boost/d' \
64                 -e 's/MY_RPM rpm/MY_RPM rpmNOTEXISTENT/' \
65                 CMakeLists.txt || die
66
67         # Skip building clients
68         echo > client/CMakeLists.txt || die
69
70         # Forcefully disable auth plugin
71         if ! use ldap ; then
72                 sed -i -e '/MYSQL_CHECK_SASL/d' CMakeLists.txt || die
73                 echo > libmysql/authentication_ldap/CMakeLists.txt || die
74         fi
75
76         cmake-utils_src_prepare
77 }
78
79 multilib_src_configure() {
80         local mycmakeargs=(
81                 -DINSTALL_LAYOUT=RPM
82                 -DINSTALL_LIBDIR=$(get_libdir)
83                 -DWITH_DEFAULT_COMPILER_OPTIONS=OFF
84                 -DWITH_DEFAULT_FEATURE_SET=OFF
85                 -DENABLED_LOCAL_INFILE=ON
86                 -DMYSQL_UNIX_ADDR="${EPREFIX}/run/mysqld/mysqld.sock"
87                 -DWITH_ZLIB=system
88                 -DWITH_SSL=system
89                 -DWITH_NUMA=OFF
90                 -DLIBMYSQL_OS_OUTPUT_NAME=mysqlclient
91                 -DSHARED_LIB_PATCH_VERSION="0"
92                 -DCMAKE_POSITION_INDEPENDENT_CODE=ON
93                 -DWITHOUT_SERVER=ON
94         )
95         cmake-utils_src_configure
96 }
97
98 multilib_src_install() {
99         cmake-utils_src_install
100 }
101
102 multilib_src_install_all() {
103         doman \
104                 man/my_print_defaults.1 \
105                 man/perror.1 \
106                 man/zlib_decompress.1
107
108         if ! use static-libs ; then
109                 find "${ED}" -name "*.a" -delete || die
110         fi
111 }