On Sat, 2007-03-03 at 07:44 +0100, Ralf Corsepius wrote: > On Sat, 2007-03-03 at 00:13 -0600, Tom 'spot' Callaway wrote: > > On Sat, 2007-03-03 at 06:20 +0100, Ralf Corsepius wrote: > > > On Fri, 2007-03-02 at 11:28 -0500, Jesse Keating wrote: > > > > On Friday 02 March 2007 11:17:24 Tom 'spot' Callaway wrote: > > > > > I don't see any fault in adding perl-devel to the FC7 buildroot, with > > > > > the caveat that it will not be there in FC8+. Thoughts? > > > > > > > > I'd rather not change things multiple times. > > > Well, exactly the reason why I would like to see perl-devel in FC7's > > > buildroot. It avoids forcing packagers to change their packages NOW. > > > > > > Remember: Adding perl-devel to the buildroot affects one person (you). > > > Not adding it and affects 100s of packages and dozens of packagers. > > > > > > > Why does Ralf think it hasn't been baked yet? I'm missing that context. > > > > > > This change causes most (all?) perl modules and applications using perl > > > (comprising noarch packages) to depend on perl's config.h at build time. > > > > > > The primary question to clarify would be: > > > > > > What is the cause, why (esp. noarch) perl-modules now require a c-header > > > (perl's config.h) and (thereby gcc) to build? [1] > > > > Well, fwiw, they seem to have required this before, the -devel split > > just made it more apparent. > > I just tried to investigate on of my currently broken packages, and see > a file dependency on config.h in ExtUtils::MakeMaker generated > Makefiles. I've found at least one packaging-bug wrt. the perl-devel split-out, along the lines of what I wrote above: There is an indirect circular build-time dependency between "perl" and "perl-devel", for ExtUtils::MakeMaker based packages: Proof: * ExtUtils::MakeMaker based perl-modules contain a hidden built-time dependency through their Makefile.PL containing: use ExtUtils::MakeMaker; * ExtUtils::MakeMaker has a dependency on "config.h" # grep -R config.h /usr/lib/perl5/5.8.8/ExtUtils /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm:CONFIGDEP = $(PERL_ARCHLIB)$(DFSEP)Config.pm $(PERL_INC)$(DFSEP)config.h /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm: -f $self->catfile($dir,"config_h.SH") /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm:# We do NOT just update config.h because that is not sufficient. /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm:# An out of date config.h is not fatal but complains loudly! /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm:$(PERL_INC)/config.h: $(PERL_SRC)/config.sh /usr/lib/perl5/5.8.8/ExtUtils/MM_Unix.pm: -$(NOECHO) $(ECHO) "Warning: $(PERL_INC)/config.h out of date with $(PERL_SRC)/config.sh"; false * config.h is part of perl-devel => circular dependency between "perl" and "perl-devel" I.e. in a perfect world all MakeMaker-based perl-packages should BuildRequires: perl(ExtUtils::MakeMaker) and perl(ExtUtils::MakeMaker) would have to Require: perl-devel So, one approach I could imagine, would be to split out ExtUtils::MakeMaker from the main perl package. Ralf