diff --git a/en/ports/Makefile b/en/ports/Makefile index 3645e30baa..cac71c8f53 100644 --- a/en/ports/Makefile +++ b/en/ports/Makefile @@ -1,83 +1,83 @@ -# $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" .endif .if exists(../Makefile.inc) .include "../Makefile.inc" .endif .if exists(Makefile.inc) .include "Makefile.inc" .endif FETCH_OPT?= -am # # Force NO_TIDY for the ports web pages, since it takes a long time to # run tidy on these huge HTML files, and the files are valid HTML when # generated by portindex, even without tidy. # NO_TIDY= YES .if defined(PINDEX_OVERRIDE) ${INDEX}: ${PINDEX_OVERRIDE} ${CP} ${PINDEX_OVERRIDE} ${INDEX} .elif defined(NOPORTSNET) ${INDEX}: $${PORTSBASE}/${PINDEX} ${CP} ${PORTSBASE}/${PINDEX} ${INDEX} .else ${INDEX}: ${FETCH} ${FETCH_OPT} ${INDEXURI} .endif # build the list of available packages only on the # main FreeBSD machines hostname!= hostname # # don't build the packages links if NO_PACKAGES_LINK # is set and not empty. # # XXX: you can set NO_PACKAGES_LINK to your hostname to # test the packages link generation # .if defined(NO_PACKAGES_LINK) && !empty(NO_PACKAGES_LINK) hostname= ${NO_PACKAGES_LINK} .endif packages.exists: .if ${hostname} == "hub.freebsd.org" || ${hostname} == "freefall.freebsd.org" || ${hostname} == "www.freebsd.org" @if ${SH} ${.CURDIR}/packages > ${.TARGET}.temp; then \ ${MV} ${.TARGET}.temp ${.TARGET}; \ else \ ${RM} ${.TARGET}.temp; ${TOUCH} ${.TARGET}; \ fi; .else ${TOUCH} ${.TARGET} .endif Makefile.gen: index.sgml .NOTMAIN ${ECHO_CMD} DOCS= *.sgml > Makefile.gen .if defined(NO_TIDY) ${ECHO_CMD} NO_TIDY=${NO_TIDY} >> Makefile.gen .endif index.sgml: ${INDEX} categories packages.exists portindex ports.inc .NOTMAIN ${RM} -f *.sgml ${PORTINDEX} ${INDEX} ${.CURDIR} install: all beforeinstall all install clean: cd ${.CURDIR}; \ ${MAKE} ${MAKEFLAGS} -f ${.CURDIR}/Makefile.inc0 ${.TARGET} .if defined(WITH_PORTS_GROWTH) cd growth; \ ${MAKE} ${MAKEFLAGS} ${.TARGET} 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" diff --git a/en/ports/categories b/en/ports/categories index 53461c44c4..fbc57b85e3 100755 --- a/en/ports/categories +++ b/en/ports/categories @@ -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 diff --git a/en/ports/portindex b/en/ports/portindex index 86ab1ff4e9..47eb183341 100755 --- a/en/ports/portindex +++ b/en/ports/portindex @@ -1,281 +1,343 @@ -#!/usr/bin/perl +#!/usr/bin/perl -w # convert a ports INDEX file to HTML # # by John Fieber # 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 "\n"; - print $fh "$today\">\n"; - print $fh "\n"; - print $fh "\n"; - print $fh " %navincludes;\n"; - print $fh "\n"; - print $fh "\n"; - print $fh "%includes;\n"; - print $fh "]>\n"; - print $fh "&header;\n"; + my $fh = shift; + my $htext = shift; + #local($fh, $htext) = @_; + print $fh < +$today"> + + + %navincludes; + + +%includes; +]> +&header; +EOF } sub footer { - local ($fh, $ftext) = @_; - print $fh "\n$ftext\n"; - print $fh "&footer;\n"; - print $fh "\n\n"; + my $fh = shift; + my $ftext = shift; + #local ($fh, $ftext) = @_; +print $fh < + +EOF } sub packages_exist { - local($file, *p) = @_; + my $file=shift; + my %p; + #local($file, *p) = @_; open(P, $file) || do { warn "open $file: $!\n"; warn "Cannot create packages links\n"; return 1; }; while(

) { 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"; warn "Cannot find category description\n"; return 1; }; - local($category, $description); while(

) { # ignore comments next if /^\s*#/; + if (/^\s*([^,]+),\s*"([^"]+)",([A-Z]+)/) { + $category_description{$1}{desc}=$2; + $category_description{$1}{group}=$3; + } + } + close P; +} - ($category, $description) = /^\s*"([^"]+)",\s*"([^"]+)/; - $p{$category} = $description; +sub category_groups { + my $file = shift; + + open(P, $file) || do { + warn "open $file: $!\n"; + warn "Cannot find category groups\n"; + return 1; + }; + + while(

) { + # 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 = ":"; + my $sep = ":"; + + my $moutf = new IO::File; + my $outf = new IO::File; + my $mindex = new IO::File; open(INDEX, $ARGV[0]); + $portnumber = "0"; while () { chop; s/&/&/g; 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} .= "

$name "; $data{$i} .= "
$desc
Long description"; if ($packages{"$name.tbz"}) { $data{$i} .= qq{ | Package}; } elsif ($packages{"$name.tgz"}) { $data{$i} .= qq{ | Package}; } $data{$i} .= qq{ | Sources}; - if ($www ne "") { + if ($www ne "") { $data{$i} .= qq{ | Main Web Site}; - } + } - $ownerurl = $owner; - $ownerurl =~ s/<//g; + my $ownerurl = $owner; + $ownerurl =~ s/<//g; $data{$i} .= "
Maintained by: $owner"; - # If there are any dependencies, list them - if ($bdep ne "" || $rdep ne "") { - $data{$i} .= "
Requires: "; - @dep = split(/ /, "$bdep $rdep"); - local($last) = ''; - foreach $j (sort @dep) { + # If there are any dependencies, list them + if ($bdep ne "" || $rdep ne "") { + $data{$i} .= "
Requires: "; + my @dep = split(/ /, "$bdep $rdep"); + my $last = ''; + foreach my $j (sort @dep) { next if $j eq $last; $last = $j; - $data{$i} .= " $j,"; - } - # 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} .= "
Also listed in: "; - foreach $j (@cat) { - if ($j ne $i) { + $data{$i} .= " $j,"; + } + # 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} .= "
Also listed in: "; + foreach my $j (@cat) { + if ($j ne $i) { if ($j eq $cat[0]) { $data{$i} .= " \u$j,"; } else { $data{$i} .= " \u$j,"; } - } - } - # remove the trailing comma - chop($data{$i}); - } - $data{$i} .= "

\n" + } + } + # remove the trailing comma + chop($data{$i}); + } + $data{$i} .= "

\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] = "$name " . " -- $desc
\n"; $portnumber++; } - open(MOUTF, ">index.sgml"); - - &header(MOUTF, "FreeBSD Ports"); -# print MOUTF "\n"; - print MOUTF "&blurb;"; - print MOUTF "

