tag 574550 patch confirmed severity 574550 normal thanks libsoap-lite-perl needs to be installed on www-master before applying this patch.
Le 18/03/2010 19:02, Simon Paillard a écrit : > As suggested by Andi below, bts2ldap.debian.net gateway should no longer > be used. I also noticed (after updating a bug title, and while comparing the output produced before and the patch was applied) that the data of bts2ldap.debian.net are actually outdated. > Such scripts (like wnpp ones) should move to SOAP interface. Couldn't find any other script relying on bts2ldap, so it should be enough. Cheers
Index: wnpp.pl =================================================================== RCS file: /cvsroot/webwml/webwml/english/devel/wnpp/wnpp.pl,v retrieving revision 1.44 diff -u -r1.44 wnpp.pl --- wnpp.pl 17 Mar 2010 22:30:49 -0000 1.44 +++ wnpp.pl 17 Apr 2011 21:08:12 -0000 @@ -7,29 +7,11 @@ my $host = `hostname -f`; chomp($host); -use Net::LDAP; +use SOAP::Lite; use Date::Parse; use HTML::Entities; use Encode qw(decode); -# this is ok this way. It says which server to query, on which port and what -# to fetch from it. The attribs array could be reduced. - -my $server = "bts2ldap.debian.net"; -my $port = "10101"; -my $base = "dc=current,dc=bugs,dc=debian,dc=org"; -my $attrs = [ - 'debbugsID', - 'debbugsTitle', - 'debbugsSubmitter', - 'debbugsPackage', - 'debbugsSeverity', - 'debbugsState', - 'debbugsTag', - 'debbugsDate', - 'debbugsMergedWith', -]; - # The maintainers flat database my $maintainers_file = "$(ENGLISHDIR)/devel/wnpp/Maintainers"; @@ -42,33 +24,27 @@ } close MAINTAINERS; -my $ldap = Net::LDAP->new($server, 'port' => $port) or die "Couldn't make connection to ldap server: $@"; -$ldap->bind; -my $mesg = $ldap->search('base' => $base, - 'filter' => "(&(debbugsPackage=wnpp)(!(debbugsState=done))(!(debbugsState=archived)))", - 'attrs' => $attrs) or die; +my $soap = SOAP::Lite->uri('Debbugs/SOAP')->proxy('http://bugs.debian.org/cgi-bin/soap.cgi') + or die "Couldn't make connection to SOAP insterface: $@";; +my $bugs = $soap->get_bugs(package=>'wnpp')->result; +my $status = $soap->get_status($bugs)->result() or die; my $curdate = time; my ( %rfa, %orphaned, %rfabymaint, %rfp, %ita, %itp, %age, %rfh, %oth ); - ALLPKG: foreach my $entry ($mesg->entries) { + ALLPKG: foreach my $bugid (@$bugs) { use integer; - my $bugid = @{$entry->get('debbugsID')}[0]; - next if @{$entry->get('debbugsState')}[0] eq 'done'; - next if @{$entry->get('debbugsState')}[0] eq 'archived'; - my $subject = ""; - $subject = decode("MIME-Header", @{$entry->get('debbugsTitle')}[0]) - if $entry->get('debbugsTitle'); + next if $status->{$bugid}->{done}; + next if $status->{$bugid}->{archived}; + my $subject = $status->{$bugid}->{subject}; # If a bug is merged with another, then only consider the youngest # bug and throw the others away. This will weed out duplicates. - my @mergedwith = (); - @mergedwith = @{$entry->get('debbugsMergedWith')} if $entry->get('debbugsMergedWith'); - foreach my $merged (@mergedwith) { + my $mergedwith = $status->{$bugid}->{mergedwith}; + foreach my $merged (split ' ',$mergedwith) { next ALLPKG if int($merged) < int($bugid); } - $age{$bugid} = ($curdate - @{$entry->get('debbugsDate')}[0])/86400; - chomp $subject; + $age{$bugid} = ($curdate - $status->{$bugid}->{date})/86400; $subject = encode_entities($subject); # Make order out of chaos if ($subject =~ m/^(?:ITO|RFA):\s*(\S+)(?:\s+-+\s+)?(.*)$/) { @@ -95,8 +71,6 @@ } } -$ldap->unbind; - my (@rfa_bypackage_html, @rfa_bymaint_html, @orphaned_html); my (@being_adopted_html, @being_packaged_html, @requested_html); my (@rfh_html, @oth_html);
signature.asc
Description: OpenPGP digital signature