head 1.42; access; symbols; locks; strict; comment @# @; 1.42 date 2006.02.19.12.09.59; author rse; state Exp; branches; next 1.41; commitid mYWSriKo90J8Obmr; 1.41 date 2005.02.24.10.58.27; author rse; state Exp; branches; next 1.40; 1.40 date 2004.10.29.14.20.10; author rse; state Exp; branches; next 1.39; 1.39 date 2004.08.05.07.08.32; author thl; state Exp; branches; next 1.38; 1.38 date 2004.05.19.19.36.55; author rse; state Exp; branches; next 1.37; 1.37 date 2004.04.05.13.37.30; author thl; state Exp; branches; next 1.36; 1.36 date 2004.01.08.15.29.40; author rse; state Exp; branches; next 1.35; 1.35 date 2003.12.17.11.58.48; author rse; state Exp; branches; next 1.34; 1.34 date 2003.12.04.15.21.13; author thl; state Exp; branches; next 1.33; 1.33 date 2003.11.28.11.21.06; author thl; state Exp; branches; next 1.32; 1.32 date 2003.11.25.13.38.00; author thl; state Exp; branches; next 1.31; 1.31 date 2003.11.11.20.08.06; author rse; state Exp; branches; next 1.30; 1.30 date 2003.10.28.14.46.56; author thl; state Exp; branches; next 1.29; 1.29 date 2003.10.19.07.16.29; author thl; state Exp; branches; next 1.28; 1.28 date 2003.09.30.13.34.26; author openpkg; state Exp; branches; next 1.27; 1.27 date 2003.09.24.11.28.49; author rse; state Exp; branches; next 1.26; 1.26 date 2003.09.19.08.10.34; author rse; state Exp; branches; next 1.25; 1.25 date 2003.09.17.08.29.01; author rse; state Exp; branches; next 1.24; 1.24 date 2003.09.16.10.18.54; author rse; state Exp; branches; next 1.23; 1.23 date 2003.09.15.11.49.29; author rse; state Exp; branches; next 1.22; 1.22 date 2003.08.06.15.52.44; author rse; state Exp; branches; next 1.21; 1.21 date 2003.08.06.15.26.43; author thl; state Exp; branches; next 1.20; 1.20 date 2003.08.06.13.37.34; author rse; state Exp; branches; next 1.19; 1.19 date 2003.07.10.14.53.26; author rse; state Exp; branches; next 1.18; 1.18 date 2003.07.07.14.26.31; author rse; state Exp; branches; next 1.17; 1.17 date 2003.06.11.11.04.01; author rse; state Exp; branches; next 1.16; 1.16 date 2003.06.03.13.44.01; author rse; state Exp; branches; next 1.15; 1.15 date 2003.05.16.09.38.50; author rse; state Exp; branches; next 1.14; 1.14 date 2003.04.07.15.38.40; author rse; state Exp; branches; next 1.13; 1.13 date 2003.03.30.12.10.39; author rse; state Exp; branches; next 1.12; 1.12 date 2003.03.30.11.34.22; author rse; state Exp; branches; next 1.11; 1.11 date 2003.03.20.20.23.28; author rse; state Exp; branches; next 1.10; 1.10 date 2003.03.20.20.17.53; author rse; state Exp; branches; next 1.9; 1.9 date 2003.03.20.16.32.12; author rse; state Exp; branches; next 1.8; 1.8 date 2003.03.19.14.53.07; author rse; state Exp; branches; next 1.7; 1.7 date 2003.03.18.15.54.31; author rse; state Exp; branches; next 1.6; 1.6 date 2003.03.18.15.44.45; author rse; state Exp; branches; next 1.5; 1.5 date 2003.03.18.15.26.15; author rse; state Exp; branches; next 1.4; 1.4 date 2003.03.18.10.18.04; author rse; state Exp; branches; next 1.3; 1.3 date 2003.02.18.15.57.01; author rse; state Exp; branches; next 1.2; 1.2 date 2003.01.23.14.29.33; author rse; state Exp; branches; next 1.1; 1.1 date 2003.01.23.11.32.43; author rse; state Exp; branches; next ; desc @@ 1.42 log @support HTTPS URLs @ text @## ## page.pl -- generate corresponding .html version for each .txt ## use strict; use IO::File; my @@SA = glob("OpenPKG-SA-*.txt"); my $this_year = "2004"; my $sidebar = 'Security Advisories:

