gnu: MariaDB: Update to 10.5.6.
* gnu/packages/patches/mariadb-client-test-32bit.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/databases.scm (mariadb): Update to 10.5.6. [source](patches): Remove. [source](snippet): Adapt unbundling for yassl->wolfssl migration. [arguments]: Remove fix-pcre-detection phase. Add phase to fix referenced directory names. Adjust substitution for renamed file. Disable four tests. Enable previously failing ones. Remove armhf workaround. [native-inputs]: On armhf-linux, remove GCC-5. [inputs]: Remove OPENSSL-1.0 and PCRE. Add OPENSSL and PCRE2.master
parent
f7175626ff
commit
525ebb8508
|
@ -1303,7 +1303,6 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/lvm2-static-link.patch \
|
%D%/packages/patches/lvm2-static-link.patch \
|
||||||
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
|
%D%/packages/patches/mailutils-fix-uninitialized-variable.patch \
|
||||||
%D%/packages/patches/make-impure-dirs.patch \
|
%D%/packages/patches/make-impure-dirs.patch \
|
||||||
%D%/packages/patches/mariadb-client-test-32bit.patch \
|
|
||||||
%D%/packages/patches/mars-install.patch \
|
%D%/packages/patches/mars-install.patch \
|
||||||
%D%/packages/patches/mars-sfml-2.3.patch \
|
%D%/packages/patches/mars-sfml-2.3.patch \
|
||||||
%D%/packages/patches/maxima-defsystem-mkdir.patch \
|
%D%/packages/patches/maxima-defsystem-mkdir.patch \
|
||||||
|
|
|
@ -716,7 +716,7 @@ Language.")
|
||||||
(define-public mariadb
|
(define-public mariadb
|
||||||
(package
|
(package
|
||||||
(name "mariadb")
|
(name "mariadb")
|
||||||
(version "10.1.45")
|
(version "10.5.6")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://downloads.mariadb.com/MariaDB"
|
(uri (string-append "https://downloads.mariadb.com/MariaDB"
|
||||||
|
@ -724,8 +724,7 @@ Language.")
|
||||||
version ".tar.gz"))
|
version ".tar.gz"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx"))
|
"1i257h0zdypdfj5wkg6ck9pxlkph0jvjs92k22pjr6gnx5lxs1gz"))
|
||||||
(patches (search-patches "mariadb-client-test-32bit.patch"))
|
|
||||||
(modules '((guix build utils)))
|
(modules '((guix build utils)))
|
||||||
(snippet
|
(snippet
|
||||||
'(begin
|
'(begin
|
||||||
|
@ -743,8 +742,8 @@ Language.")
|
||||||
(for-each (lambda (file)
|
(for-each (lambda (file)
|
||||||
(unless (string-suffix? "CMakeLists.txt" file)
|
(unless (string-suffix? "CMakeLists.txt" file)
|
||||||
(delete-file file)))
|
(delete-file file)))
|
||||||
(append (find-files "extra/yassl")
|
(append (find-files "extra/wolfssl")
|
||||||
(find-files "pcre") (find-files "zlib")))
|
(find-files "zlib")))
|
||||||
#t))))
|
#t))))
|
||||||
(build-system cmake-build-system)
|
(build-system cmake-build-system)
|
||||||
(outputs '("out" "lib" "dev"))
|
(outputs '("out" "lib" "dev"))
|
||||||
|
@ -798,29 +797,20 @@ Language.")
|
||||||
"-DINSTALL_SHAREDIR=share")
|
"-DINSTALL_SHAREDIR=share")
|
||||||
#:phases
|
#:phases
|
||||||
(modify-phases %standard-phases
|
(modify-phases %standard-phases
|
||||||
,@(if (string-prefix? "arm" (%current-system))
|
(add-after 'unpack 'adjust-output-references
|
||||||
;; XXX: Because of the GCC 5 input, we need to hide GCC 7 from
|
|
||||||
;; CPLUS_INCLUDE_PATH so that its headers do not shadow GCC 5.
|
|
||||||
'((add-after 'set-paths 'hide-default-gcc
|
|
||||||
(lambda* (#:key inputs #:allow-other-keys)
|
|
||||||
(let ((gcc (assoc-ref inputs "gcc")))
|
|
||||||
(setenv "CPLUS_INCLUDE_PATH"
|
|
||||||
(string-join
|
|
||||||
(delete (string-append gcc "/include/c++")
|
|
||||||
(string-split (getenv "CPLUS_INCLUDE_PATH")
|
|
||||||
#\:))
|
|
||||||
":"))
|
|
||||||
#t))))
|
|
||||||
'())
|
|
||||||
(add-after 'unpack 'fix-pcre-detection
|
|
||||||
(lambda _
|
(lambda _
|
||||||
;; The bundled PCRE in MariaDB has a patch that was upstreamed
|
;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
|
||||||
;; in version 8.34. Unfortunately the upstream patch behaves
|
;; to other variables such as $INSTALL_INCLUDEDIR, which does
|
||||||
;; slightly differently and the build system fails to detect it.
|
;; not work when the latter uses an absolute file name.
|
||||||
;; See <https://bugs.exim.org/show_bug.cgi?id=2173>.
|
(substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
|
||||||
;; XXX: Consider patching PCRE instead.
|
(("@CMAKE_INSTALL_PREFIX@/@INSTALL_INCLUDEDIR@")
|
||||||
(substitute* "cmake/pcre.cmake"
|
"@INSTALL_INCLUDEDIR@"))
|
||||||
((" OR NOT PCRE_STACK_SIZE_OK") ""))
|
(substitute* "libmariadb/mariadb_config/libmariadb.pc.in"
|
||||||
|
(("\\$\\{prefix\\}/@INSTALL_INCLUDEDIR@")
|
||||||
|
"@INSTALL_INCLUDEDIR@"))
|
||||||
|
(substitute* "include/CMakeLists.txt"
|
||||||
|
(("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
|
||||||
|
"${INSTALL_INCLUDEDIR}"))
|
||||||
#t))
|
#t))
|
||||||
(add-after 'unpack 'adjust-tests
|
(add-after 'unpack 'adjust-tests
|
||||||
(lambda _
|
(lambda _
|
||||||
|
@ -828,6 +818,7 @@ Language.")
|
||||||
'(;; These fail because root@hostname == root@localhost in
|
'(;; These fail because root@hostname == root@localhost in
|
||||||
;; the build environment, causing a user count mismatch.
|
;; the build environment, causing a user count mismatch.
|
||||||
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
|
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
|
||||||
|
"funcs_1.is_columns_mysql"
|
||||||
"main.join_cache"
|
"main.join_cache"
|
||||||
"main.explain_non_select"
|
"main.explain_non_select"
|
||||||
"main.stat_tables"
|
"main.stat_tables"
|
||||||
|
@ -836,20 +827,7 @@ Language.")
|
||||||
|
|
||||||
;; This file contains a time bomb which makes it fail after
|
;; This file contains a time bomb which makes it fail after
|
||||||
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
|
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
|
||||||
"main.mysqldump"
|
"main.mysqldump"))
|
||||||
|
|
||||||
;; FIXME: This test fails on i686:
|
|
||||||
;; -myisampack: Can't create/write to file (Errcode: 17 "File exists")
|
|
||||||
;; +myisampack: Can't create/write to file (Errcode: 17 "File exists)
|
|
||||||
;; When running "myisampack --join=foo/t3 foo/t1 foo/t2"
|
|
||||||
;; (all three tables must exist and be identical)
|
|
||||||
;; in a loop it produces the same error around 1/240 times.
|
|
||||||
;; montywi on #maria suggested removing the real_end check in
|
|
||||||
;; "strings/my_vsnprintf.c" on line 503, yet it still does not
|
|
||||||
;; reach the ending quote occasionally. Disable it for now.
|
|
||||||
"main.myisampack"
|
|
||||||
;; FIXME: This test fails on armhf-linux:
|
|
||||||
"mroonga/storage.index_read_multiple_double"))
|
|
||||||
|
|
||||||
;; This file contains a list of known-flaky tests for this
|
;; This file contains a list of known-flaky tests for this
|
||||||
;; release. Append our own items.
|
;; release. Append our own items.
|
||||||
|
@ -860,9 +838,10 @@ Language.")
|
||||||
disabled-tests)
|
disabled-tests)
|
||||||
(close-port unstable-tests)
|
(close-port unstable-tests)
|
||||||
|
|
||||||
;; XXX: This test fails because it expects a latin1 charset and
|
;; XXX: These fail because they expect a latin1 charset and
|
||||||
;; collation. See <https://jira.mariadb.org/browse/MDEV-21264>.
|
;; collation. See <https://jira.mariadb.org/browse/MDEV-21264>.
|
||||||
(substitute* "mysql-test/r/gis_notembedded.result"
|
(substitute* '("mysql-test/main/gis_notembedded.result"
|
||||||
|
"mysql-test/main/system_mysql_db.result")
|
||||||
(("latin1_swedish_ci") "utf8_general_ci")
|
(("latin1_swedish_ci") "utf8_general_ci")
|
||||||
(("\tlatin1") "\tutf8"))
|
(("\tlatin1") "\tutf8"))
|
||||||
|
|
||||||
|
@ -905,56 +884,57 @@ Language.")
|
||||||
(dev (assoc-ref outputs "dev"))
|
(dev (assoc-ref outputs "dev"))
|
||||||
(lib (assoc-ref outputs "lib"))
|
(lib (assoc-ref outputs "lib"))
|
||||||
(openssl (assoc-ref inputs "openssl")))
|
(openssl (assoc-ref inputs "openssl")))
|
||||||
(substitute* (string-append out "/bin/mysql_install_db")
|
(substitute* (list (string-append out "/bin/mariadb-install-db")
|
||||||
|
(string-append out "/bin/mysql_install_db"))
|
||||||
(("basedir=\"\"")
|
(("basedir=\"\"")
|
||||||
(string-append "basedir=\"" out "\"")))
|
(string-append "basedir=\"" out "\""))
|
||||||
|
(("\\$basedir/share/mysql")
|
||||||
|
(string-append lib "/share/mysql")))
|
||||||
|
|
||||||
;; Remove unneeded files for testing.
|
;; Remove unneeded files for testing.
|
||||||
(with-directory-excursion lib
|
(with-directory-excursion lib
|
||||||
(for-each delete-file-recursively
|
(for-each delete-file-recursively
|
||||||
'("data" "mysql-test" "sql-bench"))
|
'("mysql-test" "sql-bench"))
|
||||||
;; And static libraries.
|
;; And static libraries.
|
||||||
(for-each delete-file (find-files "lib" "\\.a$")))
|
(for-each delete-file (find-files "lib" "\\.a$")))
|
||||||
(with-directory-excursion out
|
(with-directory-excursion out
|
||||||
(delete-file "share/man/man1/mysql-test-run.pl.1")
|
(delete-file "share/man/man1/mysql-test-run.pl.1")
|
||||||
;; Delete huge and unnecessary executables.
|
;; Delete huge and unnecessary executables.
|
||||||
(for-each delete-file (find-files "bin" "(test|embedded)")))
|
(for-each delete-file (find-files "bin" "test$")))
|
||||||
(mkdir-p (string-append dev "/share"))
|
(mkdir-p (string-append dev "/share"))
|
||||||
(mkdir-p (string-append dev "/bin"))
|
(mkdir-p (string-append dev "/bin"))
|
||||||
|
(rename-file (string-append lib "/bin/mariadbd")
|
||||||
|
(string-append out "/bin/mariadbd"))
|
||||||
(rename-file (string-append lib "/bin/mysqld")
|
(rename-file (string-append lib "/bin/mysqld")
|
||||||
(string-append out "/bin/mysqld"))
|
(string-append out "/bin/mysqld"))
|
||||||
(rename-file (string-append lib "/share/pkgconfig")
|
(mkdir-p (string-append dev "/lib"))
|
||||||
(string-append dev "/share/pkgconfig"))
|
(rename-file (string-append lib "/lib/pkgconfig")
|
||||||
|
(string-append dev "/lib/pkgconfig"))
|
||||||
|
(rename-file (string-append lib "/bin/mariadb_config")
|
||||||
|
(string-append dev "/bin/mariadb_config"))
|
||||||
(rename-file (string-append out "/bin/mysql_config")
|
(rename-file (string-append out "/bin/mysql_config")
|
||||||
(string-append dev "/bin/mysql_config"))
|
(string-append dev "/bin/mysql_config"))
|
||||||
|
|
||||||
|
|
||||||
(substitute* (string-append out "/bin/mysql_install_db")
|
|
||||||
(("\\$basedir/share/mysql")
|
|
||||||
(string-append lib "/share/mysql")))
|
|
||||||
|
|
||||||
;; Embed an absolute reference to OpenSSL in mysql_config
|
;; Embed an absolute reference to OpenSSL in mysql_config
|
||||||
;; and the pkg-config file to avoid propagation.
|
;; and the pkg-config file to avoid propagation.
|
||||||
|
;; XXX: how to do this for mariadb_config.c.in?
|
||||||
(substitute* (list (string-append dev "/bin/mysql_config")
|
(substitute* (list (string-append dev "/bin/mysql_config")
|
||||||
(string-append dev "/share/pkgconfig/mariadb.pc"))
|
(string-append dev "/lib/pkgconfig/mariadb.pc"))
|
||||||
(("-lssl -lcrypto" all)
|
(("-lssl -lcrypto" all)
|
||||||
(string-append "-L" openssl "/lib " all)))
|
(string-append "-L" openssl "/lib " all)))
|
||||||
|
|
||||||
#t))))))
|
#t))))))
|
||||||
(native-inputs
|
(native-inputs
|
||||||
`(("bison" ,bison)
|
`(("bison" ,bison)
|
||||||
;; XXX: On armhf, use GCC 5 to work around <https://bugs.gnu.org/37605>.
|
|
||||||
,@(if (string-prefix? "armhf" (%current-system))
|
|
||||||
`(("gcc@5" ,gcc-5))
|
|
||||||
'())
|
|
||||||
("perl" ,perl)))
|
("perl" ,perl)))
|
||||||
(inputs
|
(inputs
|
||||||
`(("jemalloc" ,jemalloc)
|
`(("jemalloc" ,jemalloc)
|
||||||
("libaio" ,libaio)
|
("libaio" ,libaio)
|
||||||
("libxml2" ,libxml2)
|
("libxml2" ,libxml2)
|
||||||
("ncurses" ,ncurses)
|
("ncurses" ,ncurses)
|
||||||
("openssl" ,openssl-1.0)
|
("openssl" ,openssl)
|
||||||
("pam" ,linux-pam)
|
("pam" ,linux-pam)
|
||||||
("pcre" ,pcre)
|
("pcre2" ,pcre2)
|
||||||
("xz" ,xz)
|
("xz" ,xz)
|
||||||
("zlib" ,zlib)))
|
("zlib" ,zlib)))
|
||||||
;; The test suite is very resource intensive and can take more than three
|
;; The test suite is very resource intensive and can take more than three
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
From 93efa48a7b972fc463406603574a4d508eefe792 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Sergei Golubchik <serg@mariadb.org>
|
|
||||||
Date: Sun, 13 May 2018 18:50:21 +0200
|
|
||||||
Subject: [PATCH] fix failing main.mysql_client_test test on 32bit
|
|
||||||
|
|
||||||
in `ulonglong=ulong*uint` multiplication
|
|
||||||
is done in ulong, wrapping around on 32bit.
|
|
||||||
|
|
||||||
This became visible after C/C changed the
|
|
||||||
default charset to utf8, thus changing
|
|
||||||
mbmaxlem from 1 to 3.
|
|
||||||
---
|
|
||||||
tests/mysql_client_fw.c | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tests/mysql_client_fw.c b/tests/mysql_client_fw.c
|
|
||||||
index f69eb28a2871..4d036887629a 100644
|
|
||||||
--- a/tests/mysql_client_fw.c
|
|
||||||
+++ b/tests/mysql_client_fw.c
|
|
||||||
@@ -768,7 +768,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
|
|
||||||
{
|
|
||||||
MYSQL_FIELD *field;
|
|
||||||
CHARSET_INFO *cs;
|
|
||||||
- ulonglong expected_field_length;
|
|
||||||
+ ulonglong expected_field_length= length;
|
|
||||||
|
|
||||||
if (!(field= mysql_fetch_field_direct(result, no)))
|
|
||||||
{
|
|
||||||
@@ -777,7 +777,7 @@ static void do_verify_prepare_field(MYSQL_RES *result,
|
|
||||||
}
|
|
||||||
cs= get_charset(field->charsetnr, 0);
|
|
||||||
DIE_UNLESS(cs);
|
|
||||||
- if ((expected_field_length= length * cs->mbmaxlen) > UINT_MAX32)
|
|
||||||
+ if ((expected_field_length*= cs->mbmaxlen) > UINT_MAX32)
|
|
||||||
expected_field_length= UINT_MAX32;
|
|
||||||
if (!opt_silent)
|
|
||||||
{
|
|
Reference in New Issue