Gentoo Archives: gentoo-commits

From: David Seifert <soap@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/percona-xtrabackup/, dev-db/percona-xtrabackup/files/
Date: Mon, 03 Apr 2017 21:15:39
Message-Id: 1491254113.a572009f71a0a16e50f0a250d6a00b6912e44e82.soap@gentoo
1 commit: a572009f71a0a16e50f0a250d6a00b6912e44e82
2 Author: David Seifert <soap <AT> gentoo <DOT> org>
3 AuthorDate: Mon Apr 3 21:12:30 2017 +0000
4 Commit: David Seifert <soap <AT> gentoo <DOT> org>
5 CommitDate: Mon Apr 3 21:15:13 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a572009f
7
8 dev-db/percona-xtrabackup: [QA] Unbundle boost, fix ebuild
9
10 * Use cmake-utils.eclass instead of calling cmake explicitly
11 * Fix building with GCC 6
12 * Unbundle
13 - Boost
14 - lz4
15 - libedit
16 - libevent
17 - zlib
18 * Install README using einstalldocs
19
20 Package-Manager: Portage-2.3.5, Repoman-2.3.2
21
22 ...percona-xtrabackup-2.4.6-fix-gcc6-isystem.patch | 112 +++++++++++++++++++++
23 ...rabackup-2.4.6-remove-boost-version-check.patch | 19 ++++
24 .../percona-xtrabackup-2.4.6-r1.ebuild | 75 ++++++++++++++
25 3 files changed, 206 insertions(+)
26
27 diff --git a/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-fix-gcc6-isystem.patch b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-fix-gcc6-isystem.patch
28 new file mode 100644
29 index 00000000000..6418e34a8d6
30 --- /dev/null
31 +++ b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-fix-gcc6-isystem.patch
32 @@ -0,0 +1,112 @@
33 +Do not use -isystem to add headers, as they break GCC 6's header wrapping.
34 +See also: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129
35 +
36 +--- a/client/base/CMakeLists.txt
37 ++++ b/client/base/CMakeLists.txt
38 +@@ -49,7 +49,7 @@
39 + mutex.cc
40 + mysql_query_runner.cc
41 + show_variable_query_extractor.cc
42 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
43 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
44 + )
45 +
46 + TARGET_LINK_LIBRARIES(client_base mysqlclient)
47 +--- a/client/CMakeLists.txt
48 ++++ b/client/CMakeLists.txt
49 +@@ -52,7 +52,7 @@
50 + upgrade/program.cc
51 + )
52 + ADD_COMPILE_FLAGS(
53 +- upgrade/program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
54 ++ upgrade/program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
55 + )
56 + TARGET_LINK_LIBRARIES(mysql_upgrade mysqlclient client_base mysqlcheck_core)
57 + ADD_DEPENDENCIES(mysql_upgrade GenFixPrivs GenSysSchema)
58 +--- a/client/dump/CMakeLists.txt
59 ++++ b/client/dump/CMakeLists.txt
60 +@@ -68,7 +68,7 @@
61 + ADD_COMPILE_FLAGS(
62 + ${BOOST_LIB_SOURCES}
63 + ${BOOST_THREAD_SOURCES}
64 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
65 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
66 + )
67 +
68 + IF(HAVE_clock_gettime_IN_rt)
69 +@@ -163,7 +163,7 @@
70 +
71 + ADD_COMPILE_FLAGS(
72 + ${MYSQLPUMP_LIB_SOURCES}
73 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
74 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
75 + )
76 +
77 + # Files that use Boost sources that trigger compilation warnings
78 +@@ -199,7 +199,7 @@
79 + )
80 + MYSQL_ADD_EXECUTABLE(mysqlpump program.cc)
81 + ADD_COMPILE_FLAGS(
82 +- program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
83 ++ program.cc COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
84 + )
85 +
86 + TARGET_LINK_LIBRARIES(mysqlpump mysqlpump_lib ${LOCAL_BOOST_LIB})
87 +--- a/libmysqld/CMakeLists.txt
88 ++++ b/libmysqld/CMakeLists.txt
89 +@@ -115,7 +115,7 @@
90 + ../sql/item_geofunc_setops.cc
91 + ../sql/item_json_func.cc
92 + ../sql/spatial.cc
93 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
94 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
95 + )
96 +
97 + # Fixes "C1128: number of sections exceeded object file format limit" in MSVC /MD
98 +--- a/sql/CMakeLists.txt
99 ++++ b/sql/CMakeLists.txt
100 +@@ -309,7 +309,7 @@
101 + item_geofunc_setops.cc
102 + item_json_func.cc
103 + spatial.cc
104 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
105 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
106 + )
107 +
108 + # Fixes "C1128: number of sections exceeded object file format limit" in MSVC /MD
109 +--- a/storage/innobase/xtrabackup/src/CMakeLists.txt
110 ++++ b/storage/innobase/xtrabackup/src/CMakeLists.txt
111 +@@ -68,7 +68,7 @@
112 + ../../../../plugin/keyring/keyring_key.cc
113 + ../../../../plugin/keyring/buffered_file_io.cc
114 + ../../../../plugin/keyring/keys_container.cc
115 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
116 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
117 + )
118 +
119 + ADD_COMPILE_FLAGS(
120 +--- a/unittest/gunit/CMakeLists.txt
121 ++++ b/unittest/gunit/CMakeLists.txt
122 +@@ -378,7 +378,7 @@
123 + ENDIF()
124 + ADD_COMPILE_FLAGS(
125 + ${MERGE_SMALL_TESTS}
126 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
127 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
128 + )
129 + INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
130 +
131 +@@ -453,11 +453,11 @@
132 + ENDIF()
133 + ADD_COMPILE_FLAGS(
134 + bounded_queue-t.cc
135 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
136 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
137 + )
138 + ADD_COMPILE_FLAGS(
139 + pump_object_filter-t.cc
140 +- COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -isystem ${BOOST_INCLUDE_DIR}
141 ++ COMPILE_FLAGS -I${BOOST_PATCHES_DIR} -I${BOOST_INCLUDE_DIR}
142 + )
143 +
144 + FOREACH(test ${SERVER_TESTS})
145
146 diff --git a/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-remove-boost-version-check.patch b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-remove-boost-version-check.patch
147 new file mode 100644
148 index 00000000000..48a7fcc783f
149 --- /dev/null
150 +++ b/dev-db/percona-xtrabackup/files/percona-xtrabackup-2.4.6-remove-boost-version-check.patch
151 @@ -0,0 +1,19 @@
152 +Remove Boost version check which makes using the
153 +system boost libraries close to impossible.
154 +
155 +--- a/cmake/boost.cmake
156 ++++ b/cmake/boost.cmake
157 +@@ -262,13 +262,6 @@
158 + COULD_NOT_FIND_BOOST()
159 + ENDIF()
160 +
161 +-IF(NOT BOOST_MINOR_VERSION EQUAL 59)
162 +- MESSAGE(WARNING "Boost minor version found is ${BOOST_MINOR_VERSION} "
163 +- "we need 59"
164 +- )
165 +- COULD_NOT_FIND_BOOST()
166 +-ENDIF()
167 +-
168 + MESSAGE(STATUS "BOOST_INCLUDE_DIR ${BOOST_INCLUDE_DIR}")
169 +
170 + # We have a limited set of patches/bugfixes here:
171
172 diff --git a/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.6-r1.ebuild b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.6-r1.ebuild
173 new file mode 100644
174 index 00000000000..d77219973f4
175 --- /dev/null
176 +++ b/dev-db/percona-xtrabackup/percona-xtrabackup-2.4.6-r1.ebuild
177 @@ -0,0 +1,75 @@
178 +# Copyright 1999-2017 Gentoo Foundation
179 +# Distributed under the terms of the GNU General Public License v2
180 +
181 +EAPI=6
182 +
183 +inherit cmake-utils flag-o-matic
184 +
185 +DESCRIPTION="Hot backup utility for MySQL based servers"
186 +HOMEPAGE="https://www.percona.com/software/mysql-database/percona-xtrabackup"
187 +SRC_URI="https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-${PV}/source/tarball/${P}.tar.gz"
188 +
189 +LICENSE="GPL-2"
190 +SLOT="0"
191 +KEYWORDS="~amd64 ~x86"
192 +IUSE=""
193 +
194 +DEPEND="
195 + app-arch/lz4:0=
196 + app-editors/vim-core
197 + >=dev-libs/boost-1.59.0:=
198 + dev-libs/libaio
199 + dev-libs/libedit
200 + dev-libs/libevent:0=
201 + dev-libs/libgcrypt:0=
202 + dev-libs/libgpg-error
203 + dev-libs/openssl:0=
204 + dev-python/sphinx
205 + net-misc/curl
206 + sys-libs/zlib"
207 +RDEPEND="${DEPEND}
208 + !dev-db/xtrabackup-bin
209 + dev-perl/DBD-mysql"
210 +
211 +PATCHES=(
212 + "${FILESDIR}"/${PN}-2.4.6-remove-boost-version-check.patch
213 + "${FILESDIR}"/${PN}-2.4.6-fix-gcc6-isystem.patch
214 +)
215 +
216 +src_prepare() {
217 + cmake-utils_src_prepare
218 +
219 + # remove bundled lz4, boost, libedit, libevent, zlib
220 + # just to be safe...
221 + rm -r extra/lz4 include/boost_1_59_0 \
222 + cmd-line-utils/libedit libevent zlib || die
223 +}
224 +
225 +src_configure() {
226 + # Needed, due to broken handling of CMAKE_BUILD_TYPE leading to
227 + #
228 + # error: 'fts_ast_node_type_get' was not declared in this scope
229 + #
230 + append-cppflags -DDBUG_OFF
231 +
232 + local mycmakeargs=(
233 + -DBUILD_CONFIG=xtrabackup_release
234 + -DWITH_EDITLINE=system
235 + -DWITH_LIBEVENT=system
236 + -DWITH_LZ4=system
237 + -DWITH_SSL=bundled # uses yassl, which isn't packaged
238 + -DWITH_ZLIB=system
239 + -DWITH_PIC=ON
240 + )
241 + cmake-utils_src_configure
242 +}
243 +
244 +src_install() {
245 + local p="${BUILD_DIR}/storage/innobase/xtrabackup"
246 +
247 + dobin "${p}"/src/{xbcloud,xbcrypt,xbstream,xtrabackup}
248 + dosym xtrabackup /usr/bin/innobackupex
249 +
250 + einstalldocs
251 + doman "${p}"/doc/source/build/man/*
252 +}