aboutsummaryrefslogtreecommitdiffstats
path: root/main/mariadb/APKBUILD
blob: 55fd8015cdb77894c4443fc527080ac063be680e (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
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Carlo Landmeter <clandmeter@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mariadb
pkgver=10.1.28
pkgrel=1
pkgdesc="A fast SQL database server"
url="http://www.mariadb.org"
pkgusers="mysql"
pkggroups="mysql"
arch="all"
license="GPL"
depends="$pkgname-common"
depends_dev="libressl-dev zlib-dev"
makedepends="cmake libressl-dev zlib-dev readline-dev libaio-dev ncurses-dev
	linux-headers"
install="$pkgname.pre-install"
source="https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz
	$pkgname.initd
	fix-mysql-install-db-path.patch
	fix-ucontext-check.patch
	ppc-remove-glibc-dep.patch
	"

# secfixes:
#   10.1.22-r0:
#     - CVE-2017-3313
#     - CVE-2017-3302
#   10.1.21-r0:
#     - CVE-2016-6664
#     - CVE-2017-3238
#     - CVE-2017-3243
#     - CVE-2017-3244
#     - CVE-2017-3257
#     - CVE-2017-3258
#     - CVE-2017-3265
#     - CVE-2017-3291
#     - CVE-2017-3312
#     - CVE-2017-3317
#     - CVE-2017-3318

subpackages="$pkgname-doc $pkgname-dev $pkgname-common
	$pkgname-client-libs:_client_libs $pkgname-libs
	$pkgname-client $pkgname-bench $pkgname-test:mytest
	mysql mysql-client:_compat_client mysql-bench:_compat_bench"

builddir="$srcdir/$pkgname-$pkgver"

prepare() {
	cd "$builddir"
	for i in $source; do
		case $i in
			*.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
		esac
	done
}

build() {
	cd "$builddir"
	cmake . -DBUILD_CONFIG=mysql_release \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DSYSCONFDIR=/etc/mysql \
		-DMYSQL_DATADIR=/var/lib/mysql \
		-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
		-DDEFAULT_CHARSET=utf8 \
		-DDEFAULT_COLLATION=utf8_general_ci \
		-DENABLED_LOCAL_INFILE=ON \
		-DINSTALL_INFODIR=share/mysql/docs \
		-DINSTALL_MANDIR=share/man \
		-DINSTALL_PLUGINDIR=lib/mysql/plugin \
		-DINSTALL_SCRIPTDIR=bin \
		-DINSTALL_INCLUDEDIR=include/mysql \
		-DINSTALL_DOCREADMEDIR=share/mysql \
		-DINSTALL_SUPPORTFILESDIR=share/mysql \
		-DINSTALL_MYSQLSHAREDIR=share/mysql \
		-DINSTALL_DOCDIR=share/mysql/docs \
		-DINSTALL_SHAREDIR=share/mysql \
		-DWITH_READLINE=ON \
		-DWITH_ZLIB=system \
		-DWITH_SSL=system \
		-DWITH_LIBWRAP=OFF \
		-DWITH_JEMALLOC=no \
		-DWITH_EXTRA_CHARSETS=complex \
		-DWITH_EMBEDDED_SERVER=ON \
		-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
		-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
		-DWITH_INNOBASE_STORAGE_ENGINE=1 \
		-DWITH_PARTITION_STORAGE_ENGINE=1 \
		-DPLUGIN_TOKUDB=NO \
		-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
		-DWITHOUT_FEDERATED_STORAGE_ENGINE=1 \
		-DWITHOUT_PBXT_STORAGE_ENGINE=1 \
		|| return 1
	make || return 1
}

package() {
	cd "$builddir"
	make DESTDIR="$pkgdir/" install || return 1

	install -Dm 755 "$startdir"/$pkgname.initd \
		"$pkgdir"/etc/init.d/$pkgname || return 1

	# use small example config as default, which has tcp disabled
	install -Dm 640 -o mysql  "$pkgdir"/usr/share/mysql/my-medium.cnf \
		"$pkgdir"/etc/mysql/my.cnf || return 1

	# libmysqlclient_r is no more.  Upstream tries to replace it with
	# symlinks but that really doesn't work (wrong soname in particular).
	# We'll keep just the devel libmysqlclient_r.so link, so that
	# rebuilding without any source change is enough to get rid of
	# dependency on libmysqlclient_r.
	rm -f "$pkgdir"/usr/lib/libmysqlclient_r.so*
	ln -s libmysqlclient.so "$pkgdir"/usr/lib/libmysqlclient_r.so

	# mysql-test includes one executable that doesn't belong under
	# /usr/share, so move it and provide a symlink
	mv "$pkgdir"/usr/mysql-test/lib/My/SafeProcess/my_safe_process \
		"$pkgdir"/usr/bin
	ln -s ../../../../bin/my_safe_process \
		"$pkgdir"/usr/mysql-test/lib/My/SafeProcess/my_safe_process
}

dev(){
	default_dev
	replaces="libmysqlclient mysql-dev"
	provides="mysql-dev=$pkgver-r$pkgrel"
	mkdir -p "$subpkgdir"/usr/bin
	mv "$pkgdir"/usr/bin/mysql_config "$subpkgdir"/usr/bin/
}

_client_libs() {
	pkgdesc="MariaDB client library"
	replaces="mariadb libmysqlclient"
	depends="mariadb-common"
	mkdir -p "$subpkgdir"/usr/lib \
		"$subpkgdir"/usr/share/mysql \
		|| return 1
	mv "$pkgdir"/usr/lib/libmysqlclient.so* \
		"$subpkgdir"/usr/lib/ \
		|| return 1
}

common() {
	pkgdesc="MariaDB common files for both server and client"
	replaces="mysql-common"
	depends=
	mkdir -p "$subpkgdir"/usr/share/mysql \
		"$subpkgdir"/etc \
		"$subpkgdir"/usr/lib/mysql/plugin
	mv "$pkgdir"/etc/mysql "$subpkgdir"/etc/ || return 1
	mv "$pkgdir"/usr/lib/mysql/plugin/dialog.so \
		"$pkgdir"/usr/lib/mysql/plugin/mysql_clear_password.so \
		"$subpkgdir"/usr/lib/mysql/plugin/ || return 1
	local lang="charsets danish english french greek italian korean norwegian-ny
		portuguese russian slovak swedish czech dutch estonian german
		hungarian japanese norwegian polish romanian serbian spanish
		ukrainian"
	for l in $lang; do
		mv "$pkgdir"/usr/share/mysql/$l \
			"$subpkgdir"/usr/share/mysql/ || return 1
	done
}

mytest() {
	pkgdesc="The test suite distributed with MariaDB"
	mkdir -p "$subpkgdir"/usr/bin || return 1
	mv "$pkgdir"/usr/bin/mysql_client_test \
		"$pkgdir"/usr/mysql-test \
		"$pkgdir"/usr/bin/my_safe_process \
		"$subpkgdir"/usr/bin/ \
		|| return 1
}

client() {
	pkgdesc="client for the MariaDB database"
	depends="mariadb-common"
	install=""
	local bins="myisam_ftdump mysql mysqlaccess mysqladmin mysqlbug
		mysqlcheck mysqldump mysqldumpslow mysql_find_rows
		mysql_fix_extensions mysqlimport mysqlshow mysql_waitpid"
	mkdir -p "$subpkgdir"/usr/bin/ || return 1
	for i in $bins; do
		mv "$pkgdir"/usr/bin/${i} "$subpkgdir"/usr/bin/ || return 1
	done
}

bench() {
	pkgdesc="MariaDB benchmark scripts and data"
	replaces="mariadb"
	mkdir -p "$subpkgdir"/usr/share/
	mv "$pkgdir"/usr/sql-bench "$subpkgdir"/usr/share
}

_compat() {
	pkgdesc="Dummy package for $1 migration"
	depends="$2"
	mkdir -p "$subpkgdir"
}

mysql() { _compat mysql mariadb; }
_compat_client() { _compat mysql-client mariadb-client; }
_compat_bench() { _compat mysql-bench mariadb-client; }

sha512sums="ca10d28f6b966719c7488c2b4ba928b65cbe9dc32ccf2a28d29c4d0c2d46ea1c59c3e339230017b317132dcd216925a71769dfba80a7d6321079c74ac41926d8  mariadb-10.1.28.tar.gz
06751768cb00d2e433655635c38d267ef25084a5830ff40e719ac579223c7192dc34b43f919ab6faf480094632327511cbd22456064dde2d04dc15648b9e3b9f  mariadb.initd
f85e96490de56aa4e6115f931bf256bef4e1b93cadbe4ac947d6abdc03072bf2d0872e0268ae37cd98edf13538ece73e9f8b6efa8133bab23168a825c5066ab1  fix-mysql-install-db-path.patch
82fa93411483f5d1b57d978087a891bcab6a011e45c2d79b08d28718f5717994b423fc81d2170dad2fe65303153ac29655a81ce5039e73e37cebb159392a86cf  fix-ucontext-check.patch
a352661d19becae717c16ac67a0e47ed93787653851a75d27e7764133b31dc02e18c38dbbce6d3138e4db08da616dfc75a0141865cd042cef669d6afe4463127  ppc-remove-glibc-dep.patch"