[CentOS-devel] including 3rd party repo release RPMs in Extras

Sun Mar 29 15:45:39 UTC 2015
Remi Collet <Fedora at FamilleCollet.com>

Hi,

Le 28/03/2015 21:32, Carl George a écrit :
> CentOS users have easy access to the EPEL repo because the epel-release RPM is in the CentOS Extras repository.  Obviously CentOS and EPEL have a special relationship, since they are both sponsored by Red Hat.  A coworker suggested to me that it would be nice if the ius-release RPM could be included in Extras as well.  I brought the idea up in IRC, and Karanbir suggested I draft up a specification that any third party repository can follow to be considered for inclusion.  Here is what I have so far.
> 
> https://gist.github.com/cgtx/b854281462a18007f509

>From above text.

 * Must not automatically install, upgrade,
  or replace stock distribution packages when the repository is enabled.


Problem: lot of packages is repositories following this RFC provides the
same "virtual" to be able to be a drop-in alternative for base packages.

Ex:

$ rpm -qp --provides php-mysql-5.3.3-40.el6_6.x86_64.rpm
php-mysql = 5.3.3-40.el6_6
php-mysqli
...

$ rpm -qp --provides php56u-mysqlnd-5.6.7-1.ius.el6.x86_64.rpm
php-mysql = 5.6.7-1.ius.el6
php-mysqli = 5.6.7-1.ius.el6
...

What happen if someone (or a package dep.) try to pull php-mysqli ?
Yum is unable to select the correct package.

So the rule, from the RFC is not honored.

More, there is a lot of 3rd party repository, most of them are not
designed to be compatible with others (usually only with base + epel).

Sometime, users install a lot of these 3rd party repositories, and
create terrible mess in their system. If CentOS is going to add "some"
3rd party repositories configuration, I think this will encourage users
to enable them, and thus result in more mess.


Remi.



P.S. exemple of such issue, on an fresh C6 installation:

# yum --enablerepo=ius install phpMyAdmin
...
Resolving Dependencies
--> Running transaction check
---> Package phpMyAdmin.noarch 0:4.0.10.5-1.el6 will be installed
--> Processing Dependency: php-mysql >= 5.2.0 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-mcrypt >= 5.2.0 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-mbstring >= 5.2.0 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-gd >= 5.2.0 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php(language) >= 5.2.17 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-zlib for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-zip for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-xmlwriter for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-tcpdf-dejavu-sans-fonts for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-tcpdf for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-spl for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-simplexml for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-session for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-php-gettext for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-pcre for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-mysqli for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-libxml for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-json for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-iconv for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-hash for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-filter for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-date for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-curl for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-ctype for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Processing Dependency: php-bz2 for package:
phpMyAdmin-4.0.10.5-1.el6.noarch
--> Running transaction check
---> Package php-common.x86_64 0:5.3.3-40.el6_6 will be installed
---> Package php-php-gettext.noarch 0:1.0.11-3.el6 will be installed
---> Package php-tcpdf.noarch 0:6.0.095-1.el6 will be installed
--> Processing Dependency: php-tidy for package:
php-tcpdf-6.0.095-1.el6.noarch
--> Processing Dependency: php-bcmath for package:
php-tcpdf-6.0.095-1.el6.noarch
--> Processing Dependency: /usr/bin/php for package:
php-tcpdf-6.0.095-1.el6.noarch
---> Package php-tcpdf-dejavu-sans-fonts.noarch 0:6.0.095-1.el6 will be
installed
---> Package php56u-common.x86_64 0:5.6.2-3.ius.el6 will be installed
--> Processing Dependency: php56u-pecl-jsonc(x86-64) for package:
php56u-common-5.6.2-3.ius.el6.x86_64
---> Package php56u-gd.x86_64 0:5.6.2-3.ius.el6 will be installed
---> Package php56u-mbstring.x86_64 0:5.6.2-3.ius.el6 will be installed
---> Package php56u-mcrypt.x86_64 0:5.6.2-3.ius.el6 will be installed
---> Package php56u-mysqlnd.x86_64 0:5.6.2-3.ius.el6 will be installed
--> Processing Dependency: php56u-pdo = 5.6.2-3.ius.el6 for package:
php56u-mysqlnd-5.6.2-3.ius.el6.x86_64
---> Package php56u-xml.x86_64 0:5.6.2-3.ius.el6 will be installed
--> Running transaction check
---> Package php-bcmath.x86_64 0:5.3.3-40.el6_6 will be installed
---> Package php-cli.x86_64 0:5.3.3-40.el6_6 will be installed
---> Package php-tidy.x86_64 0:5.3.3-40.el6_6 will be installed
---> Package php56u-pdo.x86_64 0:5.6.2-3.ius.el6 will be installed
---> Package php56u-pecl-jsonc.x86_64 0:1.3.6-3.ius.el6 will be installed
--> Processing Dependency: php56u-pear for package:
php56u-pecl-jsonc-1.3.6-3.ius.el6.x86_64
--> Processing Dependency: php56u-pear for package:
php56u-pecl-jsonc-1.3.6-3.ius.el6.x86_64
--> Running transaction check
---> Package php56u-pear.noarch 1:1.9.5-1.ius.el6 will be installed
--> Processing Dependency: php56u-posix for package:
1:php56u-pear-1.9.5-1.ius.el6.noarch
--> Processing Dependency: php56u-cli for package:
1:php56u-pear-1.9.5-1.ius.el6.noarch
--> Running transaction check
---> Package php56u-cli.x86_64 0:5.6.2-3.ius.el6 will be installed
---> Package php56u-process.x86_64 0:5.6.2-3.ius.el6 will be installed
--> Processing Conflict: php56u-cli-5.6.2-3.ius.el6.x86_64 conflicts
php-cli < 5.6
--> Processing Conflict: php56u-common-5.6.2-3.ius.el6.x86_64 conflicts
php-common < 5.6
--> Finished Dependency Resolution
Error: php56u-common conflicts with php-common-5.3.3-40.el6_6.x86_64
Error: php56u-cli conflicts with php-cli-5.3.3-40.el6_6.x86_64
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest