* 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 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
# SUCH DAMAGE. # 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 # ports.cgi - search engine for FreeBSD ports
# o search for a port by name or description # 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($pia64) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/ia64';
local($psparc64) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/sparc64'; local($psparc64) = 'ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/sparc64';
$remotePrefixFtpPackagesDefault = '4.7-STABLE/i386'; $remotePrefixFtpPackagesDefault = '4.8-STABLE/i386';
%remotePrefixFtpPackages = %remotePrefixFtpPackages =
( (
'5.0-CURRENT/i386', "$p/packages-current/All", '5.1-CURRENT/i386', "$p/packages-current/All",
'4.7-STABLE/i386', " $p/packages-4-stable/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", '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.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", '5.1-CURRENT/alpha', "$palpha/packages-current/All",
'4.7-STABLE/alpha', "$palpha/packages-4-stable/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", '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.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-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", '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 = $remotePrefixHtml =
'../ports'; '../ports';
@ -132,7 +111,6 @@ sub init_variables {
$mailtoAdvanced = 'yes'; $mailtoAdvanced = 'yes';
# the URL if you click at the E-Mail address (see below) # the URL if you click at the E-Mail address (see below)
$mailtoURL = 'http://www.FreeBSD.org/ports/';
$mailtoURL = "mailto:$mailto" if !$mailtoURL; $mailtoURL = "mailto:$mailto" if !$mailtoURL;
# security # security
@ -144,11 +122,42 @@ sub init_variables {
# make plain text URLs clickable cgi script # make plain text URLs clickable cgi script
$url = 'url.cgi'; $url = 'url.cgi';
# extension type for packages
$packageExt = 'tgz';
local($packageDB) = '../ports/packages.exists'; local($packageDB) = '../ports/packages.exists';
&packages_exist($packageDB, *packages) if -f $packageDB; &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 { sub packages_exist {
local($file, *p) = @_; local($file, *p) = @_;
@ -171,6 +180,8 @@ sub packages_exist {
sub last_update { sub last_update {
local($file) = "$cvsroot/$ports_database,v"; local($file) = "$cvsroot/$ports_database,v";
local($date) = 'unknown'; local($date) = 'unknown';
local($filebasename) = $ports_database;
$filebasename =~ s/ports\///;
open(DB, $file) || do { open(DB, $file) || do {
&warn("$file: $!\n"); &exit; &warn("$file: $!\n"); &exit;
@ -184,7 +195,7 @@ sub last_update {
} }
} }
close DB; close DB;
return $date . "; based on revision " . $head; return $date . "; based on " . $filebasename . " revision " . $head;
} }
sub last_update_message { sub last_update_message {
@ -240,9 +251,12 @@ sub readindex {
local($date, *var, *msec) = @_; local($date, *var, *msec) = @_;
local(@co) = ('co', '-p'); 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 # diff by revision
push(@co, ('-r', $1)); push(@co, ('-r', $1));
} elsif ($date eq "") {
# Get HEAD, no date or revision
} else { } else {
# diff by date # diff by date
push(@co, ('-D', $date)); push(@co, ('-D', $date));
@ -405,7 +419,7 @@ sub out {
$packages{"$version.tgz"}) || $packages{"$version.tgz"}) ||
$release ne $remotePrefixFtpPackagesDefault $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> print qq[<A HREF="$l">Changes</A> <B>:</B>
<A HREF="$pathDownload">Download</A> <A HREF="$pathDownload">Download</A>
@ -586,7 +600,7 @@ sub footer {
<img ALIGN="RIGHT" src="/gifs/powerlogo.gif"> <img ALIGN="RIGHT" src="/gifs/powerlogo.gif">
&copy; 1996-2002 by Wolfram Schneider. All rights reserved.<br> &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 print qq{Please direct questions about this service to
<I><A HREF="$mailtoURL">$mailto</A></I><br>\n}; <I><A HREF="$mailtoURL">$mailto</A></I><br>\n};
print qq{General questions about FreeBSD ports should be sent to } . print qq{General questions about FreeBSD ports should be sent to } .
@ -684,6 +698,8 @@ $release = $remotePrefixFtpPackagesDefault
if !$release || !defined($remotePrefixFtpPackages{$release}); if !$release || !defined($remotePrefixFtpPackages{$release});
$script_name = &env('SCRIPT_NAME'); $script_name = &env('SCRIPT_NAME');
&parse_release;
if ($path_info eq "/source") { if ($path_info eq "/source") {
print "Content-type: text/plain\n\n"; print "Content-type: text/plain\n\n";
open(R, $0) || do { print "ick!\n"; &exit; }; open(R, $0) || do { print "ick!\n"; &exit; };
@ -731,7 +747,7 @@ $counter = 0;
# search # search
if ($query) { if ($query) {
&readindex($relDate{$release}, *today, *msec); &readindex($release_tag, *today, *msec);
$query =~ s/([^\w\^])/\\$1/g; $query =~ s/([^\w\^])/\\$1/g;
&search_ports; &search_ports;
} }