Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 16 Jun 2003 19:40:15 +0200 (CEST)
From:      "Simon L.Nielsen" <simon@nitro.dk>
To:        FreeBSD-gnats-submit@FreeBSD.org
Subject:   www/53381: [patch] Bring ports.cgi up to date with new releases
Message-ID:  <20030616174015.51C1910BF8B@arthur.nitro.dk>
Resent-Message-ID: <200306161750.h5GHoFhW032182@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@freebsd.org (this was reported some time ago on the
  www@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030616174015.51C1910BF8B>