Re: F40 Change Proposal: F40 MariaDB MySQL repackaging (Self-Contained)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Oct 20, 2023 at 1:12 AM Kevin Kofler via devel
<devel@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > * Rename package 'community-mysql' to 'mysql' and Stop providing
> > 'mysql' symbols by package 'mariadb'
>
> Why not just drop community-mysql (and keep mariadb as the provider of
> mysql*) instead? I really do not see why we need to ship 2 competing forks
> of the same database in Fedora. Applications typically do not even notice
> the difference.
>
> > When MariaDB was introduced to Fedora, it seemed like it eventually
> > replaces MySQL
>
> Is that not what has happened? Who still uses the Oracle crippleware?
>
> As I understand it, most distros are shipping only MariaDB.

MySQL is definitely still on the scene. Few examples from the big distros here:
  Ubuntu: https://packages.ubuntu.com/search?suite=default&section=all&arch=any&keywords=mysql&searchon=names
  Arch: https://aur.archlinux.org/packages/mysql

Some distros dropped MySQL entirely, some favors MariaDB. None of that
changes the fact that MySQL still is a popular DB.
Take a look how many people use, or want to learn MySQL:
https://survey.stackoverflow.co/2023/#most-popular-technologies-database
https://survey.stackoverflow.co/2022/#most-popular-technologies-database

What I want to do in Fedora is to merely recognize that MariaDB and
MySQL are not fully interchangeable (drop-in) anymore. Their abilities
and feature set grow diverse, so they both should have their own
designated place, without pretending or confusion on which is which.


> > I want to change the packaging structure so the result will look as
> > follows: * The unversioned name ('mariadb') will become a meta-package
> > ** It will point to the one versioned variant which I choose to be the
> > default one for the given Fedora release
> > ** It will provide all of the unversioned names for the versioned
> > variant that is default for the given Fedora release, to minimize the
> > changes visible to the users
> > * All other versions will have their own versioned package (e.g
> > "mariadb10.5" "mariadb10.11") and will conflict with each other
> >
> > This will allow for:
> > * users to keep using the unversioned names they are used to
> > * maintainer to change the default version for a given Fedora release
> > on a single, centralized place
> > * users to enjoy all of the features of the modularity I offered them,
> > in a simpler way
> > * maintainer to add new versions quickly, without any need of changing
> > the default version (other than adding new conflicts)
>
> There is a major issue with this approach: Users installing Fedora 40 will
> get the mariadb metapackages dragging in mariadb10.11. Then they upgrade to
> Fedora 41 or 42 or whatever that will ship mariadb10.whatever. So then
> mariadb will want to drag in mariadb10.whatever, but mariadb10.11 will also
> want to get upgraded, leading to a conflict that DNF will not be able to
> resolve in a satisfactory way. (Most likely, it will upgrade mariadb10.11,
> keep the old Fedora n-1 version of the mariadb metapackage, and never
> install the new mariadb10.whatever.)
>
> The default version should just be unversioned, instead of having the
> unversioned package be a metapackage.

Thanks for pointing that out, I'll look into it.


