#!/usr/bin/perl # Must run on a machine with madison. # # To check for un-updated binary kernel packages, also needs grep-dctrl # and a Sources file for the distribution. Set the location of the Sources # file in SOURCES_FILE in the environment. use URI::Escape; use Getopt::Long; my $html=0; my $debug=0; my $suite="testing"; my $output; if (! GetOptions( "html" => \$html, "debug" => \$debug, "suite=s" => \$suite, "output=s", \$output) || ! @ARGV) { die "usage: $0 [--suite suite] [--html] [--output=file] [--debug] advisorylist dtsalist...\n"; } if (defined $output) { open (OUT, ">$output.tmp.$$") || die "output.tmp.$$: $!"; } else { open (OUT, ">&STDOUT"); } if ($html) { print OUT "$suite security issues\n"; if ($suite ne 'testing' && $suite ne 'unstable') { print OUT <<"EOF";

Warning: This page is the result of running the testing security check script against the $suite distribution. As data is only gathered for the testing distribution, results may be innacurate if a package has changed its name, if a vulnerability affects $suite and not testing, or if a vulnerability has been fixed in $suite by the $suite security team.

EOF } print OUT "\n"; print OUT "
\n"; print OUT "Total holes unfixed: $unfixed
\n"; print OUT "Total holes fixed in unstable but not $suite: $unprop_all"; if ($unprop_all != $unprop) { print OUT " (+".($unprop - $unprop_all)." on some arches)"; } print OUT "
\n"; print OUT "Total number of kernel image packages not up to date: $need_rebuild
\n"; print OUT "Number of TODO lines in records: $todos
\n"; print OUT "Maintained by the testing security team
\n"; print OUT "Last update: ".`date`."
\n"; print OUT "\n"; } close OUT; if (defined $output) { rename("$output.tmp.$$", $output) || die "rename: $!"; }