There are currently $portnumber ports in the -FreeBSD Ports Collection.
Download -a gzip'd tar file of all $portnumber ports (about 25 megabytes) or -browse the following categories:\n"; - - print MOUTF "

    \n"; - - @foos = sort(keys %stats); - foreach $key (@foos) { - # For the master file... - print MOUTF - "
  • \u$key ($stats{$key})"; - if ($category_description{$key}) { - print MOUTF " -- " . $category_description{$key}; - } + $moutf->open(">index.sgml"); + + header($moutf, "FreeBSD Ports"); +# print $moutf "\n"; + print $moutf "&blurb;"; + print $moutf < +

    Current status

    +

    There are currently $portnumber ports in the FreeBSD Ports Collection.
    +You may +download a gzip'd tar file of all ports +(about 30 megabytes), view the +alphabetical list of all ports, +or browse the ports in the following categories: + +

    +EOF + + if ($portnumber eq '0') { + print $moutf "

    none found

    \n"; + } else { + foreach my $cg (@category_groups) { + print $moutf "

    ",$category_groups{$cg},"

    \n"; + print $moutf "
      \n"; + foreach my $key (sort(keys(%stats))) { + next if ($category_description{$key}{group} ne $cg); + # For the master file... + print $moutf + "
    • \u$key ($stats{$key})"; + if ($category_description{$key}{desc}) { + print $moutf " -- " . $category_description{$key}{desc}; + } - # 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 "
    • \n"; + # 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 "\n"; - # Create the category file - open(OUTF, ">$key.sgml"); - &header(OUTF, "FreeBSD Ports: \u$key"); - if ($category_description{$key}) { - print OUTF "

      ", $category_description{$key}, "

      \n"; + # Create the category file + $outf->open(">$key.sgml"); + header($outf, "FreeBSD Ports: \u$key"); + if ($category_description{$key}{desc}) { + print $outf "

      ", $category_description{$key}{desc}, "

      \n"; + } + print $outf "
      \n"; + my $d = join("\n", sort(split(/\n/, $data{$key}))); + $d =~ s/##([^#]*)##/$catkey{$1}/g; + print $outf $d; + print $outf "
      \n"; + footer($outf, "

      Port Categories" . + " -- Index"); + $outf->close; } - print OUTF "
      \n"; - $d = join("\n", sort(split(/\n/, $data{$key}))); - $d =~ s/##([^#]*)##/$catkey{$1}/g; - print OUTF $d; - print OUTF "
      \n"; - &footer(OUTF, "

      Port Categories" . - " -- Index"); - close(OUTF); - + print $moutf "
    \n"; } - print MOUTF "
\n"; - print MOUTF - "\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 "

\n"; - print MINDEX sort @master; - print MINDEX "

"; - &footer(MINDEX, "Port Categories"); - close(MINDEX); + $mindex->open(">master-index.sgml"); + header($mindex, "FreeBSD Ports Collection Index"); + print $mindex "

\n"; + print $mindex sort @master; + print $mindex "

"; + footer($mindex, "Port Categories"); + $mindex->close; close(INDEX); } diff --git a/en/ports/ports.inc b/en/ports/ports.inc index 31ba96fd32..4720cea129 100644 --- a/en/ports/ports.inc +++ b/en/ports/ports.inc @@ -1,67 +1,85 @@ - +

The FreeBSD Ports and Packages Collection offers a simple way for users and administrators to install applications. The ports collection has been growing at a tremendous rate.

The Ports Collection supports the latest release on the FreeBSD-CURRENT and FreeBSD-STABLE branches. Older releases are not supported and may or may not work correctly with an up-to-date ports collection. Over time, changes to the ports collection may rely on features that are not present in older releases. Wherever convenient, we try not to gratuitously break support for recent releases, but it is sometimes unavoidable. When this occurs, patches contributed by the user community to maintain support for older releases will usually be committed.

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 make -in the port directory. For even greater convenience, you can simply -install the -entire ports hierarchy at installation time (or use -CVSup to track it on -an ongoing basis) and have thousands of applications right at your +simple as downloading the port, unpacking it and typing +make +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 +entire ports hierarchy at FreeBSD installation time, +and then have thousands of applications right at your fingertips. +

+

Each port's Makefile 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 +ftp, unpacks it on your system, applies the patches, and compiles. If all went well, a simple make install will install the application and register it with the package system.

For most ports, a precompiled package 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 pkg_add command +download that file and then run the +pkg_add +command on it or you can simply grab the link location and hand it straight -to pkg_add since it's capable of accepting FTP URLs as +to pkg_add since it's capable of accepting FTP URLs as well as filenames.

+

For more information, see Installing Applications: Packages and Ports, a +section of the FreeBSD Handbook. For +information about creating new ports, see the Porter's Handbook.

+
+ +

Keeping up-to-date

+ +

+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. japanese/.) +

+

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 FreeBSD Ports Changes -page.

+on this site; alternatively, you may wish to visit +FreshPorts.org +and either browse the site or subscribe to the lists hosted there.

Search for:
- -

For more information about using ports, see Installing Applications: Packages and Ports, a -section of the FreeBSD Handbook. For -information about creating new ports, see the Porter's Handbook.