From 164d5419b12fbe6386f13d3fd284c85fcd0efba0 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Tue, 11 Jun 2019 17:00:53 +0200 Subject: [PATCH] Rebase to 10.4.5 --- mariadb.spec | 120 ++++++++++++++++++++++--------------- rh-skipped-tests-base.list | 5 -- sources | 2 +- 3 files changed, 74 insertions(+), 53 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 70d36e0..40058c3 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -3,20 +3,20 @@ %global pkgnamepatch mariadb # Regression tests may take a long time (many cores recommended), skip them by -%{!?runselftest:%global runselftest 1} +%{!?runselftest:%global runselftest 0} # Set this to 1 to see which tests fail, but 0 on production ready build -%global ignore_testsuite_result 1 +%global ignore_testsuite_result 0 # The last version on which the full testsuite has been run # In case of further rebuilds of that version, don't require full testsuite to be run # run only "main" suite -%global last_tested_version 10.4.2 +%global last_tested_version 10.4.5 # Set to 1 to force run the testsuite even if it was already tested in current version %global force_run_testsuite 0 # Aditional SELinux rules -%global require_mysql_selinux 0 +%global require_mysql_selinux 1 # In f20+ use unversioned docdirs, otherwise the old versioned one %global _pkgdocdirname %{pkg_name}%{!?_pkgdocdir:-%{version}} @@ -72,7 +72,7 @@ %bcond_without gssapi # For some use cases we do not need some parts of the package. Set to "...with" to exclude -%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 +%if 0%{?fedora} || 0%{?rhel} > 7 %bcond_with clibrary %else %bcond_without clibrary @@ -85,6 +85,7 @@ %bcond_without test %bcond_without galera %bcond_without backup +# Upstream no longer maintain and pack the bench subpackage %if 0%{?fedora} %bcond_without bench %else @@ -104,8 +105,6 @@ %bcond_with debug # Page compression algorithms for InnoDB & XtraDB -# lz4 currently cannot be turned off by CMake, only by not having lz4-devel package in the buildroot -# https://jira.mariadb.org/browse/MDEV-15932 %bcond_without lz4 @@ -158,8 +157,8 @@ %global sameevr %{epoch}:%{version}-%{release} Name: mariadb -Version: 10.4.2 -Release: 1.beta%{?with_debug:.debug}%{?dist} +Version: 10.4.5 +Release: 1.rc%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A very fast and robust SQL database server @@ -192,7 +191,7 @@ Source71: LICENSE.clustercheck # https://jira.mariadb.org/browse/MDEV-12646 Source72: mariadb-server-galera.te -# Patch2: Make the python interpretter be configurable +# Patch2: Make the python interpretter be configurable Patch2: %{pkgnamepatch}-pythonver.patch # Patch4: Red Hat distributions specific logrotate fix # it would be big unexpected change, if we start shipping it now. Better wait for MariaDB 10.2 @@ -259,7 +258,7 @@ Requires: bash coreutils grep Requires: %{name}-common%{?_isa} = %{sameevr} -%if %{with clibrary} +%if %{with clibrary} || %{with galera} # Explicit EVR requirement for -libs is needed for RHBZ#1406320 Requires: %{name}-libs%{?_isa} = %{sameevr} %else @@ -297,7 +296,7 @@ The base package contains the standard MariaDB/MySQL client programs and generic MySQL files. -%if %{with clibrary} +%if %{with clibrary} || %{with galera} %package libs Summary: The shared libraries required for MariaDB/MySQL clients Requires: %{name}-common%{?_isa} = %{sameevr} @@ -343,7 +342,7 @@ Requires: %{_sysconfdir}/my.cnf # obsoletion of mariadb-galera-common Provides: mariadb-galera-common = %{sameevr} -%if %{without clibrary} +%if %{without clibrary} && %{without galera} Obsoletes: %{name}-libs <= %{sameevr} %endif @@ -587,9 +586,10 @@ the only MariaDB sub-package, except test subpackage, that depends on Perl. %if %{with devel} %package devel Summary: Files for development of MariaDB/MySQL applications -%{?with_clibrary:Requires: %{name}-libs%{?_isa} = %{sameevr}} Requires: openssl-devel -%if %{without clibrary} +%if %{with clibrary} || %{with galera} +Requires: %{name}-libs%{?_isa} = %{sameevr} +%else Requires: mariadb-connector-c-devel >= 3.0 %endif %if %{with mysql_names} @@ -834,9 +834,11 @@ export CFLAGS CXXFLAGS -DCONC_WITH_SSL=%{?with_clibrary:ON}%{!?with_clibrary:NO} \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ - -DWITH_JEMALLOC=%{?with_tokudb:YES}%{!?with_tokudb:NO} \ + -DWITH_JEMALLOC=%{?with_tokudb:yes}%{!?with_tokudb:no} \ -DLZ4_LIBS=%{_libdir}/liblz4.so \ + -DLZ4_LIBS=%{?with_lz4:%{_libdir}/liblz4.so}%{!?with_lz4:} \ -DWITH_INNODB_LZ4=%{?with_lz4:ON}%{!?with_lz4:OFF} \ + -DWITH_ROCKSDB_LZ4=%{?with_lz4:ON}%{!?with_lz4:OFF} \ -DPLUGIN_MROONGA=%{?with_mroonga:DYNAMIC}%{!?with_mroonga:NO} \ -DPLUGIN_OQGRAPH=%{?with_oqgraph:DYNAMIC}%{!?with_oqgraph:NO} \ -DPLUGIN_CRACKLIB_PASSWORD_CHECK=%{?with_cracklib:DYNAMIC}%{!?with_cracklib:NO} \ @@ -868,6 +870,12 @@ make -f /usr/share/selinux/devel/Makefile %{name}-server-galera.pp %install make DESTDIR=%{buildroot} install +%if %{with galera} +# Install the wsrep library +install -D -p -m 0755 wsrep-lib/wsrep-API/libwsrep_api_v*.so %{buildroot}%{_libdir} +install -D -p -m 0755 wsrep-lib/src/libwsrep-lib.so %{buildroot}%{_libdir} +%endif + # multilib header support #1625157 for header in mysql/server/my_config.h mysql/server/private/config.h; do %multilib_fix_c_header --file %{_includedir}/$header @@ -890,8 +898,10 @@ fi # TODO: check, if it changes location inside that file depending on values passed to Cmake mkdir -p %{buildroot}/%{_libdir}/pkgconfig mv %{buildroot}/%{_datadir}/pkgconfig/*.pc %{buildroot}/%{_libdir}/pkgconfig +%if %{without clibrary} # Client part should be included in package 'mariadb-connector-c' rm %{buildroot}%{_libdir}/pkgconfig/libmariadb.pc +%endif # install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files, # but that's pretty wacko --- see also %%{name}-file-contents.patch) @@ -923,7 +933,6 @@ mv %{buildroot}%{_sysconfdir}/my.cnf.d/server.cnf %{buildroot}%{_sysconfdir}/my. mv %{buildroot}%{_sysusersdir}/sysusers.conf %{buildroot}%{_sysusersdir}/%{name}.conf # remove SysV init script and a symlink to that, we pack our very own -rm %{buildroot}%{_sysconfdir}/init.d/mysql rm %{buildroot}%{_libexecdir}/rcmysql # install systemd unit files and scripts for handling server startup install -D -p -m 644 scripts/mysql.service %{buildroot}%{_unitdir}/%{daemon_name}.service @@ -993,15 +1002,17 @@ install -p -m 0644 %{SOURCE16} %{basename:%{SOURCE16}} install -p -m 0644 %{SOURCE71} %{basename:%{SOURCE71}} # install galera config file +%if %{with galera} sed -i -r 's|^wsrep_provider=none|wsrep_provider=%{_libdir}/galera/libgalera_smm.so|' support-files/wsrep.cnf install -p -m 0644 support-files/wsrep.cnf %{buildroot}%{_sysconfdir}/my.cnf.d/galera.cnf +%endif # install the clustercheck script mkdir -p %{buildroot}%{_sysconfdir}/sysconfig touch %{buildroot}%{_sysconfdir}/sysconfig/clustercheck install -p -m 0755 scripts/clustercheck %{buildroot}%{_bindir}/clustercheck # remove duplicate logrotate script -rm %{buildroot}%{_sysconfdir}/logrotate.d/mysql +rm %{buildroot}%{logrotateddir}/mysql # Remove AppArmor files rm -r %{buildroot}%{_datadir}/%{pkg_name}/policy/apparmor @@ -1029,7 +1040,10 @@ unlink %{buildroot}%{_libdir}/libmysqlclient.so unlink %{buildroot}%{_libdir}/libmysqlclient_r.so unlink %{buildroot}%{_libdir}/libmariadb.so # Client plugins -rm %{buildroot}%{_libdir}/%{pkg_name}/plugin/{dialog.so,mysql_clear_password.so,sha256_password.so,auth_gssapi_client.so} +rm %{buildroot}%{_libdir}/%{pkg_name}/plugin/{dialog.so,mysql_clear_password.so,sha256_password.so} +%if %{with gssapi} +rm %{buildroot}%{_libdir}/%{pkg_name}/plugin/auth_gssapi_client.so +%endif %endif %if %{without clibrary} || %{without devel} @@ -1073,7 +1087,8 @@ rm %{buildroot}%{_sysconfdir}/my.cnf.d/mysql-clients.cnf rm %{buildroot}%{_mandir}/man1/tokuftdump.1* rm %{buildroot}%{_mandir}/man1/tokuft_logprint.1* %else -%if 0%{?fedora} >= 28 || 0%{?rhel} > 7 +%if 0%{?fedora} || 0%{?rhel} > 7 +rm -f %{buildroot}/etc/systemd/system/mariadb.service.d/tokudb.conf mkdir -p %{buildroot}%{_unitdir}/mariadb.service.d echo -e '[Service]\nEnvironment="LD_PRELOAD=%{_libdir}/libjemalloc.so.2"' >> %{buildroot}%{_unitdir}/mariadb.service.d/tokudb.conf %endif @@ -1088,7 +1103,7 @@ rm -r %{buildroot}%{_datadir}/%{pkg_name}/charsets %endif %if %{without gssapi} -rm -r %{buildroot}/etc/my.cnf.d/auth_gssapi.cnf +#rm -r %{buildroot}/etc/my.cnf.d/auth_gssapi.cnf %endif %if %{without errmsg} @@ -1114,7 +1129,7 @@ rm %{buildroot}%{_mandir}/man1/{mysql-test-run,mysql-stress-test}.pl.1* %endif # test %if %{without galera} -rm %{buildroot}%{_sysconfdir}/my.cnf.d/galera.cnf +#rm %{buildroot}%{_sysconfdir}/my.cnf.d/galera.cnf rm %{buildroot}%{_sysconfdir}/sysconfig/clustercheck rm %{buildroot}%{_bindir}/{clustercheck,galera_new_cluster} rm %{buildroot}%{_bindir}/galera_recovery @@ -1192,16 +1207,6 @@ export MTR_BUILD_THREAD=%{__isa_bits} /usr/sbin/useradd -M -N -g mysql -o -r -d %{mysqluserhome} -s /sbin/nologin \ -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || : -%if %{with clibrary} -# Can be dropped on F27 EOL -%ldconfig_scriptlets libs -%endif - -%if %{with embedded} -# Can be dropped on F27 EOL -%ldconfig_scriptlets embedded -%endif - %if %{with galera} %post server-galera # Do what README at support-files/policy/selinux/README and upstream page @@ -1260,13 +1265,20 @@ fi %{_mandir}/man1/mysqlshow.1* %{_mandir}/man1/mysqlslap.1* %config(noreplace) %{_sysconfdir}/my.cnf.d/mysql-clients.cnf + %endif -%if %{with clibrary} +%if %{with clibrary} || %{with galera} %files libs -%{_libdir}/libmariadb.so.* +%if %{with galera} +%{_libdir}/libwsrep*.so* +%endif +%if %{with clibrary} +%exclude %{_libdir}/{libmysqlclient.so.18,libmariadb.so,libmysqlclient.so,libmysqlclient_r.so} +%{_libdir}/libmariadb.so* %config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf %endif +%endif %if %{with config} %files config @@ -1399,7 +1411,6 @@ fi %{_mandir}/man1/mysql_secure_installation.1* %{_mandir}/man1/mysql_tzinfo_to_sql.1* %{_mandir}/man1/mysqld_safe.1* -%{_mandir}/man1/mysqld_safe_helper.1* %{_mandir}/man1/innochecksum.1* %{_mandir}/man1/replace.1* %{_mandir}/man1/resolveip.1* @@ -1427,7 +1438,9 @@ fi %doc %{_datadir}/groonga-normalizer-mysql/README.md %doc %{_datadir}/groonga/README.md %endif +%if %{with galera} %{_datadir}/%{pkg_name}/wsrep.cnf +%endif %{_datadir}/%{pkg_name}/wsrep_notify %dir %{_datadir}/%{pkg_name}/policy %dir %{_datadir}/%{pkg_name}/policy/selinux @@ -1544,12 +1557,13 @@ fi %{_mandir}/man1/perror.1* # Other utilities %{_bindir}/mysqld_safe_helper +%{_mandir}/man1/mysqld_safe_helper.1* %if %{with devel} %files devel %{_includedir}/* %{_datadir}/aclocal/mysql.m4 -%{_libdir}/pkgconfig/mariadb.pc +%{_libdir}/pkgconfig/*mariadb.pc %if %{with clibrary} %{_libdir}/{libmysqlclient.so.18,libmariadb.so,libmysqlclient.so,libmysqlclient_r.so} %{_bindir}/mysql_config* @@ -1598,9 +1612,29 @@ fi %endif %changelog -* Mon Feb 18 2019 Michal Schorm - 3:10.4.2-1 -- Rebase to 10.4.2 -- This is BETA release! use at your own risk. +* Fri Jun 07 2019 Michal Schorm - 3:10.4.5-1 +- Rebase to 10.4.5 +- This is a RC release! use with caution + +* Tue Jun 04 2019 Michal Schorm - 3:10.3.15-1 +- Rebase to 10.3.15 +- CVEs fixed: + CVE-2019-2510 CVE-2019-2537 +- CVEs fixed: + CVE-2019-2614 CVE-2019-2627 CVE-2019-2628 + +* Thu Mar 21 2019 Michal Schorm - 10.3.12-14 +- Fix building of TokuDB with Jemalloc 5 +- Fix building with / without lz4 + +* Thu Mar 21 2019 Michal Schorm - 10.3.12-13 +- Add patch for mysqld_safe --dry-run + +* Wed Mar 20 2019 Michal Schorm - 10.3.12-12 +- Add patch for server pkgconfig file location + +* Sat Feb 23 2019 Pavel Raiskup - 10.3.12-11 +- conditionally depend on selinux-policy-targeted again (rhbz#1665643) * Mon Feb 11 2019 Michal Schorm - 3:10.3.12-10 - Disable the requirement of mysql-selinux, until its bug is solved for good; #1665643 @@ -1641,10 +1675,6 @@ fi by 'mariadb-connector-c' - Remove libmariadb.pc, is it shipped by 'mariadb-connector-c' -* Sun Jan 06 2019 Michal Schorm - 3:10.4.1-1 -- Rebase to 10.4.1 -- This is BETA release! use at your own risk. - * Mon Dec 10 2018 Michal Schorm - 3:10.3.11-1 - Rebase to 10.3.11 - CVEs fixed: @@ -1652,10 +1682,6 @@ fi CVE-2018-3251, CVE-2018-3185, CVE-2018-3277, CVE-2018-3162, CVE-2018-3173 CVE-2018-3200, CVE-2018-3284 -* Fri Nov 16 2018 Michal Schorm - 3:10.4.0-1 -- Rebase to 10.4.0 -- This is ALPHA release! use at your own risk. - * Fri Oct 05 2018 Michal Schorm - 3:10.3.10-1 - Rebase to 10.3.10 diff --git a/rh-skipped-tests-base.list b/rh-skipped-tests-base.list index a35653e..e41440b 100644 --- a/rh-skipped-tests-base.list +++ b/rh-skipped-tests-base.list @@ -1,7 +1,6 @@ # The SSL test are failing correctly. Fro more explanation, see: # https://jira.mariadb.org/browse/MDEV-8404?focusedCommentId=84275&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-84275 main.ssl_7937 : #1399847 -main.ssl_crl : main.ssl_crl_clients : #1399847 main.ssl_8k_key : @@ -52,7 +51,3 @@ parts.partition_alter4_innodb : # Fails from 10.3.9 encryption.innodb-redo-badkey : - -# Fails on 10.4.2 -sys_vars.tcp_nodelay : -main.func_math : diff --git a/sources b/sources index 2d14188..3e1ab3b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mariadb-10.4.2.tar.gz) = 31fffbc3223e0e52dcce08511904bef6a9d03b734773f46e864d5e8de8ceef352b2d8821614c6cc0ed12cdd0a3c60805c6815dbe7d07b8efec708df68eb05bd3 +SHA512 (mariadb-10.4.5.tar.gz) = 080df03aff04375f6f424d94f988156cb09cb891e14d67dcea453c3f831737898ac1913b48735628034c6a7f215a06ad22b4d350a8762351ac572a60d492a07b