https://bugzilla.redhat.com/show_bug.cgi?id=2305346
Bug ID: 2305346 Summary: Review Request: mysql8.4 - latest LTS version of MySQL database Product: Fedora Version: rawhide Hardware: All OS: Linux Status: NEW Component: Package Review Severity: medium Priority: medium Assignee: nobody@fedoraproject.org Reporter: mschorm@redhat.com QA Contact: extras-qa@fedoraproject.org CC: package-review@lists.fedoraproject.org Target Milestone: --- Classification: Fedora
The whole review is being done in COPR. SRPM, SPECfile, all artifact and the Fedora Review report are there.
I'm submitting this particular build for review: https://copr.fedorainfracloud.org/coprs/mschorm/mysql8.4/build/7913138/
Spec URL: https://download.copr.fedorainfracloud.org/results/mschorm/mysql8.4/fedora-r... SRPM URL: https://download.copr.fedorainfracloud.org/results/mschorm/mysql8.4/fedora-r... Description: Latest LTS version of MySQL database Fedora Account System Username: mschorm
---
Notes:
This package is a new version of already existing package: mysql8.0 https://src.fedoraproject.org/rpms/mysql8.0
Recently, as a part of: https://fedoraproject.org/wiki/Changes/F40_MariaDB_MySQL_repackaging The MariaDB and MySQL Fedora packages has been transformed to the versioned layout. This layout allows for different versions to be available at the same time in the repository, but explicitly disallows installation of different versions at the same time.
There always should be *no more than one* MySQL package in distribution that is set as "distribution default version", as can be seen here: https://src.fedoraproject.org/rpms/mysql8.0/blob/rawhide/f/mysql8.0.spec#_8
Currently 'mysql8.0' is the only MySQL version available, and it IS set to be the distribution default version.
The package 'mysql8.4' in this review is NOT set as the distribution default version.
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #1 from Fabio Valentini decathorpe@gmail.com --- Drive-by comment: The package summary is "MySQL client programs and shared libraries" - this should also be used as the <summary> part of the bug title in the review request template.
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
Michal Schorm mschorm@redhat.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Comment|0 |updated
--- Comment #0 has been edited ---
The whole review is being done in COPR. SRPM, SPECfile, all artifact and the Fedora Review report are there.
I'm submitting this particular build for review: https://copr.fedorainfracloud.org/coprs/mschorm/mysql8.4/build/7913138/
Spec URL: https://download.copr.fedorainfracloud.org/results/mschorm/mysql8.4/fedora-r... SRPM URL: https://download.copr.fedorainfracloud.org/results/mschorm/mysql8.4/fedora-r... Description: MySQL client programs and shared libraries Fedora Account System Username: mschorm
---
Notes:
This package is a new version of already existing package: mysql8.0 https://src.fedoraproject.org/rpms/mysql8.0
Recently, as a part of: https://fedoraproject.org/wiki/Changes/F40_MariaDB_MySQL_repackaging The MariaDB and MySQL Fedora packages has been transformed to the versioned layout. This layout allows for different versions to be available at the same time in the repository, but explicitly disallows installation of different versions at the same time.
There always should be *no more than one* MySQL package in distribution that is set as "distribution default version", as can be seen here: https://src.fedoraproject.org/rpms/mysql8.0/blob/rawhide/f/mysql8.0.spec#_8
Currently 'mysql8.0' is the only MySQL version available, and it IS set to be the distribution default version.
The package 'mysql8.4' in this review is NOT set as the distribution default version.
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #2 from Michal Schorm mschorm@redhat.com --- (In reply to Fabio Valentini from comment #1)
Drive-by comment: The package summary is "MySQL client programs and shared libraries" - this should also be used as the <summary> part of the bug title in the review request template.
Ah, thank you !
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
Xose Vazquez Perez xose.vazquez@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |xose.vazquez@gmail.com
--- Comment #3 from Xose Vazquez Perez xose.vazquez@gmail.com --- ============================ rpmlint session starts ============================ rpmlint: 2.5.0 configuration: /usr/lib/python3.13/site-packages/rpmlint/configdefaults.toml /etc/xdg/rpmlint/fedora-spdx-licenses.toml /etc/xdg/rpmlint/fedora.toml /etc/xdg/rpmlint/scoring.toml /etc/xdg/rpmlint/users-groups.toml /etc/xdg/rpmlint/warn-on-functions.toml rpmlintrc: mysql.rpmlintrc checks: 32, packages: 1
mysql8.4.spec:252: W: unversioned-explicit-provides bundled(rapidjson) mysql8.4.spec:256: W: unversioned-explicit-provides bundled(unordered_dense) mysql8.4.spec:266: W: unversioned-explicit-provides %{majorname}%{?1:-%{1}}-any\ The specfile contains an unversioned Provides: token, which will match all older, equal, and newer versions of the provided thing. This may cause update problems and will make versioned dependencies, obsoletions and conflicts on the provided thing useless -- make the Provides versioned if possible.
mysql8.4.spec: E: unused-rpmlintrc-filter "spelling-error .* en_US (cnf|mysqld|subpackage) " mysql8.4.spec: E: unused-rpmlintrc-filter "dangling-relative-symlink /usr/lib/.build-id" mysql8.4.spec: E: unused-rpmlintrc-filter "(zero-length|pem-certificate|hidden-file-or-dir) /usr/share/mysql-test/*" mysql8.4.spec: E: unused-rpmlintrc-filter "missing-call-to-chdir-with-chroot" mysql8.4.spec: E: unused-rpmlintrc-filter "no-documentation" mysql8.4.spec: E: unused-rpmlintrc-filter "no-manual-page-for-binary" mysql8.4.spec: E: unused-rpmlintrc-filter "W: obsolete-not-provided mysql-cluster" mysql8.4.spec: E: unused-rpmlintrc-filter "W: obsolete-not-provided mysql-bench" mysql8.4.spec: E: unused-rpmlintrc-filter "W: obsolete-not-provided community-mysql-bench" mysql8.4.spec: E: unused-rpmlintrc-filter "conffile-without-noreplace-flag /var/log/mariadb/mariadb.log" mysql8.4.spec: E: unused-rpmlintrc-filter "non-standard-dir-perm /var/log/mysql 750" mysql8.4.spec:733: W: macro-in-comment %{buildroot} mysql8.4.spec:733: W: macro-in-comment %{_sysconfdir} There is a unescaped macro after a shell style comment in the specfile. Macros are expanded everywhere, so check if it can cause a problem in this case and escape the macro with another leading % if appropriate.
0 packages and 1 specfiles checked; 11 errors, 5 warnings, 2 filtered, 11 badness; has taken 0.1 s ============================ rpmlint session ends ============================
1. Sould mysql.rpmlintrc be removed (unused-rpmlintrc-filter) ?
2. Fix 733 "macro-in-comment": diff --git a/mysql8.4.spec b/mysql8.4.spec index cd30d14..7510a03 100644 --- a/mysql8.4.spec +++ b/mysql8.4.spec @@ -730,7 +730,7 @@ mysqlcheck,mysqldump,mysqlimport,mysqlshow,mysqlslap,my_print_defaults}.1* %if %{with config} mkdir -p %{buildroot}%{_sysconfdir}/my.cnf.d %else -#rm %{buildroot}%{_sysconfdir}/my.cnf +#rm %%{buildroot}%%{_sysconfdir}/my.cnf %endif
%if ! %{with common}
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #4 from Michal Schorm mschorm@redhat.com --- 1) That's weird, since when I run the RPMlint by hand, it reports issues that should be otherwise filtered out, e.g.: mysql8.4-server.x86_64: W: no-manual-page-for-binary mysql_migrate_keyring mysql8.4-server.x86_64: W: no-manual-page-for-binary mysqld_pre_systemd
May it be because it's called 'mysql.rpmlintrc' instead of 'mysql8.4.rpmlintrc' ?
2) Right, will fix.
3) I made a re-base to the latest upstream version (8.4.2 -> 8.4.3), so I hope it will finish by tomorrow. (The build itself takes 1-2 hours, but 'fedora-review' runs forever on such a huge package)
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #5 from Xose Vazquez Perez xose.vazquez@gmail.com --- Created attachment 2057941 --> https://bugzilla.redhat.com/attachment.cgi?id=2057941&action=edit fedpkg lint
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #6 from Xose Vazquez Perez xose.vazquez@gmail.com --- (In reply to Michal Schorm from comment #4)
- That's weird, since when I run the RPMlint by hand, it reports issues
that should be otherwise filtered out, e.g.: mysql8.4-server.x86_64: W: no-manual-page-for-binary mysql_migrate_keyring mysql8.4-server.x86_64: W: no-manual-page-for-binary mysqld_pre_systemd
May it be because it's called 'mysql.rpmlintrc' instead of 'mysql8.4.rpmlintrc' ?
Maybe it is for "fedpkg lint".
BTW, "fedpkg lint" shows a lot of warnings(595), most of them are files-duplicate(545) and these errors(20):
mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/collections/disabled-valgrind.list mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/r/xml_report_invalid_chars.result mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/std_data/bug37631.MYD mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/suite/innodb/t/table_encrypt_2-master.opt mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/suite/ndb_opt/rbwr.result mysql8.4-test-data.noarch: E: zero-length /usr/share/mysql-test/suite/sys_vars/r/log_error_services_basic.result mysql8.4.src: E: spelling-error ('mysqld', '%description -l en_US mysqld -> MySQL') mysql8.4.x86_64: E: spelling-error ('mysqld', '%description -l en_US mysqld -> MySQL') mysql8.4-server.x86_64: E: non-standard-dir-perm /var/lib/mysql-files 750 mysql8.4-server.x86_64: E: non-standard-dir-perm /var/log/mysql 750 mysql8.4-server.x86_64: E: non-executable-script /usr/libexec/mysql-scripts-common 644 /bin/sh mysql8.4-test-data.noarch: E: non-executable-script /usr/share/mysql-test/lib/t/copytree.t 644 /usr/bin/perl mysql8.4-test-data.noarch: E: non-executable-script /usr/share/mysql-test/lib/t/dummyd.pl 644 /usr/bin/perl mysql8.4-test-data.noarch: E: non-executable-script /usr/share/mysql-test/lib/t/rmtree.t 644 /usr/bin/perl mysql8.4-test-data.noarch: E: non-executable-script /usr/share/mysql-test/suite/ndbcrunch/cruncher.lua 644 /usr/bin/env sysbench mysql8.4-test-data.noarch: E: non-executable-script /usr/share/mysql-test/suite/ndbcrunch/sb_run.pl 644 /usr/bin/perl mysql8.4-server.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/mysqld mysql8.4-server.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/mysqld mysql8.4-test-data.noarch: E: files-duplicated-waste 6217959 mysql8.4-test.x86_64: E: file-parent-ownership-mismatch Path "/usr/share/mysql-test/platform-specific-tests.list" owned by "root" is stored in directory owned by "mysql"
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #7 from Xose Vazquez Perez xose.vazquez@gmail.com --- (In reply to Xose Vazquez Perez from comment #6)
BTW, "fedpkg lint" shows a lot of warnings(595), most of them are files-duplicate(545) and these errors(20):
These are the relevant errors:
mysql8.4-server.x86_64: E: non-standard-dir-perm /var/lib/mysql-files 750
mysql8.4-server.x86_64: E: non-executable-script /usr/libexec/mysql-scripts-common 644 /bin/sh
mysql8.4-server.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/mysqld mysql8.4-server.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/mysqld
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #8 from Michal Schorm mschorm@redhat.com ---
"fedpkg lint" shows a lot of warnings(595), most of them are files-duplicate(545)
The 'files-duplicate' likely comes from the test-suite, which contains a lot of empty files of specific names, e.g. as a pre-recorded test results, which are then compared to the actual test results. I'd strongly advise to ignore nearly any linter findings in the '/usr/share/mysql-test' path, as most of the issues found are expected behavior specifically crafted for the test-suite.
Though this one can be fixed: mysql8.4-test.x86_64: E: file-parent-ownership-mismatch Path "/usr/share/mysql-test/platform-specific-tests.list" owned by "root" is stored in directory owned by "mysql" as that's a downstream file.
mysql8.4-server.x86_64: E: non-executable-script /usr/libexec/mysql-scripts-common 644 /bin/sh
Is that a problem? This is a helper script. A code that is never meant to be executed directly. It is sourced by various other scripts in /usr/bin. That also is the reason why the 'mysql-scripts-common' is in the /usr/libexec instead of /usr/bin as per FSH. Since it is only sourced, I don't see a reason for having it executable.
mysql8.4-server.x86_64: E: non-standard-dir-perm /var/lib/mysql-files 750 mysql8.4-server.x86_64: E: non-standard-dir-perm /var/log/mysql 750
This permission is valid in certain use cases - certain category of software working with MySQL DB is added to the group 'mysql' to get read-only access to some files it can then monitor and examine, such as the DB server logs. But such external software should not get write privileges. At the same time, some data is confidential, so it shouldn't be shared outside the mysql user & group - e.g. the DB logs again are a great example. Same with the '/var/lib/mysql-files' which is used as a specific location for file import / export operations to / from the DB.
mysql8.4-server.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/mysqld mysql8.4-server.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/mysqld
The logrotate requires extra manual steps to be set up properly. The logrotate file has an example configuration, but is all commented out. That is expected as it needs manual steps to be enabled.
I will add Suggests: logrotate to the SPECfile, so it advertises such feature, but does not pull it in unnecessarily.
--
The 8.4.3 build succeeded yesterday, so the latests upstream release is prepared now. https://copr.fedorainfracloud.org/coprs/mschorm/mysql8.4/build/8268175/
--
I've added some fixes for the issues you raised and submitted another build. Fixes can be reviewed here:
https://gitlab.com/mschorm/centos_rpms_mysql8.4/-/commit/5a0b1778502b973e4ff...
--
If you are willing to take the role of reviewer, please assign this ticket to yourself and move it to ASSIGNED state, so it is clear both to me and others that this ticket is under active review and does not look for a reviewer anymore.
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #9 from Michal Schorm mschorm@redhat.com --- I've made a mistake in the fix mentioned above.
Corrected commit is here:
https://gitlab.com/mschorm/centos_rpms_mysql8.4/-/commit/5a0b1778502b973e4ff... New build is here: https://copr.fedorainfracloud.org/coprs/mschorm/mysql8.4/build/8271071/
Ready for next review iteration
https://bugzilla.redhat.com/show_bug.cgi?id=2305346
--- Comment #10 from Xose Vazquez Perez xose.vazquez@gmail.com --- (In reply to Michal Schorm from comment #8)
"fedpkg lint" shows a lot of warnings(595), most of them are files-duplicate(545)
The 'files-duplicate' likely comes from the test-suite, which contains a lot of empty files of specific names, e.g. as a pre-recorded test results, which are then compared to the actual test results. I'd strongly advise to ignore nearly any linter findings in the '/usr/share/mysql-test' path, as most of the issues found are expected behavior specifically crafted for the test-suite.
Though this one can be fixed: mysql8.4-test.x86_64: E: file-parent-ownership-mismatch Path "/usr/share/mysql-test/platform-specific-tests.list" owned by "root" is stored in directory owned by "mysql" as that's a downstream file.
mysql8.4-server.x86_64: E: non-executable-script /usr/libexec/mysql-scripts-common 644 /bin/sh
Is that a problem? This is a helper script. A code that is never meant to be executed directly. It is sourced by various other scripts in /usr/bin. That also is the reason why the 'mysql-scripts-common' is in the /usr/libexec instead of /usr/bin as per FSH. Since it is only sourced, I don't see a reason for having it executable.
mysql8.4-server.x86_64: E: non-standard-dir-perm /var/lib/mysql-files 750 mysql8.4-server.x86_64: E: non-standard-dir-perm /var/log/mysql 750
This permission is valid in certain use cases - certain category of software working with MySQL DB is added to the group 'mysql' to get read-only access to some files it can then monitor and examine, such as the DB server logs. But such external software should not get write privileges. At the same time, some data is confidential, so it shouldn't be shared outside the mysql user & group - e.g. the DB logs again are a great example. Same with the '/var/lib/mysql-files' which is used as a specific location for file import / export operations to / from the DB.
mysql8.4-server.x86_64: E: missing-dependency-to-logrotate for logrotate script /etc/logrotate.d/mysqld mysql8.4-server.x86_64: E: incoherent-logrotate-file /etc/logrotate.d/mysqld
The logrotate requires extra manual steps to be set up properly. The logrotate file has an example configuration, but is all commented out. That is expected as it needs manual steps to be enabled.
I will add Suggests: logrotate to the SPECfile, so it advertises such feature, but does not pull it in unnecessarily.
--
The 8.4.3 build succeeded yesterday, so the latests upstream release is prepared now. https://copr.fedorainfracloud.org/coprs/mschorm/mysql8.4/build/8268175/
--
I've added some fixes for the issues you raised and submitted another build. Fixes can be reviewed here:
https://gitlab.com/mschorm/centos_rpms_mysql8.4/-/commit/ 5a0b1778502b973e4ff23df5338677c3b12a7730
Fine. Any rpmlint ERROR should be whitelisted in the mysql8.4.rpmlintrc file.
-- If you are willing to take the role of reviewer, please assign this ticket to yourself and move it to ASSIGNED state, so it is clear both to me and others that this ticket is under active review and does not look for a reviewer anymore.
I can give you a hint to fix some errors, and speed up the process. But I am not in the "packager group", I am sorry,
Come on guys! This a review for a critical package that is three months old!.
BTW: If you want "steal" some ideas from the upstream vendor: https://repo.mysql.com/yum/mysql-8.4-community/el/9/SRPMS/mysql-community-8.... https://repo.mysql.com/yum/mysql-8.4-community/fc/41/SRPMS/mysql-community-8...
package-review@lists.fedoraproject.org