> >   Note:
> >   I specifically don't want the packages to be parallel installable. I
> > only want them to be parallel available.
>
> That makes it a lot less useful to use versioned package names.
>
> I suggest you ship one set of MariaDB packages in Fedora, and then use Copr
> to distribute different versions (which would also be named mariadb, not
> e.g. mariadb10.5 or mariadb10.11, and just have, say, Version: 10.5 and,
> since that is a downgrade compared to the official packages, Epoch: n+1,
> where n is the Epoch of the official packages). To switch to a non-default
> version, one would just dnf copr enable @mariadb-sig/mariadb-10.5 && dnf
> upgrade (or distro-sync, but since it would be an "upgrade" at RPM level,
> distro-sync is not needed here), and to switch back to the default version,
> dnf copr disable @mariadb-sig/mariadb-10.5 && dnf distro-sync (to
> "downgrade" to the official packages' lower EVR).

I would like to have the alternative versions "closer" to Fedora.
COPR is somehow "far", requiring users to be educated to know where to
look and what to search for.
I hope the parallel availability will significantly enhance the user
experience, over any kind of "distant" repos.




--

Michal Schorm
Software Engineer
Core Services - Databases Team
Red Hat

--
On Fri, Oct 20, 2023 at 1:12 AM Kevin Kofler via devel
<devel@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> > * Rename package 'community-mysql' to 'mysql' and Stop providing
> > 'mysql' symbols by package 'mariadb'
>
> Why not just drop community-mysql (and keep mariadb as the provider of
> mysql*) instead? I really do not see why we need to ship 2 competing forks
> of the same database in Fedora. Applications typically do not even notice
> the difference.
>
> > When MariaDB was introduced to Fedora, it seemed like it eventually
> > replaces MySQL
>
> Is that not what has happened? Who still uses the Oracle crippleware?
>
> As I understand it, most distros are shipping only MariaDB.
>
> > In Fedora, it is currently possible, on the packaging level, to cross
> > install server of one DB with client of another.
> > Specifically, you can install MariaDB server with MySQL client or
> > MySQL server with MariaDB client.
>
> If you insist on shipping both implementations, I am not sure what can be
> gained from disallowing this combination. But the easiest solution would of
> course be to just drop the Oracle MySQL client and server altogether, then
> by definition there is only one remaining combination (MariaDB client and
> server).
>
> > Sadly, the drawbacks out-weights the positives. This behavior became a
> > generator of elusive bugs I was never able to resolve.
> > E.g.: https://bugzilla.redhat.com/show_bug.cgi?id=2026933
>
> This is really a conflict between the MariaDB and Oracle MySQL packages, not
> an issue with mixed ("cross") installations, and the only way to completely
> get rid of such issues is to drop Oracle MySQL.
>
> > I want to change the packaging structure so the result will look as
> > follows: * The unversioned name ('mariadb') will become a meta-package
> > ** It will point to the one versioned variant which I choose to be the
> > default one for the given Fedora release
> > ** It will provide all of the unversioned names for the versioned
> > variant that is default for the given Fedora release, to minimize the
> > changes visible to the users
> > * All other versions will have their own versioned package (e.g
> > "mariadb10.5" "mariadb10.11") and will conflict with each other
> >
> > This will allow for:
> > * users to keep using the unversioned names they are used to
> > * maintainer to change the default version for a given Fedora release
> > on a single, centralized place
> > * users to enjoy all of the features of the modularity I offered them,
> > in a simpler way
> > * maintainer to add new versions quickly, without any need of changing
> > the default version (other than adding new conflicts)
>
> There is a major issue with this approach: Users installing Fedora 40 will
> get the mariadb metapackages dragging in mariadb10.11. Then they upgrade to
> Fedora 41 or 42 or whatever that will ship mariadb10.whatever. So then
> mariadb will want to drag in mariadb10.whatever, but mariadb10.11 will also
> want to get upgraded, leading to a conflict that DNF will not be able to
> resolve in a satisfactory way. (Most likely, it will upgrade mariadb10.11,
> keep the old Fedora n-1 version of the mariadb metapackage, and never
> install the new mariadb10.whatever.)
>
> The default version should just be unversioned, instead of having the
> unversioned package be a metapackage.
>
> >   Note:
> >   I specifically don't want the packages to be parallel installable. I
> > only want them to be parallel available.
>
> That makes it a lot less useful to use versioned package names.
>
> I suggest you ship one set of MariaDB packages in Fedora, and then use Copr
> to distribute different versions (which would also be named mariadb, not
> e.g. mariadb10.5 or mariadb10.11, and just have, say, Version: 10.5 and,
> since that is a downgrade compared to the official packages, Epoch: n+1,
> where n is the Epoch of the official packages). To switch to a non-default
> version, one would just dnf copr enable @mariadb-sig/mariadb-10.5 && dnf
> upgrade (or distro-sync, but since it would be an "upgrade" at RPM level,
> distro-sync is not needed here), and to switch back to the default version,
> dnf copr disable @mariadb-sig/mariadb-10.5 && dnf distro-sync (to
> "downgrade" to the official packages' lower EVR).
>
>         Kevin Kofler
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
> Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux