Circular dependencies in RPM

Miroslav Suchý msuchy at redhat.com
Mon Aug 25 08:40:07 UTC 2014


On 08/24/2014 04:37 PM, Nico Kadel-Garcia wrote:
> 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.

Or we can wait for F21, which will have weak dependencies in RPM. And I anticipate that weak dependencies will break a 
lot of circles.

-- 
Miroslav Suchy, RHCE, RHCDS
Red Hat, Senior Software Engineer, #brno, #devexp, #fedora-buildsys


More information about the devel mailing list