Package: devscripts Version: 2.9.26 Severity: normal dd-list on for instance the packages of etch's first CD takes well over a minute when it could be done in seconds. Please make use of this proof-of-concept speedup:
Cheers, Peter
#!/usr/bin/perl # Copyright (c) 2007 Peter Palfrader <[EMAIL PROTECTED]> # # Permission is hereby granted, free of charge, to any person obtaining # a copy of this software and associated documentation files (the # "Software"), to deal in the Software without restriction, including # without limitation the rights to use, copy, modify, merge, publish, # distribute, sublicense, and/or sell copies of the Software, and to # permit persons to whom the Software is furnished to do so, subject to # the following conditions: # # The above copyright notice and this permission notice shall be # included in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE # LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION # OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION # WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. use English; use strict; use warnings; $INPUT_RECORD_SEPARATOR = ""; my %packages; open (F, "apt-cache dumpavail |") or die ("Cannot open apt-cache dumpavail pipe: $!\n"); while (<F>) { my ($p) = /^Package: (.*)/m; my ($m) = /^Maintainer: (.*)/m; $packages{$p} = $m; }; close F; $INPUT_RECORD_SEPARATOR = "\n"; my %maintainers; while (<>) { chomp; my $m = $packages{$_}; $m = 'unknown' unless $m; $maintainers{$m} = [] unless $maintainers{$m}; push @{$maintainers{$m}}, $_; }; for my $m (keys %maintainers) { print "$m\n"; for my $p (@{$maintainers{$m}}) { print "\t$p\n"; }; };