As you already know, ports are classified in several categories. But for this to work, it is important that porters and users understand what each category is and how we decide what to put in each 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 that 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.
archiversArchiving tools.
astroAstronomical ports.
audioSound support.
benchmarksBenchmarking utilities.
biologyBiology-related software.
cadComputer aided design tools.
chineseChinese language support.
commsCommunication software. Mostly software to talk to your serial port.
convertersCharacter code converters.
databasesDatabases.
deskutilsThings that used to be on the desktop before computers were invented.
develDevelopment utilities. Do not put libraries here just because they are libraries -- unless they truly don't belong to anywhere else, they shouldn't be in this category.
editorsGeneral editors.  Specialized editors
go in the section for those tools (e.g., a
mathematical-formula editor will go in math).
elispEmacs-lisp ports.
emulatorsEmulators 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.
gamesGames.
germanGerman language support.
graphicsGraphics utilities.
japaneseJapanese language support.
kde*Ports that form the K Desktop Environment (kde).
koreanKorean language support.
langProgramming languages.
mailMail software.
mathNumerical computation software and other utilities for mathematics.
mboneMBone applications.
miscMiscellaneous utilities -- basically
things that doesn't belong to 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! :)
netMiscellaneous networking software.
newsUSENET news software.
offix*Ports from the OffiX suite.
palmSoftware support for the 3Com Palm(tm) series.
perl5*Ports that require perl version 5 to run.
plan9*Various programs from Plan9.
printPrinting software. Desktop publishing tools (previewers, etc.) belong here too.
python*Software written in python.
russianRussian language support.
securitySecurity utilities.
shellsCommand line shells.
sysutilsSystem utilities.
tcl75*Ports that use tcl version 7.5 to run.
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.
textprocText processing utilities.  It does
not include desktop publishing tools, which go to
print.
tk41*Ports that use tk version 4.1 to run.
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.
vietnameseVietnamese language support.
windowmaker*Ports to support the WindowMaker window manager.
wwwSoftware related to the World Wide Web. HTML language support belong here too.
x11The X window system and friends.  This
category is only for software that directly support 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 appropriate categories.
Also, many of them go into other x11-* categories (see
below).
x11-clocksX11 clocks.
x11-fmX11 file managers.
x11-fontsX11 fonts and font utilities.
x11-toolkitsX11 toolkits.
x11-wmX11 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.
CATEGORIES line should read `japanese
x11-fonts'.
www
editors', not the other way around.  Also, you don't
need to list net when the port belongs to either of
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.
misc.If you are not sure about the category, please put a
comment to that effect in your send-pr submission so we
can discuss it before importing it.  (If you are a
committer, send a note to FreeBSD ports mailing list
<freebsd-ports@FreeBSD.ORG> so we can discuss it
first -- too often new ports are imported to a wrong
category only to be moved right away.)