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