Hi, I think I found a way to handle this gracefully in wanna-build: Am Samstag, den 12.07.2008, 00:29 +0200 schrieb Luk Claes: > > So I conclude that Dep-Wait on exact versions are cleared when the > > appropriate binaries appear in the archive. > > Sure, that's not the problem. The problem appears when the appropriate > binaries don't appear in the archive. > > For instance when xmonad 0.7-1 and xmonad-contrib 0.7-1 are initially in > the archive, xmonad-contrib 0.7-2 gets uploaded, but has some issue so > xmonad-contrib 0.7-3 is uploaded and xmonad 0.7-3 gets uploaded. > > In this case the dep-wait will still be xmonad == 0.7-2 which never got > uploaded. I assume this is because originally, Dep-Waits were set manually and therefore should be sticky, i.e. not automatically overriden by new uploads, which makes sense. But it is somewhat different with automatic Dep-Waits: These are set by wanna-build, and therefore wanna-build should update them when it knows better. Manual and automatic Dep-Waits can easily be distinguished by the existence of a 'Builder' field, recording who did the change. If that does not exist, the Dep-Wait was set automatically and should be updated on new source uploads. Here are the required changes --- ../wanna-build/wanna-build 2008-06-05 16:34:30.000000000 +0200 +++ wanna-build 2008-07-15 22:15:18.000000000 +0200 @@ -1447,7 +1447,9 @@ if (defined($pkg) && $pkg->{'State'} =~ /^Dep-Wait/ && - version_less( $pkg->{'Version'}, $version )) { + version_less( $pkg->{'Version'}, $version ) && + exists($pkg->{'Builder'})) { + # We have a manual Dep-Wait, so lets keep that change_state( \$pkg, 'Dep-Wait' ); $pkg->{'Version'} = $version; delete $pkg->{'Binary-NMU-Version'}; @@ -2422,7 +2424,7 @@ my $dep = $$newdeps{$_}; # ensure we're not waiting on ourselves, or a package that has been removed next if (not defined($merge_binsrc{$dep->{'Package'}})) or ($merge_binsrc{$dep->{'Package'}} eq $key); - if ($dep->{'Rel'} =~ '^>') { + if ($dep->{'Rel'} =~ '^[>=]') { $deplist->{$dep->{'Package'}} = $dep; $change++; } I did some tests, and indeed it catches the case from above: After the 0.7-3 sources are uploaded, the Dep-Wait is changed from “xmonad == 0.7-2” to “xmonad == 0.7-3”, even though a xmonad_0.7-2 has never been seen. What do you think? Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil