Hello,
I'd like to apply for an exception from Package Review Guidelines.
I want to add new major version of MariaDB to the Fedora Linux.
MariaDB packages in Fedora currently use 'versioned package layout'. We have two of them now - mariadb10.11 and mariadb11.8 - available in paralel, each holding the respective LTS version. I want to add the latest upstream LTS version to Fedora, which is mariadb12.3.
mariadb10.11
mariadb11.8
mariadb12.3
Since the rebase from 11.8 to 12.3 is trivial (version bump + one plugin addition), I want your blessing to use this specific Package Review Exception:
The following exceptions apply to the review process linked above: - The package is being created so that multiple versions of the same package can coexist in the distribution. The package MUST be properly named according to the naming guidelines and MUST NOT conflict with all other versions of the same package.
from the Package Review Guidelines.
There is however a problem with the last part, which I want to discuss. (and possibly get an exception from that exception?)
Since other packages depend on the MariaDB packages in Fedora, we had to make it clear which version will be the default one. So we selected one to be the distribution default version. That means, that on top of providing the versioned package names (mariadb10.11-server, mariadb11.8-backup etc.), the 'distribution default' version also provides the unversioned names (mariadb-server, mariadb-backup etc.). That makes it trivial for anyone to default on the same version in the specific Fedora release.
mariadb10.11-server
mariadb11.8-backup
mariadb-server
mariadb-backup
Some of the sub-packages may be installed alone (e.g. the client mariadb).
mariadb
We also introduced virtual -any provides (mariadb-any, mariadb-server-any, etc.), which every sub-package of every version provides for it's particular sub-package name, and also conflicts with it at the same time. (similar to https://pagure.io/packaging-committee/issue/1440 )
-any
mariadb-any
mariadb-server-any
That is useful for number of reasons, but specifically it vastly simplifies the matrices of relationships between the packages (including MySQL) and also removes need to touch existing SPECfiles when adding a new versions to the distro. Furthermore it enforces integrity (disallow mixing sub-packages versions) and allow DNF to fail gracefully rather than on a file conflicts, which the different versions naturally have between each other.
I am happy with the simplicity this system of RPM relationships brings to both package maintainers and users, and we now have that system successfully tested for several Fedora releases.
That hopefully add some weight to my statement of why this design is well though and well working, and allows me to ask for an exception to the
and MUST NOT conflict with all other versions of the same package.
part of the above mentioned Package Review Exception from the Package Review Guidelines.
The last version mariadb11.8 was added to Fedora via standard Package Review Process bz#2368742 specifically to ensure high packaging standard even in the long-term present package. So the last package review is pretty recent.
Moved from https://pagure.io/fesco/issue/3560.
Metadata Update from @james: - Issue close_status updated to: accepted - Issue status updated to: Closed (was: Open)
I think a lot of things should be documented and organized across a bunch of main packages that want similar functionality for different versions ... but that shouldn't hold up this exception, which is just doing it's best.