summaryrefslogtreecommitdiffstats
path: root/rules/mariadb.make
blob: f93b3857a331aab7bb6df8752b0f4e3b5838a0b3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
# -*-makefile-*-
#
# Copyright (C) 2017 by Bastian Stender <bst@pengutronix.de>
#
# See CREDITS for details about who has contributed to this project.
#
# For further information about the PTXdist project and license conditions
# see the README file.
#

#
# We provide this package
#
PACKAGES-$(PTXCONF_MARIADB) += mariadb

#
# Paths and names
#
MARIADB_VERSION	:= 10.1.32
MARIADB_MD5	:= 389ce891cf00957748ba98b09f433c14
MARIADB		:= mariadb-$(MARIADB_VERSION)
MARIADB_SUFFIX	:= tar.gz
MARIADB_URL	:= https://downloads.mariadb.com/MariaDB/$(MARIADB)/source/$(MARIADB).$(MARIADB_SUFFIX)
MARIADB_SOURCE	:= $(SRCDIR)/$(MARIADB).$(MARIADB_SUFFIX)
MARIADB_DIR	:= $(BUILDDIR)/$(MARIADB)
MARIADB_LICENSE	:= GPL-2.0-only

# ----------------------------------------------------------------------------
# Prepare
# ----------------------------------------------------------------------------

# MARIADB_PLUGINS_ENABLED-y builds plugin dynamically
# MARIADB_PLUGINS_ENABLES-y builds plugin statically
# MARIADB_PLUGINS_ENABLE- disables plugin
MARIADB_PLUGINS_ENABLE- += ARCHIVE
MARIADB_PLUGINS_ENABLE- += ARIA
MARIADB_PLUGINS_ENABLE- += AUDIT_NULL
MARIADB_PLUGINS_ENABLE- += AUTH_0X0100
MARIADB_PLUGINS_ENABLE- += AUTH_ED25519
MARIADB_PLUGINS_ENABLE- += AUTH_SOCKET
MARIADB_PLUGINS_ENABLE- += AUTH_TEST_PLUGIN
MARIADB_PLUGINS_ENABLE- += AWS_KEY_MANAGEMENT
MARIADB_PLUGINS_ENABLE- += BLACKHOLE
MARIADB_PLUGINS_ENABLE- += CLIENT_ED25519
MARIADB_PLUGINS_ENABLE- += CONNECT
MARIADB_PLUGINS_ENABLE- += DAEMON_EXAMPLE
MARIADB_PLUGINS_ENABLE- += DEBUG_KEY_MANAGEMENT
MARIADB_PLUGINS_ENABLE- += DIALOG
MARIADB_PLUGINS_ENABLE- += DIALOG_EXAMPLES
MARIADB_PLUGINS_ENABLE- += EXAMPLE
MARIADB_PLUGINS_ENABLE- += EXAMPLE_KEY_MANAGEMENT
MARIADB_PLUGINS_ENABLE- += FEDERATED
MARIADB_PLUGINS_ENABLE- += FEDERATEDX
MARIADB_PLUGINS_ENABLE- += FEEDBACK
MARIADB_PLUGINS_ENABLE- += FILE_KEY_MANAGEMENT
MARIADB_PLUGINS_ENABLE- += FTEXAMPLE
MARIADB_PLUGINS_ENABLE- += HANDLERSOCKET
MARIADB_PLUGINS_ENABLE- += INNOBASE
MARIADB_PLUGINS_ENABLE- += LOCALES
MARIADB_PLUGINS_ENABLE- += METADATA_LOCK_INFO
MARIADB_PLUGINS_ENABLE- += MROONGA
MARIADB_PLUGINS_ENABLE- += MYSQL_CLEAR_PASSWORD
# some plugins depend on static build PARTITION
MARIADB_PLUGINS_ENABLE- += PARTITION
MARIADB_PLUGINS_ENABLE- += PERFSCHEMA
MARIADB_PLUGINS_ENABLE- += QA_AUTH_CLIENT
MARIADB_PLUGINS_ENABLE- += QA_AUTH_INTERFACE
MARIADB_PLUGINS_ENABLE- += QA_AUTH_SERVER
MARIADB_PLUGINS_ENABLE- += QUERY_CACHE_INFO
MARIADB_PLUGINS_ENABLE- += QUERY_RESPONSE_TIME
MARIADB_PLUGINS_ENABLE- += SEMISYNC_MASTER
MARIADB_PLUGINS_ENABLE- += SEMISYNC_SLAVE
MARIADB_PLUGINS_ENABLE- += SEQUENCE
MARIADB_PLUGINS_ENABLE- += SERVER_AUDIT
MARIADB_PLUGINS_ENABLE- += SIMPLE_PASSWORD_CHECK
MARIADB_PLUGINS_ENABLE- += SPHINX
MARIADB_PLUGINS_ENABLE- += SPIDER
MARIADB_PLUGINS_ENABLE- += SQL_ERRLOG
MARIADB_PLUGINS_ENABLE- += TEST_SQL_DISCOVERY
MARIADB_PLUGINS_ENABLE- += TOKUDB
MARIADB_PLUGINS_ENABLE- += WSREP_INFO
MARIADB_PLUGINS_ENABLE- += XTRADB

