When a package is created, it is put under /usr/ports/packages/All and links are made from one or more subdirectories of /usr/ports/packages. The names of these subdirectories are specified by the variable CATEGORIES. It is intended to make life easier for the user when he is wading through the pile of packages on the FTP site or the CDROM. Please take a look at the existing categories and pick the ones that are suitable for your port.
This list also determines where in the ports tree the port is imported. If you put more than one category here, it is assumed that the port files will be put in the subdirectory with the name in the first category. See the categories section for more discussion about how to pick the right categories.
If your port truly belongs to something that is different from all the existing ones, you can even create a new category name. In that case, please send mail to the FreeBSD ports mailing list <freebsd-ports@FreeBSD.org> to propose a new category.
First, this is the current list of port categories. Those marked with an asterisk (*) are virtual categories--those that do not have a corresponding subdirectory in the ports tree.
Note: For non-virtual categories, you will find a one-line description in the pkg/COMMENT file in that subdirectory (e.g., archivers/pkg/COMMENT).
|afterstep*||Ports to support the AfterStep window manager.|
|cad||Computer aided design tools.|
|chinese||Chinese language support.|
|comms||Communication software. Mostly software to talk to your serial port.|
|converters||Character code converters.|
|deskutils||Things that used to be on the desktop before computers were invented.|
|devel||Development utilities. Do not put libraries here just because they are libraries--unless they truly do not belong anywhere else, they should not be in this category.|
|editors||General editors. Specialized editors go in the section for those tools (e.g., a mathematical-formula editor will go in math).|
|emulators||Emulators for other operating systems. Terminal emulators do not belong here--X-based ones should go to x11 and text-based ones to either comms or misc, depending on the exact functionality.|
|french||French language support.|
|ftp||FTP client and server utilities. If your port speaks both FTP and HTTP, put it in ftp with a secondary category of www.|
|german||German language support.|
|gnome*||Ports from the GNU Object Model Environment (GNOME) Project.|
|hebrew||Hebrew language support.|
|ipv6*||IPv6 related software.|
|irc||Internet Relay Chat utilities.|
|japanese||Japanese language support.|
|java||Java language support.|
|kde*||Ports from the K Desktop Environment (KDE) Project.|
|korean||Korean language support.|
|linux*||Linux applications and support utilities.|
|math||Numerical computation software and other utilities for mathematics.|
|misc||Miscellaneous utilities--basically things that do not belong anywhere else. This is the only category that should not appear with any other non-virtual category. If you have misc with something else in your CATEGORIES line, that means you can safely delete misc and just put the port in that other subdirectory!|
|net||Miscellaneous networking software.|
|news||USENET news software.|
|offix*||Ports from the OffiX suite.|
|palm||Software support for the 3Com Palm(tm) series.|
|perl5*||Ports that require perl version 5 to run.|
|picobsd||Ports to support PicoBSD.|
|plan9*||Various programs from Plan9.|
|Printing software. Desktop publishing tools (previewers, etc.) belong here too.|
|python*||Software written in python.|
|ruby*||Software written in ruby.|
|russian||Russian language support.|
|science||Scientific ports that don't fit into other categories such as astro, biology and math.|
|shells||Command line shells.|
|tcl76*||Ports that use Tcl version 7.6 to run.|
|tcl80*||Ports that use Tcl version 8.0 to run.|
|tcl81*||Ports that use Tcl version 8.1 to run.|
|tcl82*||Ports that use Tcl version 8.2 to run.|
|tcl83*||Ports that use Tcl version 8.3 to run.|
|textproc||Text processing utilities. It does not include desktop publishing tools, which go to print.|
|tk42*||Ports that use Tk version 4.2 to run.|
|tk80*||Ports that use Tk version 8.0 to run.|
|tk81*||Ports that use Tk version 8.1 to run.|
|tk82*||Ports that use Tk version 8.2 to run.|
|tk83*||Ports that use Tk version 8.3 to run.|
|tkstep80*||Ports that use TkSTEP version 8.0 to run.|
|ukrainian||Ukrainian language support.|
|vietnamese||Vietnamese language support.|
|windowmaker*||Ports to support the WindowMaker window manager|
|www||Software related to the World Wide Web. HTML language support belongs here too.|
|x11||The X Window System and friends. This category is only for software that directly supports the window system. Do not put regular X applications here. If your port is an X application, define USE_XLIB (implied by USE_IMAKE) and put it in the appropriate categories. Also, many of them go into other x11-* categories (see below).|
|x11-fm||X11 file managers.|
|x11-fonts||X11 fonts and font utilities.|
|x11-wm||X11 window managers.|
As many of the categories overlap, you often have to choose which of the categories should be the primary category of your port. There are several rules that govern this issue. Here is the list of priorities, in decreasing order of precedence:
Language specific categories always come first. For example, if your port installs Japanese X11 fonts, then your CATEGORIES line would read japanese x11-fonts.
Specific categories win over less-specific ones. For instance, an HTML editor should be listed as www editors, not the other way around. Also, you do not need to list net when the port belongs to any of irc, mail, mbone, news, security, or www.
x11 is used as a secondary category only when the primary category is a natural language. In particular, you should not put x11 in the category line for X applications.
Emacs modes should be placed in the same ports category as the application supported by the mode, not in editors. For example, an Emacs mode to edit source files of some programming language should go into lang.
If your port truly does not belong anywhere else, put it in misc.
If you are not sure about the category, please put a comment to that effect in your send-pr(1) submission so we can discuss it before we import it. If you are a committer, send a note to the FreeBSD ports mailing list <freebsd-ports@FreeBSD.org> so we can discuss it first--too often new ports are imported to the wrong category only to be moved right away.