Topic: conflicting requests php-devel-7.4.27-1.el8 package is excluded

Hello Remi's users,

I will be thankful if you can share your experience if you seen below error:
---
DEBUG util.py:482:  BUILDSTDERR: Error:
DEBUG util.py:482:  BUILDSTDERR:  Problem: conflicting requests
DEBUG util.py:482:  BUILDSTDERR:   - package php-devel-7.4.27-1.el8.remi.x86_64 is excluded
DEBUG util.py:624:  Child return code was: 1
---

Short story - we have Koji RPM build environment and trying to build the package php-phpcpp-2.0.0-1.el8.src.rpm for RHEL 8.
The first stage of building the Source RPM is successful but when Koji starts building the binary rpm the buildroot environment throws the above error. It is the same issue with php-devel-7.4.26-1.el8.remi.x86_64.rpm package.
We are using an internal repository for php74 for RHEL 8 where we are using the remi's php-7.4 packages.
It seems that DNF package manager inside the buildroot environment is excluding the package for some reason.
Do I need to enable the RHEL 8 CodeReady repo in order build to be successfully completed?

Regards

Re: conflicting requests php-devel-7.4.27-1.el8 package is excluded

> We are using an internal repository for php74 for RHEL 8 where we are using the remi's php-7.4 packages.

You need a modular repository and a modular configuration.
as AppStream provides various PHP stream: 7.2 (EOL), 7.3 (EOL), 7.4 and soon 8.0
and my repository more alternative streams: remi-7.2 to remi-8.1

More, your package also need to be in a module with proper dependency on the PHP module

This is probably doable with Koji, but I don't really know anything about using it (ex EPEL is still unable to properly run module build)
RPM for modules are usually built in MBS (Module Build System)


FYI you can see my mock configuration files in my git repository
https://git.remirepo.net/cgit/tools/mock.git/



P.S. perhaps you can find a way by disabling all modules (so disabling AppStream repository), this is mostly the (bad) EPEL way, but they also use a flat repository with everything from BaseOS and AppStream merged

Desktop: Fedora 35 + rpmfusion + remi-test + remi-dev
Laptop:  Fedora 34 + rpmfusion + remi (SCL only)
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: conflicting requests php-devel-7.4.27-1.el8 package is excluded

Hello Remi,

Thanks a lot for your quick response.
I created a clean RHEL 8 VM to reproduce the issue.
On this RHEL 8 VM I have only 3 repos enabled:
- BaseOS (official RHEL 8 repo)
- Appstream (official RHEL 8 repo)
- php74 RHEL8 repo (3rdparty-php74-el8-repo) where are located php-remi rpms

I tried to install php-devel-7.4.27-1.el8.remi.x86_64.rpm but it gives me below error for php-cli although this rpm php-cli-7.4.27-1.el8.remi.x86_64.rpm is available in php74 RHEL8 repo (3rdparty-php74-el8-repo).

[root@rhel8mu ~]# dnf install http://internal.repo/3rd_party-php74/x8 … x86_64.rpm

Last metadata expiration check: 0:06:54 ago on Thu 16 Dec 2021 02:15:00 PM EET.
php-devel-7.4.27-1.el8.remi.x86_64.rpm                                                                                                  8.9 MB/s | 1.1 MB     00:00
Error:
Problem: package php-devel-7.4.27-1.el8.remi.x86_64 requires php-cli(x86-64) = 7.4.27-1.el8.remi, but none of the providers can be installed
  - conflicting requests
  - package php-cli-7.4.27-1.el8.remi.x86_64 is filtered out by modular filtering
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)


The same error is with 7.4.26-1.el8.remi as well. I guess this is the issue with my koji rpm build failing. Can I fix this  conflicting request  somehow ?

Re: conflicting requests php-devel-7.4.27-1.el8 package is excluded

>   - package php-cli-7.4.27-1.el8.remi.x86_64 is filtered out by modular filtering

As I said, you need a "modular" repository.
or to use a non modular distribution (disable AppStream)

Desktop: Fedora 35 + rpmfusion + remi-test + remi-dev
Laptop:  Fedora 34 + rpmfusion + remi (SCL only)
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi