On Fri, Aug 22, 2014 at 5:15 PM, Dusty Mabe <dustym...@gmail.com> wrote:
> On Fri, Aug 22, 2014 at 02:29:31PM -0600, Orion Poplawski wrote:
>> On 08/22/2014 02:23 PM, Dusty Mabe wrote:
>> >The scenario I am concerned with here is:
>> >
>> >if
>> >  * A requires B
>> >  * B requires C
>> >  * C requires A
>> >
>> >This basically yields a case where ordering can't be properly done because
>> >rpm doesn't know which dependency is stronger. If all of the rpms in 
>> >question
>> >just deliver files then all is well with the world but if each of them have
>> >scriptlets the ordering can definitely matter and this would be a problem.
>> >
>> >Dusty
>> >
>>
>> Scriptlet dependency ordering it specified with for example:
>>
>> Requires(post): pkg
>>
>> Are there any circular scriptlet deps?
>
> So that may be the answer. This *new to me* feature solves the case of
> scriptlets which is really the only place you see errors *during* the
> install.
>
> Thanks Orion

Installation scripting is not the only source of the problem. Perl
modules have been prone to this.

* Perl module  A requires perl module B.
* Perl module B requires perl module C.
* One small script or macro in module C requires one small script from
module A. It may not even be a critical component of C, and may be
easily segregated, but suddenly there is a circular dependency.

The vortex enters when the author of module B updates to a new
dependency or build dependency that is not in the current version of
C, and C introduces a new dependency on A but it's based on an older
version of A, that has since discarded that macro due to a code
cleanup. Hilarity ensues.....

The underlying point is that it's sometimes very helpful to split
upstream packages to smaller, individual components, precisely to
segregate these dependencies. It's especially useful with Perl
modules. I have.... old stories about the mod_perl updates back when
HTTPD 2.x was first released and mod_perl compatibility became kind of
nutty.
-- 
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to