* Make the script know about FreeBSD 4.8-RELEASE and 5.1-RELEASE.

* Remove FreeBSD 4.6-RELEASE.
* s/5.0-CURRENT/5.1-CURRENT/.
* s/4.7-STABLE/4.8-STABLE/.
* Use INDEX-5 for FreeBSD 5.x releases.
* Use .tbz packages for FreeBSD 5.x releases.
* Use CVS tags to find the correct INDEX version.  This also makes
  maintenance of this script simpler, since it does not have to know
  about release dates.
* Do not use revision / date for -STABLE and -CURRENT (HEAD will contain
  the needed INDEX version).
* Fix odd link to http://www.FreeBSD.org/ports/ instead of
  mailto:www@freebsd.org (this was reported some time ago on the
  www@freebsd.org mailing list).

PR:		www/53381
Submitted by:	myself
Approved by:	ceri (mentor)
This commit is contained in:
Simon L. B. Nielsen 2003-07-21 23:49:13 +00:00
parent 8a5acbfbed
commit 3473871ab3
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=17642

View file

@ -24,7 +24,7 @@
# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE.
#
# $FreeBSD: www/en/cgi/ports.cgi,v 1.66 2003/05/15 12:08:05 ceri Exp $
# $FreeBSD: www/en/cgi/ports.cgi,v 1.67 2003/07/20 21:03:14 simon Exp $
#
# ports.cgi - search engine for FreeBSD ports
# o search for a port by name or description
@ -58,57 +58,36 @@ sub init_variables {
local($pia64) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/ia64';
local($psparc64) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/sparc64';
$remotePrefixFtpPackagesDefault = '4.7-STABLE/i386';
$remotePrefixFtpPackagesDefault = '4.8-STABLE/i386';
%remotePrefixFtpPackages =
(
'5.0-CURRENT/i386', "$p/packages-current/All",
'4.7-STABLE/i386', " $p/packages-4-stable/All",
'5.1-CURRENT/i386', "$p/packages-current/All",
'4.8-STABLE/i386', " $p/packages-4-stable/All",
'5.1-RELEASE/i386', "$p/packages-5.1-release/All",
'5.0-RELEASE/i386', "$p/packages-5.0-release/All",
'4.8-RELEASE/i386', "$p/packages-4.8-release/All",
'4.7-RELEASE/i386', "$p/packages-4.7-release/All",
'4.6-RELEASE/i386', "$p/packages-4.6-release/All",
'5.0-CURRENT/alpha', "$palpha/packages-current/All",
'4.7-STABLE/alpha', "$palpha/packages-4-stable/All",
'5.1-CURRENT/alpha', "$palpha/packages-current/All",
'4.8-STABLE/alpha', "$palpha/packages-4-stable/All",
'5.1-RELEASE/alpha', "$palpha/packages-5.1-release/All",
'5.0-RELEASE/alpha', "$palpha/packages-5.0-release/All",
'4.8-RELEASE/alpha', "$palpha/packages-4.8-release/All",
'4.7-RELEASE/alpha', "$palpha/packages-4.7-release/All",
'4.6-RELEASE/alpha', "$palpha/packages-4.6-release/All",
'5.0-CURRENT/ia64', "$pia64/packages-current/All",
'5.1-CURRENT/ia64', "$pia64/packages-current/All",
'5.1-RELEASE/ia64', "$pia64/packages-5.1-release/All",
'5.0-RELEASE/ia64', "$pia64/packages-5.0-release/All",
'5.0-CURRENT/sparc64', "$psparc64/packages-current/All",
'5.1-CURRENT/sparc64', "$psparc64/packages-current/All",
'5.1-RELEASE/sparc64', "$psparc64/packages-5.1-release/All",
'5.0-RELEASE/sparc64', "$psparc64/packages-5.0-release/All",
);
%relDate =
(
'5.0-CURRENT/i386', 'today',
'4.7-STABLE/i386', 'today',
'5.0-RELEASE/i386', '2003-01-19 17:34:28 UTC',
'4.7-RELEASE/i386', '2002-10-10 14:47:54 UTC',
'4.6-RELEASE/i386', '2002-06-15 23:01:20 UTC',
'5.0-CURRENT/alpha', 'today',
'4.7-STABLE/alpha', 'today',
'5.0-RELEASE/alpha', '2003-01-19 17:34:28 UTC',
'4.7-RELEASE/alpha', '2002-10-10 14:47:54 UTC',
'4.6-RELEASE/alpha', '2002-06-15 23:01:20 UTC',
'5.0-CURRENT/ia64', 'today',
'5.0-RELEASE/ia64', '2003-01-19 17:34:28 UTC',
'5.0-CURRENT/sparc64', 'today',
'5.0-RELEASE/sparc64', '2003-01-19 17:34:28 UTC',
);
$remotePrefixHtml =
'../ports';
@ -132,7 +111,6 @@ sub init_variables {
$mailtoAdvanced = 'yes';
# the URL if you click at the E-Mail address (see below)
$mailtoURL = 'http://www.FreeBSD.org/ports/';
$mailtoURL = "mailto:$mailto" if !$mailtoURL;
# security
@ -144,11 +122,42 @@ sub init_variables {
# make plain text URLs clickable cgi script
$url = 'url.cgi';
# extension type for packages
$packageExt = 'tgz';
local($packageDB) = '../ports/packages.exists';
&packages_exist($packageDB, *packages) if -f $packageDB;
}
# Parse selected version string and set version dependend settings
sub parse_release {
if($release =~ /^(\d+)\.(\d+)(\.(\d+))?-(CURRENT|STABLE|RELEASE)\/(i386|alpha|ia64|sparc64|amd64)$/) {
$release_major = $1;
$release_minor = $2;
$release_patch = $4;
if($release_patch eq "") {
$release_patch = "0";
}
$release_type = $5;
$release_arch = $6;
if($release_type eq "RELEASE") {
$release_tag = "RELEASE_" . $release_major . "_" . $release_minor .
"_" . $release_patch;
}
} else {
&header;
print "Internal error: Could not parse release string ('$release')<br><br>\n";
&footer; &footer2; &exit(0);
}
if($release_major == 5) {
$packageExt = 'tbz';
$ports_database = 'ports/INDEX-5';
}
}
sub packages_exist {
local($file, *p) = @_;
@ -171,6 +180,8 @@ sub packages_exist {
sub last_update {
local($file) = "$cvsroot/$ports_database,v";
local($date) = 'unknown';
local($filebasename) = $ports_database;
$filebasename =~ s/ports\///;
open(DB, $file) || do {
&warn("$file: $!\n"); &exit;
@ -184,7 +195,7 @@ sub last_update {
}
}
close DB;
return $date . "; based on revision " . $head;
return $date . "; based on " . $filebasename . " revision " . $head;
}
sub last_update_message {
@ -240,9 +251,12 @@ sub readindex {
local($date, *var, *msec) = @_;
local(@co) = ('co', '-p');
if ($date =~ /^rev([1-9]+\.[0-9]+)$/) {
if ($date =~ /^rev([1-9]+\.[0-9]+)$/ ||
$date =~ /^(RELEASE_\d+_\d+_\d+)$/) {
# diff by revision
push(@co, ('-r', $1));
} elsif ($date eq "") {
# Get HEAD, no date or revision
} else {
# diff by date
push(@co, ('-D', $date));
@ -405,7 +419,7 @@ sub out {
$packages{"$version.tgz"}) ||
$release ne $remotePrefixFtpPackagesDefault
) {
print qq[<A HREF="$remotePrefixFtpPackages{$release}/$version.tgz">Package</A> <B>:</B>\n];
print qq[<A HREF="$remotePrefixFtpPackages{$release}/$version.$packageExt">Package</A> <B>:</B>\n];
}
print qq[<A HREF="$l">Changes</A> <B>:</B>
<A HREF="$pathDownload">Download</A>
@ -586,7 +600,7 @@ sub footer {
<img ALIGN="RIGHT" src="/gifs/powerlogo.gif">
&copy; 1996-2002 by Wolfram Schneider. All rights reserved.<br>
};
#print q{$FreeBSD: www/en/cgi/ports.cgi,v 1.66 2003/05/15 12:08:05 ceri Exp $} . "<br>\n";
#print q{$FreeBSD: www/en/cgi/ports.cgi,v 1.67 2003/07/20 21:03:14 simon Exp $} . "<br>\n";
print qq{Please direct questions about this service to
<I><A HREF="$mailtoURL">$mailto</A></I><br>\n};
print qq{General questions about FreeBSD ports should be sent to } .
@ -684,6 +698,8 @@ $release = $remotePrefixFtpPackagesDefault
if !$release || !defined($remotePrefixFtpPackages{$release});
$script_name = &env('SCRIPT_NAME');
&parse_release;
if ($path_info eq "/source") {
print "Content-type: text/plain\n\n";
open(R, $0) || do { print "ick!\n"; &exit; };
@ -731,7 +747,7 @@ $counter = 0;
# search
if ($query) {
&readindex($relDate{$release}, *today, *msec);
&readindex($release_tag, *today, *msec);
$query =~ s/([^\w\^])/\\$1/g;
&search_ports;
}