diff options
Diffstat (limited to 'meta-oe/recipes-dbs/mysql/mariadb.inc')
-rw-r--r-- | meta-oe/recipes-dbs/mysql/mariadb.inc | 61 |
1 files changed, 25 insertions, 36 deletions
diff --git a/meta-oe/recipes-dbs/mysql/mariadb.inc b/meta-oe/recipes-dbs/mysql/mariadb.inc index 33da32fb28..13e55ebacd 100644 --- a/meta-oe/recipes-dbs/mysql/mariadb.inc +++ b/meta-oe/recipes-dbs/mysql/mariadb.inc | |||
@@ -17,28 +17,26 @@ SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \ | |||
17 | file://0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch \ | 17 | file://0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch \ |
18 | file://0001-aio_linux-Check-if-syscall-exists-before-using-it.patch \ | 18 | file://0001-aio_linux-Check-if-syscall-exists-before-using-it.patch \ |
19 | file://ssize_t.patch \ | 19 | file://ssize_t.patch \ |
20 | file://mm_malloc.patch \ | ||
21 | file://sys_futex.patch \ | 20 | file://sys_futex.patch \ |
22 | file://cross-compiling.patch \ | 21 | file://cross-compiling.patch \ |
23 | file://0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \ | 22 | file://0001-sql-CMakeLists.txt-fix-gen_lex_hash-not-found.patch \ |
24 | file://lfs64.patch \ | 23 | file://lfs64.patch \ |
25 | file://0001-Add-missing-includes-cstdint-and-cstdio.patch \ | 24 | file://0001-Add-missing-includes-cstdint-and-cstdio.patch \ |
26 | file://0001-Remove-the-compile_time_assert-lines.patch \ | 25 | file://0001-Ensure-compatibility-with-ARMv9-by-updating-.arch-di.patch \ |
27 | file://0001-MDEV-33439-Fix-build-with-libxml2-2.12.patch \ | 26 | file://riscv32.patch \ |
28 | " | 27 | " |
29 | SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch" | 28 | SRC_URI[sha256sum] = "1b26c0bb2d025dbfac3b9852d2b7eafda56a171b67ac2e27831ec0414fb7df07" |
30 | SRC_URI[sha256sum] = "5239a245ed90517e96396605cd01ccd8f73cd7442d1b3076b6ffe258110e5157" | ||
31 | 29 | ||
32 | UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases" | 30 | UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/tags" |
33 | |||
34 | S = "${WORKDIR}/mariadb-${PV}" | ||
35 | 31 | ||
36 | BINCONFIG_GLOB = "mysql_config" | 32 | BINCONFIG_GLOB = "mysql_config" |
37 | 33 | ||
38 | inherit cmake gettext binconfig update-rc.d systemd multilib_script pkgconfig | 34 | inherit cmake gettext binconfig update-rc.d systemd multilib_script multilib_header pkgconfig |
39 | 35 | ||
40 | MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \ | 36 | MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \ |
41 | ${PN}-setupdb:${bindir}/mariadb-install-db" | 37 | ${PN}-setupdb:${bindir}/mariadb-install-db \ |
38 | libmysqlclient-dev:${bindir}/mysql_config \ | ||
39 | " | ||
42 | 40 | ||
43 | INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb" | 41 | INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb" |
44 | INITSCRIPT_NAME:${PN}-server = "mysqld" | 42 | INITSCRIPT_NAME:${PN}-server = "mysqld" |
@@ -65,21 +63,16 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl" | |||
65 | EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'" | 63 | EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'" |
66 | 64 | ||
67 | PACKAGECONFIG:class-native = "" | 65 | PACKAGECONFIG:class-native = "" |
68 | PACKAGECONFIG[pam] = "-DPLUGIN_AUTH_PAM=YES,-DPLUGIN_AUTH_PAM=NO,libpam" | 66 | PACKAGECONFIG[pam] = "-DPLUGIN_AUTH_PAM=YES -DINSTALL_PAMDIR=${base_libdir}/security,-DPLUGIN_AUTH_PAM=NO,libpam" |
69 | PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind" | 67 | PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind" |
70 | PACKAGECONFIG[krb5] = ", ,krb5" | 68 | PACKAGECONFIG[krb5] = ", ,krb5" |
71 | PACKAGECONFIG[lz4] = ", ,lz4" | 69 | PACKAGECONFIG[lz4] = ", ,lz4" |
72 | PACKAGECONFIG[openssl] = "-DWITH_SSL='system',-DWITH_SSL='bundled',openssl" | 70 | PACKAGECONFIG[openssl] = "-DWITH_SSL='system',-DWITH_SSL='bundled',openssl" |
73 | 71 | ||
74 | # MariaDB doesn't link properly with gold | ||
75 | # https://mariadb.atlassian.net/browse/MDEV-5982 | ||
76 | TARGET_CFLAGS += "-fuse-ld=bfd" | ||
77 | LDFLAGS += " -pthread" | 72 | LDFLAGS += " -pthread" |
78 | 73 | ||
79 | BUILD_CFLAGS += "-fuse-ld=bfd" | ||
80 | BUILD_CXXFLAGS += "-fuse-ld=bfd" | ||
81 | |||
82 | LDFLAGS:x86:toolchain-clang = "-latomic" | 74 | LDFLAGS:x86:toolchain-clang = "-latomic" |
75 | LDFLAGS:riscv32:toolchain-clang = "-latomic" | ||
83 | 76 | ||
84 | EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \ | 77 | EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \ |
85 | -DWITH_JEMALLOC=no \ | 78 | -DWITH_JEMALLOC=no \ |
@@ -94,11 +87,14 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \ | |||
94 | -DINSTALL_DOCDIR:PATH=${datadir}/doc/${BPN} \ | 87 | -DINSTALL_DOCDIR:PATH=${datadir}/doc/${BPN} \ |
95 | -DINSTALL_LIBDIR:PATH=${baselib} \ | 88 | -DINSTALL_LIBDIR:PATH=${baselib} \ |
96 | -DINSTALL_PLUGINDIR:PATH=${baselib}/plugin \ | 89 | -DINSTALL_PLUGINDIR:PATH=${baselib}/plugin \ |
90 | -DINSTALL_PCDIR:PATH=${baselib}/pkgconfig \ | ||
97 | -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \ | 91 | -DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \ |
98 | -DMYSQL_DATADIR:PATH=/var/mysql \ | 92 | -DMYSQL_DATADIR:PATH=/var/mysql \ |
99 | -DCAT_EXECUTABLE=`which cat` \ | 93 | -DCAT_EXECUTABLE=`which cat` \ |
100 | -DSTACK_DIRECTION=1 \ | ||
101 | -DHAVE_SYSTEM_LIBFMT_EXITCODE=0 \ | 94 | -DHAVE_SYSTEM_LIBFMT_EXITCODE=0 \ |
95 | -DLSTAT_FOLLOWS_SLASHED_SYMLINK_EXITCODE=0 \ | ||
96 | -DSTAT_EMPTY_STRING_BUG_EXITCODE=0 \ | ||
97 | -DMASK_LONGDOUBLE_EXITCODE=0 \ | ||
102 | -DCMAKE_AR:FILEPATH=${AR}" | 98 | -DCMAKE_AR:FILEPATH=${AR}" |
103 | 99 | ||
104 | 100 | ||
@@ -161,20 +157,21 @@ mariadb_sysroot_preprocess () { | |||
161 | 157 | ||
162 | do_install() { | 158 | do_install() { |
163 | oe_runmake 'DESTDIR=${D}' install | 159 | oe_runmake 'DESTDIR=${D}' install |
160 | oe_multilib_header mysql/mariadb_version.h mysql/server/my_config.h mysql/server/private/config.h | ||
164 | 161 | ||
165 | install -d ${D}/${sysconfdir}/init.d | 162 | install -d ${D}/${sysconfdir}/init.d |
166 | install -m 0644 ${WORKDIR}/my.cnf ${D}/${sysconfdir}/ | 163 | install -m 0644 ${UNPACKDIR}/my.cnf ${D}/${sysconfdir}/ |
167 | install -m 0755 ${WORKDIR}/install_db ${D}/${sysconfdir}/init.d/ | 164 | install -m 0755 ${UNPACKDIR}/install_db ${D}/${sysconfdir}/init.d/ |
168 | mv ${D}/${sysconfdir}/init.d/mysql ${D}/${sysconfdir}/init.d/mysqld | 165 | mv ${D}/${sysconfdir}/init.d/mysql ${D}/${sysconfdir}/init.d/mysqld |
169 | 166 | ||
170 | install -d ${D}${systemd_unitdir}/system | 167 | install -d ${D}${systemd_unitdir}/system |
171 | install -m 0644 ${WORKDIR}/mysqld.service ${D}${systemd_unitdir}/system | 168 | install -m 0644 ${UNPACKDIR}/mysqld.service ${D}${systemd_unitdir}/system |
172 | install -m 0644 ${WORKDIR}/install_db.service ${D}${systemd_unitdir}/system | 169 | install -m 0644 ${UNPACKDIR}/install_db.service ${D}${systemd_unitdir}/system |
173 | sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service \ | 170 | sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service \ |
174 | ${D}${systemd_unitdir}/system/install_db.service | 171 | ${D}${systemd_unitdir}/system/install_db.service |
175 | 172 | ||
176 | install -d ${D}${bindir} | 173 | install -d ${D}${bindir} |
177 | install -m 755 ${WORKDIR}/mysql-systemd-start ${D}${bindir} | 174 | install -m 755 ${UNPACKDIR}/mysql-systemd-start ${D}${bindir} |
178 | install -d ${D}${datadir}/doc/${PN} | 175 | install -d ${D}${datadir}/doc/${PN} |
179 | if [ -f ${D}${datadir}/doc/README ]; then | 176 | if [ -f ${D}${datadir}/doc/README ]; then |
180 | mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/ | 177 | mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/ |
@@ -183,16 +180,8 @@ do_install() { | |||
183 | # mini-benchmark used for Gitlab-CI to run on every commit to catch | 180 | # mini-benchmark used for Gitlab-CI to run on every commit to catch |
184 | # if there are severe performance regressions. | 181 | # if there are severe performance regressions. |
185 | # remove it to avoid introducing bash dependency | 182 | # remove it to avoid introducing bash dependency |
186 | if [ -f ${D}${datadir}/mysql/mini-benchmark ]; then | 183 | if [ -f ${D}${datadir}/mariadb/mini-benchmark ]; then |
187 | rm -rf ${D}${datadir}/mysql/mini-benchmark | 184 | rm -rf ${D}${datadir}/mariadb/mini-benchmark |
188 | fi | ||
189 | if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then | ||
190 | pam_so=$(find ${D} -name pam_user_map.so) | ||
191 | if [ x"${pam_so}" != x ]; then | ||
192 | pam_dir=$(dirname ${pam_so}) | ||
193 | mv ${pam_dir} ${D}/${libdir} | ||
194 | rmdir --ignore-fail-on-non-empty ${pam_dir%security} | ||
195 | fi | ||
196 | fi | 185 | fi |
197 | } | 186 | } |
198 | 187 | ||
@@ -216,7 +205,7 @@ RDEPENDS:${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \ | |||
216 | RDEPENDS:${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \ | 205 | RDEPENDS:${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \ |
217 | perl-module-file-basename perl-module-file-path perl-module-sys-hostname \ | 206 | perl-module-file-basename perl-module-file-path perl-module-sys-hostname \ |
218 | perl-module-file-copy perl-module-file-temp perl-module-posix \ | 207 | perl-module-file-copy perl-module-file-temp perl-module-posix \ |
219 | ${PN}-client ${PN}-setupdb libdbi-perl libdbd-mysql-perl lzo" | 208 | ${PN}-client ${PN}-setupdb libdbi-perl dbd-mariadb lzo" |
220 | RDEPENDS:${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \ | 209 | RDEPENDS:${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \ |
221 | perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \ | 210 | perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \ |
222 | perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \ | 211 | perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \ |
@@ -344,9 +333,9 @@ FILES:${PN}-server = "\ | |||
344 | ${sbindir}/mysqld \ | 333 | ${sbindir}/mysqld \ |
345 | ${sbindir}/mariadbd \ | 334 | ${sbindir}/mariadbd \ |
346 | ${libdir}/plugin/*.so \ | 335 | ${libdir}/plugin/*.so \ |
347 | ${libdir}/security/*.so \ | 336 | ${base_libdir}/security/*.so \ |
348 | ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \ | 337 | ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \ |
349 | ${datadir}/mysql/ \ | 338 | ${datadir}/mariadb/ \ |
350 | ${localstatedir}/mysql/ \ | 339 | ${localstatedir}/mysql/ \ |
351 | ${sysconfdir}/init.d/mysqld \ | 340 | ${sysconfdir}/init.d/mysqld \ |
352 | ${sysconfdir}/my.cnf \ | 341 | ${sysconfdir}/my.cnf \ |