[PATCH staging] gnu: MariaDB: Update to 10.5.5.

  • Done
  • quality assurance status badge
Details
One participant
  • Marius Bakke
Owner
unassigned
Submitted by
Marius Bakke
Severity
normal
M
M
Marius Bakke wrote on 12 Sep 2020 16:38
(address . guix-patches@gnu.org)
20200912143811.8254-1-marius@gnu.org
* 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.5.
[source](patches): Remove.
[source](snippet): Adapt unbundling for yassl->wolfssl migration.
[arguments]: Remove workaround for armhf-linux. Remove fix-pcre-detection
phase. Add phase to fix referenced directory names. Adjust substitution for
renamed file. Enable previously failing tests, and disable all replication
tests.
[inputs]: Remove OPENSSL-1.0 and PCRE. Add OPENSSL and PCRE2.
[native-inputs]: Remove armhf workaround.
---
gnu/local.mk | 1 -
gnu/packages/databases.scm | 102 +++++++-----------
.../patches/mariadb-client-test-32bit.patch | 37 -------
3 files changed, 41 insertions(+), 99 deletions(-)
delete mode 100644 gnu/packages/patches/mariadb-client-test-32bit.patch

Toggle diff (260 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 1baa8405c5..8be8d8ff59 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1292,7 +1292,6 @@ dist_patch_DATA = \
%D%/packages/patches/luit-posix.patch \
%D%/packages/patches/lvm2-static-link.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-sfml-2.3.patch \
%D%/packages/patches/maxima-defsystem-mkdir.patch \
diff --git a/gnu/packages/databases.scm b/gnu/packages/databases.scm
index 3f5f885c35..e9c0128080 100644
--- a/gnu/packages/databases.scm
+++ b/gnu/packages/databases.scm
@@ -716,7 +716,7 @@ Language.")
(define-public mariadb
(package
(name "mariadb")
- (version "10.1.45")
+ (version "10.5.5")
(source (origin
(method url-fetch)
(uri (string-append "https://downloads.mariadb.com/MariaDB"
@@ -724,8 +724,7 @@ Language.")
version ".tar.gz"))
(sha256
(base32
- "1mfs0x4c0z7d306n128dxdawk3llk25vxif5zwl20fv1z5qhz3wx"))
- (patches (search-patches "mariadb-client-test-32bit.patch"))
+ "1948j0bqlqqhp0hw7f69jy10jbdz27hrmci03nxpph2l2w32qsyg"))
(modules '((guix build utils)))
(snippet
'(begin
@@ -743,8 +742,8 @@ Language.")
(for-each (lambda (file)
(unless (string-suffix? "CMakeLists.txt" file)
(delete-file file)))
- (append (find-files "extra/yassl")
- (find-files "pcre") (find-files "zlib")))
+ (append (find-files "extra/wolfssl")
+ (find-files "zlib")))
#t))))
(build-system cmake-build-system)
(outputs '("out" "lib" "dev"))
@@ -798,29 +797,17 @@ Language.")
"-DINSTALL_SHAREDIR=share")
#:phases
(modify-phases %standard-phases
- ,@(if (string-prefix? "arm" (%current-system))
- ;; 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
+ (add-after 'unpack 'adjust-output-references
(lambda _
- ;; The bundled PCRE in MariaDB has a patch that was upstreamed
- ;; in version 8.34. Unfortunately the upstream patch behaves
- ;; slightly differently and the build system fails to detect it.
- ;; See <https://bugs.exim.org/show_bug.cgi?id=2173>.
- ;; XXX: Consider patching PCRE instead.
- (substitute* "cmake/pcre.cmake"
- ((" OR NOT PCRE_STACK_SIZE_OK") ""))
+ ;; The build system invariably prepends $CMAKE_INSTALL_PREFIX
+ ;; to other variables such as $INSTALL_INCLUDEDIR, which does
+ ;; not work when the latter uses an absolute file name.
+ (substitute* "libmariadb/mariadb_config/mariadb_config.c.in"
+ (("@CMAKE_INSTALL_PREFIX@/@INSTALL_(INCLUDEDIR|LIBDIR)@" _ dir)
+ (string-append "@INSTALL_" dir "@")))
+ (substitute* "include/CMakeLists.txt"
+ (("\\\\\\$\\{CMAKE_INSTALL_PREFIX\\}/\\$\\{INSTALL_INCLUDEDIR\\}")
+ "${INSTALL_INCLUDEDIR}"))
#t))
(add-after 'unpack 'adjust-tests
(lambda _
@@ -828,6 +815,7 @@ Language.")
'(;; These fail because root@hostname == root@localhost in
;; the build environment, causing a user count mismatch.
;; See <https://jira.mariadb.org/browse/MDEV-7761>.
+ "funcs_1.is_columns_mysql"
"main.join_cache"
"main.explain_non_select"
"main.stat_tables"
@@ -836,20 +824,7 @@ Language.")
;; This file contains a time bomb which makes it fail after
;; 2030-12-31. See <https://bugs.gnu.org/34351> for details.
- "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"))
+ "main.mysqldump"))
;; This file contains a list of known-flaky tests for this
;; release. Append our own items.
@@ -860,9 +835,10 @@ Language.")
disabled-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>.
- (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")
(("\tlatin1") "\tutf8"))
@@ -895,6 +871,10 @@ Language.")
"--testcase-timeout=40"
"--suite-timeout=600"
"--parallel" (number->string (parallel-job-count))
+ ;; Skip the replication tests: they are extremely I/O
+ ;; intensive and frequently causes random false
+ ;; positives even on powerful hardware.
+ "--skip-rpl"
"--skip-test-list=unstable-tests"))
(format #t "test suite not run~%"))
#t))
@@ -905,56 +885,56 @@ Language.")
(dev (assoc-ref outputs "dev"))
(lib (assoc-ref outputs "lib"))
(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=\"\"")
- (string-append "basedir=\"" out "\"")))
+ (string-append "basedir=\"" out "\""))
+ (("\\$basedir/share/mysql")
+ (string-append lib "/share/mysql")))
+
;; Remove unneeded files for testing.
(with-directory-excursion lib
(for-each delete-file-recursively
- '("data" "mysql-test" "sql-bench"))
+ '("mysql-test" "sql-bench"))
;; And static libraries.
(for-each delete-file (find-files "lib" "\\.a$")))
(with-directory-excursion out
(delete-file "share/man/man1/mysql-test-run.pl.1")
;; 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 "/bin"))
+ (rename-file (string-append lib "/bin/mariadbd")
+ (string-append out "/bin/mariadbd"))
(rename-file (string-append lib "/bin/mysqld")
(string-append out "/bin/mysqld"))
- (rename-file (string-append lib "/share/pkgconfig")
- (string-append dev "/share/pkgconfig"))
+ (mkdir-p (string-append dev "/lib"))
+ (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")
(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
;; and the pkg-config file to avoid propagation.
(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)
(string-append "-L" openssl "/lib " all)))
#t))))))
(native-inputs
`(("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)))
(inputs
`(("jemalloc" ,jemalloc)
("libaio" ,libaio)
("libxml2" ,libxml2)
("ncurses" ,ncurses)
- ("openssl" ,openssl-1.0)
+ ("openssl" ,openssl)
("pam" ,linux-pam)
- ("pcre" ,pcre)
+ ("pcre2" ,pcre2)
("xz" ,xz)
("zlib" ,zlib)))
;; The test suite is very resource intensive and can take more than three
diff --git a/gnu/packages/patches/mariadb-client-test-32bit.patch b/gnu/packages/patches/mariadb-client-test-32bit.patch
deleted file mode 100644
index 02017e324d..0000000000
--- a/gnu/packages/patches/mariadb-client-test-32bit.patch
+++ /dev/null
@@ -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)
- {
--
2.28.0
M
M
Marius Bakke wrote on 13 Oct 2020 23:59
(address . 43355-done@debbugs.gnu.org)
874kmxrdmt.fsf@gnu.org
Marius Bakke <marius@gnu.org> writes:

Toggle quote (12 lines)
> * 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.5.
> [source](patches): Remove.
> [source](snippet): Adapt unbundling for yassl->wolfssl migration.
> [arguments]: Remove workaround for armhf-linux. Remove fix-pcre-detection
> phase. Add phase to fix referenced directory names. Adjust substitution for
> renamed file. Enable previously failing tests, and disable all replication
> tests.
> [inputs]: Remove OPENSSL-1.0 and PCRE. Add OPENSSL and PCRE2.
> [native-inputs]: Remove armhf workaround.

I moved the hunk that disables replication tests to a separate commit,
and pushed to 'staging' as 525ebb8508655e7a5dd68073dc57fe1c686d8878 and
b2bb04bde57b2dc7a182b9f49bc8d85b75c460fb respectively.

I'll try to implement upgrade functionality in the service system in
time for the merge.
-----BEGIN PGP SIGNATURE-----

iQFDBAEBCgAtFiEEu7At3yzq9qgNHeZDoqBt8qM6VPoFAl+GIzoPHG1hcml1c0Bn
bnUub3JnAAoJEKKgbfKjOlT6x0sIALMZs2yaWN8MAMSHqWn2npXKpBR0ubNRMQkb
VVWnkNzbg8iVOuRI382PsTvCHp0YFGYhsJ/0pyvg7C86ZqbwZe8tm5r/l0L+lnW6
QquZ46G4PnGKuEb2qgsY6rWVGK6q4USC8bsRzweuEeMxUbyM3psh7uMQW7bhrZpB
QYCVTJHVURra8EqTVWWpTJ0QL7NCZPvgZ7QY5hCDtzE0m3bIxY4zkrSnzAYiffBz
fgo1h6KbP3KpY+Og8lI3BdNDD0FzXzm1vhV129M8zfv76rnp9gCESUCvwNF0pJwn
YLaixRtGD1dRNO7OtelfEcrGhBDE8kxAD1s8NGBVb2Ug0eRiMMA=
=wgZb
-----END PGP SIGNATURE-----

Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 43355@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 43355
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch