mariadb: bump to major version 10.4
[feed/packages.git] / utils / mariadb / Makefile
1 #
2 # Copyright (C) 2018 Sebastian Kemper <sebastian_ml@gmx.net>
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=mariadb
11 PKG_VERSION:=10.4.10
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL := \
16 https://mirror.netcologne.de/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
17 https://mirror.lstn.net/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
18 https://ftp.yz.yamagata-u.ac.jp/pub/dbms/mariadb/$(PKG_NAME)-$(PKG_VERSION)/source \
19 https://downloads.mariadb.org/interstitial/$(PKG_NAME)-$(PKG_VERSION)/source
20
21 PKG_HASH:=cd50fddf86c2a47405737e342f78ebd40d5716f0fb32b976245de713bed01421
22 PKG_MAINTAINER:=Sebastian Kemper <sebastian_ml@gmx.net>
23 PKG_LICENSE:=GPL-2.0 LGPL-2.1
24 PKG_LICENSE_FILES:=COPYING THIRDPARTY libmariadb/COPYING.LIB
25
26 PKG_CPE_ID:=cpe:/a:mariadb:mariadb
27
28 HOST_BUILD_PARALLEL:=1
29 PKG_BUILD_PARALLEL:=1
30 PKG_USE_MIPS16:=0
31
32 HOST_BUILD_DEPENDS:=libxml2/host
33 # Without libevent2 tests/async_queries sporadically fails on the bots
34 PKG_BUILD_DEPENDS:=libevent2 mariadb/host
35
36 CMAKE_INSTALL:=1
37
38 CONF_DIR:=/etc/mysql
39 PLUGIN_DIR:=/usr/lib/mariadb/plugin
40 SHARE_DIR:=/usr/share/mariadb
41
42 MARIADB_SOCKET=/var/run/mysqld/mysqld.sock
43
44 MARIADB_DISABLE_ENGINES := \
45 cassandra \
46 example \
47 mroonga \
48 oqgraph \
49 rocksdb \
50 test_sql_discovery \
51 tokudb
52
53 MARIADB_DISABLE_PLUGINS := \
54 audit_null \
55 auth_examples \
56 aws_key_management \
57 cracklib_password_check \
58 daemon_example \
59 debug_key_management \
60 example_key_management \
61 fulltext \
62 versioning
63
64 MARIADB_LIB_PLUGINS := \
65 auth_gssapi_client
66
67 MARIADB_SERVER_PLUGINS := \
68 auth_ed25519 \
69 auth_gssapi \
70 auth_pam \
71 auth_pam_v1 \
72 disks \
73 feedback \
74 file_key_management \
75 ha_archive \
76 ha_blackhole \
77 ha_connect \
78 ha_federated \
79 ha_federatedx \
80 ha_sphinx \
81 ha_spider \
82 handlersocket \
83 locales \
84 metadata_lock_info \
85 query_cache_info \
86 query_response_time \
87 server_audit \
88 simple_password_check \
89 sql_errlog \
90 wsrep_info
91
92 PKG_CONFIG_DEPENDS := \
93 $(patsubst %,CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-%,$(subst _,-,$(MARIADB_LIB_PLUGINS))) \
94 $(patsubst %,CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-%,$(subst _,-,$(MARIADB_SERVER_PLUGINS))) \
95 CONFIG_PACKAGE_mariadb-server
96
97 plugin-auth_gssapi_client := PLUGIN_AUTH_GSSAPI_CLIENT
98
99 plugin-auth_ed25519 := PLUGIN_AUTH_ED25519
100 plugin-auth_gssapi := PLUGIN_AUTH_GSSAPI
101 plugin-auth_pam := PLUGIN_AUTH_PAM
102 plugin-auth_pam_v1 := PLUGIN_AUTH_PAM_V1
103 plugin-disks := PLUGIN_DISKS
104 plugin-feedback := PLUGIN_FEEDBACK
105 plugin-file_key_management := PLUGIN_FILE_KEY_MANAGEMENT
106 plugin-ha_archive := PLUGIN_ARCHIVE
107 plugin-ha_blackhole := PLUGIN_BLACKHOLE
108 plugin-ha_connect := PLUGIN_CONNECT
109 plugin-ha_federated := PLUGIN_FEDERATED
110 plugin-ha_federatedx := PLUGIN_FEDERATEDX
111 plugin-ha_sphinx := PLUGIN_SPHINX
112 plugin-ha_spider := PLUGIN_SPIDER
113 plugin-handlersocket := PLUGIN_HANDLERSOCKET
114 plugin-locales := PLUGIN_LOCALES
115 plugin-metadata_lock_info := PLUGIN_METADATA_LOCK_INFO
116 plugin-query_cache_info := PLUGIN_QUERY_CACHE_INFO
117 plugin-query_response_time := PLUGIN_QUERY_RESPONSE_TIME
118 plugin-server_audit := PLUGIN_SERVER_AUDIT
119 plugin-simple_password_check := PLUGIN_SIMPLE_PASSWORD_CHECK
120 plugin-sql_errlog := PLUGIN_SQL_ERRLOG
121 plugin-wsrep_info := PLUGIN_WSREP_INFO
122
123 MARIADB_CLIENT := \
124 mysql \
125 mysqlcheck
126
127 MARIADB_CLIENT_EXTRA := \
128 mysql_find_rows \
129 mysql_waitpid \
130 mysqlaccess \
131 mysqladmin \
132 mysqldump \
133 mysqlimport \
134 mysqlshow \
135 mysqlslap \
136 mytop
137
138 MARIADB_SERVER := \
139 innochecksum \
140 my_print_defaults \
141 mysql_install_db \
142 mysql_upgrade \
143 mysqld
144
145 MARIADB_SERVER_EXTRA := \
146 aria_chk \
147 aria_dump_log \
148 aria_ftdump \
149 aria_pack \
150 aria_read_log \
151 mariabackup \
152 msql2mysql \
153 myisam_ftdump \
154 myisamchk \
155 myisamlog \
156 myisampack \
157 mysql_convert_table_format \
158 mysql_fix_extensions \
159 mysql_plugin \
160 mysql_secure_installation \
161 mysql_setpermission \
162 mysql_tzinfo_to_sql \
163 mysqlbinlog \
164 mysqld_multi \
165 mysqldumpslow \
166 mysqlhotcopy \
167 perror \
168 replace \
169 resolve_stack_dump \
170 wsrep_sst_mariabackup \
171 wsrep_sst_mysqldump \
172 wsrep_sst_rsync \
173 wsrep_sst_rsync_wan
174
175 include $(INCLUDE_DIR)/package.mk
176 include $(INCLUDE_DIR)/host-build.mk
177 include $(INCLUDE_DIR)/cmake.mk
178 include $(INCLUDE_DIR)/nls.mk
179
180 MARIADB_COMMON_DEPENDS := \
181 $(ICONV_DEPENDS) \
182 +libopenssl \
183 +zlib
184
185 MARIADB_COMMON_DEPENDS_EXE := \
186 $(MARIADB_COMMON_DEPENDS) \
187 +libatomic \
188 +libstdcpp
189
190 # Pass CPPFLAGS in the CFLAGS as otherwise the build system will
191 # ignore them.
192 TARGET_CFLAGS+=$(TARGET_CPPFLAGS)
193
194 define Package/mariadb/disable/engine
195 echo > $(1)/storage/$(2)/CMakeLists.txt
196 endef
197
198 define Package/mariadb/disable/plugin
199 echo > $(1)/plugin/$(2)/CMakeLists.txt
200 endef
201
202 define Package/mariadb/install/bin
203 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $(1)/usr/bin
204 cd "$(PKG_INSTALL_DIR)/usr/bin"; find . -maxdepth 1 -type l \
205 -regex './$(subst mysql,mariadb[-]*,$(subst _,-,$(2)))' \
206 | xargs -I{} $(CP) {} "$(1)/usr/bin"
207 endef
208
209 define Package/mariadb/install/plugin
210 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/$(2).so $(1)$(PLUGIN_DIR)
211 endef
212
213 define Package/mariadb/description/Default
214 MariaDB is a very fast and robust SQL database server.
215 endef
216
217 define Package/libmariadb/Default
218 SECTION:=libs
219 CATEGORY:=Libraries
220 URL:=https://mariadb.org/
221 endef
222
223 define Package/libmariadb
224 $(call Package/libmariadb/Default)
225 DEPENDS:=+mariadb-common \
226 $(MARIADB_COMMON_DEPENDS)
227 TITLE:=MariaDB database client library
228 MENU:=1
229 PROVIDES:=libmariadbclient libmysqlclient libmysqlclient-r
230 endef
231
232 define Package/libmariadb/conffiles
233 $(CONF_DIR)/conf.d/50-client.cnf
234 endef
235
236 define Package/libmariadb/description
237 $(call Package/mariadb/description/Default)
238
239 This package includes the client library.
240
241 endef
242
243 define Package/mariadb/Default
244 SECTION:=utils
245 CATEGORY:=Utilities
246 URL:=https://mariadb.org/
247 SUBMENU:=Database
248 endef
249
250 define Package/mariadb-client
251 $(call Package/mariadb/Default)
252 TITLE:=MariaDB database client
253 MENU:=1
254 DEPENDS:=mariadb-client-base
255 endef
256
257 define Package/mariadb-client/description
258 $(call Package/mariadb/description/Default)
259
260 This package includes the following core client binaries:
261
262 $(subst $(space),$(newline),$(MARIADB_CLIENT))
263
264 endef
265
266 define Package/mariadb-client-base
267 $(call Package/mariadb/Default)
268 TITLE:=MariaDB database client base
269 DEPENDS:=mariadb-common \
270 $(MARIADB_COMMON_DEPENDS_EXE) \
271 +libedit
272 endef
273
274 define Package/mariadb-client-base/conffiles
275 $(CONF_DIR)/conf.d/50-mysql-clients.cnf
276 endef
277
278 define Package/mariadb-client-base/description
279 $(call Package/mariadb/description/Default)
280
281 This package provides the foundation for mariadb-client. It installs the
282 configuration and the dependencies.
283
284 endef
285
286 define Package/mariadb-client-extra
287 $(call Package/mariadb/Default)
288 TITLE:=MariaDB database client extra
289 DEPENDS:=mariadb-client
290 endef
291
292 define Package/mariadb-client-extra/description
293 $(call Package/mariadb/description/Default)
294
295 This package includes the following extra client binaries:
296
297 $(subst $(space),$(newline),$(MARIADB_CLIENT_EXTRA))
298
299 endef
300
301 define Package/mariadb-common
302 $(call Package/mariadb/Default)
303 TITLE:=MariaDB database common files
304 DEPENDS:=
305 endef
306
307 define Package/mariadb-common/conffiles
308 $(CONF_DIR)/my.cnf
309 endef
310
311 define Package/mariadb-common/description
312 $(call Package/mariadb/description/Default)
313
314 This package includes shared files, for example $(CONF_DIR)/my.cnf.
315
316 endef
317
318 define Package/mariadb-server
319 $(call Package/mariadb/Default)
320 DEPENDS:=mariadb-server-base
321 TITLE:=MariaDB database server
322 MENU:=1
323 PROVIDES:=mysql-server
324 endef
325
326 define Package/mariadb-server/description
327 $(call Package/mariadb/description/Default)
328
329 This package includes the following core server binaries:
330
331 $(subst $(space),$(newline),$(MARIADB_SERVER))
332
333 endef
334
335 define Package/mariadb-server-base
336 $(call Package/mariadb/Default)
337 DEPENDS:=mariadb-common \
338 $(MARIADB_COMMON_DEPENDS_EXE) \
339 +libaio \
340 +liblzma \
341 +libpcre \
342 +resolveip
343 TITLE:=MariaDB database server base
344 USERID:=mariadb=376:mariadb=376
345 endef
346
347 define Package/mariadb-server-base/conffiles
348 $(CONF_DIR)/conf.d/50-server.cnf
349 $(CONF_DIR)/conf.d/60-galera.cnf
350 /etc/config/mysqld
351 endef
352
353 define Package/mariadb-server-base/description
354 $(call Package/mariadb/description/Default)
355
356 This package provides the foundation for mariadb-server. It installs the
357 init script, support files (configuration etc.), the user "mariadb" and
358 the dependencies.
359
360 endef
361
362 define Package/mariadb-server-extra
363 $(call Package/mariadb/Default)
364 TITLE:=MariaDB database server extra
365 DEPENDS:=mariadb-server
366 endef
367
368 define Package/mariadb-server-extra/description
369 $(call Package/mariadb/description/Default)
370
371 This package includes the following extra server binaries:
372
373 $(subst $(space),$(newline),$(MARIADB_SERVER_EXTRA))
374
375 endef
376
377 # We won't need unit tests
378 CMAKE_OPTIONS += -DWITH_UNIT_TESTS=0
379
380 # This value is determined automatically during straight compile by compiling
381 # and running a test code. You cannot do that during cross-compile. However the
382 # stack grows downward in most if not all modern systems. The only exception
383 # according to buildroot is PA-RISC which is not supported by OpenWrt as far as
384 # I know. Therefore it makes sense to hardcode the value. If an arch is added
385 # the stack of which grows up one should expect unpredictable behavior at run
386 # time.
387 CMAKE_OPTIONS += -DSTACK_DIRECTION=-1
388
389 # Make it explicit that we are cross-compiling
390 CMAKE_OPTIONS += -DCMAKE_CROSSCOMPILING=1
391
392 # Explicitly disable dtrace to avoid detection of a host version
393 CMAKE_OPTIONS += -DENABLE_DTRACE=0
394
395 # Prevent MariaDB from messing with OpenWrt's C(XX)FLAGS
396 CMAKE_OPTIONS += -DSECURITY_HARDENED=OFF
397
398 ifeq ($(CONFIG_PACKAGE_mariadb-server),)
399 CMAKE_OPTIONS += -DWITHOUT_SERVER=ON
400 else
401 # Enable the auth_socket plugin and let unix user root access MariaDB without a
402 # separate password.
403 CMAKE_OPTIONS += -DWITHOUT_SERVER=OFF -DPLUGIN_AUTH_SOCKET=STATIC
404 endif
405
406 CMAKE_OPTIONS += \
407 -DCONNECT_WITH_JDBC=NO \
408 -DCONNECT_WITH_LIBXML2=system \
409 -DCONNECT_WITH_MONGO=NO \
410 -DCONNECT_WITH_ODBC=NO \
411 -DDISABLE_SHARED=NO \
412 -DENABLED_PROFILING=OFF \
413 -DENABLE_STATIC_LIBS=OFF \
414 -DINSTALL_DOCDIR=share/doc/mariadb \
415 -DINSTALL_DOCREADMEDIR=share/doc/mariadb \
416 -DINSTALL_INFODIR=share/info \
417 -DINSTALL_MANDIR=share/man \
418 -DINSTALL_MYSQLSHAREDIR=share/mariadb \
419 -DINSTALL_MYSQLTESTDIR="" \
420 -DINSTALL_PLUGINDIR=lib/mariadb/plugin \
421 -DINSTALL_SBINDIR=bin \
422 -DINSTALL_SCRIPTDIR=bin \
423 -DINSTALL_SQLBENCHDIR="" \
424 -DINSTALL_SUPPORTFILESDIR=share/mariadb \
425 -DINSTALL_UNIX_ADDRDIR=$(MARIADB_SOCKET) \
426 -DMYSQL_DATADIR=/var/lib/mysql \
427 -DMYSQL_UNIX_ADDR=$(MARIADB_SOCKET) \
428 -DSKIP_TESTS=ON \
429 -DWITH_DEBUG=OFF \
430 -DWITH_EMBEDDED_SERVER=OFF \
431 -DWITH_INNODB_BZIP2=OFF \
432 -DWITH_INNODB_LZ4=OFF \
433 -DWITH_INNODB_LZMA=ON \
434 -DWITH_INNODB_LZO=OFF \
435 -DWITH_INNODB_SNAPPY=OFF \
436 -DWITH_JEMALLOC=OFF \
437 -DWITH_LIBARCHIVE=OFF \
438 -DWITH_LIBWRAP=OFF \
439 -DWITH_MARIABACKUP=ON \
440 -DWITH_NUMA=OFF \
441 -DWITH_PCRE=system \
442 -DWITH_SAFEMALLOC=OFF \
443 -DWITH_SSL=system \
444 -DWITH_SYSTEMD=no \
445 -DWITH_VALGRIND=OFF \
446 -DWITH_ZLIB=system
447
448 # Help MariaDB find the correct libiconv.
449 # nls.mk sets it up so that with CONFIG_BUILD_NLS libiconv-full would be used,
450 # otherwise libiconv-stub (independent of the selected libc). MariaDB needs a
451 # leg up to find/pick the right lib.
452 CMAKE_OPTIONS += \
453 -DICONV_INCLUDE_DIR=$(ICONV_PREFIX)/include \
454 -DICONV_LIBRARIES=$(ICONV_PREFIX)/lib/libiconv.$(if $(CONFIG_BUILD_NLS),so,a)
455
456 CMAKE_OPTIONS += \
457 $(foreach p,$(MARIADB_LIB_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_lib$(PKG_NAME)-plugin-$(subst _,-,$(p))),DYNAMIC,OFF)) \
458 $(foreach p,$(MARIADB_SERVER_PLUGINS),-D$(plugin-$(p))=$(if $(CONFIG_PACKAGE_$(PKG_NAME)-server-plugin-$(subst _,-,$(p))),DYNAMIC,NO))
459
460 # Set CMAKE_FIND_ROOT_PATH_MODE_INCLUDE and CMAKE_FIND_ROOT_PATH_MODE_LIBRARY
461 # to BOTH as otherwise the host build will not find some required dependencies
462 # installed on the host machine, like ncurses.
463 #
464 # Add "$(STAGING_DIR_HOSTPKG)/lib" to the RPATH of the host helpers,
465 # otherwise they might not find the location of a library at run time.
466 CMAKE_HOST_OPTIONS += \
467 -DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE \
468 -DCMAKE_FIND_ROOT_PATH_MODE_INCLUDE=BOTH \
469 -DCMAKE_FIND_ROOT_PATH_MODE_LIBRARY=BOTH \
470 -DCMAKE_INSTALL_RPATH="$(STAGING_DIR_HOSTPKG)/lib" \
471 -DCMAKE_SKIP_RPATH=FALSE \
472 -DWITHOUT_SERVER=OFF
473
474 # Some helpers must be compiled for host in order to crosscompile MariaDB for
475 # the target. They are then included by import_executables.cmake which is
476 # generated during the build of the host helpers. It is not necessary to build
477 # the whole host package, only the "import_executables" target.
478 # -DIMPORT_EXECUTABLES=$(HOST_BUILD_DIR)/import_executables.cmake
479 # must then be passed to cmake during target build.
480 # See also https://mariadb.com/kb/en/mariadb/cross-compiling-mariadb/
481
482 CMAKE_OPTIONS += -DIMPORT_EXECUTABLES=$(STAGING_DIR_HOSTPKG)/share/mariadb/import_executables.cmake
483
484 # Disable some engines/plugins here as well - decreases the number of cmake checks.
485 define Host/Prepare
486 $(call Host/Prepare/Default)
487 $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(HOST_BUILD_DIR),$(e));)
488 $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(HOST_BUILD_DIR),$(p));)
489 endef
490
491 define Host/Compile
492 $(call Host/Compile/Default,import_executables)
493 endef
494
495 define Host/Install
496 $(SED) 's|$(HOST_BUILD_DIR)|$(STAGING_DIR_HOSTPKG)/share/mariadb|' $(HOST_BUILD_DIR)/import_executables.cmake
497 $(INSTALL_DIR) $(1)/share/mariadb/{dbug,extra,scripts,sql}
498 $(INSTALL_BIN) $(HOST_BUILD_DIR)/dbug/factorial $(1)/share/mariadb/dbug
499 $(INSTALL_BIN) $(HOST_BUILD_DIR)/extra/comp_err $(1)/share/mariadb/extra
500 $(INSTALL_BIN) $(HOST_BUILD_DIR)/scripts/comp_sql $(1)/share/mariadb/scripts
501 $(INSTALL_BIN) $(HOST_BUILD_DIR)/sql/{gen_lex_hash,gen_lex_token} $(1)/share/mariadb/sql
502 $(INSTALL_DATA) $(HOST_BUILD_DIR)/import_executables.cmake $(1)/share/mariadb
503 endef
504
505 # LIBICONV_PLUG is used in GNU's libiconv for redefinition of exports [e.g.
506 # from libiconv_open() to iconv_open()]. But in OpenWrt this variable is not set
507 # when building libiconv-full. So when MariaDB sets LIBICONV_PLUG it expects
508 # iconv_open() to be available for example, which is not the case - only
509 # libiconv_open() is. To address this prevent the variable from being set.
510 # libiconv-stub does not use this variable, so there is no harm in always doing
511 # this.
512
513 define Build/Prepare
514 $(call Build/Prepare/Default)
515 $(SED) '/ADD_DEFINITIONS(-DLIBICONV_PLUG)/d' $(PKG_BUILD_DIR)/libmariadb/libmariadb/CMakeLists.txt
516 $(foreach e,$(MARIADB_DISABLE_ENGINES),$(call Package/mariadb/disable/engine,$(PKG_BUILD_DIR),$(e));)
517 $(foreach p,$(MARIADB_DISABLE_PLUGINS),$(call Package/mariadb/disable/plugin,$(PKG_BUILD_DIR),$(p));)
518 endef
519
520 define Build/InstallDev
521 $(INSTALL_DIR) $(2)/bin $(1)/usr/bin $(1)/usr/include $(1)/usr/lib/mysql $(1)/usr/lib/pkgconfig $(1)/usr/share/aclocal
522 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mysql_config $(1)/usr/bin
523 $(LN) $(STAGING_DIR)/usr/bin/mysql_config $(2)/bin
524 $(CP) $(PKG_INSTALL_DIR)/usr/include/mysql $(1)/usr/include
525 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
526 cd $(1)/usr/lib/mysql; $(LN) ../lib{mariadb,mysqlclient}*.so* .
527 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libmariadb.pc $(1)/usr/lib/pkgconfig
528 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/mysql.m4 $(1)/usr/share/aclocal
529 endef
530
531 define Package/libmariadb/install
532 $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
533 $(INSTALL_DIR) $(1)$(PLUGIN_DIR)
534 $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{mariadb,mysqlclient}*.so* $(1)/usr/lib
535 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/caching_sha2_password.so $(1)$(PLUGIN_DIR)
536 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/client_ed25519.so $(1)$(PLUGIN_DIR)
537 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/dialog.so $(1)$(PLUGIN_DIR)
538 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/mysql_clear_password.so $(1)$(PLUGIN_DIR)
539 $(INSTALL_BIN) $(PKG_INSTALL_DIR)$(PLUGIN_DIR)/sha256_password.so $(1)$(PLUGIN_DIR)
540 $(INSTALL_CONF) conf/50-client.cnf $(1)$(CONF_DIR)/conf.d
541 endef
542
543 define Package/mariadb-client/install
544 $(INSTALL_DIR) $(1)/usr/bin
545 $(foreach b,$(MARIADB_CLIENT),$(call Package/mariadb/install/bin,$(1),$(b));)
546 # Install convenience links for mysqlcheck multi-call binary
547 cd $(1)/usr/bin; $(LN) mysqlcheck mysqlanalyze
548 cd $(1)/usr/bin; $(LN) mysqlcheck mysqlrepair
549 cd $(1)/usr/bin; $(LN) mysqlcheck mysqloptimize
550 endef
551
552 define Package/mariadb-client-base/install
553 $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
554 $(INSTALL_CONF) conf/50-mysql-clients.cnf $(1)$(CONF_DIR)/conf.d
555 endef
556
557 define Package/mariadb-client-extra/install
558 $(INSTALL_DIR) $(1)/usr/bin
559 $(foreach b,$(MARIADB_CLIENT_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
560 endef
561
562 define Package/mariadb-common/install
563 $(INSTALL_DIR) $(1)$(CONF_DIR)
564 $(INSTALL_CONF) conf/my.cnf $(1)$(CONF_DIR)
565 endef
566
567 define Package/mariadb-server/install
568 $(INSTALL_DIR) $(1)/usr/bin
569 $(foreach b,$(MARIADB_SERVER),$(call Package/mariadb/install/bin,$(1),$(b));)
570 endef
571
572 define Package/mariadb-server-base/install
573 $(INSTALL_DIR) $(1)$(CONF_DIR)/conf.d
574 $(INSTALL_DIR) $(1)$(SHARE_DIR)/charsets
575 $(INSTALL_DIR) $(1)$(SHARE_DIR)/english
576 $(INSTALL_DIR) $(1)/etc/config
577 $(INSTALL_DIR) $(1)/etc/init.d
578 $(INSTALL_BIN) files/mysqld.init $(1)/etc/init.d/mysqld
579 $(SED) '/^[a-z]/s/^/#/' $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf
580 $(INSTALL_CONF) $(PKG_INSTALL_DIR)$(SHARE_DIR)/wsrep.cnf $(1)$(CONF_DIR)/conf.d/60-galera.cnf
581 $(INSTALL_CONF) conf/50-server.cnf $(1)$(CONF_DIR)/conf.d
582 $(INSTALL_CONF) files/mysqld.config $(1)/etc/config/mysqld
583 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/charsets/* $(1)$(SHARE_DIR)/charsets
584 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/english/errmsg.sys $(1)$(SHARE_DIR)/english
585 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/fill_help_tables.sql $(1)$(SHARE_DIR)
586 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/maria_add_gis_sp_bootstrap.sql $(1)$(SHARE_DIR)
587 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_performance_tables.sql $(1)$(SHARE_DIR)
588 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables.sql $(1)$(SHARE_DIR)
589 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_system_tables_data.sql $(1)$(SHARE_DIR)
590 $(INSTALL_DATA) $(PKG_INSTALL_DIR)$(SHARE_DIR)/mysql_test_db.sql $(1)$(SHARE_DIR)
591 endef
592
593 define Package/mariadb-server-extra/install
594 $(INSTALL_DIR) $(1)/usr/bin
595 $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/bin/wsrep_sst_common $(1)/usr/bin
596 $(SED) 's,/bin/bash,/bin/sh,g' $(PKG_INSTALL_DIR)/usr/bin/wsrep_sst_*
597 $(foreach b,$(MARIADB_SERVER_EXTRA),$(call Package/mariadb/install/bin,$(1),$(b));)
598 cd $(1)/usr/bin; $(LN) mariabackup mariadb-backup
599 endef
600
601 define BuildPlugin
602 define Package/$(1)-plugin-$(subst _,-,$(2))
603 $(call Package/$(subst mariadb-server,mariadb,$(1))/Default)
604 TITLE:=$(1) plugin
605 DEPENDS:=$(1) $(patsubst +%,+PACKAGE_$(1)-plugin-$(subst _,-,$(2)):%,$(3))
606 endef
607 define Package/$(1)-plugin-$(subst _,-,$(2))/description
608 $(call Package/mariadb/description/Default)
609
610 This package provides the $(2) plugin.
611
612 endef
613 define Package/$(1)-plugin-$(subst _,-,$(2))/install
614 $(INSTALL_DIR) $$(1)$(PLUGIN_DIR)
615 $(call Package/mariadb/install/plugin,$$(1),$(2))
616 endef
617 $$(eval $$(call BuildPackage,$(1)-plugin-$(subst _,-,$(2))))
618 endef
619
620 $(eval $(call HostBuild))
621 $(eval $(call BuildPackage,libmariadb))
622 $(eval $(call BuildPackage,mariadb-client))
623 $(eval $(call BuildPackage,mariadb-client-base))
624 $(eval $(call BuildPackage,mariadb-client-extra))
625 $(eval $(call BuildPackage,mariadb-common))
626 $(eval $(call BuildPackage,mariadb-server))
627 $(eval $(call BuildPackage,mariadb-server-base))
628 $(eval $(call BuildPackage,mariadb-server-extra))
629
630 $(eval $(call BuildPlugin,libmariadb,auth_gssapi_client,+krb5-libs))
631 $(eval $(call BuildPlugin,mariadb-server,auth_ed25519,))
632 $(eval $(call BuildPlugin,mariadb-server,auth_gssapi,+krb5-libs))
633 $(eval $(call BuildPlugin,mariadb-server,auth_pam,+libpam))
634 $(eval $(call BuildPlugin,mariadb-server,auth_pam_v1,+libpam))
635 $(eval $(call BuildPlugin,mariadb-server,disks,))
636 $(eval $(call BuildPlugin,mariadb-server,feedback,))
637 $(eval $(call BuildPlugin,mariadb-server,file_key_management,))
638 $(eval $(call BuildPlugin,mariadb-server,ha_archive,))
639 $(eval $(call BuildPlugin,mariadb-server,ha_blackhole,))
640 $(eval $(call BuildPlugin,mariadb-server,ha_connect,+libxml2))
641 $(eval $(call BuildPlugin,mariadb-server,ha_federated,))
642 $(eval $(call BuildPlugin,mariadb-server,ha_federatedx,))
643 $(eval $(call BuildPlugin,mariadb-server,ha_sphinx,))
644 $(eval $(call BuildPlugin,mariadb-server,ha_spider,))
645 $(eval $(call BuildPlugin,mariadb-server,handlersocket,))
646 $(eval $(call BuildPlugin,mariadb-server,locales,))
647 $(eval $(call BuildPlugin,mariadb-server,metadata_lock_info,))
648 $(eval $(call BuildPlugin,mariadb-server,query_cache_info,))
649 $(eval $(call BuildPlugin,mariadb-server,query_response_time,))
650 $(eval $(call BuildPlugin,mariadb-server,server_audit,))
651 $(eval $(call BuildPlugin,mariadb-server,simple_password_check,))
652 $(eval $(call BuildPlugin,mariadb-server,sql_errlog,))
653 $(eval $(call BuildPlugin,mariadb-server,wsrep_info,))
654