[MDEV-30203] Move mysql symlinks to different package Created: 2022-12-12 Updated: 2023-03-21 Resolved: 2023-02-12 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Packaging, Platform Debian, Platform RedHat |
| Fix Version/s: | 11.0.1 |
| Type: | Task | Priority: | Blocker |
| Reporter: | Daniel Black | Assignee: | Daniel Black |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | Preview_11.0 | ||
| Issue Links: |
|
||||||||||||||||||||||||||||||||
| Description |
|
By making the symlinks an optional package, users can get a clean install without naming conflicts, and also be able to install a package for compatibility with scripts. Eventually this package will be made optional and maybe even removed. |
| Comments |
| Comment by Andrew Hutchings [ 2022-12-13 ] | ||||||||||||||||||||||||||
|
Sergei's original thoughts on this:
Several discussions with subject matter experts for Debian and RedHat packaging have happened. It is looking like the first option is probably the best. RedHat mentioned that they don't like having packages that have files generated by scripts. Doing so makes it difficult to trace which file came from which package, and there are other potential issues during upgrades or switching MariaDB <-> MySQL. Debian mentioned that you can't have a package install symlinks that link to missing files with Debian packages, so that rules out the single package option. | ||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2022-12-13 ] | ||||||||||||||||||||||||||
|
If distros dislike dynamically created symlinks, then let's implement the first option, indeed. | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-12-14 ] | ||||||||||||||||||||||||||
|
After looking what was generated with:
The list of packages for symlinks is just:
Doing the same for scripts:
Adds "Development" to the list. bb-10.11-danielblack-MDEV-30203-pkgtest-rpm-symlink-packages, which generates symlink packages. | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-12-14 ] | ||||||||||||||||||||||||||
|
note backup is mariabackup -> mariadb-backup which is old compat and could be dropped? | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-12-20 ] | ||||||||||||||||||||||||||
|
Removing last bit of mysql references in | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2022-12-21 ] | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2023-01-17 ] | ||||||||||||||||||||||||||
|
So the update plan is: *-compat, both RPM and Debs are an optional package containing the mysql compatibility links. The man pages thanks to Sergei are the man page forms of links in a man page format. The client or server packages in 11.0 are recommending the compat package that provides links to executables the the client/server package. Some small cleanups putting man pages into the right packages like s3 and rocksdb. | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2023-01-19 ] | ||||||||||||||||||||||||||
|
bb-11.0-danielblack-preview- | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2023-01-20 ] | ||||||||||||||||||||||||||
|
https://buildbot.mariadb.org/#/grid?branch=bb-11.0-danielblack-preview-MDEV-30203-fix-pkgtest (same branch different name) generated RPMs in https://ci.mariadb.org/31771/ for testing. | ||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2023-02-12 ] | ||||||||||||||||||||||||||
|
I have no objections against pushing 1e6e88fc073e3a766ca in 11.0 and releasing with 11.0.1. It appears that on systems which we currently release, the packages with symlinks (mariadb-server-compat and mariadb-client-compat) are installed by default, so hopefully the inconvenience to the users is minimal at this point. Still, it would be very good if users tried it out in their environments and reported issues they observe. On debs the packages can be opted out. It's not clear how distributions are going to handle it when the time comes – will they follow the same pattern and build separate packages, or will they do it some other way, but it is a problem for the future.
| ||||||||||||||||||||||||||
| Comment by Sergei Golubchik [ 2023-02-12 ] | ||||||||||||||||||||||||||
|
One can opt out with rpms too, we do it in buildbot with
I'll push 9656356b5500 instead which differs from 1e6e88fc073e3a766ca in corrected man pages for mariadb*embedded tools | ||||||||||||||||||||||||||
| Comment by Daniel Black [ 2023-02-13 ] | ||||||||||||||||||||||||||
|
Thanks serg, elenst for fixes and testing. createrepo with the --setopt=install_weak_deps=False is sufficient for an install base on ci.mariadb.org using createrepo in its rpm artifacts.
| ||||||||||||||||||||||||||
| Comment by Elena Stepanova [ 2023-02-13 ] | ||||||||||||||||||||||||||
|
What createrepo does on ci.mariadb.org is unfortunately irrelevant, it is not the same repo as we release. Same faulty assumption was made during testing, that all of them are the same. If you look for example into https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/ which built from the release revision of 10.9, specifically file https://ci.mariadb.org/32167/amd64-rhel-9-rpm-autobake/rpms/repodata/44f64647a2f1d8d1f8d56a60ddefe5ad1acfab10018461996efbc7d5a438d517-primary.xml.gz, it has these blocks:
but the file in the actual release repo http://mirror.mariadb.org/yum/10.9/rhel9-amd64/repodata/8a22a2af34cc4f0b3fbd7c61de213cd637f1e45af18f4de1afbcca426943ca46-primary.xml.gz does not have them. The release build environment has 0.10.3 which is pretty old, it may be not aware of recommends dependencies same way as old rpm does not know about it. Same is happening with the new compat packages, except that we don't have a release-like repo yet. |