#
# cmake
#
MARIADB_CONF_TOOL	:= cmake

MARIADB_CONF_OPT	:= \
	$(CROSS_CMAKE_USR) \
	-DBUILD_CONFIG=mysql_release \
	-DSTACK_DIRECTION=1 \
	-DIMPORT_EXECUTABLES=$(PTXDIST_SYSROOT_HOST)/share/mariadb/import_executables.cmake \
	-DHAVE_LLVM_LIBCPP_EXITCODE=no \
	-DCOMMUNITY_BUILD=ON \
	-DCONNECT_WITH_JDBC=OFF \
	-DCONNECT_WITH_LIBXML2=OFF \
	-DCONNECT_WITH_ODBC=OFF \
	-DCONNECT_WITH_VCT=OFF \
	-DCONNECT_WITH_XMAP=OFF \
	-DCONNECT_WITH_ZIP=OFF \
	-DDISABLE_SHARED=OFF \
	-DENABLED_LOCAL_INFILE=OFF \
	-DENABLED_PROFILING=OFF \
	-DENABLE_DTRACE=OFF \
	-DENABLE_GCOV=OFF \
	-DFEATURE_SET=community \
	-DINSTALL_LAYOUT=STANDALONE \
	-DMYSQL_DATADIR=/var/lib/mysql/data \
	-DMYSQL_MAINTAINER_MODE=OFF \
	-DNOT_FOR_DISTRIBUTION=OFF \
	-DSECURITY_HARDENED=ON \
	-DTMPDIR=/tmp \
	-DUSE_ARIA_FOR_TMP_TABLES=ON \
	-DUSE_GCOV=OFF \
	-DWITHOUT_SERVER=OFF \
	-DWITH_ASAN=OFF \
	-DWITH_EMBEDDED_SERVER=OFF \
	-DWITH_EXTRA_CHARSETS=all \
	-DWITH_INNODB_BZIP2=OFF \
	-DWITH_INNODB_DISALLOW_WRITES=ON \
	-DWITH_INNODB_LZ4=OFF \
	-DWITH_INNODB_LZMA=OFF \
	-DWITH_INNODB_LZO=OFF \
	-DWITH_INNODB_SNAPPY=OFF \
	-DWITH_JEMALLOC=OFF \
	-DWITH_LIBARCHIVE=OFF \
	-DWITH_LIBWRAP=OFF \
	-DWITH_PCRE=system \
	-DPCRE_STACK_SIZE_OK=1 \
	-DWITH_MARIABACKUP=OFF \
	-DWITH_READLINE=OFF \
	-DWITH_SAFEMALLOC=OFF \
	-DWITH_SSL=bundled \
	-DWITH_SYSTEMD=$(call ptx/yesno, PTXCONF_MARIADB_SYSTEMD) \
	-DWITH_UNIT_TESTS=OFF \
	-DWITH_VALGRIND=OFF \
	-DWITH_WSREP=OFF \
	-DWITH_ZLIB=system \
	-DSYSCONFDIR=/etc/mariadb \
	-DCOMPILATION_COMMENT=PTXdist \
	-DDEFAULT_CHARSET=latin1 \
	-DLZ4_LIBS=undefined

