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