Dealing with circular BuildRequires?

seth vidal skvidal at fedoraproject.org
Fri Oct 7 01:41:37 UTC 2011


On Thu, 2011-10-06 at 18:36 +0100, Richard W.M. Jones wrote:
> On Wed, Oct 05, 2011 at 12:02:33PM -0400, Tom Lane wrote:
> > Petr Pisar <ppisar at redhat.com> writes:
> > > On 2011-10-05, Tom Lane <tgl at redhat.com> wrote:
> > >> For example, cairo BuildRequires: librsvg2-devel, and librsvg2
> > >> BuildRequires: cairo-devel, so there is no order in which I can rebuild
> > >> them.  How the heck did we get into such a situation, and what should
> > >> I do about it?  Neither specfile appears to have any provision for
> > >> bootstrapping.
> > 
> > > We had similar problem when upgrading Perl to 5.14.
> > 
> > > First, we choosed dependecy-ordered builds which stopped after
> > > rebuilding about one thousand packages. Then we hit circular
> > > dependencies blocking remaining eight hunderds packages.
> > 
> > What exactly did you do for "dependency-ordered builds"?  What I could
> > really use right now is a tool that would sort the package list into
> > dependency order for me, and point to where there are circularities.
> > I'd like to think that wheel has been invented already ...
> 
> smock possibly, modulo the shortcomings that Seth Vidal correctly
> pointed out.  It is here:
> 
> http://git.annexia.org/?p=fedora-mingw.git;a=tree;f=smock;hb=HEAD
> 


Rich,
 To be fair -smock tries - which is good. I wished it tried in python
but that's just a nitpick :).

The reality is - if we want to take a giant pile of srpms in an
arbitrary order and build all of them in the right order - we're going
to need to get a great deal more rigorous about what we put into
specfiles.

-sv




More information about the devel mailing list