ifneq ($(strip $(MARIADB_PLUGINS_ENABLES-y)),)
MARIADB_CONF_OPT += $(foreach plugin,$(MARIADB_PLUGINS_ENABLES-y),$(addprefix -DPLUGIN_,$(addsuffix =STATIC, $(plugin))))
endif

ifneq ($(strip $(MARIADB_PLUGINS_ENABLED-y)),)
MARIADB_CONF_OPT += $(foreach plugin,$(MARIADB_PLUGINS_ENABLED-y),$(addprefix -DPLUGIN_,$(addsuffix =DYNAMIC, $(plugin))))
endif

ifneq ($(strip $(MARIADB_PLUGINS_ENABLE-)),)
MARIADB_CONF_OPT += $(foreach plugin,$(MARIADB_PLUGINS_ENABLE-),$(addprefix -DPLUGIN_,$(addsuffix =NO, $(plugin))))
endif

# ----------------------------------------------------------------------------
# Target-Install
# ----------------------------------------------------------------------------

$(STATEDIR)/mariadb.targetinstall:
	@$(call targetinfo)

	@$(call install_init, mariadb)
	@$(call install_fixup, mariadb, PRIORITY, optional)
	@$(call install_fixup, mariadb, SECTION, base)
	@$(call install_fixup, mariadb, AUTHOR, "Bastian Stender <bst@pengutronix.de>")
	@$(call install_fixup, mariadb, DESCRIPTION, "MariaDB")

#	# server stuff
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysqld)

ifdef PTXCONF_MARIADB_SYSTEMD
	@$(call install_alternative, mariadb, 0, 0, 0644, /usr/lib/systemd/system/mariadb.service)
	@$(call install_link, mariadb, ../mariadb.service, \
		/usr/lib/systemd/system/multi-user.target.wants/mariadb.service)

	@$(call install_alternative, mariadb, 0, 0, 0644, /usr/lib/systemd/system/mariadb-init.service)
	@$(call install_link, mariadb, ../mariadb-init.service, \
		/usr/lib/systemd/system/multi-user.target.wants/mariadb-init.service)
endif
	@$(call install_alternative, mariadb, 0, 0, 0644, /etc/mariadb/my.cnf)

#	# TODO: do we need more languages?
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/english/errmsg.sys)

#	# TODO: do we need more charsets?
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/charsets/latin1.xml)

#	# client stuff
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysql)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysqladmin)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysql_upgrade)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysqlcheck)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/mysqldump)

#	# bootstrap script + dependencies
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/scripts/mysql_install_db)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/my_print_defaults)
	@$(call install_copy, mariadb, 0, 0, 0755, -, /usr/bin/resolveip)

#	# bootstrap data required for mysql_install_db
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/mysql_system_tables.sql)
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/mysql_system_tables_data.sql)
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/mysql_performance_tables.sql)
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/fill_help_tables.sql)
	@$(call install_copy, mariadb, 0, 0, 0644, -, /usr/share/maria_add_gis_sp_bootstrap.sql)

	@$(call install_lib, mariadb, 0, 0, 0644, libmysqlclient)

#	# create a working directory which is writeable
	@$(call install_copy, mariadb, mysql, mysql, 0755, /var/lib/mysql)

	@$(call install_finish, mariadb)

	@$(call touch)

# vim: syntax=make