I think including the Obsoletes is a mistake for a couple different reasons. Many folks set up their own repository for use with yum and they put MariaDB packages into that repository to ease rollout to their various hosts. The side-effect of building the MariaDB-Server RPM with these Obsoletes is that it becomes impossible to install MySQL packages that might also be present in the repository. I am not referring here to someone trying to install MySQL and MariaDB simultaneously on the same host; rather, I am referring to someone wanting to be able to select whether to install MySQL or MariaDB, RPMs for both of which are present in their yum repository. [root@mariadb53 ~]# yum install mysql-server mysql Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.fdcservers.net * extras: mirror.fdcservers.net * updates: mirror.fdcservers.net Setting up Install Process Package mysql-server is obsoleted by MariaDB-server, trying to install MariaDB-server-5.5.27-1.x86_64 instead Package mysql is obsoleted by MariaDB-server, trying to install MariaDB-server-5.5.27-1.x86_64 instead This illustrates that an attempt to install (upgrade is also affected!) MySQL from the user's own repository results in MariaDB *automatically* being selected for installation instead. You may note, here, that MariaDB-Server obsoletes "mysql", which is very strange. In Enterprise Linux, "mysql" is the *client* package ("mysql.x86_64 : MySQL client programs and shared libraries"). By building the MariaDB-Server to Obsolete "mysql", an attempt to install the *MySQL* client will result in the *MariaDB* _Server_ being installed! That is, surely, not intended or desirable... So, I have two concerns here: 1) Why does MariaDB "Obsolete" any of these other MySQL packages? I had trouble finding good guidance about what "Obsolete" is used for, but I did find http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch-dependencies.html#RPM_Guide-Dependencies-obsoletes which explains it in this way: The RPM system supports one more type of dependency, called obsoletes. This refers to a capability that a package provides that makes another capability obsolete. For example, a new version of the perl interpreter may make an older version obsolete. In most cases, the obsoletes dependency should be used when the name of a package changes. For example, the apache Web server package became the httpd package. You would expect the new package, httpd, to obsolete the old package name, apache. MariaDB-Server is certainly not a renamed version of MySQL, nor does it logically make MySQL "obsolete". The two certainly *conflict*, but it does not make sense (except perhaps in a political sense!) to say that MariaDB makes MySQL "obsolete". The first "Obsolete" in the spec is to make "MariaDB" obsoleted by "MariaDB-Server". If there is some previous RPM of MariaDB that was called only "MariaDB" and contained mysqld, it *does* make sense to leave that one in, as this is a case of the package being renamed from "MariaDB" to "MariaDB-Server". I am interested to know the logic behind putting these other Obsolete lines into the spec. What does it give that you don't get with Conflicts? 2) The other issue, beyond whether it is useful to have *any* Obsoletes for MySQL in the MariaDB RPM, is why MariaDB should Obsolete "mysql". This definitely does not make sense, as "mysql" is the name of the package that contains the MySQL *client* and shared libraries; MariaDB-Server cannot in any sense make obsolete the MySQL client...