Hi Axel,

How can thetango know that perl-Foo will be providing perl(Bar) which
perl-Baz BuildRequires?

Good question, and I knew someone was going to ask how I got around that particular issue. perl-* was a real pain to deal with.

/usr/lib/rpm/perl.prov is run on every source package to generate a close-to-complete list of perl(Bar::Foo) includes.

I explode the source, but do not compile, and run perl.prov on it. This generates the perl(Bar::Foo) package entries.

For example perl-AppConfig-1.64-1.fc7.src.rpm provides:

perl-AppConfig
perl(AppConfig)
perl(AppConfig::Args)
perl(AppConfig::CGI)
perl(AppConfig::File)
perl(AppConfig::Getopt)
perl(AppConfig::State)
perl(AppConfig::Sys)

E.g. how can any automatic provides be guessed by thetango? A
not-too-far away goal is to have a perl()-like system for python and
other languages, which means more and more BRs depending on virtual
automatic provides that you can only detect after a build, not before.

IIRC, there were only a handful of these. I haven't decided what to do with these packages. It maybe useful to have an additional list (perl-prov?) that is queried and perl.prov is run on them if they are in the list.

perl(mod_perl2) mod_perl-2.0.3-7.src.rpm
perl(Apache2::Cookie) libapreq2-2.09-0.rc2.4.fc7.src.rpm
perl(Apache2::Request) libapreq2-2.09-0.rc2.4.fc7.src.rpm
perl(Apache::Test) mod_perl-2.0.3-7.src.rpm
perl(Config) perl-5.8.8-18.fc7.src.rpm
perl(Data::UUID) uuid-1.5.1-3.fc7.src.rpm
perl(Errno) perl-5.8.8-18.fc7.src.rpm
perl(Image::Magick) ImageMagick-6.3.2.9-3.fc7.src.rpm
perl(Mail::SpamAssassin) spamassassin-3.2.0-1.fc7.src.rpm
perl(Newt) newt-0.52.6-3.fc7.src.rpm
perl(RRDs) rrdtool-1.2.23-3.fc7.src.rpm
perl(SVN::Core) subversion-1.4.3-4.src.rpm
perl(XML::SAX::Base) perl-XML-SAX-0.15-1.noarch.rpm
perl(XML::SAX::Exception) perl-XML-SAX-0.15-1.noarch.rpm
php-pear(PEAR) php-pear-PEAR-Command-Packaging-0.1.2-5.fc6.src.rpm

As I point out in the code, this same process needs to be done for python.

P.



I guess that if thetango cannot compute the depdency then it probably
gets discarded to at least get some better ordering, but the final
build will still need a brute force iterative approach.


Nope. This absolutely is 100 times better than a brute force iterative approach. IMO of course :)

P.

--
Fedora-buildsys-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/fedora-buildsys-list

Reply via email to