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