Description of problem:
Circular Dependency between perl-Readonly and perl-Readonly-XS
- each depends directly on the other
Version-Release number of selected component (if applicable):
Is obvious from dependency statements in spec file. try to build from those with neither module pre-installed.
Steps to Reproduce:
1. start with a clean machine with neither module installed.
2. unpack src rpms
3. try to build either rpm from spec file.
Whilst it's true that the packages have runtime dependencies on each other (resulting in all users getting the performance benefits of the XS code), neither of them have build-time dependencies on each other so it should be possible to build each of them without requiring the other at build time.
What error message are you getting when trying to build them?
(In reply to comment #1)
> Whilst it's true that the packages have runtime dependencies on each other
> (resulting in all users getting the performance benefits of the XS code),
> neither of them have build-time dependencies on each other so it should be
> possible to build each of them without requiring the other at build time.
> What error message are you getting when trying to build them?
Errors like so:
[email@example.com]:/home/build/rpms/RPMS/centos/5# rpm -i /home/build/rpms/RPMS/centos/5/x86_64/perl-Readonly-XS-1.04-7.1-squiz.x86_64.rpm
error: Failed dependencies:
perl(Readonly) >= 1.02 is needed by perl-Readonly-XS-1.04-7.1.x86_64
[firstname.lastname@example.org]:/home/build/rpms/RPMS/centos/5# rpm -i /home/build/rpms/RPMS/centos/5/x86_64/perl-Readonly-1.03-6-squiz.noarch.rpm
error: Failed dependencies:
perl(Readonly::XS) is needed by perl-Readonly-1.03-6.noarch
hmm. actually maybe that was just after building from spec file so, can build, but can't install.
You need to install them in the same rpm transaction, which is what would happen if you were using yum.
# rpm -i \
Why aren't you installing these from EPEL using yum by the way?
I'm adding another module to a company's in-house repository which depends on perl-Readonly. It's basically duplication of work in epel, but only quite a limited set of the epel material is added, plus a few things from elsewhere.
OK. I trust you got the modules installed OK via the repository when they get installed together (or manually)?
I sorted it our for my own purposes by removing one of the dependencies in the spec file. using rpm to install both at once is better though, and I'll go back and do that.
RPM doesn't offer optional dependencies, therefore Perl modules with cyclic dependencies exist quite often. The dependency on Readonly::XS was added to support all features, which can Readonly offer. It's not the best solution, but that's how we handle modules in RPM.
The correct installation of dependent modules is, as was said before, rpm -i perl-Readonly perl-Readonly-XS.