Bug 688782
| Summary: | Circular and missing dependecies | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Zenon Panoussis <redhatbugs> | |
| Component: | perl | Assignee: | perl-maint-list | |
| Status: | CLOSED NOTABUG | QA Contact: | BaseOS QE - Apps <qe-baseos-apps> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 6.0 | CC: | ppisar, psabata | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | Doc Type: | Bug Fix | ||
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 689709 (view as bug list) | Environment: | ||
| Last Closed: | 2011-03-18 07:29:31 UTC | Type: | --- | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 689709 | |||
|
Description
Zenon Panoussis
2011-03-18 00:45:18 UTC
"to merge mutually modules" should read "to merge mutually dependent modules". Same problem as in bug #688778. Packages which you need are stored in optional repo. Marcela, this is somewhat different problem. As explained at the beginning, this is about circular build time dependencies.
E.g.
↓
perl-Perl-MinimumVersion ← that is provided by ← perl(Perl::MinimumVersion)
↓ ↑
requires that requires
↓ ↑
perl(Test::MinimumVersion) → that is provided by → perl-Test-MinimumVersion
See, you cannot build any of the packages without having pre-build the other one already. In other words, you cannot build them from scratch.
The light side of this problem is, they needs each other for tests only. Thus simple removal of the circular tests can work-around this problem.
Better approach would be to add a optional-BuildRequires feature into rpmbuild tool. This would allow to build the package without the soft dependency and also with the dependency.
However I can understand this is not the desired way how to build packages in binary distribution. Also one must accept there are unavoidable dependency cycles in the tool chain itself (bintutils, gcc, glibc). This has always been solved by boot-strapping from different system.
The only question is where we put the line between acceptable boot-strap unacceptable cycle.
> The only question is where we put the line between acceptable boot-strap
> unacceptable cycle.
Yes, and the amount of work that it would take to fix these dependencies, offset against the difficulties caused by not fixing them.
In the case of these modules, bootstrapping is easy. Therefore, fixing the dependencies is not really necessary, but would be "nice".
In the specific case of perl-Perl-MinimumVersion, this is what happens if 'BuildRequires: perl(Test::MinimumVersion)' is commented out in the specfile:
+ make test AUTOMATED_TESTING=1
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'inc', 'blib/lib', 'blib/arch')" t/*.t
t/01_compile.t .... ok
t/02_main.t ....... ok
t/03_open_3arg.t .. skipped: not yet implemented
t/97_meta.t ....... ok
t/98_pod.t ........ ok
t/99_pmv.t ........ skipped: Test::MinimumVersion 0.008 not available for testing
All tests successful.
Theoretically, not using Test::MinimumVersion could potentially result in a bad Perl::MinimumVersion getting built. Then again, that can only happen if we build the SRPM on a "foreign" system, e.g. an EL6 SRPM on Fedora or vice versa. As long as we build it on the distro that it belongs to, it would always build fine because we already know what versions are part of that distro.
Hence, in this particular case, bootstrapping might only be needed in order to detect inconsistencies while piecing together a new distro, but it's not really needed in a ready distro.
|