'; foreach my $sa (reverse sort @@SA) { my ($base, $name, $year) = ($sa =~ m|^(OpenPKG-SA-((\d+)\..+))\.txt$|); next if ($name =~ m|^0000|); if ($this_year ne $year) { $sidebar .= "
\n"; $this_year = $year; } $sidebar .= "$name
"; } foreach my $sa (reverse sort @@SA) { $sa =~ s|\.txt$||s; print "$sa"; my $io = new IO::File "<$sa.txt" or die; my $txt = ''; $txt .= $_ while (<$io>); $io->close; my $L = {}; my $x = $txt; $x =~ s%^\s*\[(\d+)\]\s+((?:https?|ftp|hkp)://\S+)%$L->{$1} = $2, ''%mge; $txt =~ s/&/&/sg; $txt =~ s//>/sg; $txt =~ s/((?:https?|ftp|hkp):\/\/[^\s]+[^\s\.\)\&])/$1<\/a>/sg; $txt =~ s/([\s;]+)([a-zA-Z0-9_.-]+\@@[^\s\)\&]+?)([\s&]+)/$1$2<\/a>$3/sg; $txt =~ s/(OpenPKG Security Advisory)/$1<\/b>/sg; $txt =~ s/^((\s*[A-Z][a-zA-Z]+)+:)/$1<\/b>/mg; $txt =~ s/(\[(\d+)\])(?!\s+(?:https?|ftp|hkp):\/\/)/"{$2} || print STDERR "WARNING: reference [$2] not defined\n")."\">".$1."<\/a>"/sge; my $head = ''; $io = new IO::File "); $io->close; my $foot = ''; $io = new IO::File "); $io->close; $head =~ s|\@@TXT\@@|$sa.txt|sg; $head =~ s|\@@ID\@@|$sa|sg; $head =~ s|\@@SIDEBAR\@@|$sidebar|s; my $hint = ''; if ( system("gpg --verify $sa.txt >/dev/null 2>&1") != 0 ) { if ($txt !~ m|^-----BEGIN PGP SIGNED MESSAGE-----|) { $hint .= "

\n"; $hint .= "*** DRAFT ***\n"; $hint .= "
Please review. History of this document can be found in
CVS\n"; $hint .= "
\n"; print " DRAFT\n"; } else { $hint .= "
\n"; $hint .= "*** INVALID SIGNATURE ***\n"; $hint .= "
Please review! History of this document can be found in CVS\n"; $hint .= "
\n"; print " INVALID SIGNATURE\n"; } } else { $hint .= "History of this document can be found in CVS\n"; print " ok\n"; } my $out = $head . $hint . "
\n" . $txt . "
\n" . $foot; $io = new IO::File ">$sa.html" || die; $io->print($out); $io->close; } @ 1.41 log @flush pending changes @ text @d34 1 a34 1 $x =~ s%^\s*\[(\d+)\]\s+((?:http|ftp|hkp)://\S+)%$L->{$1} = $2, ''%mge; d38 1 a38 1 $txt =~ s/((?:http|ftp|hkp):\/\/[^\s]+[^\s\.\)\&])/$1<\/a>/sg; d42 1 a42 1 $txt =~ s/(\[(\d+)\])(?!\s+(?:http|ftp|hkp):\/\/)/"{$2} || print STDERR "WARNING: reference [$2] not defined\n")."\">".$1."<\/a>"/sge; @ 1.40 log @warn if a reference is not defined (as it is still the case for the forthcoming MySQL SA @ text @d23 1 a23 1 foreach my $sa (@@SA) { @ 1.39 log @for properly signed SAs, add link to their history, too @ text @d42 1 a42 1 $txt =~ s/(\[(\d+)\])(?!\s+(?:http|ftp|hkp):\/\/)/"{$2}."\">".$1."<\/a>"/sge; @ 1.38 log @remove Perl warnings @ text @d75 1 @ 1.37 log @avoid files being incorrectly identified as signed; put note on invalid signatures @ text @d7 1 a7 1 use IO; @ 1.36 log @always render all available SAs, but tag unreleased/unsigned ones with DRAFT header @ text @d26 1 a26 1 print "$sa\n"; d58 18 a75 2 if ($txt !~ m|^-----BEGIN PGP SIGNED MESSAGE-----|) { $hint = "
*** DRAFT ***
\n"; @ 1.35 log @final polishing and signing of SA lftp and SA cvs @ text @d11 1 a11 1 my $this_year = "2003"; a15 1 next if ($name =~ m|^2003\.05[4-9]|); d57 5 d63 1 @ 1.34 log @SA-2003.051-rsync; CAN-2003-0962 @ text @d16 1 a16 1 next if ($name =~ m|^2003\.05[2-9]|); @ 1.33 log @SA-2003.050-screen @ text @d16 1 a16 1 next if ($name =~ m|^2003\.05[1-9]|); @ 1.32 log @SA-2003.049-zebra; CAN-2003-0795, CAN-2003-0858 @ text @d16 1 a16 1 next if ($name =~ m|^2003\.05[0-9]|); @ 1.31 log @add updated PostgreSQL SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[9-9]|); @ 1.30 log @SA-2003.046-apache; CAN-2003-0542 @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[7-9]|); @ 1.29 log @SA-2003.045-ircd; CAN-2003-0864 @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[6-9]|); @ 1.28 log @uprev script limit; sign and finalize openssl SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[5-9]|); @ 1.27 log @final polishing and signing of OpenSSH SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[4-9]|); @ 1.26 log @add Sendmail SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[2-9]|); @ 1.25 log @final polishing and signing of OpenSSH SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[1-9]|); @ 1.24 log @flush pending changes @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[0-9]|); @ 1.23 log @final polishing and signing of MySQL SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[9-9]|); @ 1.22 log @finalize perl-www SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[8-9]|); @ 1.21 log @OpenPKG-SA-2003.036-perl-www; CAN-2003-0615 @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[7-9]|); @ 1.20 log @finalize OpenSSH SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[6-9]|); @ 1.19 log @finish imagemagick SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.04[4-9]|); @ 1.18 log @finalize PHP SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[3-9]|); @ 1.17 log @add gzip SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[2-9]|); @ 1.16 log @final polishing and signing @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[1-9]|); @ 1.15 log @add GnuPG SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.03[0-9]|); @ 1.14 log @first cut for Samba SA @ text @d16 1 a16 1 next if ($name =~ m|^2003\.02[9-9]|); @ 1.13 log @support hkp URLs @ text @d16 1 a16 1 next if ($name =~ m|^2003\.02[8-9]|); @ 1.12 log @activate sendmail SA @ text @d35 1 a35 1 $x =~ s%^\s*\[(\d+)\]\s+((?:http|ftp)://\S+)%$L->{$1} = $2, ''%mge; d39 1 a39 1 $txt =~ s/((?:http|ftp):\/\/[^\s]+[^\s\.\)\&])/
$1<\/a>/sg; d43 1 a43 1 $txt =~ s/(\[(\d+)\])(?!\s+(?:http|ftp):\/\/)/"{$2}."\">".$1."<\/a>"/sge; @ 1.11 log @break at year boundary @ text @d16 1 a16 1 next if ($name =~ m|^2003\.02[7-9]|); @ 1.10 log @add first cut for OpenSSL SA @ text @d11 1 d14 1 a14 1 my ($base, $name) = ($sa =~ m|^(OpenPKG-SA-(.+))\.txt$|); d17 4 @ 1.9 log @final polishing and signing Mutt SA @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[6-9]|); @ 1.8 log @polish and sign DeleGate SA @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[5-9]|); @ 1.7 log @bugfix, reformat and sign MySQL SA @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[3-9]|); @ 1.6 log @final polishing and signing to the Samba SA @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[2-9]|); @ 1.5 log @add mod_ssl SA @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[1-9]|); @ 1.4 log @still do not link in unfinished SAs @ text @d15 1 a15 1 next if ($name =~ m|^2003\.02[0-3]|); @ 1.3 log @fix URL @ text @d15 1 @ 1.2 log @flush pending changes @ text @d34 1 a34 1 $txt =~ s/([a-zA-Z0-9_.-]+\@@[^\s\)\&]+)/$1<\/a>/sg; @ 1.1 log @apply the usual amount of RSE cosmetics to give our SAs a more prominent look and feel @ text @d14 1 a14 1 next if ($name =~ m|^SA-0000|); d48 2 a49 1 $head =~ s|\@@ID\@@|$sa|sg; @