Topic: rpm conflicts among repos

Do we need to ensure that we don't have both your php55 and php56 repos enabled at runtime ?  Or are the rpm 'requires' a little broken in the spec files perhaps ?  Unsure if this is a bug report yet or not, so I thought I'd ask....

background - I have internal mirrors of your php55 and php56 repos.  I'm getting some unexpected yum version calculations when I try to specify a version older than current if both repos are enabled.

Case 1 (worked) - enable the php55 repo only, do 'yum install php' not specifying a version

Case 2 (worked) - same php55 repo enabled, specify an older version than latest

Case 3 (worked) - both repos enabled, specify php without a version
(as expected - get the latest version of php in both repos collectively, meaning php56 latest)

Case 4 (worked) - try to specify a 5.5 version with just the php55 repo enabled, including all dependencies
(as expected - also works if I specified the older 5.5.26 versions in that repo)

sudo yum install php-5.5.27 --disablerepo=* --enablerepo=*remi*55  php-common-5.5.27 php-cli-5.5.27 php-pecl-jsonc-1.3.7 php-pecl-zip-1.12.5
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-cli.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-common.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-pecl-jsonc.x86_64 0:1.3.7-1.el6.remi.5.5 will be installed
---> Package php-pecl-zip.x86_64 0:1.12.5-1.el6.remi.5.5 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

===================================================================================================================================================================================================================
 Package                                            Arch                                       Version                                                   Repository                                           Size
===================================================================================================================================================================================================================
Installing:
 php                                                x86_64                                     5.5.27-1.el6.remi                                         oris-remi-php55                                     2.7 M
 php-cli                                            x86_64                                     5.5.27-1.el6.remi                                         oris-remi-php55                                     3.9 M
 php-common                                         x86_64                                     5.5.27-1.el6.remi                                         oris-remi-php55                                     1.0 M
 php-pecl-jsonc                                     x86_64                                     1.3.7-1.el6.remi.5.5                                      oris-remi-php55                                      48 k
 php-pecl-zip                                       x86_64                                     1.12.5-1.el6.remi.5.5                                     oris-remi-php55                                      82 k

Transaction Summary
===================================================================================================================================================================================================================
Install       5 Package(s)

Total download size: 7.8 M
Installed size: 29 M
Is this ok [y/N]: n
Exiting on user Command

Case 5 (fail) - same as case 4, just enable the php56 repo too.
(you'll see bleed-through from the 5.6 repo and yum gets very confused)

 sudo yum install php-5.5.27 php-common-5.5.27 php-cli-5.5.27 php-pecl-jsonc-1.3.7 php-pecl-zip-1.12.5 --disablerepo=* --enablerepo=*remi*55 --enablerepo=*remi*56
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package php.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-cli.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-common.x86_64 0:5.5.27-1.el6.remi will be installed
---> Package php-pecl-jsonc.x86_64 0:1.3.7-1.el6.remi.5.6 will be installed
--> Processing Dependency: php(zend-abi) = 20131226-64 for package: php-pecl-jsonc-1.3.7-1.el6.remi.5.6.x86_64
--> Processing Dependency: php(api) = 20131106-64 for package: php-pecl-jsonc-1.3.7-1.el6.remi.5.6.x86_64
---> Package php-pecl-zip.x86_64 0:1.12.5-1.el6.remi.5.6 will be installed
--> Running transaction check
---> Package php-common.x86_64 0:5.5.27-1.el6.remi will be installed
--> Processing Dependency: php-common(x86-64) = 5.5.27-1.el6.remi for package: php-5.5.27-1.el6.remi.x86_64
--> Processing Dependency: php-common(x86-64) = 5.5.27-1.el6.remi for package: php-cli-5.5.27-1.el6.remi.x86_64
---> Package php-common.x86_64 0:5.6.11-1.el6.remi will be installed
--> Finished Dependency Resolution
Error: Package: php-cli-5.5.27-1.el6.remi.x86_64 (oris-remi-php55)
           Requires: php-common(x86-64) = 5.5.27-1.el6.remi
           Available: php-common-5.5.26-1.el6.remi.x86_64 (oris-remi-php55)
               php-common(x86-64) = 5.5.26-1.el6.remi
           Available: php-common-5.5.27-1.el6.remi.x86_64 (oris-remi-php55)
               php-common(x86-64) = 5.5.27-1.el6.remi
           Installing: php-common-5.6.11-1.el6.remi.x86_64 (oris-remi-php56)
               php-common(x86-64) = 5.6.11-1.el6.remi
Error: Package: php-5.5.27-1.el6.remi.x86_64 (oris-remi-php55)
           Requires: php-common(x86-64) = 5.5.27-1.el6.remi
           Available: php-common-5.5.26-1.el6.remi.x86_64 (oris-remi-php55)
               php-common(x86-64) = 5.5.26-1.el6.remi
           Available: php-common-5.5.27-1.el6.remi.x86_64 (oris-remi-php55)
               php-common(x86-64) = 5.5.27-1.el6.remi
           Installing: php-common-5.6.11-1.el6.remi.x86_64 (oris-remi-php56)
               php-common(x86-64) = 5.6.11-1.el6.remi
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

Re: rpm conflicts among repos

update - is it that I used "php-5.5.27" when I perhaps needed the full version of "php-5.5.27-1.el6.remi" ?

At that point, it's sufficiently ugly looking to just --enablerepo or --disablerepo, but the errors and processing dependency stuff in 'case 5' above are still confusing enough that I thought I'd ask for another pair of eyes regarding what yum is doing...

thanks.

Re: rpm conflicts among repos

Case 1-4:  smile

Case 5: Usually a single remi-php* repository should be enabled.
I think the issue comes from "php-pecl-jsonc-1.3.7" as both repository provides this version, so, yes, the full version+release should be required

---> Package php-pecl-jsonc.x86_64 0:1.3.7-1.el6.remi.5.6 will be installed
---> Package php-common.x86_64 0:5.6.11-1.el6.remi will be installed

Remi.


P.S. the repo doesn't contains all versions history. Only the 2 latest, only to allow "downgrade" if some critical regression breaks the new one. So selecting the version to install is not really something the repository is designed for.

Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: rpm conflicts among repos

Thanks for the help and the clarification that one repo only should be enabled.