use strict;
use vars qw($User $Stamp $Version $CVSTag $License $LicName $LicVers);
use vars qw($LocalRoot $LocalPath $WWWRoot $WWWPath $Std_LicName);
-use vars qw($PREAMBLE $POSTAMBLE %TarBalls %Order %Desc @Units);
-use vars qw(%Links %Titles);
+use vars qw($PREAMBLE $POSTAMBLE %TarBalls %Order %Desc @Units $FmtPat);
+use vars qw(%Links %Titles %Ignore);
use vars qw(@BinDists @Others);
## Set up a few variables
%Order = (
PREFIX => [ 'openafs', 'afs', '' ],
PART => [ 'src', 'doc' ],
+ FMT => [ 'tar', 'tar.gz', 'tar.bz2', 'diff', 'diff.gz', 'diff.bz2' ],
OTHER => [ 'ChangeLog' ],
);
# Descriptions of various files
%Desc = (
- PREFIX => { 'afs' => 'IBM AFS',
- 'openafs' => 'OpenAFS',
+ PREFIX => { 'afs' => 'IBM AFS',
+ 'openafs' => 'OpenAFS',
},
- PART => { 'src' => 'Source Code',
- 'doc' => 'Documentation',
+ PART => { 'src' => 'Source Code',
+ 'doc' => 'Documentation',
},
- FMT => { 'tar' => 'UNIX tar file',
- 'tar.gz' => 'gzip-compressed UNIX tar file',
- 'tar.bz2' => 'bzip2-compressed UNIX tar file',
+ FMT => { 'tar' => 'UNIX tar file',
+ 'tar.gz' => 'gzip-compressed UNIX tar file',
+ 'tar.bz2' => 'bzip2-compressed UNIX tar file',
+ 'diff' => 'context diff',
+ 'diff.gz' => 'gzip-compressed context diff',
+ 'diff.bz2' => 'bzip2-compressed context diff',
},
OTHER => {
'ChangeLog' => "Openafs $Version ChangeLog",
},
);
+$FmtPat = '(' . join('|', map("\Q$_", keys %{$Desc{FMT}})) . ')';
+
%Links = (
- 'debian' => 'http://www.debian.org/released/potato',
- 'debian-potato' => 'http://www.debian.org/released/potato',
+ 'aix-4.3.3' => 'http://www.rs6000.ibm.com/software/OS/aix43.html',
+ 'debian' => 'http://www.debian.org/releases/potato',
+ 'debian-2.2' => 'http://www.debian.org/releases/potato',
+ 'dux-4.0a' => 'http://www.tru64unix.compaq.com/faqs/publications/pub_page/v40a_docs.htm',
+ 'irix-6.5' => 'http://www.sgi.com/software/irix6.5',
'redhat-6.2' => 'http://www.redhat.com/support/docs/rhl62.html',
'redhat-7.0' => 'http://www.redhat.com/products/software/linux/rhl7_standard.html',
'solaris7' => 'http://www.sun.com/software/solaris/7/',
+ 'solaris-7' => 'http://www.sun.com/software/solaris/7/',
+ 'solaris-8' => 'http://www.sun.com/software/solaris/ds/ds-sol8oe/',
);
%Titles = (
+ 'aix-' => 'IBM AIX',
'debian' => 'Debian GNU/Linux 2.2 (potato)',
- 'debian-potato' => 'Debian GNU/Linux 2.2 (potato)',
- 'redhat-6.2' => 'RedHat Linux 6.2',
- 'redhat-7.0' => 'RedHat Linux 7.0',
+ 'debian-2.2' => 'Debian GNU/Linux 2.2 (potato)',
+ 'dux-' => 'Digital UNIX',
+ 'irix-' => 'SGI Irix',
+ 'redhat-' => 'RedHat Linux',
'solaris7' => 'Solaris 7',
+ 'solaris-' => 'Solaris',
+);
+
+%Ignore = (
+ '_ALL_' => [ '\.md5$', '\.asc$', '\.sig$', '^\.', '^README' ],
+ '_ROOT_' => [ '\.md5$', '\.asc$', '\.sig$', '^\.' ],
+ 'debian' => [ '\.changes$', '\.orig\.tar\.gz$', '\.diff\.gz$' ],
+ 'debian-' => [ '\.changes$', '\.orig\.tar\.gz$', '\.diff\.gz$' ],
);
<center><h1>OpenAFS $Version Release</h1></center>
+<P>All PGP signatures were generated by PGP key id 71EC9367, belonging to
+<A HREF="http://www.dementia.org/~shadow/public-key.txt">
+shadow\@dementia.org</A>.
+
EOF
## See what's in the dist area
sub scan_dist () {
- my($D, $f, $prefix, $version, $part, $fmt);
+ my($D, $f, $prefix, $version, $part, $fmt, $pat);
$D = new DirHandle($LocalPath) or die "$LocalPath: $!\n";
while (defined($f = $D->read())) {
push(@BinDists, $f) if -d "$LocalPath/$f";
next unless -f "$LocalPath/$f";
- next if $f =~ /\.md5$/; # No entries for MD5's
- next if $f =~ /\.asc$/; # No entries for PGP signatures
- next if $f =~ /\.sig$/; # No entries for PGP signatures
- if ($f =~ /^(\w+)-([.\w]+)-(\w+)\.(tar(?:\.gz|\.bz2)?)$/) {
+ next if grep($f =~ /$_/, @{$Ignore{'_ROOT_'}});
+ next if grep($f =~ /$_/, @{$Ignore{'_ALL_'}});
+ if ($f =~ /^(\w+)-([.\w]+)-(\w+)\.$FmtPat$/o) {
($prefix, $version, $part, $fmt) = ($1, $2, $3, $4);
$TarBalls{$prefix}{$version}{$part}{$fmt} = $f;
- } elsif ($f =~ /^(.*)\.(tar(?:\.gz|\.bz2)?)$/) {
+ } elsif ($f =~ /^(.*)\.$FmtPat$/o) {
($part, $fmt) = ($1, $2);
$TarBalls{''}{''}{$part}{$fmt} = $f;
} elsif ($f eq 'license.html') {
($prefix, $version) = licvers("$LocalPath/$f");
if (defined($version)) {
- $License = "$WWWPath/f";
+ $License = "$WWWPath/$f";
$LicName = $prefix;
$LicVers = $version;
}
## Emit lines for all file formats of a single tarball
sub emit_one_tarball ($$$) {
my($prefix, $version, $part) = @_;
- my($desc, $fmt, $fmtdesc, $f, $size, $F);
+ my($desc, $fmt, $fmtdesc, $f, $size, $F, @fmts);
if ($prefix ne '') {
$desc = $Desc{PREFIX}{$prefix} || $prefix;
}
$desc .= ', ' if $desc ne '';
- foreach $fmt (sort keys %{$TarBalls{$prefix}{$version}{$part}}) {
+ @fmts = order_list('FMT', keys %{$TarBalls{$prefix}{$version}{$part}});
+ foreach $fmt (@fmts) {
$f = $TarBalls{$prefix}{$version}{$part}{$fmt};
$fmtdesc = $Desc{FMT}{$fmt} || "$fmt format";
$size = printsize(-s "$LocalPath/$f");
print "<h2>Source Code</h2><ul>\n";
emit_all_tarballs();
- print qq#<li><a href="/cgi-bin/cvsweb.cgi/openafs/src/?only-with-tag=#,
+ print qq#<li><a href="/cgi-bin/cvsweb.cgi/openafs/src/?only_with_tag=#,
$CVSTag, qq#">Browse Source Online</a></li>\n#;
if (defined($License)) {
## Emit a binary distribution section
sub emit_binaries ($) {
my($system) = @_;
- my($link, $title, $size, $f, $F);
+ my($link, $title, $size, $f, $F, $prefix);
- $title = $Titles{$system} || $system;
+ if (exists($Titles{$system})) {
+ $title = $Titles{$system};
+ } elsif ($system =~ /-/ && exists($Titles{"$`-"})) {
+ $title = join(' ', $Titles{"$`-"}, $');
+ } else {
+ $title = $system;
+ }
if (exists($Links{$system})) {
$link = $Links{$system};
print qq#<h2><a href="$link" target="_top">$title</a></h2>\n#;
qq#Installation Instructions</a></li>\n#;
}
+ ($prefix = $system) =~ s/-.*/-/;
+
foreach $f (getallfiles("$LocalPath/$system")) {
- next if $f eq 'README';
- next if $f =~ /\.md5$/;
- next if $f =~ /\.asc$/;
- next if $f =~ /\.sig$/;
+ next if grep($f =~ /$_/, @{$Ignore{'_ALL_'}});
+ next if exists $Ignore{$system} && grep($f =~ /$_/, @{$Ignore{$system}});
+ next if exists $Ignore{$prefix} && grep($f =~ /$_/, @{$Ignore{$prefix}});
+
$size = printsize(-s "$LocalPath/$system/$f");
# basic information