Mailinglist Archive: opensuse-buildservice (189 mails)

< Previous Next >
Re: [opensuse-buildservice] inject local rpm data for buildinfo calculation
  • From: Michael Schroeder <mls@xxxxxxx>
  • Date: Thu, 26 Feb 2009 14:24:02 +0100
  • Message-id: <20090226132402.GA31679@xxxxxxx>
On Thu, Feb 26, 2009 at 01:16:49PM +0100, Marcus Hüwe wrote:
the format which is used by Build::readdeps() looks like this:
P:<id>: <list of provides separated by a whitespace>
R:<id>: <list of requires separated by a whitespace>
And <id> looks like <pkgname><some other info> - at least that's the
impression
I got after reading the code + looking at e.g. createyastdeps.
So an example entry would look like this:

P:foo-bar-gui-qt: foo-bar-gui-qt = 1.0
R:foo-bar-gui-qt: libfoo
P:foo-bar-gui-gtk: foo-bar-gui-gtk = 1.0
R:foo-bar-gui-gtk: libbar

These are valid package names but aren't parsed correctly by Build::readdeps()
which is due to
...
if ($s =~ s/^P:(.*):$/$1/) {
my $pkgid = $s;
$s =~ s/-[^-]+-[^-]+-[^-]+$//;
$provides{$s} = \@ss;
...
# the same for provides

Yep, Build::readdeps() is broken. It still is only able to parse
the old autobuild format while the Build.pm code nowadays writes
some slight different format. Luckily this part of readdeps() isn't
used at all, thus we're free to fix it.

The problem is that I didn't get the idea of this substitute (apart from
causing problems). Additionally what's the idea of the $pkgidp hashref which
can be passed to Build::readdeps()?

It can be used to record the package->pkgid relation. Used in
legacy autobuild code.

Cheers,
Michael.

--
Michael Schroeder mls@xxxxxxx
SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg
main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: opensuse-buildservice+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups