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