Rework this page to be a little more readable. Group the ports categories
into logical groups to make them easier to browse. Change some of the wording near the Search block to make it clearer. Cleanup portindex to be "use strict" and "-w" safe. PRs: www/87500 (edwin, most of the work), www/45169 (linimon) Approved by: silence on www
This commit is contained in:
parent
b0357f0c47
commit
1f0c07c205
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/www/; revision=26056
4 changed files with 327 additions and 244 deletions
|
@ -1,4 +1,4 @@
|
|||
# $FreeBSD: www/en/ports/Makefile,v 1.38 2004/11/05 12:47:07 simon Exp $
|
||||
# $FreeBSD: www/en/ports/Makefile,v 1.39 2004/11/13 12:23:18 ceri Exp $
|
||||
|
||||
.if exists(../Makefile.conf)
|
||||
.include "../Makefile.conf"
|
||||
|
@ -77,7 +77,7 @@ all install clean:
|
|||
beforeinstall:
|
||||
.else
|
||||
beforeinstall:
|
||||
${PERL} -pi -e 's/href=\"growth/href=\"http:\/\/www.FreeBSD.org\/ports\/growth/' index.html
|
||||
${SED} -i "" -e 's,HREF="growth,href="http://www.FreeBSD.org/ports/growth,' index.html
|
||||
.endif
|
||||
|
||||
.include "${WEB_PREFIX}/share/mk/web.site.mk"
|
||||
|
|
|
@ -1,92 +1,95 @@
|
|||
# Originally from src/release/sysinstall/index.c,v 1.57 1998/10/15
|
||||
# $FreeBSD: www/en/ports/categories,v 1.26 2004/02/04 07:39:04 marcus Exp $
|
||||
#Originally from src/release/sysinstall/index.c,v 1.57 1998/10/15
|
||||
#$FreeBSD: www/en/ports/categories,v 1.27 2004/12/19 02:39:16 linimon Exp $
|
||||
|
||||
"accessibility", "Ports to help disabled users.",
|
||||
"afterstep", "Ports to support the AfterStep window manager.",
|
||||
"arabic", "Ported software for the Arabic market.",
|
||||
"archivers", "Utilities for archiving and unarchiving data.",
|
||||
"astro", "Applications related to astronomy.",
|
||||
"audio", "Audio utilities - most require a supported sound card.",
|
||||
"benchmarks", "Utilities for measuring system performance.",
|
||||
"biology", "Software related to biology.",
|
||||
"cad", "Computer Aided Design utilities.",
|
||||
"chinese", "Ported software for the Chinese market.",
|
||||
"comms", "Communications utilities.",
|
||||
"converters", "Format conversion utilities.",
|
||||
"databases", "Database software.",
|
||||
"deskutils", "Various Desktop utilities.",
|
||||
"devel", "Software development utilities and libraries.",
|
||||
"dns", "DNS client and server utilities.",
|
||||
"editors", "Common text editors.",
|
||||
"elisp", "Things related to Emacs Lisp.",
|
||||
"emulators", "Utilities for emulating other OS types.",
|
||||
"finance", "Monetary, financial and related applications.",
|
||||
"french", "Ported software for French countries.",
|
||||
"ftp", "FTP client and server utilities.",
|
||||
"games", "Various and sundry amusements.",
|
||||
"german", "Ported software for Germanic countries.",
|
||||
"gnome", "Components of the Gnome Desktop environment.",
|
||||
"graphics", "Graphics libraries and utilities.",
|
||||
"haskell", "Software related to the Haskell language.",
|
||||
"hebrew", "Ported software for Hebrew language.",
|
||||
"hungarian", "Ported software for the Hungarian market.",
|
||||
"ipv6", "IPv6 related software.",
|
||||
"irc", "Internet Relay Chat utilities.",
|
||||
"japanese", "Ported software for the Japanese market.",
|
||||
"java", "Java language support.",
|
||||
"kde", "Software for the K Desktop Environment.",
|
||||
"korean", "Ported software for the Korean market.",
|
||||
"lang", "Computer languages.",
|
||||
"linux", "Linux programs that can be run under binary compatibility.",
|
||||
"lisp", "Things related to pure lisp.",
|
||||
"mail", "Electronic mail packages and utilities.",
|
||||
"math", "Mathematical computation software.",
|
||||
"mbone", "Applications and utilities for the MBONE.",
|
||||
"misc", "Miscellaneous utilities.",
|
||||
"multimedia", "Multimedia software.",
|
||||
"net", "Networking utilities.",
|
||||
"net-mgmt", "Network management utilities.",
|
||||
"news", "USENET News support software.",
|
||||
"offix", "An office automation suite of sorts.",
|
||||
"palm", "Software support for the Palm(tm) series.",
|
||||
"parallel", "Applications dealing with parallelism in computing.",
|
||||
"pear", "Utilities/modules that fall into the PEAR system.",
|
||||
"perl5", "Utilities/modules for the PERL5 language.",
|
||||
"plan9", "Software from the Plan9 operating system.",
|
||||
"polish", "Ported software for the Polish market.",
|
||||
"portuguese", "Ported software for the Portuguese market.",
|
||||
"print", "Utilities for dealing with printing.",
|
||||
"python", "Software related to the Python language.",
|
||||
"ruby", "Software related to the Ruby language.",
|
||||
"russian", "Ported software for the Russian market.",
|
||||
"scheme", "Software related to the Scheme language.",
|
||||
"science", "Scientific software.",
|
||||
"security", "System security software.",
|
||||
"shells", "Various shells (tcsh, bash, etc).",
|
||||
"sysutils", "Various system utilities.",
|
||||
"tcl80", "TCL v8.0 and packages which depend on it.",
|
||||
"tcl81", "TCL v8.1 and packages which depend on it.",
|
||||
"tcl82", "TCL v8.2 and packages which depend on it.",
|
||||
"tcl83", "TCL v8.3 and packages which depend on it.",
|
||||
"tcl84", "TCL v8.4 and packages which depend on it.",
|
||||
"textproc", "Text processing/search utilities.",
|
||||
"tk42", "Tk4.2 and packages which depend on it.",
|
||||
"tk80", "Tk8.0 and packages which depend on it.",
|
||||
"tk82", "Tk8.2 and packages which depend on it.",
|
||||
"tk83", "Tk8.3 and packages which depend on it.",
|
||||
"tk84", "Tk8.4 and packages which depend on it.",
|
||||
"tkstep80", "tkstep wm and packages which depend on it.",
|
||||
"ukrainian", "Ported software for the Ukrainian market.",
|
||||
"vietnamese", "Ported software for the Vietnamese market.",
|
||||
"windowmaker", "Ports to support the WindowMaker window manager.",
|
||||
"www", "WEB utilities (browsers, HTTP servers, etc).",
|
||||
"x11", "X Window System based utilities.",
|
||||
"x11-clocks", "X Window System based clocks.",
|
||||
"x11-fm", "X Window System based file managers.",
|
||||
"x11-fonts", "X Window System fonts and font utilities.",
|
||||
"x11-servers", "X Window System servers.",
|
||||
"x11-themes", "X Window System themes.",
|
||||
"x11-toolkits", "X Window System based development toolkits.",
|
||||
"x11-wm", "X Window System window managers.",
|
||||
"xfce", "Ports to support the Xfce desktop environment.",
|
||||
"zope", "Software related to the Zope platform.",
|
||||
# See categories.descriptions for the meaning of the abbrevations at the
|
||||
# end of each category.
|
||||
|
||||
accessibility,"Ports to help disabled users.",EU
|
||||
afterstep,"Ports to support the AfterStep window manager.",VC
|
||||
arabic,"Ported software for the Arabic market.",HL
|
||||
archivers,"Utilities for archiving and unarchiving data.",SAAD
|
||||
astro,"Applications related to astronomy.",SAE
|
||||
audio,"Audio utilities - most require a supported sound card.",EU
|
||||
benchmarks,"Utilities for measuring system performance.",AOP
|
||||
biology,"Software related to biology.",SAE
|
||||
cad,"Computer Aided Design utilities.",SAE
|
||||
chinese,"Ported software for the Chinese market.",HL
|
||||
comms,"Communications utilities.",CCATI
|
||||
converters,"Format conversion utilities.",AOP
|
||||
databases,"Database software.",SAAD
|
||||
deskutils,"Various Desktop utilities.",EU
|
||||
devel,"Software development utilities and libraries.",SAAD
|
||||
dns,"DNS client and server utilities.",CCATI
|
||||
editors,"Common text editors.",EU
|
||||
elisp,"Things related to Emacs Lisp.",VC
|
||||
emulators,"Utilities for emulating other OS types.",SAAD
|
||||
finance,"Monetary, financial and related applications.",EU
|
||||
french,"Ported software for French countries.",HL
|
||||
ftp,"FTP client and server utilities.",CCATI
|
||||
games,"Various and sundry amusements.",EU
|
||||
german,"Ported software for Germanic countries.",HL
|
||||
gnome,"Components of the Gnome Desktop environment.",VC
|
||||
graphics,"Graphics libraries and utilities.",EU
|
||||
haskell,"Software related to the Haskell language.",VC
|
||||
hebrew,"Ported software for Hebrew language.",HL
|
||||
hungarian,"Ported software for the Hungarian market.",HL
|
||||
ipv6,"IPv6 related software.",VC
|
||||
irc,"Internet Relay Chat utilities.",CCATI
|
||||
japanese,"Ported software for the Japanese market.",HL
|
||||
java,"Java language support.",SAAD
|
||||
kde,"Software for the K Desktop Environment.",VC
|
||||
korean,"Ported software for the Korean market.",HL
|
||||
lang,"Computer languages.",SAAD
|
||||
linux,"Linux programs that can be run under binary compatibility.",VC
|
||||
lisp,"Things related to pure lisp.",VC
|
||||
mail,"Electronic mail packages and utilities.",CCATI
|
||||
math,"Mathematical computation software.",SAE
|
||||
mbone,"Applications and utilities for the MBONE.",CCATI
|
||||
misc,"Miscellaneous utilities.",AOP
|
||||
multimedia,"Multimedia software.",EU
|
||||
net,"Networking utilities.",CCATI
|
||||
net-mgmt,"Network management utilities.",CCATI
|
||||
news,"USENET News support software.",CCATI
|
||||
offix,"An office automation suite of sorts.",VC
|
||||
palm,"Software support for the Palm(tm) series.",AOP
|
||||
parallel,"Applications dealing with parallelism in computing.",VC
|
||||
pear,"Utilities/modules that fall into the PEAR system.",VC
|
||||
perl5,"Utilities/modules for the PERL5 language.",VC
|
||||
plan9,"Software from the Plan9 operating system.",VC
|
||||
polish,"Ported software for the Polish market.",HL
|
||||
portuguese,"Ported software for the Portuguese market.",HL
|
||||
print,"Utilities for dealing with printing.",EU
|
||||
python,"Software related to the Python language.",VC
|
||||
ruby,"Software related to the Ruby language.",VC
|
||||
russian,"Ported software for the Russian market.",HL
|
||||
scheme,"Software related to the Scheme language.",VC
|
||||
science,"Scientific software.",SAE
|
||||
security,"System security software.",SAAD
|
||||
shells,"Various shells (tcsh, bash, etc).",EU
|
||||
sysutils,"Various system utilities.",SAAD
|
||||
tcl80,"TCL v8.0 and packages which depend on it.",VC
|
||||
tcl81,"TCL v8.1 and packages which depend on it.",VC
|
||||
tcl82,"TCL v8.2 and packages which depend on it.",VC
|
||||
tcl83,"TCL v8.3 and packages which depend on it.",VC
|
||||
tcl84,"TCL v8.4 and packages which depend on it.",VC
|
||||
textproc,"Text processing/search utilities.",EU
|
||||
tk42,"Tk4.2 and packages which depend on it.",VC
|
||||
tk80,"Tk8.0 and packages which depend on it.",VC
|
||||
tk82,"Tk8.2 and packages which depend on it.",VC
|
||||
tk83,"Tk8.3 and packages which depend on it.",VC
|
||||
tk84,"Tk8.4 and packages which depend on it.",VC
|
||||
tkstep80,"tkstep wm and packages which depend on it.",VC
|
||||
ukrainian,"Ported software for the Ukrainian market.",HL
|
||||
vietnamese,"Ported software for the Vietnamese market.",HL
|
||||
windowmaker,"Ports to support the WindowMaker window manager.",VC
|
||||
www,"WEB utilities (browsers, HTTP servers, etc).",CCATI
|
||||
x11,"X Window System based utilities.",XWS
|
||||
x11-clocks,"X Window System based clocks.",XWS
|
||||
x11-fm,"X Window System based file managers.",XWS
|
||||
x11-fonts,"X Window System fonts and font utilities.",XWS
|
||||
x11-servers,"X Window System servers.",XWS
|
||||
x11-themes,"X Window System themes.",XWS
|
||||
x11-toolkits,"X Window System based development toolkits.",XWS
|
||||
x11-wm,"X Window System window managers.",XWS
|
||||
xfce,"Ports to support the Xfce desktop environment.",VC
|
||||
zope,"Software related to the Zope platform.",VC
|
||||
|
|
|
@ -1,84 +1,107 @@
|
|||
#!/usr/bin/perl
|
||||
#!/usr/bin/perl -w
|
||||
|
||||
# convert a ports INDEX file to HTML
|
||||
#
|
||||
# by John Fieber <jfieber@FreeBSD.org>
|
||||
# Mon May 13 10:31:58 EST 1996
|
||||
# $FreeBSD: www/en/ports/portindex,v 1.51 2004/04/04 21:49:41 phantom Exp $
|
||||
# $FreeBSD: www/en/ports/portindex,v 1.52 2005/10/04 19:43:49 hrs Exp $
|
||||
|
||||
############################################################
|
||||
|
||||
use strict;
|
||||
use POSIX;
|
||||
use IO::File;
|
||||
|
||||
my $base = "";
|
||||
my $baseHTTP = "";
|
||||
my $urlcgi = "";
|
||||
my $packagesURL = "";
|
||||
my $today = getdate();
|
||||
my %p = ();
|
||||
|
||||
# Load local config file. You can override in portindex.conf
|
||||
# the variables for the default web and the ftp server. This
|
||||
# make it easy to maintain a local web mirror and let the
|
||||
# URL point to yourself and not to the standard FreeBSD FTP server.
|
||||
$config = $0 . '.' . 'conf';
|
||||
|
||||
my $config = $0 . '.' . 'conf';
|
||||
do $config if -f $config;
|
||||
|
||||
# This is the base of where we ftp stuff from
|
||||
my $ftpserver;
|
||||
if ($ENV{'MASTER_FTP_SERVER'}) {
|
||||
$ftpserver = $ENV{'MASTER_FTP_SERVER'};
|
||||
} else {
|
||||
$ftpserver = 'ftp://ftp.FreeBSD.org' if !$ftpserver;
|
||||
}
|
||||
$base = "" if !$base;
|
||||
$baseHTTP = $base if !$baseHTTP;
|
||||
$baseFTP = "$ftpserver/pub/FreeBSD/ports/ports";
|
||||
$baseCVSWEB = 'http://www.FreeBSD.org/cgi/cvsweb.cgi/';
|
||||
my $baseFTP = "$ftpserver/pub/FreeBSD/ports/ports";
|
||||
my $baseCVSWEB = 'http://www.FreeBSD.org/cgi/cvsweb.cgi/';
|
||||
$urlcgi = 'http://www.FreeBSD.org/cgi/url.cgi' if !$urlcgi;
|
||||
$packagesURL = "$ftpserver/pub/FreeBSD/ports/i386/packages-stable/All/"
|
||||
if !$packagesURL;
|
||||
# support tar on the fly or gzip'ed tar on the fly
|
||||
$ftparchive = '';
|
||||
my $ftparchive = '';
|
||||
$ftparchive = 'tar' if !defined $ftparchive;
|
||||
|
||||
|
||||
# ports download sources script
|
||||
$pds = 'http://www.FreeBSD.org/cgi/pds.cgi';
|
||||
my $pds = 'http://www.FreeBSD.org/cgi/pds.cgi';
|
||||
|
||||
# better layout and link to the sources
|
||||
if ($urlcgi) {
|
||||
$baseHTTP = $urlcgi . '?' . $baseHTTP;
|
||||
}
|
||||
|
||||
$today = &getdate;
|
||||
|
||||
&packages_exist('packages.exists', *packages);
|
||||
&category_description(($ARGV[1] || '.') . '/categories', *category_description);
|
||||
&main;
|
||||
my %packages = ();
|
||||
my %category_description = ();
|
||||
my @category_groups = ();
|
||||
my %category_groups = ();
|
||||
packages_exist('packages.exists');
|
||||
category_description(($ARGV[1] || '.') . '/categories' );
|
||||
category_groups(($ARGV[1] || '.') . '/categories.descriptions' );
|
||||
main();
|
||||
|
||||
sub getdate {
|
||||
@months = ("January", "February", "March", "April", "May","June",
|
||||
"July", "August", "September", "October", "November", "December");
|
||||
($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time);
|
||||
$year += 1900;
|
||||
return "Last modified: $mday-$months[$mon]-$year";
|
||||
return POSIX::strftime("Last modified: %d-%B-%Y",localtime);
|
||||
}
|
||||
|
||||
sub header {
|
||||
local ($fh, $htext) = @_;
|
||||
print $fh "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" [\n";
|
||||
print $fh "<!ENTITY base CDATA '..'>\n";
|
||||
print $fh "<!ENTITY date \"<em>$today</em>\">\n";
|
||||
print $fh "<!ENTITY title '$htext'>\n";
|
||||
print $fh "<!ENTITY blurb SYSTEM \"ports.inc\">\n";
|
||||
print $fh "<!ENTITY % navincludes SYSTEM \"../includes.navdownload.sgml\"> %navincludes;\n";
|
||||
print $fh "<!ENTITY % includes SYSTEM \"../includes.sgml\">\n";
|
||||
print $fh "<!ENTITY email 'ports'>\n";
|
||||
print $fh "%includes;\n";
|
||||
print $fh "]>\n";
|
||||
print $fh "<html>&header;\n";
|
||||
my $fh = shift;
|
||||
my $htext = shift;
|
||||
#local($fh, $htext) = @_;
|
||||
print $fh <<EOF;
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
|
||||
<!ENTITY base CDATA '..'>
|
||||
<!ENTITY date "<em>$today</em>">
|
||||
<!ENTITY title '$htext'>
|
||||
<!ENTITY blurb SYSTEM "ports.inc">
|
||||
<!ENTITY % navincludes SYSTEM "../includes.navdownload.sgml"> %navincludes;
|
||||
<!ENTITY % includes SYSTEM "../includes.sgml">
|
||||
<!ENTITY email 'ports'>
|
||||
%includes;
|
||||
]>
|
||||
<html>&header;
|
||||
EOF
|
||||
}
|
||||
|
||||
sub footer {
|
||||
local ($fh, $ftext) = @_;
|
||||
print $fh "\n$ftext\n";
|
||||
print $fh "&footer;\n";
|
||||
print $fh "</BODY>\n</HTML>\n";
|
||||
my $fh = shift;
|
||||
my $ftext = shift;
|
||||
#local ($fh, $ftext) = @_;
|
||||
print $fh <<EOF;
|
||||
|
||||
$ftext
|
||||
&footer;
|
||||
</BODY>
|
||||
</HTML>
|
||||
EOF
|
||||
}
|
||||
|
||||
sub packages_exist {
|
||||
local($file, *p) = @_;
|
||||
my $file=shift;
|
||||
my %p;
|
||||
#local($file, *p) = @_;
|
||||
|
||||
open(P, $file) || do {
|
||||
warn "open $file: $!\n";
|
||||
|
@ -88,14 +111,13 @@ sub packages_exist {
|
|||
|
||||
while(<P>) {
|
||||
chop;
|
||||
$p{$_} = 1;
|
||||
$packages{$_} = 1;
|
||||
}
|
||||
close P;
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub category_description {
|
||||
local($file, *p) = @_;
|
||||
my $file = shift;
|
||||
|
||||
open(P, $file) || do {
|
||||
warn "open $file: $!\n";
|
||||
|
@ -103,23 +125,52 @@ sub category_description {
|
|||
return 1;
|
||||
};
|
||||
|
||||
local($category, $description);
|
||||
while(<P>) {
|
||||
# ignore comments
|
||||
next if /^\s*#/;
|
||||
|
||||
($category, $description) = /^\s*"([^"]+)",\s*"([^"]+)/;
|
||||
$p{$category} = $description;
|
||||
if (/^\s*([^,]+),\s*"([^"]+)",([A-Z]+)/) {
|
||||
$category_description{$1}{desc}=$2;
|
||||
$category_description{$1}{group}=$3;
|
||||
}
|
||||
}
|
||||
close P;
|
||||
}
|
||||
|
||||
sub category_groups {
|
||||
my $file = shift;
|
||||
|
||||
open(P, $file) || do {
|
||||
warn "open $file: $!\n";
|
||||
warn "Cannot find category groups\n";
|
||||
return 1;
|
||||
};
|
||||
|
||||
while(<P>) {
|
||||
# ignore comments
|
||||
next if /^\s*#/;
|
||||
if (/^\s*([^,]+),\s*(.+)/) {
|
||||
$category_groups{$1}=$2 if (/^\s*([^,]+),\s*(.+)/);
|
||||
push(@category_groups,$1);
|
||||
}
|
||||
}
|
||||
close P;
|
||||
return 0;
|
||||
}
|
||||
|
||||
sub main {
|
||||
my @master=();
|
||||
my %stats;
|
||||
my %catkey;
|
||||
my %data;
|
||||
my $portnumber = 0;
|
||||
|
||||
$sep = "<B>:</B>";
|
||||
my $sep = "<B>:</B>";
|
||||
|
||||
my $moutf = new IO::File;
|
||||
my $outf = new IO::File;
|
||||
my $mindex = new IO::File;
|
||||
|
||||
open(INDEX, $ARGV[0]);
|
||||
$portnumber = "0";
|
||||
while (<INDEX>) {
|
||||
chop;
|
||||
s/&/&/g;
|
||||
|
@ -127,29 +178,28 @@ sub main {
|
|||
s/>/>/g;
|
||||
|
||||
# Read a record
|
||||
($name, $loc, $prefix, $desc, $ldesc, $owner, $cats,
|
||||
my ($name, $loc, $prefix, $desc, $ldesc, $owner, $cats,
|
||||
$bdep, $rdep, $www) = split('\|');
|
||||
|
||||
# Check for double hyphens in the name (--).
|
||||
$name =~ s/--/-/g;
|
||||
|
||||
# Split the categories into an array
|
||||
@cat = split("[ \t]+", $cats);
|
||||
my @cat = split("[ \t]+", $cats);
|
||||
|
||||
$catkey{$name} = $cat[0];
|
||||
|
||||
local($sourcepath) = $loc;
|
||||
my $sourcepath = $loc;
|
||||
$sourcepath =~ s%/usr/%%;
|
||||
|
||||
foreach $i (@cat) {
|
||||
|
||||
foreach my $i (sort(@cat)) {
|
||||
$stats{$i}++;
|
||||
|
||||
# figure out the FTP url
|
||||
# figure out the FTP url
|
||||
$loc =~ s/\/usr\//$baseCVSWEB/;
|
||||
$ldesc =~ s/\/usr\//$baseHTTP/;
|
||||
|
||||
# The name description and maintainer
|
||||
# The name description and maintainer
|
||||
$data{$i} .= "<DT><B><A NAME=\"$name\"></A><A HREF=\"$loc$ftparchive\">$name</A></B> ";
|
||||
|
||||
|
||||
|
@ -162,54 +212,54 @@ sub main {
|
|||
|
||||
$data{$i} .= qq{ | <A HREF="$pds?$sourcepath">Sources</A>};
|
||||
|
||||
if ($www ne "") {
|
||||
if ($www ne "") {
|
||||
$data{$i} .= qq{ | <a href="$www">Main Web Site</a>};
|
||||
}
|
||||
}
|
||||
|
||||
$ownerurl = $owner;
|
||||
$ownerurl =~ s/</</g;
|
||||
$owenrurl =~ s/>/>/g;
|
||||
my $ownerurl = $owner;
|
||||
$ownerurl =~ s/</</g;
|
||||
$ownerurl =~ s/>/>/g;
|
||||
$data{$i} .=
|
||||
"<BR><I>Maintained by:</I> <A HREF=\"mailto:$ownerurl\">$owner</A>";
|
||||
|
||||
# If there are any dependencies, list them
|
||||
if ($bdep ne "" || $rdep ne "") {
|
||||
$data{$i} .= "<BR><I>Requires:</I> ";
|
||||
@dep = split(/ /, "$bdep $rdep");
|
||||
local($last) = '';
|
||||
foreach $j (sort @dep) {
|
||||
# If there are any dependencies, list them
|
||||
if ($bdep ne "" || $rdep ne "") {
|
||||
$data{$i} .= "<BR><I>Requires:</I> ";
|
||||
my @dep = split(/ /, "$bdep $rdep");
|
||||
my $last = '';
|
||||
foreach my $j (sort @dep) {
|
||||
next if $j eq $last;
|
||||
$last = $j;
|
||||
$data{$i} .= " <A HREF=\"##$j##.html#$j\">$j</A>,";
|
||||
}
|
||||
# remove the trailing comma
|
||||
chop $data{$i};
|
||||
}
|
||||
$data{$i} .= " <A HREF=\"##$j##.html#$j\">$j</A>,";
|
||||
}
|
||||
# remove the trailing comma
|
||||
chop $data{$i};
|
||||
}
|
||||
|
||||
# If the port is listed in more than one category, throw
|
||||
# in some cross references
|
||||
if ($#cat > 0) {
|
||||
$data{$i} .= "<BR><EM>Also listed in:</EM> ";
|
||||
foreach $j (@cat) {
|
||||
if ($j ne $i) {
|
||||
# If the port is listed in more than one category, throw
|
||||
# in some cross references
|
||||
if ($#cat > 0) {
|
||||
$data{$i} .= "<BR><EM>Also listed in:</EM> ";
|
||||
foreach my $j (@cat) {
|
||||
if ($j ne $i) {
|
||||
if ($j eq $cat[0]) {
|
||||
$data{$i} .= " <STRONG><A HREF=\"$j.html#$name\">\u$j</A></STRONG>,";
|
||||
}
|
||||
else {
|
||||
$data{$i} .= " <A HREF=\"$j.html#$name\">\u$j</A>,";
|
||||
}
|
||||
}
|
||||
}
|
||||
# remove the trailing comma
|
||||
chop($data{$i});
|
||||
}
|
||||
$data{$i} .= "<P></P></DD>\n"
|
||||
}
|
||||
}
|
||||
# remove the trailing comma
|
||||
chop($data{$i});
|
||||
}
|
||||
$data{$i} .= "<P></P></DD>\n"
|
||||
}
|
||||
|
||||
# Add an entry to the master index
|
||||
|
||||
# workaround for SGML bug, `--' is not allowed in comments
|
||||
local ($sname) = $name;
|
||||
my $sname = $name;
|
||||
$sname =~ s/--/-=/g;
|
||||
$master[$portnumber] =
|
||||
"<!-- $sname --><STRONG><A HREF=\"$cat[0].html#$name\">$name</A></STRONG> " .
|
||||
|
@ -217,65 +267,77 @@ sub main {
|
|||
$portnumber++;
|
||||
}
|
||||
|
||||
open(MOUTF, ">index.sgml");
|
||||
$moutf->open(">index.sgml");
|
||||
|
||||
&header(MOUTF, "FreeBSD Ports");
|
||||
# print MOUTF "<!--#include virtual=\"./ports.inc\" -->\n";
|
||||
print MOUTF "&blurb;";
|
||||
print MOUTF "<hr><P>There are currently $portnumber ports in the
|
||||
FreeBSD Ports Collection.<br> <A HREF=\"$baseFTP/ports.tar.gz\">Download
|
||||
a gzip'd tar file of all $portnumber ports</A> (about 25 megabytes) or
|
||||
browse the following categories:\n";
|
||||
header($moutf, "FreeBSD Ports");
|
||||
# print $moutf "<!--#include virtual=\"./ports.inc\" -->\n";
|
||||
print $moutf "&blurb;";
|
||||
print $moutf <<EOF;
|
||||
<HR>
|
||||
<H3>Current status</H3>
|
||||
<P>There are currently $portnumber ports in the FreeBSD Ports Collection.<BR>
|
||||
You may
|
||||
<A HREF="$baseFTP/ports.tar.gz">download a gzip'd tar file of all ports</A>
|
||||
(about 30 megabytes), view the
|
||||
<A HREF=\"master-index.html\">alphabetical list of all ports</A>,
|
||||
or browse the ports in the following categories:
|
||||
<A NAME=\"categories\"></A>
|
||||
</P>
|
||||
EOF
|
||||
|
||||
print MOUTF "<UL>\n";
|
||||
if ($portnumber eq '0') {
|
||||
print $moutf "<P>none found</P>\n";
|
||||
} else {
|
||||
foreach my $cg (@category_groups) {
|
||||
print $moutf "<H3>",$category_groups{$cg},"</H3>\n";
|
||||
print $moutf "<UL>\n";
|
||||
foreach my $key (sort(keys(%stats))) {
|
||||
next if ($category_description{$key}{group} ne $cg);
|
||||
# For the master file...
|
||||
print $moutf
|
||||
"<LI><A HREF=\"$key.html\">\u$key</A> <em>($stats{$key})</em>";
|
||||
if ($category_description{$key}{desc}) {
|
||||
print $moutf " -- " . $category_description{$key}{desc};
|
||||
}
|
||||
|
||||
@foos = sort(keys %stats);
|
||||
foreach $key (@foos) {
|
||||
# For the master file...
|
||||
print MOUTF
|
||||
"<LI><A HREF=\"$key.html\">\u$key</A> <em>($stats{$key})</em>";
|
||||
if ($category_description{$key}) {
|
||||
print MOUTF " -- " . $category_description{$key};
|
||||
# Someone forgot to add a category to the description file
|
||||
# or there is a typo in the category field.
|
||||
else {
|
||||
warn "No description found for category: ``$key''!\n";
|
||||
warn "Please fix me or send an E-Mail to doc\@FreeBSD.org\a\n";
|
||||
sleep(3);
|
||||
}
|
||||
print $moutf "</LI>\n";
|
||||
|
||||
# Create the category file
|
||||
$outf->open(">$key.sgml");
|
||||
header($outf, "FreeBSD Ports: \u$key");
|
||||
if ($category_description{$key}{desc}) {
|
||||
print $outf "<h3>", $category_description{$key}{desc}, "</h3>\n";
|
||||
}
|
||||
print $outf "<DL>\n";
|
||||
my $d = join("\n", sort(split(/\n/, $data{$key})));
|
||||
$d =~ s/##([^#]*)##/$catkey{$1}/g;
|
||||
print $outf $d;
|
||||
print $outf "</DL>\n";
|
||||
footer($outf, "<p></p><A HREF=\"index.html#categories\">Port Categories</A>" .
|
||||
" -- <A HREF=\"master-index.html\">Index</A>");
|
||||
$outf->close;
|
||||
}
|
||||
|
||||
# Someone forgot to add a category to the description file
|
||||
# or there is a typo in the category field.
|
||||
else {
|
||||
warn "No description found for category: ``$key''!\n";
|
||||
warn "Please fix me or send an E-Mail to doc\@FreeBSD.org\a\n";
|
||||
sleep(3);
|
||||
}
|
||||
print MOUTF "</LI>\n";
|
||||
|
||||
# Create the category file
|
||||
open(OUTF, ">$key.sgml");
|
||||
&header(OUTF, "FreeBSD Ports: \u$key");
|
||||
if ($category_description{$key}) {
|
||||
print OUTF "<h3>", $category_description{$key}, "</h3>\n";
|
||||
}
|
||||
print OUTF "<DL>\n";
|
||||
$d = join("\n", sort(split(/\n/, $data{$key})));
|
||||
$d =~ s/##([^#]*)##/$catkey{$1}/g;
|
||||
print OUTF $d;
|
||||
print OUTF "</DL>\n";
|
||||
&footer(OUTF, "<p></p><A HREF=\"index.html\">Port Categories</A>" .
|
||||
" -- <A HREF=\"master-index.html\">Index</A>");
|
||||
close(OUTF);
|
||||
|
||||
print $moutf "</UL>\n";
|
||||
}
|
||||
print MOUTF "</UL>\n";
|
||||
print MOUTF
|
||||
"<UL><LI><A HREF=\"master-index.html\">Alphabetical list of all $portnumber ports</A></LI></UL>\n";
|
||||
&footer(MOUTF, "");
|
||||
close(MOUTF);
|
||||
}
|
||||
|
||||
footer($moutf, "");
|
||||
$moutf->close;
|
||||
|
||||
# Create the master index file
|
||||
open(MINDEX, ">master-index.sgml");
|
||||
&header(MINDEX, "FreeBSD Ports Collection Index");
|
||||
print MINDEX "<P>\n";
|
||||
print MINDEX sort @master;
|
||||
print MINDEX "</P>";
|
||||
&footer(MINDEX, "<A HREF=\"index.html\">Port Categories</A>");
|
||||
close(MINDEX);
|
||||
$mindex->open(">master-index.sgml");
|
||||
header($mindex, "FreeBSD Ports Collection Index");
|
||||
print $mindex "<P>\n";
|
||||
print $mindex sort @master;
|
||||
print $mindex "</P>";
|
||||
footer($mindex, "<A HREF=\"index.html#categories\">Port Categories</A>");
|
||||
$mindex->close;
|
||||
close(INDEX);
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<!-- $FreeBSD: www/en/ports/ports.inc,v 1.66 2003/07/12 23:00:19 kris Exp $ -->
|
||||
<!-- $FreeBSD: www/en/ports/ports.inc,v 1.67 2003/08/03 12:08:38 kuriyama Exp $ -->
|
||||
<p>The FreeBSD Ports and Packages Collection offers a simple way for
|
||||
users and administrators to install applications. The ports
|
||||
collection has been <a
|
||||
|
@ -20,16 +20,20 @@ be committed.
|
|||
<p>Each ``port'' listed here
|
||||
contains any patches necessary to make the original application source
|
||||
code compile and run on FreeBSD. Installing an application is as
|
||||
simple as downloading the port, unpacking it and typing <tt>make</tt>
|
||||
in the port directory. For even greater convenience, you can simply
|
||||
install the <a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/ports/ports.tar.gz">
|
||||
entire ports hierarchy</a> at installation time (or use
|
||||
<a href="../doc/en_US.ISO8859-1/books/handbook/synching.html#CVSUP">CVSup</a> to track it on
|
||||
an ongoing basis) and have thousands of applications right at your
|
||||
simple as downloading the port, unpacking it and typing
|
||||
<a href="http://www.freebsd.org/cgi/man.cgi?query=make"><tt>make</tt></a>
|
||||
in the port directory. However, the most convenient (and common) method
|
||||
is to download the framework for the entire list of ports by
|
||||
installing the <a href="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/ports/ports.tar.gz">
|
||||
entire ports hierarchy</a> at FreeBSD installation time,
|
||||
and then have thousands of applications right at your
|
||||
fingertips.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Each port's <tt>Makefile</tt> automatically fetches the
|
||||
application source code, either from a local disk, CDROM or via ftp,
|
||||
application source code, either from a local disk, CDROM or via
|
||||
<a href="http://www.freebsd.org/cgi/man.cgi?query=ftp"><tt>ftp</tt></a>,
|
||||
unpacks it on your system, applies the patches, and compiles. If
|
||||
all went well, a simple <tt>make install</tt> will install the
|
||||
application and register it with the package system.</p>
|
||||
|
@ -37,16 +41,36 @@ application and register it with the package system.</p>
|
|||
<p>For most ports, a precompiled <tt>package</tt> also exists, saving
|
||||
the user the work of having to compile anything at all. Each port
|
||||
contains a link to its corresponding package and you may either simply
|
||||
download that file and then run the <strong>pkg_add</strong> command
|
||||
download that file and then run the
|
||||
<a href="http://www.freebsd.org/cgi/man.cgi?query=pkg_add"><tt>pkg_add</tt></a>
|
||||
command
|
||||
on it or you can simply grab the link location and hand it straight
|
||||
to <strong>pkg_add</strong> since it's capable of accepting FTP URLs as
|
||||
to <tt>pkg_add</tt> since it's capable of accepting FTP URLs as
|
||||
well as filenames.</p>
|
||||
|
||||
<p>For more information, see <a
|
||||
href="../doc/en_US.ISO8859-1/books/handbook/ports.html">Installing Applications: Packages and Ports</a>, a
|
||||
section of the <a href="../doc/en_US.ISO8859-1/books/handbook/index.html">FreeBSD Handbook</a>. For
|
||||
information about creating new ports, see the <a
|
||||
href="../doc/en_US.ISO8859-1/books/porters-handbook/index.html">Porter's Handbook</a>.</p>
|
||||
<hr>
|
||||
|
||||
<h3>Keeping up-to-date</h3>
|
||||
|
||||
<p>
|
||||
The ports listed on these web pages are continually being updated.
|
||||
It is strongly recommended that you refresh the entire collection
|
||||
together, as many ports depend on other parts of the tree, even
|
||||
where that might seem counterintuitive (e.g. <tt>japanese/</tt>.)
|
||||
</p>
|
||||
|
||||
<p>For more information about new, changed or removed ports/packages,
|
||||
or if you wish to search for a specific application to see if it's
|
||||
available as a port/package, please see the
|
||||
available as a port/package, you may browse the
|
||||
<a href="http://www.FreeBSD.org/cgi/ports.cgi">FreeBSD Ports Changes</a>
|
||||
page.</p>
|
||||
on this site; alternatively, you may wish to visit
|
||||
<a href="http://www.FreshPorts.org">FreshPorts.org</a>
|
||||
and either browse the site or subscribe to the lists hosted there.</p>
|
||||
|
||||
<FORM METHOD="GET" ACTION="http://www.FreeBSD.org/cgi/ports.cgi">
|
||||
Search for:
|
||||
|
@ -59,9 +83,3 @@ Search for:
|
|||
<INPUT TYPE="submit" VALUE="Submit">
|
||||
</FORM>
|
||||
|
||||
|
||||
<p>For more information about using ports, see <a
|
||||
href="../doc/en_US.ISO8859-1/books/handbook/ports.html">Installing Applications: Packages and Ports</a>, a
|
||||
section of the <a href="../doc/en_US.ISO8859-1/books/handbook/index.html">FreeBSD Handbook</a>. For
|
||||
information about creating new ports, see the <a
|
||||
href="../doc/en_US.ISO8859-1/books/porters-handbook/index.html">Porter's Handbook</a>.</p>
|
||||
|
|
Loading…
Reference in a new issue