From 604c1bd8ebe7dbde82cf2efc6e0863414bb9fc6f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 5 Oct 2017 14:37:00 +0200 Subject: [PATCH 01/30] Start building with client library and testsuite, since this is a F27 branch --- mariadb.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 19d1845..4c31040 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -3,7 +3,7 @@ %global pkgnamepatch mariadb # Regression tests may take a long time (many cores recommended), skip them by -%{!?runselftest:%global runselftest 0} +%{!?runselftest:%global runselftest 1} # Set this to 1 to see which tests fail, but 0 on production ready build %global ignore_testsuite_result 0 @@ -43,7 +43,7 @@ %bcond_without oqgraph # For some use cases we do not need some parts of the package. Set to "...with" to exclude -%bcond_with clibrary +%bcond_without clibrary %bcond_without embedded %bcond_without devel %bcond_without client @@ -1507,6 +1507,7 @@ fi with dnf "--allowerasing" option Related: #1497234 - Fix building with client library +- Build with client library and testsuite, since this is F27 branch * Thu Sep 28 2017 Michal Schorm - 3:10.2.9-1 - Rebase to 10.2.9 From f43c1299ba97cf0b6471899e038b80ad198d38b4 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 5 Oct 2017 18:13:25 +0200 Subject: [PATCH 02/30] Fix client library obsolete --- mariadb.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 4c31040..e7dddd5 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -354,8 +354,7 @@ Provides: mariadb-galera-common = %{sameevr} Obsoletes: mariadb-galera-common < %{obsoleted_mariadb_galera_common_evr} %if %{without clibrary} -Obsoletes: %{name}-libs%{?_isa} <= %{sameevr} -Obsoletes: %{name}-common%{?_isa} < %{sameevr} +Obsoletes: %{name}-libs <= %{sameevr} %endif @@ -1508,6 +1507,8 @@ fi Related: #1497234 - Fix building with client library - Build with client library and testsuite, since this is F27 branch +- Fix client library obsolete + Related: #1498956 * Thu Sep 28 2017 Michal Schorm - 3:10.2.9-1 - Rebase to 10.2.9 From 082df141a1e83be5c01373d772fefd1f740cbe31 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 5 Oct 2017 19:05:24 +0200 Subject: [PATCH 03/30] Bump version for rebuild --- mariadb.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index e7dddd5..08b5450 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -127,7 +127,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 3%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -1497,6 +1497,10 @@ fi %endif %changelog +* Thu Oct 05 2017 Michal Schorm - 3:10.2.9-3 +- Fix client library obsolete + Related: #1498956 + * Wed Oct 04 2017 Michal Schorm - 3:10.2.9-2 - Fix of "with" and "without" macros, so they works - Use 'iproute' dependency instead of 'net-tools' @@ -1507,8 +1511,6 @@ fi Related: #1497234 - Fix building with client library - Build with client library and testsuite, since this is F27 branch -- Fix client library obsolete - Related: #1498956 * Thu Sep 28 2017 Michal Schorm - 3:10.2.9-1 - Rebase to 10.2.9 From 4f0e1812ee6d9d36eea7376b809211a917d6519a Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sun, 8 Oct 2017 00:35:13 +0200 Subject: [PATCH 04/30] RPMLint error fix: description line too long --- mariadb.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 08b5450..9b6a54c 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -502,9 +502,9 @@ Provides: mysql-perl = %{sameevr} Requires: perl(DBI) perl(DBD::mysql) %description server-utils -This package contains all non-essential server utilities and scripts for managing -databases. It also contains all utilities requiring Perl and it is the only MariaDB -subpackage, except test subpackage, that depends on Perl. +This package contains all non-essential server utilities and scripts for +managing databases. It also contains all utilities requiring Perl and it is +the only MariaDB subpackage, except test subpackage, that depends on Perl. %if %{with devel} @@ -879,7 +879,6 @@ rm %{buildroot}%{_bindir}/mysql_embedded rm %{buildroot}%{_libdir}/mysql/*.a rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure rm %{buildroot}%{_datadir}/%{pkg_name}/magic -#rm %{buildroot}%{_datadir}/%{pkg_name}/my-*.cnf rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server rm %{buildroot}%{_mandir}/man1/mysql-stress-test.pl.1* @@ -930,6 +929,8 @@ cp Docs/README-wsrep Docs/README.wsrep # remove *.jar file from mysql-test rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar +rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo2.jar +rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo3.jar # RPMLINT E: # mariadb-bench.x86_64: E: script-without-shebang /usr/share/sql-bench/myisam.cnf @@ -1500,6 +1501,7 @@ fi * Thu Oct 05 2017 Michal Schorm - 3:10.2.9-3 - Fix client library obsolete Related: #1498956 +- RPMLint error fix: description line too long * Wed Oct 04 2017 Michal Schorm - 3:10.2.9-2 - Fix of "with" and "without" macros, so they works From d34bedc1a2ef0b2281daa87ffc507a023a29d4b0 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 16 Oct 2017 14:28:44 +0200 Subject: [PATCH 05/30] RPMLint error fix: Remove unused python scripts which remained from TokuDB upstream --- mariadb.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mariadb.spec b/mariadb.spec index 9b6a54c..5033d37 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -692,6 +692,8 @@ fi rm -r storage/rocksdb/ %endif +# Remove python scripts remains from tokudb upstream (those files are not used anyway) +rm -r storage/tokudb/mysql-test/tokudb/t/*.py %build @@ -1502,6 +1504,8 @@ fi - Fix client library obsolete Related: #1498956 - RPMLint error fix: description line too long +- RPMLint error fix: + Remove unused python scripts which remained from TokuDB upstream * Wed Oct 04 2017 Michal Schorm - 3:10.2.9-2 - Fix of "with" and "without" macros, so they works From 7b7a7f80e23807496aa7e4e495a27e5ca555d150 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 16 Oct 2017 14:42:14 +0200 Subject: [PATCH 06/30] Update PCRE version and fix its failsafe --- mariadb.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 5033d37..8701125 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -81,7 +81,7 @@ # MariaDB 10.0 and later requires pcre >= 8.35, otherwise we need to use # the bundled library, since the package cannot be build with older version -%global pcre_version 8.40 +%global pcre_version 8.41 %if 0%{?fedora} >= 21 %bcond_without pcre %else @@ -677,7 +677,7 @@ cat selinux/%{name}-server-galera.te %endif # Check if PCRE version is actual -%{!?with_pcre: +%if %{with pcre} pcre_maj=`grep '^m4_define(pcre_major' pcre/configure.ac | sed -r 's/^m4_define\(pcre_major, \[([0-9]+)\]\)/\1/'` pcre_min=`grep '^m4_define(pcre_minor' pcre/configure.ac | sed -r 's/^m4_define\(pcre_minor, \[([0-9]+)\]\)/\1/'` @@ -686,7 +686,7 @@ then echo "\n Error: PCRE version is outdated. \n\tIncluded version:%{pcre_version} \n\tUpstream version: $pcre_maj.$pcre_min\n" exit 1 fi -} +%endif %if %{without rocksdb} rm -r storage/rocksdb/ From c9e70d5f1447e0bd023c860adb5649559ed2488e Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 3 Nov 2017 03:41:33 +0100 Subject: [PATCH 07/30] Rebase to 10.2.10 version Patch 2: mariadb-install-test.patch has been incorporated by upstream Patch 8: mariadb-install-db-sharedir.patch; upstream started to use macros Update PCRE check Start using location libdir/mariadb for plugins Move libraries to libdir Update unstable tests list --- mariadb-install-db-sharedir.patch | 39 -------- mariadb-install-test.patch | 55 ------------ mariadb.spec | 143 ++++++++++++++++-------------- rh-skipped-tests-base.list | 3 - sources | 2 +- 5 files changed, 75 insertions(+), 167 deletions(-) delete mode 100644 mariadb-install-db-sharedir.patch delete mode 100644 mariadb-install-test.patch diff --git a/mariadb-install-db-sharedir.patch b/mariadb-install-db-sharedir.patch deleted file mode 100644 index 77a90e7..0000000 --- a/mariadb-install-db-sharedir.patch +++ /dev/null @@ -1,39 +0,0 @@ -Use configured value instead of hardcoded path - -diff -up mariadb-10.1.18/scripts/mysql_install_db.pl.in.pbasedir mariadb-10.1.18/scripts/mysql_install_db.pl.in ---- mariadb-10.1.18/scripts/mysql_install_db.pl.in.pbasedir 2016-10-04 19:03:15.562101826 +0200 -+++ mariadb-10.1.18/scripts/mysql_install_db.pl.in 2016-10-04 19:04:47.833130195 +0200 -@@ -320,7 +320,7 @@ elsif ( $opt->{basedir} ) - find_in_basedir($opt,"file","mysqld-nt", - "bin"); # ,"sql" - $srcpkgdatadir = find_in_basedir($opt,"dir","fill_help_tables.sql", -- "share","share/mysql"); # ,"scripts" -+ "share","@INSTALL_MYSQLSHAREDIR@"); # ,"scripts" - $buildpkgdir = $srcpkgdatadir; - $scriptdir = "$opt->{basedir}/scripts"; - } -diff -up mariadb-10.1.18/scripts/mysql_install_db.sh.pbasedir mariadb-10.1.18/scripts/mysql_install_db.sh ---- mariadb-10.1.18/scripts/mysql_install_db.sh.pbasedir 2016-10-04 19:03:22.714104025 +0200 -+++ mariadb-10.1.18/scripts/mysql_install_db.sh 2016-10-04 19:08:11.457186833 +0200 -@@ -283,17 +283,17 @@ then - cannot_find_file mysqld $basedir/libexec $basedir/sbin $basedir/bin - exit 1 - fi -- langdir=`find_in_basedir --dir errmsg.sys share/english share/mysql/english` -+ langdir=`find_in_basedir --dir errmsg.sys share/english @INSTALL_MYSQLSHAREDIR@/english` - if test -z "$langdir" - then -- cannot_find_file errmsg.sys $basedir/share/english $basedir/share/mysql/english -+ cannot_find_file errmsg.sys $basedir/share/english $basedir/@INSTALL_MYSQLSHAREDIR@/english - exit 1 - fi -- srcpkgdatadir=`find_in_basedir --dir fill_help_tables.sql share share/mysql` -+ srcpkgdatadir=`find_in_basedir --dir fill_help_tables.sql share @INSTALL_MYSQLSHAREDIR@` - buildpkgdatadir=$srcpkgdatadir - if test -z "$srcpkgdatadir" - then -- cannot_find_file fill_help_tables.sql $basedir/share $basedir/share/mysql -+ cannot_find_file fill_help_tables.sql $basedir/share $basedir/@INSTALL_MYSQLSHAREDIR@ - exit 1 - fi - scriptdir="$basedir/scripts" diff --git a/mariadb-install-test.patch b/mariadb-install-test.patch deleted file mode 100644 index 1797474..0000000 --- a/mariadb-install-test.patch +++ /dev/null @@ -1,55 +0,0 @@ -Improve the documentation that will be installed in the mysql-test RPM. - ---- mariadb-10.1.13/mysql-test/README.orig 2016-03-24 10:12:10.000000000 +0100 -+++ mariadb-10.1.13/mysql-test/README 2016-03-29 10:23:30.074326900 +0200 -@@ -1,15 +1,28 @@ --This directory contains a test suite for the MySQL daemon. To run --the currently existing test cases, simply execute ./mysql-test-run in --this directory. It will fire up the newly built mysqld and test it. -- --Note that you do not have to have to do "make install", and you could --actually have a co-existing MySQL installation. The tests will not --conflict with it. To run the test suite in a source directory, you --must do make first. -- --All tests must pass. If one or more of them fail on your system, please --read the following manual section for instructions on how to report the --problem: -+This directory contains a test suite for the MariaDB daemon. To run -+the currently existing test cases, execute ./mysql-test-run in -+this directory. -+ -+For use in Red Hat distributions, you should run the script as user mysql, -+who is created with nologin shell however, so the best bet is something like -+ $ su - -+ # cd /usr/share/mysql-test -+ # su -s /bin/bash mysql -c "./mysql-test-run --skip-test-list=unstable-tests" -+ -+This will use the installed mysql executables, but will run a private copy -+of the server process (using data files within /usr/share/mysql-test), -+so you need not start the mysqld service beforehand. -+ -+The "--skip-test-list=unstable-tests" option excludes tests that are -+known to fail on one or more Red-Hat-supported platforms. You can omit it -+if you want to check whether such failures occur for you. Documentation -+about the reasons for omitting such tests can be found in the file -+unstable-tests. -+ -+To clean up afterwards, remove the created "var" subdirectory, eg -+ # su -s /bin/bash - mysql -c "rm -rf /usr/share/mysql-test/var" -+ -+If one or more tests fail on your system, please read the following manual -+section for instructions on how to report the problem: - - https://mariadb.com/kb/en/reporting-bugs - -@@ -26,7 +39,8 @@ other relevant options. - - With no test cases named on the command line, mysql-test-run falls back - to the normal "non-extern" behavior. The reason for this is that some --tests cannot run with an external server. -+tests cannot run with an external server (because they need to control the -+options with which the server is started). - - You can create your own test cases. To create a test case, create a new - file in the t subdirectory using a text editor. The file should have a .test diff --git a/mariadb.spec b/mariadb.spec index 8701125..71b65c3 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -60,8 +60,7 @@ %bcond_without config # For deep debugging we need to build binaries with extra debug info -# Does not work at this time: https://jira.mariadb.org/browse/MDEV-13986 -%bcond_with debug +%bcond_with debug # Include files for SysV init or systemd %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 @@ -81,11 +80,11 @@ # MariaDB 10.0 and later requires pcre >= 8.35, otherwise we need to use # the bundled library, since the package cannot be build with older version -%global pcre_version 8.41 %if 0%{?fedora} >= 21 -%bcond_without pcre +%bcond_without bundled_pcre %else -%bcond_with pcre +%bcond_with bundled_pcre +%global pcre_bundled_version 8.41 %endif # We define some system's well known locations here so we can use them easily @@ -123,11 +122,11 @@ # Make long macros shorter %global sameevr %{epoch}:%{version}-%{release} %global compatver 10.2 -%global bugfixver 9 +%global bugfixver 10 Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 3%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -163,16 +162,11 @@ Source71: LICENSE.clustercheck # https://jira.mariadb.org/browse/MDEV-12646 Source72: mariadb-server-galera.te -# Patch2: testsuite README update, introducing skipped-tests.list -# upstream questioned, if they are insterested: https://jira.mariadb.org/browse/MDEV-12263 -Patch2: %{pkgnamepatch}-install-test.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 Patch4: %{pkgnamepatch}-logrotate.patch # Patch7: add to the CMake file all files where we want macros to be expanded Patch7: %{pkgnamepatch}-scripts.patch -# Patch8: resolve conflict, when we combine MariaDB and MySQL packages -Patch8: %{pkgnamepatch}-install-db-sharedir.patch # Patch9: pre-configure to comply with guidelines Patch9: %{pkgnamepatch}-ownsetup.patch @@ -211,8 +205,8 @@ BuildRequires: libarchive-devel # auth_pam.so plugin will be build if pam-devel is installed BuildRequires: pam-devel # use either new enough version of pcre or provide bundles(pcre) -%{?with_pcre:BuildRequires: pcre-devel >= 8.35} -%{!?with_pcre:Provides: bundled(pcre) = %{pcre_version}} +%{?with_bundled_pcre:BuildRequires: pcre-devel >= 8.35 pkgconf} +%{?without_bundled_pcre:Provides: bundled(pcre) = %{pcre_bundled_version}} # Few utilities needs Perl %if 0%{?fedora} >= 22 || 0%{?rhel} > 7 BuildRequires: perl-interpreter @@ -271,10 +265,10 @@ Obsoletes: mariadb-galera < %{obsoleted_mariadb_galera_evr} # Filtering: https://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering %if 0%{?fedora} > 14 || 0%{?rhel} > 6 %global __requires_exclude ^perl\\((hostnames|lib::mtr|lib::v1|mtr_|My::) -%global __provides_exclude_from ^(%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\\.so)$ +%global __provides_exclude_from ^(%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/%{pkg_name}/plugin/.*\\.so)$ %else %filter_from_requires /perl(\(hostnames\|lib::mtr\|lib::v1\|mtr_\|My::\)/d -%filter_provides_in -P (%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/mysql/plugin/.*\.so) +%filter_provides_in -P (%{_datadir}/(mysql|mysql-test)/.*|%{_libdir}/%{pkg_name}/plugin/.*\.so) %filter_setup %endif @@ -504,7 +498,7 @@ Requires: perl(DBI) perl(DBD::mysql) %description server-utils This package contains all non-essential server utilities and scripts for managing databases. It also contains all utilities requiring Perl and it is -the only MariaDB subpackage, except test subpackage, that depends on Perl. +the only MariaDB sub-package, except test subpackage, that depends on Perl. %if %{with devel} @@ -634,10 +628,8 @@ MariaDB is a community developed branch of MySQL. %prep %setup -q -n mariadb-%{version} -%patch2 -p1 %patch4 -p1 %patch7 -p1 -%patch8 -p1 %patch9 -p1 %patch37 -p1 %patch40 -p1 @@ -676,17 +668,27 @@ sed -i 's/kerberos_port_t/kerberos_master_port_t/' selinux/%{name}-server-galera cat selinux/%{name}-server-galera.te %endif -# Check if PCRE version is actual -%if %{with pcre} + +# Get version of PCRE, that upstream use pcre_maj=`grep '^m4_define(pcre_major' pcre/configure.ac | sed -r 's/^m4_define\(pcre_major, \[([0-9]+)\]\)/\1/'` pcre_min=`grep '^m4_define(pcre_minor' pcre/configure.ac | sed -r 's/^m4_define\(pcre_minor, \[([0-9]+)\]\)/\1/'` -if [ %{pcre_version} != "$pcre_maj.$pcre_min" ] +%if %{without bundled_pcre} +# Check if the PCRE version in macro 'pcre_bundled_version', used in Provides: bundled(...), is the same version as upstream actually bundles +if [ %{pcre_bundled_version} != "$pcre_maj.$pcre_min" ] then - echo "\n Error: PCRE version is outdated. \n\tIncluded version:%{pcre_version} \n\tUpstream version: $pcre_maj.$pcre_min\n" + echo "\n Error: Bundled PCRE version is not correct. \n\tBundled version number:%{pcre_bundled_version} \n\tUpstream version number: $pcre_maj.$pcre_min\n" exit 1 fi -%endif +%else +# Check if the PCRE version that upstream use, is the same as the one present in system +pcre_system_version=`pkgconf %{_libdir}/pkgconfig/libpcre.pc --modversion 2>/dev/null ` +if [ "$pcre_system_version" != "$pcre_maj.$pcre_min" ] +then + echo "\n Warning: Error: Bundled PCRE version is not correct. \n\tSystem version number:$pcre_system_version \n\tUpstream version number: $pcre_maj.$pcre_min\n" +fi +%endif # PCRE + %if %{without rocksdb} rm -r storage/rocksdb/ @@ -695,6 +697,8 @@ rm -r storage/rocksdb/ # Remove python scripts remains from tokudb upstream (those files are not used anyway) rm -r storage/tokudb/mysql-test/tokudb/t/*.py + + %build # fail quickly and obviously if user tries to build as root @@ -747,11 +751,11 @@ export LDFLAGS -DINSTALL_DOCREADMEDIR="share/doc/%{_pkgdocdirname}" \ -DINSTALL_INCLUDEDIR=include/mysql \ -DINSTALL_INFODIR=share/info \ - -DINSTALL_LIBDIR="%{_lib}/mysql" \ + -DINSTALL_LIBDIR="%{_lib}" \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/%{pkg_name} \ -DINSTALL_MYSQLTESTDIR=share/mysql-test \ - -DINSTALL_PLUGINDIR="%{_lib}/mysql/plugin" \ + -DINSTALL_PLUGINDIR="%{_lib}/%{pkg_name}/plugin" \ -DINSTALL_SBINDIR=libexec \ -DINSTALL_SCRIPTDIR=bin \ -DINSTALL_SQLBENCHDIR=share \ @@ -763,7 +767,7 @@ export LDFLAGS -DWITH_EMBEDDED_SERVER=ON \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -%{?with_pcre: -DWITH_PCRE=system}\ + -DWITH_PCRE=%{?with_bundled_pcre:system}%{!?with_bundled_pcre:bundled} \ -DWITH_JEMALLOC=system \ -DWITH_LIBARCHIVE=ON \ -DWITH_MARIABACKUP=ON \ @@ -781,11 +785,11 @@ make %{?_smp_mflags} VERBOSE=1 # debuginfo extraction scripts fail to find source files in their real # location -- satisfy them by copying these files into location, which # is expected by scripts -for e in innobase xtradb ; do - for f in pars0grm.y pars0lex.l ; do - cp -p "storage/$e/pars/$f" "storage/$e/$f" - done -done +#for e in innobase xtradb ; do +# for f in pars0grm.y pars0lex.l ; do +# cp -p "storage/$e/pars/$f" "storage/$e/$f" +# done +#done # build selinux policy %if %{with galera} @@ -819,8 +823,8 @@ mv %{buildroot}/%{_datadir}/pkgconfig/*.pc %{buildroot}/%{_libdir}/pkgconfig # install INFO_SRC, INFO_BIN into libdir (upstream thinks these are doc files, # but that's pretty wacko --- see also %%{name}-file-contents.patch) -install -p -m 644 Docs/INFO_SRC %{buildroot}%{_libdir}/mysql/ -install -p -m 644 Docs/INFO_BIN %{buildroot}%{_libdir}/mysql/ +install -p -m 644 Docs/INFO_SRC %{buildroot}%{_libdir}/%{pkg_name}/ +install -p -m 644 Docs/INFO_BIN %{buildroot}%{_libdir}/%{pkg_name}/ rm -r %{buildroot}%{_datadir}/doc/%{_pkgdocdirname}/MariaDB-server-%{version}/ mkdir -p %{buildroot}%{logfiledir} @@ -878,7 +882,7 @@ ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/ # should move this to /etc/ ? rm %{buildroot}%{_bindir}/mysql_embedded -rm %{buildroot}%{_libdir}/mysql/*.a +rm %{buildroot}%{_libdir}/*.a rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure rm %{buildroot}%{_datadir}/%{pkg_name}/magic rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server @@ -892,12 +896,6 @@ mkdir -p %{buildroot}%{logrotateddir} mv %{buildroot}%{_datadir}/%{pkg_name}/mysql-log-rotate %{buildroot}%{logrotateddir}/%{daemon_name} chmod 644 %{buildroot}%{logrotateddir}/%{daemon_name} -%if %{with clibrary} -mkdir -p %{buildroot}%{_sysconfdir}/ld.so.conf.d -# Save a name of the directory that contains libraries to this file -echo "%{_libdir}/mysql" > %{buildroot}%{_sysconfdir}/ld.so.conf.d/%{name}-%{_arch}.conf -%endif - # copy additional docs into build tree so %%doc will find them install -p -m 0644 %{SOURCE5} %{basename:%{SOURCE5}} install -p -m 0644 %{SOURCE6} %{basename:%{SOURCE6}} @@ -952,16 +950,16 @@ ln -s unstable-tests %{buildroot}%{_datadir}/mysql-test/rh-skipped-tests.list %if %{without clibrary} rm %{buildroot}%{_sysconfdir}/my.cnf.d/client.cnf # Client library and links -rm %{buildroot}%{_libdir}/mysql/libmariadb*.so.* -unlink %{buildroot}%{_libdir}/mysql/libmysqlclient.so -unlink %{buildroot}%{_libdir}/mysql/libmysqlclient_r.so -unlink %{buildroot}%{_libdir}/mysql/libmariadb.so +rm %{buildroot}%{_libdir}/libmariadb*.so.* +unlink %{buildroot}%{_libdir}/libmysqlclient.so +unlink %{buildroot}%{_libdir}/libmysqlclient_r.so +unlink %{buildroot}%{_libdir}/libmariadb.so # Client plugins -rm %{buildroot}%{_libdir}/mysql/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,auth_gssapi_client.so} %endif %if %{without embedded} -rm %{buildroot}%{_libdir}/mysql/libmysqld.so* +rm %{buildroot}%{_libdir}/%{pkg_name}/libmysqld.so* rm %{buildroot}%{_bindir}/{mysql_client_test_embedded,mysqltest_embedded} rm %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded}.1* %endif @@ -980,7 +978,7 @@ unlink %{buildroot}%{_mandir}/man1/mariadb_config.1* # Create symlinks to the 'libmariadb' library, for compatibility reasons # Note: the -libs subpackage has Provides: for this compat symlink; when # it is removed, they should also be removed -pushd %{buildroot}%{_libdir}/mysql/ +pushd %{buildroot}%{_libdir} #ln -s libmariadb.so libmysqlclient.so ln -s libmariadb.so.3 libmysqlclient.so.18 #ln -s libmariadb.so libmysqlclient_r.so @@ -1208,9 +1206,8 @@ fi %if %{with clibrary} %files libs -%{_libdir}/mysql/libmariadb.so.* -%{_libdir}/mysql/libmysqlclient.so.18 -%{_sysconfdir}/ld.so.conf.d/* +%{_libdir}/libmariadb.so.* +%{_libdir}/libmysqlclient.so.18 %config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf %endif @@ -1230,8 +1227,8 @@ fi %dir %{_datadir}/%{pkg_name} %{_datadir}/%{pkg_name}/charsets %if %{with devel} && %{with errmsg} && %{with galera} && %{with config} && %{with clibrary} -%{_libdir}/mysql/plugin/dialog.so -%{_libdir}/mysql/plugin/mysql_clear_password.so +%{_libdir}/%{pkg_name}/plugin/dialog.so +%{_libdir}/%{pkg_name}/plugin/mysql_clear_password.so %endif # devel && errmsg && galera && config %endif # common @@ -1328,19 +1325,19 @@ fi %{_libexecdir}/mysqld -%{_libdir}/mysql/INFO_SRC -%{_libdir}/mysql/INFO_BIN +%{_libdir}/%{pkg_name}/INFO_SRC +%{_libdir}/%{pkg_name}/INFO_BIN %if %{without common} %dir %{_datadir}/%{pkg_name} %endif -%dir %{_libdir}/mysql -%dir %{_libdir}/mysql/plugin -%{_libdir}/mysql/plugin/* -%{?with_oqgraph:%exclude %{_libdir}/mysql/plugin/ha_oqgraph.so} -%{?with_connect:%exclude %{_libdir}/mysql/plugin/ha_connect.so} -%exclude %{_libdir}/mysql/plugin/dialog.so -%exclude %{_libdir}/mysql/plugin/mysql_clear_password.so +%dir %{_libdir}/%{pkg_name} +%dir %{_libdir}/%{pkg_name}/plugin +%{_libdir}/%{pkg_name}/plugin/* +%{?with_oqgraph:%exclude %{_libdir}/%{pkg_name}/plugin/ha_oqgraph.so} +%{?with_connect:%exclude %{_libdir}/%{pkg_name}/plugin/ha_connect.so} +%exclude %{_libdir}/%{pkg_name}/plugin/dialog.so +%exclude %{_libdir}/%{pkg_name}/plugin/mysql_clear_password.so %{_mandir}/man1/aria_chk.1* %{_mandir}/man1/aria_dump_log.1* @@ -1420,13 +1417,13 @@ fi %if %{with oqgraph} %files oqgraph-engine %config(noreplace) %{_sysconfdir}/my.cnf.d/oqgraph.cnf -%{_libdir}/mysql/plugin/ha_oqgraph.so +%{_libdir}/%{pkg_name}/plugin/ha_oqgraph.so %endif %if %{with connect} %files connect-engine %config(noreplace) %{_sysconfdir}/my.cnf.d/connect.cnf -%{_libdir}/mysql/plugin/ha_connect.so +%{_libdir}/%{pkg_name}/plugin/ha_connect.so %endif %files server-utils @@ -1461,9 +1458,9 @@ fi %if %{with clibrary} %{_bindir}/mysql_config* %{_bindir}/mariadb_config* -%{_libdir}/mysql/libmariadb.so -%{_libdir}/mysql/libmysqlclient.so -%{_libdir}/mysql/libmysqlclient_r.so +%{_libdir}/libmariadb.so +%{_libdir}/libmysqlclient.so +%{_libdir}/libmysqlclient_r.so %{_mandir}/man1/mysql_config* %{_mandir}/man1/mariadb_config* %endif @@ -1471,10 +1468,10 @@ fi %if %{with embedded} %files embedded -%{_libdir}/mysql/libmysqld.so.* +%{_libdir}/libmysqld.so.* %files embedded-devel -%{_libdir}/mysql/libmysqld.so +%{_libdir}/libmysqld.so %{_bindir}/mysql_client_test_embedded %{_bindir}/mysqltest_embedded %{_mandir}/man1/mysql_client_test_embedded.1* @@ -1500,6 +1497,14 @@ fi %endif %changelog +* Wed Nov 01 2017 Michal Schorm - 3:10.2.10-1 +- Rebase to 10.2.10 version +- Patch 2: mariadb-install-test.patch has been incorporated by upstream +- Patch 8: mariadb-install-db-sharedir.patch; upstream started to use macros +- Update PCRE check +- Start using location libdir/mariadb for plugins +- Move libraries to libdir + * Thu Oct 05 2017 Michal Schorm - 3:10.2.9-3 - Fix client library obsolete Related: #1498956 diff --git a/rh-skipped-tests-base.list b/rh-skipped-tests-base.list index bf4f3f0..022dda6 100644 --- a/rh-skipped-tests-base.list +++ b/rh-skipped-tests-base.list @@ -10,12 +10,9 @@ main.non_blocking_api : #1399847 perfschema.nesting : #1399847 perfschema.socket_summary_by_event_name_func : #1399847 perfschema.socket_summary_by_instance_func : #1399847 -perfschema.bad_option_1 : #1399847 -perfschema.bad_option_5 : #1399847 # needs this tests disabled for mode build plugins.feedback_plugin_load : # - plugins.show_all_plugins : warnings in log # ------------------------------ diff --git a/sources b/sources index 11e9767..2161b03 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mariadb-10.2.9.tar.gz) = 11ba0913144d7298ffa4c0a0128a3d1525a39b8205ffc580311751cf25a4e86159e46a32d3c8330c4ea028cdd50643eb5381651df654751ca3e4fb3d4698a373 +SHA512 (mariadb-10.2.10.tar.gz) = 39c198009f8b19f4a08226ef9842b50e24636580b67c1c92d59c61cce3aa1edbd466e253c281dfcdfc58ab573ae9a59aaacb0ce3e8b82222043ddd849fc3e239 From cc70eb14e361b9bc0ef2f77df64ddd038cf6e72c Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 6 Nov 2017 13:31:33 +0100 Subject: [PATCH 08/30] Compatibility fix --- mariadb.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mariadb.spec b/mariadb.spec index 71b65c3..e75403b 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -80,7 +80,7 @@ # MariaDB 10.0 and later requires pcre >= 8.35, otherwise we need to use # the bundled library, since the package cannot be build with older version -%if 0%{?fedora} >= 21 +%if 0%{?fedora} >= 21 || 0%{?rhel} > 7 %bcond_without bundled_pcre %else %bcond_with bundled_pcre From be7f9270916d54b29bb92ffab7054d68f28168ff Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 6 Nov 2017 16:06:33 +0100 Subject: [PATCH 09/30] Added JIRA issue trackers --- mariadb.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index e75403b..a2cafa7 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -932,8 +932,7 @@ rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/JdbcMar rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo2.jar rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo3.jar -# RPMLINT E: -# mariadb-bench.x86_64: E: script-without-shebang /usr/share/sql-bench/myisam.cnf +# script without shebang: https://jira.mariadb.org/browse/MDEV-14266 chmod -x %{buildroot}%{_datadir}/sql-bench/myisam.cnf # Remove AppArmor files @@ -1301,6 +1300,7 @@ fi %{_bindir}/replace %{_bindir}/resolve_stack_dump %{_bindir}/resolveip +# wsrep_sst_common should be moved to /usr/share/mariadb: https://jira.mariadb.org/browse/MDEV-14296 %{_bindir}/wsrep_sst_common %{_bindir}/wsrep_sst_mariabackup %{_bindir}/wsrep_sst_mysqldump From d82e5cb98533c58398a50f16efb111173230a1c1 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 13 Nov 2017 09:18:22 +0100 Subject: [PATCH 10/30] Divided to more sub-packages to match upstream's RPM list: #1490401; #1400463 Update of Cmake arguments to supported format: https://lists.launchpad.net/maria-discuss/msg04852.htm --- mariadb.spec | 529 +++++++++++++++++++++++++++++++++------------------ 1 file changed, 347 insertions(+), 182 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index a2cafa7..0a259bc 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -20,28 +20,35 @@ %global _default_patch_flags --no-backup-if-mismatch # TokuDB engine -# https://mariadb.com/kb/en/mariadb/tokudb/ -# TokuDB engine is available only for x86_64 +# https://mariadb.com/kb/en/mariadb/tokudb/ +# TokuDB engine is available only for x86_64 +# Mroonga engine +# https://mariadb.com/kb/en/mariadb/about-mroonga/ +# Actual version in MariaDB, 5.04, only supports the x86_64 +# Mroonga upstream warns about using 32-bit package: http://mroonga.org/docs/install.html +# RocksDB engine +# https://mariadb.com/kb/en/library/myrocks-supported-platforms/ +# RocksB engine is available only for x86_64 %ifarch x86_64 %bcond_without tokudb +%bcond_without mroonga +%bcond_without rocksdb %else %bcond_with tokudb -%endif - -# Mroonga engine -# https://mariadb.com/kb/en/mariadb/about-mroonga/ -# Actual version in MariaDB, 5.04, only supports the x86_64 -# Mroonga upstream warns about using 32-bit package: http://mroonga.org/docs/install.html -%ifarch x86_64 -%bcond_without mroonga -%else %bcond_with mroonga +%bcond_with rocksdb %endif # The Open Query GRAPH engine (OQGRAPH) is a computation engine allowing # hierarchies and more complex graph structures to be handled in a relational fashion %bcond_without oqgraph +# Other plugins +%bcond_without cracklib +%bcond_without gssapi +%bcond_without connect +%bcond_without sphinx + # For some use cases we do not need some parts of the package. Set to "...with" to exclude %bcond_without clibrary %bcond_without embedded @@ -51,8 +58,8 @@ %bcond_without errmsg %bcond_without bench %bcond_without test -%bcond_without connect %bcond_without galera +%bcond_without backup # When there is already another package that ships /etc/my.cnf, # rather include it than ship the file again, since conflicts between @@ -62,6 +69,8 @@ # For deep debugging we need to build binaries with extra debug info %bcond_with debug + + # Include files for SysV init or systemd %if 0%{?fedora} >= 15 || 0%{?rhel} >= 7 %bcond_without init_systemd @@ -179,28 +188,24 @@ Patch40: %{pkgnamepatch}-galera.cnf.patch Patch43: %{pkgnamepatch}-recovery.patch BuildRequires: cmake gcc-c++ -BuildRequires: libaio-devel -BuildRequires: libedit-devel -BuildRequires: ncurses-devel -BuildRequires: systemtap-sdt-devel BuildRequires: zlib-devel BuildRequires: multilib-rpm-config -BuildRequires: krb5-devel BuildRequires: selinux-policy-devel -%{?with_init_systemd:BuildRequires: systemd systemd-devel} -# Sphinx storage engine -#BuildRequires: sphinx libsphinxclient libsphinxclient-devel -# Bison SQL parser -BuildRequires: bison bison-devel -# Jemalloc, used by TokuDB +# TokuDB and some core stuff BuildRequires: jemalloc-devel -# Cracklib plugin -BuildRequires: cracklib-dicts cracklib-devel - -# Mariabackup -BuildRequires: libarchive-devel +# asynchornous operations stuff +BuildRequires: libaio-devel +# commands history features +BuildRequires: libedit-devel +# CLI graphic +BuildRequires: ncurses-devel +# debugging stuff +BuildRequires: systemtap-sdt-devel +%{?with_init_systemd:BuildRequires: systemd systemd-devel} +# Bison SQL parser +BuildRequires: bison bison-devel # auth_pam.so plugin will be build if pam-devel is installed BuildRequires: pam-devel @@ -230,7 +235,7 @@ BuildRequires: perl(Time::HiRes) BuildRequires: perl(Symbol) # for running some openssl tests rhbz#1189180 BuildRequires: openssl openssl-devel -Recommends: openssl +Requires: openssl Requires: bash coreutils grep @@ -311,7 +316,7 @@ Provides: libmysqlclient.so.18(libmysqlclient_18) The mariadb-libs package provides the essential shared libraries for any MariaDB/MySQL client program or interface. You will need to install this package to use any other MariaDB package or any clients that need to connect -to a MariaDB/MySQL server. MariaDB is a community developed branch of MySQL. +to a MariaDB/MySQL server. %endif #clibrary @@ -351,7 +356,6 @@ Obsoletes: mariadb-galera-common < %{obsoleted_mariadb_galera_common_evr} Obsoletes: %{name}-libs <= %{sameevr} %endif - %description common The package provides the essential shared files for any MariaDB program. You will need to install this package to use any other MariaDB package. @@ -380,6 +384,9 @@ Requires: %{name}-server%{?_isa} = %{sameevr} Requires: galera >= 25.3.3 Requires(post): libselinux-utils Requires(post): policycoreutils-python +# wsrep requirements +Requires: lsof +Requires: rsync # obsoletion of mariadb-galera-server Provides: mariadb-galera-server = %{sameevr} @@ -408,18 +415,23 @@ Requires: %{name}%{?_isa} Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{name}-errmsg%{?_isa} = %{sameevr} Recommends: %{name}-server-utils%{?_isa} = %{sameevr} +Recommends: %{name}-backup%{?_isa} = %{sameevr} +Recommends: %{name}-craclkib-password-check%{?_isa} = %{sameevr} +Recommends: %{name}-gssapi-server%{?_isa} = %{sameevr} +Recommends: %{name}-rocksdb-engine%{?_isa} = %{sameevr} +Recommends: %{name}-tokudb-engine%{?_isa} = %{sameevr} + Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf.d + # for fuser in mysql-check-socket Requires: psmisc + Requires: coreutils Requires(pre): /usr/sbin/useradd -# Sphinx storage engine -#Recommends: sphinx libsphinxclient # Bison SQL parser +# WHY?? (testsuite??) Requires: bison -# Cracklib plugin: -Recommends: cracklib-dicts %if %{with init_systemd} # We require this to be present for %%{_tmpfilesdir} @@ -429,9 +441,6 @@ Requires(pre): systemd Requires(posttrans): systemd %{?systemd_requires: %systemd_requires} %endif -# wsrep requirements -Requires: lsof -Requires: rsync # RHBZ#1496131; use 'iproute' instead of 'net-tools' Requires: iproute %if %{with mysql_names} @@ -485,6 +494,85 @@ or products (such as Excel), or data retrieved from the environment %endif +%if %{with backup} +%package backup +Summary: The mariabackup tool for physical online backups +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} +BuildRequires: libarchive-devel + +%description backup +MariaDB Backup is an open source tool provided by MariaDB for performing +physical online backups of InnoDB, Aria and MyISAM tables. +For InnoDB, "hot online" backups are possible. +%endif + + +%if %{with rocksdb} +%package rocksdb-engine +Summary: The RocksDB storage engine for MariaDB +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} + +%description rocksdb-engine +The RocksDB storage engine is used for high performance servers on SSD drives. +%endif + + +%if %{with tokudb} +%package tokudb-engine +Summary: The TokuDB storage engine for MariaDB +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} + +%description tokudb-engine +The TokuDB storage engine from Percona. +%endif + + +%if %{with cracklib} +%package cracklib-password-check +Summary: The password strength checking plugin +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} +BuildRequires: cracklib-dicts cracklib-devel +Requires: cracklib-dicts + +%description cracklib-password-check +CrackLib is a password strength checking library. It is installed by default +in many Linux distributions and is invoked automatically (by pam_cracklib.so) +whenever the user login password is modified. +Now, with the cracklib_password_check password validation plugin, one can +also use it to check MariaDB account passwords. +%endif + + +%if %{with gssapi} +%package gssapi-server +Summary: GSSAPI authentication plugin for server +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} +BuildRequires: krb5-devel + +%description gssapi-server +GSSAPI authentication server-side plugin for MariaDB for passwordless login. +This plugin includes support for Kerberos on Unix. +%endif + + +%if %{with sphinx} +%package sphinx-engine +Summary: The Sphinx storage engine for MariaDB +Group: Applications/Databases +Requires: %{name}-server%{?_isa} = %{sameevr} +BuildRequires: sphinx libsphinxclient libsphinxclient-devel +Requires: sphinx libsphinxclient + +%description sphinx-engine +The Sphinx storage engine for MariaDB. +%endif + + %package server-utils Summary: Non-essential server utilities for MariaDB/MySQL applications Group: Applications/Databases @@ -520,10 +608,16 @@ Provides: mysql-devel%{?_isa} = %{sameevr} %{?with_conflicts:Conflicts: community-mysql-devel} %description devel -MariaDB is a multi-user, multi-threaded SQL database server. This -package contains the libraries and header files that are needed for -developing MariaDB/MySQL client applications. +MariaDB is a multi-user, multi-threaded SQL database server. MariaDB is a community developed branch of MySQL. +%if %{with clibrary} +This package contains everything needed for developing MariaDB/MySQL client +and server applications. +%else +This package contains everything needed for developing MariaDB/MySQL server +applications. For developing client applications, use mariadb-connector-c +package. +%endif %endif @@ -563,10 +657,10 @@ Provides: mysql-embedded-devel%{?_isa} = %{sameevr} %{?obsoleted_mysql_evr:Obsoletes: mysql-embedded-devel < %{obsoleted_mysql_evr}} %description embedded-devel -MariaDB is a multi-user, multi-threaded SQL database server. This -package contains files needed for developing and testing with -the embedded version of the MariaDB server. +MariaDB is a multi-user, multi-threaded SQL database server. MariaDB is a community developed branch of MySQL. +This package contains files needed for developing and testing with +the embedded version of the MariaDB server. %endif @@ -584,10 +678,10 @@ Provides: mysql-bench%{?_isa} = %{sameevr} %{?obsoleted_mysql_evr:Obsoletes: mysql-bench < %{obsoleted_mysql_evr}} %description bench -MariaDB is a multi-user, multi-threaded SQL database server. This -package contains benchmark scripts and data for use when benchmarking -MariaDB. +MariaDB is a multi-user, multi-threaded SQL database server. MariaDB is a community developed branch of MySQL. +This package contains benchmark scripts and data for use when benchmarking +MariaDB. %endif @@ -618,10 +712,10 @@ Provides: mysql-test%{?_isa} = %{sameevr} %{?obsoleted_mysql_evr:Obsoletes: mysql-test < %{obsoleted_mysql_evr}} %description test -MariaDB is a multi-user, multi-threaded SQL database server. This -package contains the regression test suite distributed with -the MariaDB sources. +MariaDB is a multi-user, multi-threaded SQL database server. MariaDB is a community developed branch of MySQL. +This package contains the regression test suite distributed with the MariaDB +sources. %endif @@ -762,35 +856,76 @@ export LDFLAGS -DINSTALL_SUPPORTFILESDIR=share/%{pkg_name} \ -DMYSQL_DATADIR="%{dbdatadir}" \ -DMYSQL_UNIX_ADDR="/var/lib/mysql/mysql.sock" \ + -DTMPDIR=/var/tmp \ -DENABLED_LOCAL_INFILE=ON \ - -DENABLE_DTRACE=OFF \ - -DWITH_EMBEDDED_SERVER=ON \ + -DENABLE_DTRACE=ON \ + -DWITH_EMBEDDED_SERVER=%{?with_embedded:ON}%{!?with_embedded:OFF} \ + -DWITH_MARIABACKUP=%{?with_backup:ON}%{!?with_backup:NO} \ + -DWITH_UNIT_TESTS=%{?with_test:ON}%{!?with_test:NO} \ + -DCONC_WITH_SSL=%{?with_clibrary:ON}%{!?with_clibrary:NO} \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ - -DWITH_PCRE=%{?with_bundled_pcre:system}%{!?with_bundled_pcre:bundled} \ -DWITH_JEMALLOC=system \ - -DWITH_LIBARCHIVE=ON \ - -DWITH_MARIABACKUP=ON \ -%{!?with_tokudb: -DWITHOUT_TOKUDB=ON}\ -%{!?with_mroonga: -DWITHOUT_MROONGA=ON}\ -%{!?with_oqgraph: -DWITHOUT_OQGRAPH=ON}\ - -DTMPDIR=/var/tmp \ -%{?with_debug: -DCMAKE_BUILD_TYPE=Debug}\ + -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} \ + -DPLUGIN_ROCKSDB=%{?with_rocksdb:DYNAMIC}%{!?with_rocksdb:NO} \ + -DPLUGIN_SPHINX=%{?with_sphinx:DYNAMIC}%{!?with_sphinx:NO} \ + -DPLUGIN_TOKUDB=%{?with_tokudb:DYNAMIC}%{!?with_tokudb:NO} \ + -DPLUGIN_CONNECT=%{?with_connect:DYNAMIC}%{!?with_connect:NO} \ + -DPLUGIN_ARCHIVE=DYNAMIC \ + -DPLUGIN_AUDIT_NULL=DYNAMIC \ + -DPLUGIN_AUTH_ED25519=DYNAMIC \ + -DPLUGIN_AUTH_PAM=DYNAMIC \ + -DPLUGIN_AUTH_SOCKET=DYNAMIC \ + -DPLUGIN_AUTH_TEST_PLUGIN=DYNAMIC \ + -DPLUGIN_AUTH_0X0100=DYNAMIC \ + -DPLUGIN_BLACKHOLE=DYNAMIC \ + -DPLUGIN_CLIENT_ED25519=DYNAMIC \ + -DPLUGIN_DAEMON_EXAMPLE=DYNAMIC \ + -DPLUGIN_DEBUG_KEY_MANAGEMENT=DYNAMIC \ + -DPLUGIN_DIALOG_EXAMPLES=DYNAMIC \ + -DPLUGIN_EXAMPLE=DYNAMIC \ + -DPLUGIN_EXAMPLE_KEY_MANAGEMENT=DYNAMIC \ + -DPLUGIN_FEDERATED=DYNAMIC \ + -DPLUGIN_FEDERATEDX=DYNAMIC \ + -DPLUGIN_FEEDBACK=DYNAMIC \ + -DPLUGIN_FILE_KEY_MANAGEMENT=DYNAMIC \ + -DPLUGIN_FTEXAMPLE=DYNAMIC \ + -DPLUGIN_HANDLERSOCKET=DYNAMIC \ + -DPLUGIN_LOCALES=DYNAMIC \ + -DPLUGIN_METADATA_LOCK_INFO=DYNAMIC \ + -DPLUGIN_QA_AUTH_CLIENT=DYNAMIC \ + -DPLUGIN_QA_AUTH_INTERFACE=DYNAMIC \ + -DPLUGIN_QA_AUTH_SERVER=DYNAMIC \ + -DPLUGIN_QUERY_CACHE_INFO=DYNAMIC \ + -DPLUGIN_QUERY_RESPONSE_TIME=DYNAMIC \ + -DPLUGIN_SEMISYNC_MASTER=DYNAMIC \ + -DPLUGIN_SEMISYNC_SLAVE=DYNAMIC \ + -DPLUGIN_SEQUENCE=DYNAMIC \ + -DPLUGIN_SERVER_AUDIT=DYNAMIC \ + -DPLUGIN_SIMPLE_PASSWORD_CHECK=DYNAMIC \ + -DPLUGIN_SPIDER=DYNAMIC \ + -DPLUGIN_SQL_ERRLOG=DYNAMIC \ + -DPLUGIN_TEST_SQL_DISCOVERY=DYNAMIC \ + -DPLUGIN_USER_VARIABLES=DYNAMIC \ + -DPLUGIN_WSREP_INFO=DYNAMIC \ +%{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON} \ %{?_hardened_build: -DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"} +# Following argumets leads to compile errors. Tracked as https://jira.mariadb.org/browse/MDEV-14373 +# -DPLUGIN_INNOBASE=DYNAMIC \ +# -DPLUGIN_PARTITION=DYNAMIC \ +# -DPLUGIN_ARIA=DYNAMIC \ +# -DPLUGIN_PERFSCHEMA=DYNAMIC \ + +# Print all Cmake options values +cmake -L + make %{?_smp_mflags} VERBOSE=1 -# debuginfo extraction scripts fail to find source files in their real -# location -- satisfy them by copying these files into location, which -# is expected by scripts -#for e in innobase xtradb ; do -# for f in pars0grm.y pars0lex.l ; do -# cp -p "storage/$e/pars/$f" "storage/$e/$f" -# done -#done - # build selinux policy %if %{with galera} pushd selinux @@ -817,7 +952,8 @@ ln -s mysql_config.1 %{buildroot}%{_mandir}/man1/mysql_config-%{__isa_bits}.1 fi # Upstream install this into arch-independent directory -# TODO: report to upstream +# Reported to upstream as: https://jira.mariadb.org/browse/MDEV-14340 +# 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 @@ -827,6 +963,7 @@ install -p -m 644 Docs/INFO_SRC %{buildroot}%{_libdir}/%{pkg_name}/ install -p -m 644 Docs/INFO_BIN %{buildroot}%{_libdir}/%{pkg_name}/ rm -r %{buildroot}%{_datadir}/doc/%{_pkgdocdirname}/MariaDB-server-%{version}/ +# Logfile creation mkdir -p %{buildroot}%{logfiledir} chmod 0750 %{buildroot}%{logfiledir} touch %{buildroot}%{logfile} @@ -843,9 +980,12 @@ install -D -p -m 0644 scripts/my.cnf %{buildroot}%{_sysconfdir}/my.cnf rm scripts/my.cnf %endif -# use different config file name for each variant of server +# use different config file name for each variant of server (mariadb / mysql) mv %{buildroot}%{_sysconfdir}/my.cnf.d/server.cnf %{buildroot}%{_sysconfdir}/my.cnf.d/%{pkg_name}-server.cnf +# 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 %if %{with init_systemd} install -D -p -m 644 scripts/mysql.service %{buildroot}%{_unitdir}/%{daemon_name}.service @@ -853,9 +993,8 @@ install -D -p -m 644 scripts/mysql@.service %{buildroot}%{_unitdir}/%{daemon_nam install -D -p -m 0644 scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf %if 0%{?mysqld_pid_dir:1} echo "d %{pidfiledir} 0755 mysql mysql -" >>%{buildroot}%{_tmpfilesdir}/%{name}.conf -%endif -%endif - +%endif #pid +%endif #systemd # install SysV init script %if %{with init_sysv} install -D -p -m 755 scripts/mysql.init %{buildroot}%{daemondir}/%{daemon_name} @@ -870,26 +1009,35 @@ install -p -m 644 scripts/mysql-scripts-common %{buildroot}%{_libexecdir}/mysql- install -p -m 755 scripts/mysql-wait-ready %{buildroot}%{_libexecdir}/mysql-wait-ready %endif -# install selinux policy +# install aditional galera selinux policy %if %{with galera} install -p -m 644 -D selinux/%{name}-server-galera.pp %{buildroot}%{_datadir}/selinux/packages/%{name}/%{name}-server-galera.pp %endif -# mysql-test includes one executable that doesn't belong under /usr/share, -# so move it and provide a symlink +# mysql-test includes one executable that doesn't belong under /usr/share, so move it and provide a symlink mv %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir} ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process +# Provide symlink expected by RH QA tests +ln -s unstable-tests %{buildroot}%{_datadir}/mysql-test/rh-skipped-tests.list + # should move this to /etc/ ? -rm %{buildroot}%{_bindir}/mysql_embedded +# WHY?? +%{?with_embedded:rm %{buildroot}%{_bindir}/mysql_embedded} #upstream ships in client + rm %{buildroot}%{_libdir}/*.a -rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure -rm %{buildroot}%{_datadir}/%{pkg_name}/magic -rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server -rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server -rm %{buildroot}%{_mandir}/man1/mysql-stress-test.pl.1* -rm %{buildroot}%{_mandir}/man1/mysql-test-run.pl.1* -rm %{buildroot}%{_bindir}/mytop +rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure #This script creates the MySQL system tables and starts the server. + +# WHY?? +rm %{buildroot}%{_datadir}/%{pkg_name}/magic #FS files first-bytes recoginiton? + +rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server #Usage: mysql.server {start|stop|restart|reload|force-reload|status|configtest|bootstrap} [ MySQL server options ] +rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server #Can't execute /usr/local/mysql/bin/mysqld_multi from dir /usr/local/mysql + +# WHY?? +rm %{buildroot}%{_bindir}/mytop #not shipped by upstream + + # put logrotate script where it needs to be mkdir -p %{buildroot}%{logrotateddir} @@ -906,45 +1054,39 @@ install -p -m 0644 %{SOURCE71} %{basename:%{SOURCE71}} # install galera config file 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 - # install the clustercheck script mkdir -p %{buildroot}%{_sysconfdir}/sysconfig touch %{buildroot}%{_sysconfdir}/sysconfig/clustercheck install -p -m 0755 scripts/clustercheck %{buildroot}%{_bindir}/clustercheck - # install the galera_new_cluster script anyway %if %{without init_systemd} install -p -m 0755 scripts/galera_new_cluster %{buildroot}%{_bindir}/galera_new_cluster %endif -# remove SysV init script and a symlink to that -rm %{buildroot}%{_sysconfdir}/init.d/mysql -rm %{buildroot}%{_libexecdir}/rcmysql - # remove duplicate logrotate script rm %{buildroot}%{_sysconfdir}/logrotate.d/mysql - -# rename the wsrep README so it corresponds with the other README names -cp Docs/README-wsrep Docs/README.wsrep - # remove *.jar file from mysql-test rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo2.jar rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo3.jar +# Remove AppArmor files +rm -r %{buildroot}%{_datadir}/%{pkg_name}/policy/apparmor # script without shebang: https://jira.mariadb.org/browse/MDEV-14266 chmod -x %{buildroot}%{_datadir}/sql-bench/myisam.cnf -# Remove AppArmor files -rm -r %{buildroot}%{_datadir}/%{pkg_name}/policy/apparmor - # Disable plugins +%if %{with ggsapi} sed -i 's/^plugin-load-add/#plugin-load-add/' %{buildroot}%{_sysconfdir}/my.cnf.d/auth_gssapi.cnf +%endif +%if %{with cracklib} sed -i 's/^plugin-load-add/#plugin-load-add/' %{buildroot}%{_sysconfdir}/my.cnf.d/cracklib_password_check.cnf +%endif + +%if %{without embedded} +rm %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded}.1* +%endif -# install the list of skipped tests to be available for user runs -install -p -m 0644 mysql-test/unstable-tests %{buildroot}%{_datadir}/mysql-test -ln -s unstable-tests %{buildroot}%{_datadir}/mysql-test/rh-skipped-tests.list %if %{without clibrary} rm %{buildroot}%{_sysconfdir}/my.cnf.d/client.cnf @@ -957,66 +1099,43 @@ unlink %{buildroot}%{_libdir}/libmariadb.so rm %{buildroot}%{_libdir}/%{pkg_name}/plugin/{dialog.so,mysql_clear_password.so,sha256_password.so,auth_gssapi_client.so} %endif -%if %{without embedded} -rm %{buildroot}%{_libdir}/%{pkg_name}/libmysqld.so* -rm %{buildroot}%{_bindir}/{mysql_client_test_embedded,mysqltest_embedded} -rm %{buildroot}%{_mandir}/man1/{mysql_client_test_embedded,mysqltest_embedded}.1* -%endif - -%if %{without devel} +%if %{without clibrary} || %{without devel} unlink %{buildroot}%{_bindir}/mysql_config rm %{buildroot}%{_bindir}/mysql_config* rm %{buildroot}%{_bindir}/mariadb_config -rm -r %{buildroot}%{_includedir}/mysql -rm %{buildroot}%{_datadir}/aclocal/mysql.m4 -rm %{buildroot}%{_libdir}/pkgconfig/mariadb.pc rm %{buildroot}%{_mandir}/man1/mysql_config*.1* unlink %{buildroot}%{_mandir}/man1/mariadb_config.1* -%else -%if %{with clibrary} -# Create symlinks to the 'libmariadb' library, for compatibility reasons -# Note: the -libs subpackage has Provides: for this compat symlink; when -# it is removed, they should also be removed -pushd %{buildroot}%{_libdir} -#ln -s libmariadb.so libmysqlclient.so -ln -s libmariadb.so.3 libmysqlclient.so.18 -#ln -s libmariadb.so libmysqlclient_r.so -popd -%else -# This file is already included in mariadb-connector-c -rm %{buildroot}%{_includedir}/mysql/mysql_version.h +%endif -rm %{buildroot}%{_bindir}/*_config* -rm %{buildroot}%{_mandir}/man1/*_config* -#rm -r %{buildroot}%{_libdir}/mysql/libmysqlclient*.so* +%if %{without clibrary} && %{with devel} +# This files are already included in mariadb-connector-c +rm %{buildroot}%{_includedir}/mysql/mysql_version.h rm %{buildroot}%{_includedir}/mysql/{errmsg.h,ma_list.h,ma_pvio.h,mariadb_com.h,\ mariadb_ctype.h,mariadb_dyncol.h,mariadb_stmt.h,mariadb_version.h,ma_tls.h,mysqld_error.h,mysql.h} rm -r %{buildroot}%{_includedir}/mysql/{mariadb,mysql} %endif -%endif + +%if %{without devel} +rm -r %{buildroot}%{_includedir}/mysql +rm %{buildroot}%{_datadir}/aclocal/mysql.m4 +rm %{buildroot}%{_libdir}/pkgconfig/mariadb.pc +%if %{with clibrary} +rm %{buildroot}%{_libdir}/libmariadb*.so +unlink %{buildroot}%{_libdir}/libmysqlclient.so +unlink %{buildroot}%{_libdir}/libmysqlclient_r.so +%endif # clibrary +%endif # devel %if %{without client} rm %{buildroot}%{_bindir}/{msql2mysql,mysql,mysql_find_rows,\ mysql_plugin,mysql_waitpid,mysqlaccess,mysqladmin,mysqlbinlog,mysqlcheck,\ -mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults} +mysqldump,mysqlimport,mysqlshow,mysqlslap} rm %{buildroot}%{_mandir}/man1/{msql2mysql,mysql,mysql_find_rows,\ mysql_plugin,mysql_waitpid,mysqlaccess,mysqladmin,mysqlbinlog,mysqlcheck,\ -mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}.1* -%endif - -%if %{without connect} -rm %{buildroot}%{_sysconfdir}/my.cnf.d/connect.cnf -%endif - -%if %{without oqgraph} -rm %{buildroot}%{_sysconfdir}/my.cnf.d/oqgraph.cnf +mysqldump,mysqlimport,mysqlshow,mysqlslap}.1* %endif %if %{without tokudb} -%ifarch x86_64 -rm %{buildroot}%{_bindir}/tokuftdump -rm %{buildroot}%{_bindir}/tokuft_logprint -%endif # because upstream ships manpages for tokudb even on architectures that tokudb doesn't support rm %{buildroot}%{_mandir}/man1/tokuftdump.1* rm %{buildroot}%{_mandir}/man1/tokuft_logdump.1* @@ -1032,6 +1151,10 @@ rm %{buildroot}%{_sysconfdir}/my.cnf.d/enable_encryption.preset rm -r %{buildroot}%{_datadir}/%{pkg_name}/charsets %endif +%if %{without gssapi} +rm -r %{buildroot}/etc/my.cnf.d/auth_gssapi.cnf +%endif + %if %{without errmsg} rm %{buildroot}%{_datadir}/%{pkg_name}/errmsg-utf8.txt rm -r %{buildroot}%{_datadir}/%{pkg_name}/{english,czech,danish,dutch,estonian,\ @@ -1044,10 +1167,15 @@ rm -r %{buildroot}%{_datadir}/sql-bench %endif %if %{without test} -rm %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process} +%if %{with embedded} +rm %{buildroot}%{_bindir}/{mysqltest_embedded,mysql_client_test_embedded} +rm %{buildroot}%{_mandir}/man1/{mysqltest_embedded,mysql_client_test_embedded}.1* +%endif # embedded +rm %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process,mysqltest} +rm %{buildroot}%{_mandir}/man1/{mysql_client_test,my_safe_process,mysqltest}.1* +rm %{buildroot}%{_mandir}/man1/{mysql-test-run,mysql-stress-test}.pl.1* rm -r %{buildroot}%{_datadir}/mysql-test -rm %{buildroot}%{_mandir}/man1/mysql_client_test.1* -%endif +%endif # test %if %{without galera} rm %{buildroot}%{_sysconfdir}/my.cnf.d/galera.cnf @@ -1098,8 +1226,10 @@ export MTR_BUILD_THREAD=%{__isa_bits} %endif ) -%endif -%endif +%endif # if dry run +%endif # with test + + %pre server /usr/sbin/groupadd -g 27 -o -r mysql >/dev/null 2>&1 || : @@ -1170,6 +1300,8 @@ if [ $1 -ge 1 ]; then fi %endif + + %if %{with client} %files %{_bindir}/msql2mysql @@ -1185,7 +1317,6 @@ fi %{_bindir}/mysqlimport %{_bindir}/mysqlshow %{_bindir}/mysqlslap -%{_bindir}/my_print_defaults %{_mandir}/man1/msql2mysql.1* %{_mandir}/man1/mysql.1* @@ -1200,13 +1331,12 @@ fi %{_mandir}/man1/mysqlimport.1* %{_mandir}/man1/mysqlshow.1* %{_mandir}/man1/mysqlslap.1* -%{_mandir}/man1/my_print_defaults.1* %endif %if %{with clibrary} %files libs %{_libdir}/libmariadb.so.* -%{_libdir}/libmysqlclient.so.18 +%{?with_devel:%{_libdir}/{libmysqlclient.so.18,libmariadb.so,libmysqlclient.so,libmysqlclient_r.so}} %config(noreplace) %{_sysconfdir}/my.cnf.d/client.cnf %endif @@ -1225,10 +1355,10 @@ fi %doc %{_datadir}/doc/%{_pkgdocdirname} %dir %{_datadir}/%{pkg_name} %{_datadir}/%{pkg_name}/charsets -%if %{with devel} && %{with errmsg} && %{with galera} && %{with config} && %{with clibrary} +%if %{with clibrary} %{_libdir}/%{pkg_name}/plugin/dialog.so %{_libdir}/%{pkg_name}/plugin/mysql_clear_password.so -%endif # devel && errmsg && galera && config +%endif # clibrary %endif # common %if %{with errmsg} @@ -1262,7 +1392,7 @@ fi %if %{with galera} %files server-galera -%doc Docs/README.wsrep +%doc Docs/README-wsrep %license LICENSE.clustercheck %{_bindir}/clustercheck %{_bindir}/galera_new_cluster @@ -1283,15 +1413,14 @@ fi %{_bindir}/aria_ftdump %{_bindir}/aria_pack %{_bindir}/aria_read_log -%{_bindir}/mariabackup %if %{with init_systemd} %{_bindir}/mariadb-service-convert %endif -%{_bindir}/mbstream %{_bindir}/myisamchk %{_bindir}/myisam_ftdump %{_bindir}/myisamlog %{_bindir}/myisampack +%{_bindir}/my_print_defaults %{_bindir}/mysql_install_db %{_bindir}/mysql_secure_installation %{_bindir}/mysql_tzinfo_to_sql @@ -1307,21 +1436,8 @@ fi %{_bindir}/wsrep_sst_rsync %{_bindir}/wsrep_sst_xtrabackup %{_bindir}/wsrep_sst_xtrabackup-v2 -%{?with_tokudb:%{_bindir}/tokuftdump} -%{?with_tokudb:%{_bindir}/tokuft_logprint} %config(noreplace) %{_sysconfdir}/my.cnf.d/%{pkg_name}-server.cnf -%config(noreplace) %{_sysconfdir}/my.cnf.d/auth_gssapi.cnf -%{?with_tokudb:%config(noreplace) %{_sysconfdir}/my.cnf.d/tokudb.cnf} -# Cracklib plugin -%config(noreplace) %{_sysconfdir}/my.cnf.d/cracklib_password_check.cnf -# RocksDB engine -%if %{with rocksdb} -%config(noreplace) %{_sysconfdir}/my.cnf.d/rocksdb.cnf -%{_bindir}/mysql_ldb -%{_bindir}/sst_dump -%endif - %{_libexecdir}/mysqld @@ -1336,8 +1452,15 @@ fi %{_libdir}/%{pkg_name}/plugin/* %{?with_oqgraph:%exclude %{_libdir}/%{pkg_name}/plugin/ha_oqgraph.so} %{?with_connect:%exclude %{_libdir}/%{pkg_name}/plugin/ha_connect.so} +%{?with_cracklib:%exclude %{_libdir}/%{pkg_name}/plugin/cracklib_password_check.so} +%{?with_rocksdb:%exclude %{_libdir}/%{pkg_name}/plugin/ha_rocksdb.so} +%{?with_tokudb:%exclude %{_libdir}/%{pkg_name}/plugin/ha_tokudb.so} +%{?with_ggsapi:%exclude %{_libdir}/%{pkg_name}/plugin/auth_gssapi.so} +%{?with_sphinx:%exclude %{_libdir}/%{pkg_name}/plugin/ha_sphinx.so} +%if %{with clibrary} %exclude %{_libdir}/%{pkg_name}/plugin/dialog.so %exclude %{_libdir}/%{pkg_name}/plugin/mysql_clear_password.so +%endif %{_mandir}/man1/aria_chk.1* %{_mandir}/man1/aria_dump_log.1* @@ -1351,20 +1474,18 @@ fi %{_mandir}/man1/myisamlog.1* %{_mandir}/man1/myisampack.1* %{_mandir}/man1/myisam_ftdump.1* +%{_mandir}/man1/my_print_defaults.1* %{_mandir}/man1/mysql.server.1* %{_mandir}/man1/mysql_install_db.1* %{_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/my_safe_process.1* %{_mandir}/man1/innochecksum.1* %{_mandir}/man1/replace.1* %{_mandir}/man1/resolveip.1* %{_mandir}/man1/resolve_stack_dump.1* %{_mandir}/man8/mysqld.8* -%{?with_tokudb:%{_mandir}/man1/tokuftdump.1*} -%{?with_tokudb:%{_mandir}/man1/tokuft_logdump.1*} %{_mandir}/man1/wsrep_sst_common.1* %{_mandir}/man1/wsrep_sst_mysqldump.1* %{_mandir}/man1/wsrep_sst_rsync.1* @@ -1414,6 +1535,47 @@ fi %attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} %config(noreplace) %{logrotateddir}/%{daemon_name} +%if %{with cracklib} +%files cracklib-password-check +%config(noreplace) %{_sysconfdir}/my.cnf.d/cracklib_password_check.cnf +%{_libdir}/%{pkg_name}/plugin/cracklib_password_check.so +%endif + +%if %{with backup} +%files backup +%{_bindir}/mariabackup +%{_bindir}/mbstream +%endif + +%if %{with rocksdb} +%files rocksdb-engine +%config(noreplace) %{_sysconfdir}/my.cnf.d/rocksdb.cnf +%{_bindir}/mysql_ldb +%{_bindir}/sst_dump +%{_libdir}/%{pkg_name}/plugin/ha_rocksdb.so +%endif + +%if %{with tokudb} +%files tokudb-engine +%{_bindir}/tokuftdump +%{_bindir}/tokuft_logprint +%{_mandir}/man1/tokuftdump.1* +%{_mandir}/man1/tokuft_logdump.1* +%config(noreplace) %{_sysconfdir}/my.cnf.d/tokudb.cnf +%{_libdir}/%{pkg_name}/plugin/ha_tokudb.so +%endif + +%if %{with gssapi} +%files gssapi-server +%{_libdir}/%{pkg_name}/plugin/auth_gssapi.so +%config(noreplace) %{_sysconfdir}/my.cnf.d/auth_gssapi.cnf +%endif + +%if %{with sphinx} +%files sphinx-engine +%{_libdir}/%{pkg_name}/plugin/ha_sphinx.so +%endif + %if %{with oqgraph} %files oqgraph-engine %config(noreplace) %{_sysconfdir}/my.cnf.d/oqgraph.cnf @@ -1442,10 +1604,8 @@ fi %{_mandir}/man1/mysql_setpermission.1* # Utilities that can be used remotely %{_bindir}/mysql_upgrade -%{_bindir}/mysqltest %{_bindir}/perror %{_mandir}/man1/mysql_upgrade.1* -%{_mandir}/man1/mysqltest.1* %{_mandir}/man1/perror.1* # Other utilities %{_bindir}/mysqld_safe_helper @@ -1472,19 +1632,11 @@ fi %files embedded-devel %{_libdir}/libmysqld.so -%{_bindir}/mysql_client_test_embedded -%{_bindir}/mysqltest_embedded -%{_mandir}/man1/mysql_client_test_embedded.1* -%{_mandir}/man1/mysqltest_embedded.1* %endif %if %{with bench} %files bench %{_datadir}/sql-bench -#TODO: do a sanity check -%exclude %{_datadir}/sql-bench/README -# RPMLINT W: -# mariadb-bench.x86_64: W: no-documentation %doc %{_datadir}/sql-bench/README %endif @@ -1492,18 +1644,31 @@ fi %files test %{_bindir}/mysql_client_test %{_bindir}/my_safe_process +%{_bindir}/mysql_client_test_embedded +%{_bindir}/mysqltest +%{_bindir}/mysqltest_embedded %attr(-,mysql,mysql) %{_datadir}/mysql-test %{_mandir}/man1/mysql_client_test.1* +%{_mandir}/man1/my_safe_process.1* +%{_mandir}/man1/mysql_client_test_embedded.1* +%{_mandir}/man1/mysqltest.1* +%{_mandir}/man1/mysqltest_embedded.1* +%{_mandir}/man1/mysql-stress-test.pl.1* +%{_mandir}/man1/mysql-test-run.pl.1* %endif %changelog -* Wed Nov 01 2017 Michal Schorm - 3:10.2.10-1 +* Mon Nov 13 2017 Michal Schorm - 3:10.2.10-1 - Rebase to 10.2.10 version - Patch 2: mariadb-install-test.patch has been incorporated by upstream - Patch 8: mariadb-install-db-sharedir.patch; upstream started to use macros - Update PCRE check - Start using location libdir/mariadb for plugins - Move libraries to libdir +- Divided to more sub-packages to match upstream's RPM list + Resolves: #1490401; #1400463 +- Update of Cmake arguments to supported format + Related: https://lists.launchpad.net/maria-discuss/msg04852.html * Thu Oct 05 2017 Michal Schorm - 3:10.2.9-3 - Fix client library obsolete From 0c047c18a7607fb225c35088b8814c2ca30fa4f6 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 15 Nov 2017 12:02:56 +0100 Subject: [PATCH 11/30] Fix file removal on multilib systems --- mariadb.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/mariadb.spec b/mariadb.spec index 0a259bc..0f806ce 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1100,7 +1100,6 @@ rm %{buildroot}%{_libdir}/%{pkg_name}/plugin/{dialog.so,mysql_clear_password.so, %endif %if %{without clibrary} || %{without devel} -unlink %{buildroot}%{_bindir}/mysql_config rm %{buildroot}%{_bindir}/mysql_config* rm %{buildroot}%{_bindir}/mariadb_config rm %{buildroot}%{_mandir}/man1/mysql_config*.1* From 9454f6d0ae91525e189b970ca26e049ed4656342 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 20 Nov 2017 14:38:51 +0100 Subject: [PATCH 12/30] Remove false Provides List only relevant Cmake arguments --- mariadb.spec | 58 ++-------------------------------------------------- 1 file changed, 2 insertions(+), 56 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 0f806ce..625ad8c 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -296,18 +296,6 @@ Requires: %{name}-common%{?_isa} = %{sameevr} %if %{with mysql_names} Provides: mysql-libs = %{sameevr} Provides: mysql-libs%{?_isa} = %{sameevr} -# these are the provides for the libmysqlclient.so.18 compatibility -# symlink; the library auto-provides system does not handle this kind -# of symlink. They should be removed when the symlink is removed -%if 0%{?__isa_bits} == 64 -Provides: libmysqlclient.so.18()(64bit) -Provides: libmysqlclient.so.18(libmysqlclient_16)(64bit) -Provides: libmysqlclient.so.18(libmysqlclient_18)(64bit) -%else -Provides: libmysqlclient.so.18 -Provides: libmysqlclient.so.18(libmysqlclient_16) -Provides: libmysqlclient.so.18(libmysqlclient_18) -%endif # isa_bits %endif # mysql_names %{?obsoleted_mysql_case_evr:Obsoletes: MySQL-libs < %{obsoleted_mysql_case_evr}} %{?obsoleted_mysql_evr:Obsoletes: mysql-libs < %{obsoleted_mysql_evr}} @@ -873,52 +861,9 @@ export LDFLAGS -DPLUGIN_SPHINX=%{?with_sphinx:DYNAMIC}%{!?with_sphinx:NO} \ -DPLUGIN_TOKUDB=%{?with_tokudb:DYNAMIC}%{!?with_tokudb:NO} \ -DPLUGIN_CONNECT=%{?with_connect:DYNAMIC}%{!?with_connect:NO} \ - -DPLUGIN_ARCHIVE=DYNAMIC \ - -DPLUGIN_AUDIT_NULL=DYNAMIC \ - -DPLUGIN_AUTH_ED25519=DYNAMIC \ - -DPLUGIN_AUTH_PAM=DYNAMIC \ - -DPLUGIN_AUTH_SOCKET=DYNAMIC \ - -DPLUGIN_AUTH_TEST_PLUGIN=DYNAMIC \ - -DPLUGIN_AUTH_0X0100=DYNAMIC \ - -DPLUGIN_BLACKHOLE=DYNAMIC \ - -DPLUGIN_CLIENT_ED25519=DYNAMIC \ - -DPLUGIN_DAEMON_EXAMPLE=DYNAMIC \ - -DPLUGIN_DEBUG_KEY_MANAGEMENT=DYNAMIC \ - -DPLUGIN_DIALOG_EXAMPLES=DYNAMIC \ - -DPLUGIN_EXAMPLE=DYNAMIC \ - -DPLUGIN_EXAMPLE_KEY_MANAGEMENT=DYNAMIC \ - -DPLUGIN_FEDERATED=DYNAMIC \ - -DPLUGIN_FEDERATEDX=DYNAMIC \ - -DPLUGIN_FEEDBACK=DYNAMIC \ - -DPLUGIN_FILE_KEY_MANAGEMENT=DYNAMIC \ - -DPLUGIN_FTEXAMPLE=DYNAMIC \ - -DPLUGIN_HANDLERSOCKET=DYNAMIC \ - -DPLUGIN_LOCALES=DYNAMIC \ - -DPLUGIN_METADATA_LOCK_INFO=DYNAMIC \ - -DPLUGIN_QA_AUTH_CLIENT=DYNAMIC \ - -DPLUGIN_QA_AUTH_INTERFACE=DYNAMIC \ - -DPLUGIN_QA_AUTH_SERVER=DYNAMIC \ - -DPLUGIN_QUERY_CACHE_INFO=DYNAMIC \ - -DPLUGIN_QUERY_RESPONSE_TIME=DYNAMIC \ - -DPLUGIN_SEMISYNC_MASTER=DYNAMIC \ - -DPLUGIN_SEMISYNC_SLAVE=DYNAMIC \ - -DPLUGIN_SEQUENCE=DYNAMIC \ - -DPLUGIN_SERVER_AUDIT=DYNAMIC \ - -DPLUGIN_SIMPLE_PASSWORD_CHECK=DYNAMIC \ - -DPLUGIN_SPIDER=DYNAMIC \ - -DPLUGIN_SQL_ERRLOG=DYNAMIC \ - -DPLUGIN_TEST_SQL_DISCOVERY=DYNAMIC \ - -DPLUGIN_USER_VARIABLES=DYNAMIC \ - -DPLUGIN_WSREP_INFO=DYNAMIC \ %{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON} \ %{?_hardened_build: -DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"} -# Following argumets leads to compile errors. Tracked as https://jira.mariadb.org/browse/MDEV-14373 -# -DPLUGIN_INNOBASE=DYNAMIC \ -# -DPLUGIN_PARTITION=DYNAMIC \ -# -DPLUGIN_ARIA=DYNAMIC \ -# -DPLUGIN_PERFSCHEMA=DYNAMIC \ - # Print all Cmake options values cmake -L @@ -1657,7 +1602,7 @@ fi %endif %changelog -* Mon Nov 13 2017 Michal Schorm - 3:10.2.10-1 +* Mon Nov 20 2017 Michal Schorm - 3:10.2.10-1 - Rebase to 10.2.10 version - Patch 2: mariadb-install-test.patch has been incorporated by upstream - Patch 8: mariadb-install-db-sharedir.patch; upstream started to use macros @@ -1668,6 +1613,7 @@ fi Resolves: #1490401; #1400463 - Update of Cmake arguments to supported format Related: https://lists.launchpad.net/maria-discuss/msg04852.html +- Remove false Provides * Thu Oct 05 2017 Michal Schorm - 3:10.2.9-3 - Fix client library obsolete From 869d50aa46e27ecf170c32467236689435c6fb19 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 23 Nov 2017 15:06:29 +0100 Subject: [PATCH 13/30] Fix PID file location Related: #1483331, #1515779 --- mariadb.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 625ad8c..07a44f5 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -78,7 +78,7 @@ %global daemon_name %{name} %global daemondir %{_unitdir} %global daemon_no_prefix %{pkg_name} -%global mysqld_pid_dir mysqld +%global mysqld_pid_dir mariadb %else %bcond_with init_systemd %bcond_without init_sysv @@ -135,7 +135,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -1602,6 +1602,10 @@ fi %endif %changelog +* Thu Nov 23 2017 Michal Schorm - 3:10.2.10-2 +- Fix PID file location + Related: #1483331, #1515779 + * Mon Nov 20 2017 Michal Schorm - 3:10.2.10-1 - Rebase to 10.2.10 version - Patch 2: mariadb-install-test.patch has been incorporated by upstream From 23b69efe580b1f0c44c1c5828dcad3160945f7f5 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Fri, 1 Dec 2017 16:10:14 +0100 Subject: [PATCH 14/30] Use conditions definition for optional plugins as described at https://github.com/rpm-software-management/rpm/blob/34c2ba3c/macros.in#L100-L141 --- mariadb.spec | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 07a44f5..2c0d51b 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -44,10 +44,12 @@ %bcond_without oqgraph # Other plugins -%bcond_without cracklib -%bcond_without gssapi -%bcond_without connect -%bcond_without sphinx +# Allow to override the values outside of spec +# https://github.com/rpm-software-management/rpm/blob/34c2ba3c/macros.in#L100-L141 +%{!?_with_cracklib: %{!?_without_cracklib: %bcond_without cracklib}} +%{!?_with_gssapi: %{!?_without_gssapi: %bcond_without gssapi}} +%{!?_with_connect: %{!?_without_sphinx: %bcond_without connect}} +%{!?_with_sphinx: %{!?_without_sphinx: %bcond_without sphinx}} # For some use cases we do not need some parts of the package. Set to "...with" to exclude %bcond_without clibrary @@ -211,7 +213,7 @@ BuildRequires: bison bison-devel BuildRequires: pam-devel # use either new enough version of pcre or provide bundles(pcre) %{?with_bundled_pcre:BuildRequires: pcre-devel >= 8.35 pkgconf} -%{?without_bundled_pcre:Provides: bundled(pcre) = %{pcre_bundled_version}} +%{!?with_bundled_pcre:Provides: bundled(pcre) = %{pcre_bundled_version}} # Few utilities needs Perl %if 0%{?fedora} >= 22 || 0%{?rhel} > 7 BuildRequires: perl-interpreter From 4983671d078d466b646907b0fb6fe52b4a3bed20 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Wed, 6 Dec 2017 09:51:51 +0100 Subject: [PATCH 15/30] Remove 'Group' tags as they should not be used any more https://fedoraproject.org/wiki/RPMGroups --- mariadb.spec | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 2c0d51b..895a9bb 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -141,7 +141,6 @@ Release: 2%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL -Group: Applications/Databases URL: http://mariadb.org # Exceptions allow client libraries to be linked with most open source SW, not only GPL code. See README.mysql-license License: GPLv2 with exceptions and LGPLv2 and BSD @@ -293,7 +292,6 @@ contains the standard MariaDB/MySQL client programs and generic MySQL files. %if %{with clibrary} %package libs Summary: The shared libraries required for MariaDB/MySQL clients -Group: Applications/Databases Requires: %{name}-common%{?_isa} = %{sameevr} %if %{with mysql_names} Provides: mysql-libs = %{sameevr} @@ -322,7 +320,6 @@ to a MariaDB/MySQL server. %if %{with config} %package config Summary: The config files required by server and client -Group: Applications/Databases %description config The package provides the config file my.cnf and my.cnf.d directory used by any @@ -335,7 +332,6 @@ package itself. %if %{with common} %package common Summary: The shared files required by server and client -Group: Applications/Databases Requires: %{_sysconfdir}/my.cnf # obsoletion of mariadb-galera-common @@ -355,7 +351,6 @@ You will need to install this package to use any other MariaDB package. %if %{with errmsg} %package errmsg Summary: The error messages files required by server and embedded -Group: Applications/Databases Requires: %{name}-common%{?_isa} = %{sameevr} %description errmsg @@ -368,7 +363,6 @@ MariaDB packages. %if %{with galera} %package server-galera Summary: The configuration files and scripts for galera replication -Group: Applications/Databases Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{name}-server%{?_isa} = %{sameevr} Requires: galera >= 25.3.3 @@ -393,7 +387,6 @@ MariaDB is a community developed branch of MySQL. %package server Summary: The MariaDB server and related files -Group: Applications/Databases # note: no version here = %%{version}-%%{release} %if %{with mysql_names} @@ -455,7 +448,6 @@ MariaDB is a community developed branch of MySQL. %if %{with oqgraph} %package oqgraph-engine Summary: The Open Query GRAPH engine for MariaDB -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} # boost and Judy required for oograph BuildRequires: boost-devel Judy-devel @@ -472,7 +464,6 @@ standard SQL syntax, and results joined onto other tables. %if %{with connect} %package connect-engine Summary: The CONNECT storage engine for MariaDB -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} %description connect-engine @@ -487,7 +478,6 @@ or products (such as Excel), or data retrieved from the environment %if %{with backup} %package backup Summary: The mariabackup tool for physical online backups -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} BuildRequires: libarchive-devel @@ -501,7 +491,6 @@ For InnoDB, "hot online" backups are possible. %if %{with rocksdb} %package rocksdb-engine Summary: The RocksDB storage engine for MariaDB -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} %description rocksdb-engine @@ -512,7 +501,6 @@ The RocksDB storage engine is used for high performance servers on SSD drives. %if %{with tokudb} %package tokudb-engine Summary: The TokuDB storage engine for MariaDB -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} %description tokudb-engine @@ -523,7 +511,6 @@ The TokuDB storage engine from Percona. %if %{with cracklib} %package cracklib-password-check Summary: The password strength checking plugin -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} BuildRequires: cracklib-dicts cracklib-devel Requires: cracklib-dicts @@ -540,7 +527,6 @@ also use it to check MariaDB account passwords. %if %{with gssapi} %package gssapi-server Summary: GSSAPI authentication plugin for server -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} BuildRequires: krb5-devel @@ -553,7 +539,6 @@ This plugin includes support for Kerberos on Unix. %if %{with sphinx} %package sphinx-engine Summary: The Sphinx storage engine for MariaDB -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} BuildRequires: sphinx libsphinxclient libsphinxclient-devel Requires: sphinx libsphinxclient @@ -565,7 +550,6 @@ The Sphinx storage engine for MariaDB. %package server-utils Summary: Non-essential server utilities for MariaDB/MySQL applications -Group: Applications/Databases Requires: %{name}-server%{?_isa} = %{sameevr} %if %{with mysql_names} Provides: mysql-perl = %{sameevr} @@ -582,7 +566,6 @@ 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 -Group: Applications/Databases %{?with_clibrary:Requires: %{name}-libs%{?_isa} = %{sameevr}} # avoid issues with openssl1.0 / openssl1.1 / compat Requires: pkgconfig(openssl) @@ -614,7 +597,6 @@ package. %if %{with embedded} %package embedded Summary: MariaDB as an embeddable library -Group: Applications/Databases Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{name}-errmsg%{?_isa} = %{sameevr} %if %{with mysql_names} @@ -633,7 +615,6 @@ MariaDB is a community developed branch of MySQL. %package embedded-devel Summary: Development files for MariaDB as an embeddable library -Group: Applications/Databases Requires: %{name}-embedded%{?_isa} = %{sameevr} Requires: %{name}-devel%{?_isa} = %{sameevr} # embedded-devel should require libaio-devel (rhbz#1290517) @@ -657,7 +638,6 @@ the embedded version of the MariaDB server. %if %{with bench} %package bench Summary: MariaDB benchmark scripts and data -Group: Applications/Databases Requires: %{name}%{?_isa} = %{sameevr} %if %{with mysql_names} Provides: mysql-bench = %{sameevr} @@ -678,7 +658,6 @@ MariaDB. %if %{with test} %package test Summary: The test suite distributed with MariaDB -Group: Applications/Databases Requires: %{name}%{?_isa} = %{sameevr} Requires: %{name}-common%{?_isa} = %{sameevr} Requires: %{name}-server%{?_isa} = %{sameevr} @@ -1604,9 +1583,11 @@ fi %endif %changelog -* Thu Nov 23 2017 Michal Schorm - 3:10.2.10-2 +* Wed Dec 06 2017 Michal Schorm - 3:10.2.10-2 - Fix PID file location Related: #1483331, #1515779 +- Remove 'Group' tags as they should not be used any more + Related: https://fedoraproject.org/wiki/RPMGroups * Mon Nov 20 2017 Michal Schorm - 3:10.2.10-1 - Rebase to 10.2.10 version From d413e4241d87749f79bbb7c6d49c75996b183f5f Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 9 Dec 2017 02:34:41 +0100 Subject: [PATCH 16/30] Rebase to 10.2.11 Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 introduced Temporary fix for #1523875 intoruced --- mariadb.spec | 29 +++++++++++++++++++++++++---- sources | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 895a9bb..29ad620 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -133,11 +133,11 @@ # Make long macros shorter %global sameevr %{epoch}:%{version}-%{release} %global compatver 10.2 -%global bugfixver 10 +%global bugfixver 11 Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 1%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -786,6 +786,10 @@ CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" ` %ifarch ppc64 CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O3|g" ` %endif + +# Temporary fix for rhbz#1523875 +CFLAGS=`echo $CFLAGS| sed -e "s|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||g" ` + CXXFLAGS="$CFLAGS" export CFLAGS CXXFLAGS @@ -841,10 +845,14 @@ export LDFLAGS -DPLUGIN_ROCKSDB=%{?with_rocksdb:DYNAMIC}%{!?with_rocksdb:NO} \ -DPLUGIN_SPHINX=%{?with_sphinx:DYNAMIC}%{!?with_sphinx:NO} \ -DPLUGIN_TOKUDB=%{?with_tokudb:DYNAMIC}%{!?with_tokudb:NO} \ + -DTOKUDB_OK=1 \ -DPLUGIN_CONNECT=%{?with_connect:DYNAMIC}%{!?with_connect:NO} \ %{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON} \ %{?_hardened_build: -DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"} +# -DTOKUDB_OK=1 +# ^ is a temporary fix for https://jira.mariadb.org/browse/MDEV-14537 + # Print all Cmake options values cmake -L @@ -1426,8 +1434,16 @@ fi %{_datadir}/%{pkg_name}/mysql_test_data_timezone.sql %{_datadir}/%{pkg_name}/mysql_to_mariadb.sql %{_datadir}/%{pkg_name}/mysql_performance_tables.sql -%{?with_mroonga:%{_datadir}/%{pkg_name}/mroonga/install.sql} -%{?with_mroonga:%{_datadir}/%{pkg_name}/mroonga/uninstall.sql} +%if %{with mroonga} +%{_datadir}/%{pkg_name}/mroonga/install.sql +%{_datadir}/%{pkg_name}/mroonga/uninstall.sql +%license %{_datadir}/%{pkg_name}/mroonga/COPYING +%license %{_datadir}/%{pkg_name}/mroonga/AUTHORS +%license %{_datadir}/groonga-normalizer-mysql/lgpl-2.0.txt +%license %{_datadir}/groonga/COPYING +%doc %{_datadir}/groonga-normalizer-mysql/README.md +%doc %{_datadir}/groonga/README.md +%endif %{_datadir}/%{pkg_name}/my-*.cnf %{_datadir}/%{pkg_name}/wsrep.cnf %{_datadir}/%{pkg_name}/wsrep_notify @@ -1583,6 +1599,11 @@ fi %endif %changelog +* Sat Dec 09 2017 Michal Schorm - 3:10.2.11-1 +- Rebase to 10.2.11 +- Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 introduced +- Temporary fix for #1523875 intoruced + * Wed Dec 06 2017 Michal Schorm - 3:10.2.10-2 - Fix PID file location Related: #1483331, #1515779 diff --git a/sources b/sources index 2161b03..d8648b0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mariadb-10.2.10.tar.gz) = 39c198009f8b19f4a08226ef9842b50e24636580b67c1c92d59c61cce3aa1edbd466e253c281dfcdfc58ab573ae9a59aaacb0ce3e8b82222043ddd849fc3e239 +SHA512 (mariadb-10.2.11.tar.gz) = 4041ee1f1e266e8b30f85b19c5c95bcb626f965df9e0e20eb801598cc7fc5f5f37906e8a75cc86d373aa642adcccf3b75a0e67994e18908fb733cc6520d04a44 From c9863fb5fed22bae1ae931a6fbf4519ddce56bc9 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 9 Dec 2017 02:46:07 +0100 Subject: [PATCH 17/30] Include aliases for mariadb service; #1520905 --- mysql.service.in | 2 ++ mysql@.service.in | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mysql.service.in b/mysql.service.in index 8292553..bb5b8c2 100644 --- a/mysql.service.in +++ b/mysql.service.in @@ -67,3 +67,5 @@ PrivateTmp=true [Install] WantedBy=multi-user.target +Alias=mysql.service +Alias=mysqld.service diff --git a/mysql@.service.in b/mysql@.service.in index 3bf386d..34e645f 100644 --- a/mysql@.service.in +++ b/mysql@.service.in @@ -73,3 +73,5 @@ PrivateTmp=true [Install] WantedBy=multi-user.target +Alias=mysql.service +Alias=mysqld.service From 6823344debd69918f0584d9fdb7eef3e5eb60c48 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 9 Dec 2017 18:57:49 +0100 Subject: [PATCH 18/30] Added reasons in comments to removed files section. Based on a question asked on the usptream mailing list: https://lists.launchpad.net/maria-developers/msg11028.html --- mariadb.spec | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 29ad620..3c58c95 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -404,6 +404,8 @@ Recommends: %{name}-gssapi-server%{?_isa} = %{sameevr} Recommends: %{name}-rocksdb-engine%{?_isa} = %{sameevr} Recommends: %{name}-tokudb-engine%{?_isa} = %{sameevr} +Suggests: mytop + Requires: %{_sysconfdir}/my.cnf Requires: %{_sysconfdir}/my.cnf.d @@ -955,21 +957,29 @@ ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/ ln -s unstable-tests %{buildroot}%{_datadir}/mysql-test/rh-skipped-tests.list -# should move this to /etc/ ? -# WHY?? -%{?with_embedded:rm %{buildroot}%{_bindir}/mysql_embedded} #upstream ships in client +# Client that uses libmysqld embedded server. +# Pretty much like normal mysql command line client, but it doesn't require a running mariadb server. +%{?with_embedded:rm %{buildroot}%{_bindir}/mysql_embedded} +# Static libraries rm %{buildroot}%{_libdir}/*.a -rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure #This script creates the MySQL system tables and starts the server. +# This script creates the MySQL system tables and starts the server. +# Upstream says: +# It looks like it's just "mysql_install_db && mysqld_safe" +# I've never heard of anyone using it, I'd say, no need to pack it. +rm %{buildroot}%{_datadir}/%{pkg_name}/binary-configure +# FS files first-bytes recoginiton +# Not updated by upstream since nobody realy use that +rm %{buildroot}%{_datadir}/%{pkg_name}/magic -# WHY?? -rm %{buildroot}%{_datadir}/%{pkg_name}/magic #FS files first-bytes recoginiton? +# Upstream ships them because of, https://jira.mariadb.org/browse/MDEV-10797 +# In Fedora we use our own systemd unit files and scripts +rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server +rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server -rm %{buildroot}%{_datadir}/%{pkg_name}/mysql.server #Usage: mysql.server {start|stop|restart|reload|force-reload|status|configtest|bootstrap} [ MySQL server options ] -rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server #Can't execute /usr/local/mysql/bin/mysqld_multi from dir /usr/local/mysql - -# WHY?? -rm %{buildroot}%{_bindir}/mytop #not shipped by upstream +# Binary for monitoring MySQL performance +# Shipped as a standalona package in Fedora +rm %{buildroot}%{_bindir}/mytop From 6cfe77260f023045af345c712549d98fb2f789d2 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 9 Dec 2017 21:50:34 +0100 Subject: [PATCH 19/30] Add failing test for 10.2.11 release --- rh-skipped-tests-s390.list | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rh-skipped-tests-s390.list b/rh-skipped-tests-s390.list index 52e7587..5f46945 100644 --- a/rh-skipped-tests-s390.list +++ b/rh-skipped-tests-s390.list @@ -2,3 +2,5 @@ encryption.innodb-read-only : #1399847 multi_source.gtid : warnings in log sys_vars.innodb_autoextend_increment_basic : warnings in log vcol.vcol_keys_innodb : warnings in log + +encryption.innodb-compressed-blob : started failing with 10.2.11 release From 9c1b69700c1ede718aa30ddf8b62d46c5b528584 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 11 Dec 2017 12:55:15 +0100 Subject: [PATCH 20/30] Temporary fix for #1523875 removed, bug in Annobin fixed --- mariadb.spec | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 3c58c95..980cca3 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -137,7 +137,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 1%{?with_debug:.debug}%{?dist} +Release: 2%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -789,9 +789,6 @@ CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O1|g" ` CFLAGS=`echo $CFLAGS| sed -e "s|-O2|-O3|g" ` %endif -# Temporary fix for rhbz#1523875 -CFLAGS=`echo $CFLAGS| sed -e "s|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||g" ` - CXXFLAGS="$CFLAGS" export CFLAGS CXXFLAGS @@ -1609,10 +1606,15 @@ fi %endif %changelog +* Mon Dec 11 2017 Michal Schorm - 3:10.2.11-2 +- Temporary fix for #1523875 removed, bug in Annobin fixed + Resolves: #1523875 + * Sat Dec 09 2017 Michal Schorm - 3:10.2.11-1 - Rebase to 10.2.11 - Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 introduced - Temporary fix for #1523875 intoruced + Related: #1523875 * Wed Dec 06 2017 Michal Schorm - 3:10.2.10-2 - Fix PID file location From fe524160efa2844bb9a1a51a91557f6c20243e24 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Mon, 11 Dec 2017 12:55:15 +0100 Subject: [PATCH 21/30] Rebase to 10.2.12 Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 removed TokuDB disabled Failing tests lists updated --- mariadb.spec | 34 ++++++++++++++++++++++++++-------- rh-skipped-tests-base.list | 12 ++++++------ rh-skipped-tests-ppc.list | 6 ++---- rh-skipped-tests-s390.list | 6 ------ sources | 2 +- 5 files changed, 35 insertions(+), 25 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 980cca3..8557a3c 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -13,6 +13,7 @@ %{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{pkg_name}-%{version}} # Use Full RELRO for all binaries (RHBZ#1092548) +# Deafult since F23 https://fedoraproject.org/wiki/Changes/Harden_All_Packages %global _hardened_build 1 # By default, patch(1) creates backup files when chunks apply with offsets. @@ -30,7 +31,10 @@ # https://mariadb.com/kb/en/library/myrocks-supported-platforms/ # RocksB engine is available only for x86_64 %ifarch x86_64 -%bcond_without tokudb +# Disable TokuDB since 10.1.12 on F>=28 +# It will either "freeze" the testsuite (probabbly stuck in some loop) or ~500 TokuDB tests will fail +# This issue is probabbly caused by updates in Fedora Rwahide (F28) KOJI - like a new GCC and many build tools updates +%bcond_with tokudb %bcond_without mroonga %bcond_without rocksdb %else @@ -133,7 +137,7 @@ # Make long macros shorter %global sameevr %{epoch}:%{version}-%{release} %global compatver 10.2 -%global bugfixver 11 +%global bugfixver 12 Name: mariadb Version: %{compatver}.%{bugfixver} @@ -796,6 +800,8 @@ export CFLAGS CXXFLAGS # building with PIE LDFLAGS="$LDFLAGS -pie -Wl,-z,relro,-z,now" export LDFLAGS +# Simmilar flags provides MariaDB itself: -DSECURITY_HARDENED=ON +# will elanble -pie and -Wl,-z,relro,-z,now, but also -fstack-protector and -D_FORTIFY_SOURCE=2 %endif # The INSTALL_xxx macros have to be specified relative to CMAKE_INSTALL_PREFIX @@ -831,6 +837,7 @@ export LDFLAGS -DTMPDIR=/var/tmp \ -DENABLED_LOCAL_INFILE=ON \ -DENABLE_DTRACE=ON \ + -DSECURITY_HARDENED=%{?hardened_build:ON}%{!?hardened_build:OFF} \ -DWITH_EMBEDDED_SERVER=%{?with_embedded:ON}%{!?with_embedded:OFF} \ -DWITH_MARIABACKUP=%{?with_backup:ON}%{!?with_backup:NO} \ -DWITH_UNIT_TESTS=%{?with_test:ON}%{!?with_test:NO} \ @@ -844,14 +851,10 @@ export LDFLAGS -DPLUGIN_ROCKSDB=%{?with_rocksdb:DYNAMIC}%{!?with_rocksdb:NO} \ -DPLUGIN_SPHINX=%{?with_sphinx:DYNAMIC}%{!?with_sphinx:NO} \ -DPLUGIN_TOKUDB=%{?with_tokudb:DYNAMIC}%{!?with_tokudb:NO} \ - -DTOKUDB_OK=1 \ -DPLUGIN_CONNECT=%{?with_connect:DYNAMIC}%{!?with_connect:NO} \ %{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON} \ %{?_hardened_build: -DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"} -# -DTOKUDB_OK=1 -# ^ is a temporary fix for https://jira.mariadb.org/browse/MDEV-14537 - # Print all Cmake options values cmake -L @@ -978,7 +981,9 @@ rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server # Shipped as a standalona package in Fedora rm %{buildroot}%{_bindir}/mytop - +# Rename sysusers and tmpfiles config files, they should be named after the software they belong to +mv %{buildroot}/usr/lib/sysusers.d/sysusers.conf %{buildroot}/usr/lib/sysusers.d/mariadb.conf +mv %{buildroot}/usr/lib/tmpfiles.d/tmpfiles.conf %{buildroot}/usr/lib/tmpfiles.d/mariadb.conf # put logrotate script where it needs to be mkdir -p %{buildroot}%{logrotateddir} @@ -1147,9 +1152,10 @@ export MTR_BUILD_THREAD=%{__isa_bits} # avoid redundant test runs with --binlog-format=mixed # increase timeouts to prevent unwanted failures during mass rebuilds -# Failing test debug 02/14/17 +# Usefull arguments: # --do-test=mysql_client_test_nonblock \ # --skip-rpl +# --suite=roles ( set -ex @@ -1483,6 +1489,13 @@ fi %attr(0640,mysql,mysql) %config %ghost %verify(not md5 size mtime) %{logfile} %config(noreplace) %{logrotateddir}/%{daemon_name} +# New systemd feature - used to reconstruct damaged /etc +# https://github.com/MariaDB/server/commit/7bbc6c14d1 +%dir /usr/lib/sysusers.d +/usr/lib/sysusers.d/mariadb.conf +%dir /usr/lib/tmpfiles.d +/usr/lib/tmpfiles.d/mariadb.conf + %if %{with cracklib} %files cracklib-password-check %config(noreplace) %{_sysconfdir}/my.cnf.d/cracklib_password_check.cnf @@ -1606,6 +1619,11 @@ fi %endif %changelog +* Wed Jan 10 2018 Michal Schorm - 3:10.2.12-1 +- Rebase to 10.2.12 +- Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 removed +- TokuDB disabled + * Mon Dec 11 2017 Michal Schorm - 3:10.2.11-2 - Temporary fix for #1523875 removed, bug in Annobin fixed Resolves: #1523875 diff --git a/rh-skipped-tests-base.list b/rh-skipped-tests-base.list index 022dda6..11d5a9b 100644 --- a/rh-skipped-tests-base.list +++ b/rh-skipped-tests-base.list @@ -2,13 +2,10 @@ # 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_clients : #1399847 -main.ssl_cert_verify : #1399847 # -main.userstat : #1399847 main.non_blocking_api : #1399847 perfschema.nesting : #1399847 -perfschema.socket_summary_by_event_name_func : #1399847 perfschema.socket_summary_by_instance_func : #1399847 # needs this tests disabled for mode build @@ -27,14 +24,18 @@ rpl.rpl_row_img_eng_noblob : sys_vars.slave_parallel_threads_basic : +# Fails since 10.1.12 +innodb.innodb_defrag_binlog : + +# Fails on PPC, PPC64 and AArch +parts.partition_alter4_innodb : #1399847 + # https://jira.mariadb.org/browse/MDEV-14003 -spider/bg.spider3_fixes : spider/bg.spider3_fixes_part : spider/bg.spider_fixes : spider/bg.spider_fixes_part : spider/bg.basic_sql : spider/bg.basic_sql_part : -spider/bg.direct_aggregate : spider/bg.direct_aggregate_part : spider/bg.direct_update : spider/bg.direct_update_part : @@ -55,4 +56,3 @@ spider.function : spider.ha : spider.ha_part : spider.vp_fixes : - diff --git a/rh-skipped-tests-ppc.list b/rh-skipped-tests-ppc.list index f396da3..5fd4928 100644 --- a/rh-skipped-tests-ppc.list +++ b/rh-skipped-tests-ppc.list @@ -1,4 +1,2 @@ -parts.partition_alter4_innodb : #1399847 -connect.tbl_thread : warnings in log -partition_alter1_2_innodb : warnings in log -partition_alter2_1_1_innodb : warnings in log +# Fails since 10.1.12 only on PPC64 +innodb_fts.fulltext : diff --git a/rh-skipped-tests-s390.list b/rh-skipped-tests-s390.list index 5f46945..e69de29 100644 --- a/rh-skipped-tests-s390.list +++ b/rh-skipped-tests-s390.list @@ -1,6 +0,0 @@ -encryption.innodb-read-only : #1399847 -multi_source.gtid : warnings in log -sys_vars.innodb_autoextend_increment_basic : warnings in log -vcol.vcol_keys_innodb : warnings in log - -encryption.innodb-compressed-blob : started failing with 10.2.11 release diff --git a/sources b/sources index d8648b0..dc9be41 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mariadb-10.2.11.tar.gz) = 4041ee1f1e266e8b30f85b19c5c95bcb626f965df9e0e20eb801598cc7fc5f5f37906e8a75cc86d373aa642adcccf3b75a0e67994e18908fb733cc6520d04a44 +SHA512 (mariadb-10.2.12.tar.gz) = 8d3d3c84d4a01d6047e4f2b6802eb802e1f6a7b0e10e981c7ef9fdd27a5a25baab0af47a21b8637f4cbb9d21ef3bcc85097c5fdb8745c2a79040ab87fecb5a7b From 0d9da7bf48c4dbed3b077dbedeaffb6e47f99799 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Thu, 23 Nov 2017 22:15:32 +0100 Subject: [PATCH 22/30] Remove jar files used for testing from the source Related: #1463417 --- mariadb.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 8557a3c..337f43e 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -697,6 +697,9 @@ sources. %prep %setup -q -n mariadb-%{version} +# Removt JAR files that upstream puts into tarball +find . -name "*.jar" -type f -exec rm --verbose -f {} \; + %patch4 -p1 %patch7 -p1 %patch9 -p1 @@ -852,6 +855,8 @@ export LDFLAGS -DPLUGIN_SPHINX=%{?with_sphinx:DYNAMIC}%{!?with_sphinx:NO} \ -DPLUGIN_TOKUDB=%{?with_tokudb:DYNAMIC}%{!?with_tokudb:NO} \ -DPLUGIN_CONNECT=%{?with_connect:DYNAMIC}%{!?with_connect:NO} \ + -DCONNECT_WITH_MONGO=OFF \ + -DCONNECT_WITH_JDBC=OFF \ %{?with_debug: -DCMAKE_BUILD_TYPE=Debug -DWITH_ASAN=OFF -DWITH_INNODB_EXTRA_DEBUG=ON -DWITH_VALGRIND=ON} \ %{?_hardened_build: -DWITH_MYSQLD_LDFLAGS="-pie -Wl,-z,relro,-z,now"} @@ -1011,10 +1016,6 @@ install -p -m 0755 scripts/galera_new_cluster %{buildroot}%{_bindir}/galera_new_ # remove duplicate logrotate script rm %{buildroot}%{_sysconfdir}/logrotate.d/mysql -# remove *.jar file from mysql-test -rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/JdbcMariaDB.jar -rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo2.jar -rm -r %{buildroot}%{_datadir}/mysql-test/plugin/connect/connect/std_data/Mongo3.jar # Remove AppArmor files rm -r %{buildroot}%{_datadir}/%{pkg_name}/policy/apparmor @@ -1619,6 +1620,9 @@ fi %endif %changelog +* Thu Jan 11 2018 Honza Horak - 3:10.2.12-1 +- Do not build connect plugin with mongo and jdbc connectors + * Wed Jan 10 2018 Michal Schorm - 3:10.2.12-1 - Rebase to 10.2.12 - Temporary fix for https://jira.mariadb.org/browse/MDEV-14537 removed From a218b6af2838a994df8c51cecca07825cbd82e96 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Sun, 24 Sep 2017 12:55:50 +0200 Subject: [PATCH 23/30] Support MYSQLD_OPTS and _WSREP_NEW_CLUSTER env vars in init script, same as it is done in case of systemd unit file Related: #1455850 --- mariadb.spec | 3 +++ mysql.init.in | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mariadb.spec b/mariadb.spec index 337f43e..9693765 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1622,6 +1622,9 @@ fi %changelog * Thu Jan 11 2018 Honza Horak - 3:10.2.12-1 - Do not build connect plugin with mongo and jdbc connectors +- Support MYSQLD_OPTS and _WSREP_NEW_CLUSTER env vars in init script, + same as it is done in case of systemd unit file + Related: #1455850 * Wed Jan 10 2018 Michal Schorm - 3:10.2.12-1 - Rebase to 10.2.12 diff --git a/mysql.init.in b/mysql.init.in index 6ae046c..aa3b809 100644 --- a/mysql.init.in +++ b/mysql.init.in @@ -82,7 +82,7 @@ start(){ # Note: set --basedir to prevent probes that might trigger SELinux # alarms, per bug #547485 su - $MYUSER -s /bin/bash -c "$exec --datadir='$datadir' --socket='$socketfile' \ - --pid-file='$pidfile' \ + --pid-file='$pidfile' $MYSQLD_OPTS $_WSREP_NEW_CLUSTER \ --basedir=@prefix@ --user=$MYUSER" >/dev/null 2>&1 & safe_pid=$! From 9be454122e9b43716cb1673f8da065894cf54619 Mon Sep 17 00:00:00 2001 From: Honza Horak Date: Tue, 7 Nov 2017 12:24:46 +0100 Subject: [PATCH 24/30] Print the same messages as before when starting the service in SysV init, to not scare users Related: #1463411 --- mariadb.spec | 3 +++ mysql-prepare-db-dir.sh | 14 +++++++------- mysql.init.in | 4 ++-- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 9693765..29c8932 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1625,6 +1625,9 @@ fi - Support MYSQLD_OPTS and _WSREP_NEW_CLUSTER env vars in init script, same as it is done in case of systemd unit file Related: #1455850 +- Print the same messages as before when starting the service in SysV init, + to not scare users + Related: #1463411 * Wed Jan 10 2018 Michal Schorm - 3:10.2.12-1 - Rebase to 10.2.12 diff --git a/mysql-prepare-db-dir.sh b/mysql-prepare-db-dir.sh index 785ddc2..22d0566 100644 --- a/mysql-prepare-db-dir.sh +++ b/mysql-prepare-db-dir.sh @@ -68,11 +68,11 @@ else # Provide some advice if the log file cannot be created by this script errlogdir=$(dirname "$errlogfile") if ! [ -d "$errlogdir" ] ; then - echo "The directory $errlogdir does not exist." + echo "The directory $errlogdir does not exist." >&2 exit 1 elif [ -e "$errlogfile" -a ! -w "$errlogfile" ] ; then - echo "The log file $errlogfile cannot be written, please, fix its permissions." - echo "The daemon will be run under $myuser:$mygroup" + echo "The log file $errlogfile cannot be written, please, fix its permissions." >&2 + echo "The daemon will be run under $myuser:$mygroup" >&2 exit 1 fi fi @@ -90,14 +90,14 @@ if should_initialize "$datadir" ; then [ -x /sbin/restorecon ] && /sbin/restorecon "$datadir" # Now create the database - echo "Initializing @NICE_PROJECT_NAME@ database" + echo "Initializing @NICE_PROJECT_NAME@ database" >&2 # Avoiding deletion of files not created by mysql_install_db is # guarded by time check and sleep should help work-arounded # potential issues on systems with 1 second resolution timestamps # https://bugzilla.redhat.com/show_bug.cgi?id=1335849#c19 INITDB_TIMESTAMP=`LANG=C date -u` sleep 1 - @bindir@/mysql_install_db --rpm --datadir="$datadir" --user="$myuser" + @bindir@/mysql_install_db --rpm --datadir="$datadir" --user="$myuser" >&2 ret=$? if [ $ret -ne 0 ] ; then echo "Initialization of @NICE_PROJECT_NAME@ database failed." >&2 @@ -128,8 +128,8 @@ else else # if the directory is not empty but mysql/ directory is missing, then # print error and let user to initialize manually or empty the directory - echo "Database @NICE_PROJECT_NAME@ is not initialized, but the directory $datadir is not empty, so initialization cannot be done." - echo "Make sure the $datadir is empty before running `basename $0`." + echo "Database @NICE_PROJECT_NAME@ is not initialized, but the directory $datadir is not empty, so initialization cannot be done." >&2 + echo "Make sure the $datadir is empty before running `basename $0`." >&2 exit 1 fi fi diff --git a/mysql.init.in b/mysql.init.in index aa3b809..0282399 100644 --- a/mysql.init.in +++ b/mysql.init.in @@ -71,8 +71,8 @@ start(){ action $"Starting $prog: " /bin/true ret=0 else - @libexecdir@/mysql-check-socket || return 1 - su - $MYUSER -s /bin/bash -c "@libexecdir@/mysql-prepare-db-dir $MYUSER $MYGROUP" || return 4 + @libexecdir@/mysql-check-socket >/dev/null || return 1 + su - $MYUSER -s /bin/bash -c "@libexecdir@/mysql-prepare-db-dir $MYUSER $MYGROUP" >/dev/null || return 4 # Pass all the options determined above, to ensure consistent behavior. # In many cases mysqld_safe would arrive at the same conclusions anyway From c07b0bf23ab3eae3f1b485b4a674eee13cf7a8a5 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Jan 2018 11:59:14 +0100 Subject: [PATCH 25/30] Fix upgrade path - do build TokuDB, but build a configuration unsupported by upstream (Build without Jemalloc) --- mariadb.spec | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 29c8932..aa7c469 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -34,7 +34,7 @@ # Disable TokuDB since 10.1.12 on F>=28 # It will either "freeze" the testsuite (probabbly stuck in some loop) or ~500 TokuDB tests will fail # This issue is probabbly caused by updates in Fedora Rwahide (F28) KOJI - like a new GCC and many build tools updates -%bcond_with tokudb +%bcond_without tokudb %bcond_without mroonga %bcond_without rocksdb %else @@ -141,7 +141,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 2%{?with_debug:.debug}%{?dist} +Release: 4%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -847,7 +847,7 @@ export LDFLAGS -DCONC_WITH_SSL=%{?with_clibrary:ON}%{!?with_clibrary:NO} \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ - -DWITH_JEMALLOC=system \ + -DWITH_JEMALLOC=no \ -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} \ @@ -1620,6 +1620,11 @@ fi %endif %changelog +* Thu Jan 25 2018 Michal Schorm - 3:10.2.12-4 +- Fix the upgrade path. Build TokuDB subpackage again, but build a unsupported + configuration by upstream (without Jemalloc). + Jemmalloc has been updated to version 5, which isn't backwards compatible. + * Thu Jan 11 2018 Honza Horak - 3:10.2.12-1 - Do not build connect plugin with mongo and jdbc connectors - Support MYSQLD_OPTS and _WSREP_NEW_CLUSTER env vars in init script, From af8f71d7a59a5f746578e710844dfff675b9a549 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Thu, 25 Jan 2018 12:09:50 +0100 Subject: [PATCH 26/30] Use downstream tmpfiles instead of the upstream one; #1538066 --- mariadb.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index aa7c469..a0eeb1b 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -924,6 +924,9 @@ rm scripts/my.cnf # use different config file name for each variant of server (mariadb / mysql) mv %{buildroot}%{_sysconfdir}/my.cnf.d/server.cnf %{buildroot}%{_sysconfdir}/my.cnf.d/%{pkg_name}-server.cnf +# Rename sysusers and tmpfiles config files, they should be named after the software they belong to +mv %{buildroot}/usr/lib/sysusers.d/sysusers.conf %{buildroot}/usr/lib/sysusers.d/mariadb.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 @@ -931,6 +934,9 @@ rm %{buildroot}%{_libexecdir}/rcmysql %if %{with init_systemd} install -D -p -m 644 scripts/mysql.service %{buildroot}%{_unitdir}/%{daemon_name}.service install -D -p -m 644 scripts/mysql@.service %{buildroot}%{_unitdir}/%{daemon_name}@.service +# Remove the upstream version +rm %{buildroot}/usr/lib/tmpfiles.d/tmpfiles.conf +# Install downstream version install -D -p -m 0644 scripts/mysql.tmpfiles.d %{buildroot}%{_tmpfilesdir}/%{name}.conf %if 0%{?mysqld_pid_dir:1} echo "d %{pidfiledir} 0755 mysql mysql -" >>%{buildroot}%{_tmpfilesdir}/%{name}.conf @@ -986,10 +992,6 @@ rm %{buildroot}%{_datadir}/%{pkg_name}/mysqld_multi.server # Shipped as a standalona package in Fedora rm %{buildroot}%{_bindir}/mytop -# Rename sysusers and tmpfiles config files, they should be named after the software they belong to -mv %{buildroot}/usr/lib/sysusers.d/sysusers.conf %{buildroot}/usr/lib/sysusers.d/mariadb.conf -mv %{buildroot}/usr/lib/tmpfiles.d/tmpfiles.conf %{buildroot}/usr/lib/tmpfiles.d/mariadb.conf - # put logrotate script where it needs to be mkdir -p %{buildroot}%{logrotateddir} mv %{buildroot}%{_datadir}/%{pkg_name}/mysql-log-rotate %{buildroot}%{logrotateddir}/%{daemon_name} @@ -1624,6 +1626,8 @@ fi - Fix the upgrade path. Build TokuDB subpackage again, but build a unsupported configuration by upstream (without Jemalloc). Jemmalloc has been updated to version 5, which isn't backwards compatible. +- Use downstream tmpfiles instead of the upstream one + Related: #1538066 * Thu Jan 11 2018 Honza Horak - 3:10.2.12-1 - Do not build connect plugin with mongo and jdbc connectors From ad0bf94ae52ced82bc9f755a343d286bde55831a Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Fri, 26 Jan 2018 18:26:43 +0100 Subject: [PATCH 27/30] Use '-ldl' compiler flag when associated library used Resolves: #1538990 --- mariadb.spec | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/mariadb.spec b/mariadb.spec index a0eeb1b..85431a6 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -141,7 +141,7 @@ Name: mariadb Version: %{compatver}.%{bugfixver} -Release: 4%{?with_debug:.debug}%{?dist} +Release: 5%{?with_debug:.debug}%{?dist} Epoch: 3 Summary: A community developed branch of MySQL @@ -786,6 +786,8 @@ rm -r storage/tokudb/mysql-test/tokudb/t/*.py CFLAGS="%{optflags} -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" # force PIC mode so that we can build libmysqld.so CFLAGS="$CFLAGS -fPIC" +# Use -ldl for some plugins #1538990 +CFLAGS="$CFLAGS -ldl" # gcc seems to have some bugs on sparc as of 4.4.1, back off optimization; rhbz#529298 # Note: sparc = s390 %ifarch sparc sparcv9 sparc64 @@ -1622,6 +1624,10 @@ fi %endif %changelog +* Fri Jan 26 2018 Michal Schorm - 3:10.2.12-5 +- Use '-ldl' compiler flag when associated library used + Resolves: #1538990 + * Thu Jan 25 2018 Michal Schorm - 3:10.2.12-4 - Fix the upgrade path. Build TokuDB subpackage again, but build a unsupported configuration by upstream (without Jemalloc). From ed1cfbce0e107e983e8b8e95354c902e0c5add2e Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sat, 27 Jan 2018 02:34:32 +0100 Subject: [PATCH 28/30] Extend failing tests list for PPC --- rh-skipped-tests-ppc.list | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rh-skipped-tests-ppc.list b/rh-skipped-tests-ppc.list index 5fd4928..5fc204e 100644 --- a/rh-skipped-tests-ppc.list +++ b/rh-skipped-tests-ppc.list @@ -1,2 +1,6 @@ # Fails since 10.1.12 only on PPC64 innodb_fts.fulltext : +# Fails since 10.1.12 only on PPC64 and PPC64le; timeout after 1800 seconds +innodb.innodb_defrag_concurrent : +parts.partition_alter1_2_innodb : + From 00b1b90490dbe697ea55e1535f54e9d979b2b6c8 Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Tue, 30 Jan 2018 11:55:36 +0100 Subject: [PATCH 29/30] Update ldconfig scriptlets --- mariadb.spec | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 85431a6..32ad6d6 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -1188,11 +1188,13 @@ export MTR_BUILD_THREAD=%{__isa_bits} -c "MySQL Server" -u 27 mysql >/dev/null 2>&1 || : %if %{with clibrary} -%post libs -p /sbin/ldconfig +# Can be dropped on F27 EOL +%ldconfig_post libs %endif %if %{with embedded} -%post embedded -p /sbin/ldconfig +# Can be dropped on F27 EOL +%ldconfig_post embedded %endif %if %{with galera} @@ -1227,11 +1229,13 @@ fi %endif %if %{with clibrary} -%postun libs -p /sbin/ldconfig +# Can be dropped on F27 EOL +%ldconfig_postun libs %endif %if %{with embedded} -%postun embedded -p /sbin/ldconfig +# Can be dropped on F27 EOL +%ldconfig_postun embedded %endif %if %{with galera} From abdf8da01ae714fc2d5639013461bb950475293b Mon Sep 17 00:00:00 2001 From: Michal Schorm Date: Sun, 18 Feb 2018 20:12:10 +0100 Subject: [PATCH 30/30] Use -DINSTALL_MYSQLTESTDIR Cmake argument correctly; https://jira.mariadb.org/browse/MDEV-14972 --- mariadb.spec | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mariadb.spec b/mariadb.spec index 32ad6d6..1fc9213 100644 --- a/mariadb.spec +++ b/mariadb.spec @@ -831,7 +831,7 @@ export LDFLAGS -DINSTALL_LIBDIR="%{_lib}" \ -DINSTALL_MANDIR=share/man \ -DINSTALL_MYSQLSHAREDIR=share/%{pkg_name} \ - -DINSTALL_MYSQLTESTDIR=share/mysql-test \ + -DINSTALL_MYSQLTESTDIR=%{?with_test:share/mysql-test}%{!?with_test:} \ -DINSTALL_PLUGINDIR="%{_lib}/%{pkg_name}/plugin" \ -DINSTALL_SBINDIR=libexec \ -DINSTALL_SCRIPTDIR=bin \ @@ -963,12 +963,13 @@ install -p -m 755 scripts/mysql-wait-ready %{buildroot}%{_libexecdir}/mysql-wait install -p -m 644 -D selinux/%{name}-server-galera.pp %{buildroot}%{_datadir}/selinux/packages/%{name}/%{name}-server-galera.pp %endif +%if %{with test} # mysql-test includes one executable that doesn't belong under /usr/share, so move it and provide a symlink mv %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process %{buildroot}%{_bindir} ln -s ../../../../../bin/my_safe_process %{buildroot}%{_datadir}/mysql-test/lib/My/SafeProcess/my_safe_process # Provide symlink expected by RH QA tests ln -s unstable-tests %{buildroot}%{_datadir}/mysql-test/rh-skipped-tests.list - +%endif # Client that uses libmysqld embedded server. @@ -1121,10 +1122,9 @@ rm -r %{buildroot}%{_datadir}/sql-bench rm %{buildroot}%{_bindir}/{mysqltest_embedded,mysql_client_test_embedded} rm %{buildroot}%{_mandir}/man1/{mysqltest_embedded,mysql_client_test_embedded}.1* %endif # embedded -rm %{buildroot}%{_bindir}/{mysql_client_test,my_safe_process,mysqltest} +rm %{buildroot}%{_bindir}/{mysql_client_test,mysqltest} rm %{buildroot}%{_mandir}/man1/{mysql_client_test,my_safe_process,mysqltest}.1* rm %{buildroot}%{_mandir}/man1/{mysql-test-run,mysql-stress-test}.pl.1* -rm -r %{buildroot}%{_datadir}/mysql-test %endif # test %if %{without galera}