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 |
+} |