www/53381: [patch] Bring ports.cgi up to date with new releases
Simon L.Nielsen
simon at nitro.dk
Mon Jun 16 10:50:16 PDT 2003
>Number: 53381
>Category: www
>Synopsis: [patch] Bring ports.cgi up to date with new releases
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-www
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Mon Jun 16 10:50:14 PDT 2003
>Closed-Date:
>Last-Modified:
>Originator: Simon L. Nielsen
>Release: FreeBSD 5.1-BETA i386
>Organization:
>Environment:
>Description:
This patch fixes several things in ports.cgi :
* Make the script know about FreeBSD 4.8-REL and 5.1-REL.
* s/5.0-CURRENT/5.1-CURRENT/
* s/4.7-STABLE/4.8-STABLE/
* Fix odd link to http://www.FreeBSD.org/ports/ instead of
mailto:www at freebsd.org (this was reported some time ago on the
www at freebsd.org list)
* Use INDEX-5 for FreeBSD 5.x release
* Use .tbz packages for FreeBSD 5.x release
* Use 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 version).
Note: Only tested on 5.1 with perl v5.6.1, since I only have 5.x
development servers, but I do not see any reason that it should not
work on 4.x with perl 5.0.
>How-To-Repeat:
>Fix:
--- www-portscgi.patch begins here ---
Index: ports.cgi
===================================================================
RCS file: /home/ncvs/www/en/cgi/ports.cgi,v
retrieving revision 1.66
diff -u -d -r1.66 ports.cgi
--- ports.cgi 15 May 2003 12:08:05 -0000 1.66
+++ ports.cgi 16 Jun 2003 17:25:30 -0000
@@ -58,57 +58,36 @@
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 @@
$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 @@
# 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 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 @@
}
}
close DB;
- return $date . "; based on revision " . $head;
+ return $date . "; based on " . $filebasename . " revision " . $head;
}
sub last_update_message {
@@ -240,9 +251,12 @@
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));
@@ -403,7 +417,7 @@
$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>
@@ -682,6 +696,8 @@
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; };
@@ -729,7 +745,7 @@
# search
if ($query) {
- &readindex($relDate{$release}, *today, *msec);
+ &readindex($release_tag, *today, *msec);
$query =~ s/([^\w\^])/\\$1/g;
&search_ports;
}
Index: ports.cgi
--- www-portscgi.patch ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-www
mailing list