diff --git a/en/ports/Makefile b/en/ports/Makefile index 3645e30baa..cac71c8f53 100644 --- a/en/ports/Makefile +++ b/en/ports/Makefile @@ -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" 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,84 +1,107 @@ -#!/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"; @@ -88,14 +111,13 @@ sub packages_exist { 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"; @@ -103,23 +125,52 @@ sub category_description { return 1; }; - local($category, $description); while(

) { # 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(

) { + # 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; @@ -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} .= "

$name "; @@ -162,54 +212,54 @@ sub main { $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}; - } + $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) { + # 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 " . @@ -217,65 +267,77 @@ sub main { $portnumber++; } - open(MOUTF, ">index.sgml"); + $moutf->open(">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"; + 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 - print MOUTF "
    \n"; + 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}; + } - @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}; + # 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 + $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; } - - # 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"; - } - 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,4 +1,4 @@ - +

The FreeBSD Ports and Packages Collection offers a simple way for users and administrators to install applications. The ports collection has been 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.

@@ -37,16 +41,36 @@ 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: @@ -59,9 +83,3 @@ 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.