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 current list of
categories and pick the ones that are suitable for
the port.
This list also determines where in the ports tree the port is imported. If there is more than one category here, the port files must be put in the subdirectory with the name of the first category. See below for more discussion about how to pick the right categories.
Here 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. They
are only used as secondary categories, and only for search
purposes.
For non-virtual categories, there is a one-line
description in COMMENT
in that
subdirectory's Makefile
.
分類 | 描述 | 註 |
---|---|---|
accessibility | Ports to help disabled users. | |
afterstep* | Ports to support the AfterStep window manager. | |
arabic | 阿拉伯文支援。 | |
archivers | Archiving tools. | |
astro | Astronomical ports. | |
audio | Sound support. | |
benchmarks | Benchmarking utilities. | |
biology | Biology-related software. | |
cad | Computer aided design tools. | |
chinese | 中文支援。 | |
comms | Communication software. | Mostly software to talk to the serial port. |
converters | Character code converters. | |
databases | 資料庫。 | |
deskutils | Things that used to be on the desktop before computers were invented. | |
devel | 開發公用程式。 | Do not put libraries here just because they are libraries. They should not be in this category unless they truly do not belong anywhere else. |
dns | DNS 相關軟體。 | |
docs* | Meta-ports for FreeBSD documentation. | |
editors | General editors. | Specialized editors go in the section for those
tools. For example, a mathematical-formula editor
will go in math , and have
editors as a second
category. |
elisp* | Emacs-lisp ports. | |
emulators | Emulators for other operating systems. | Terminal emulators do not
belong here. X-based ones go to
x11 and text-based ones to
either comms or
misc , depending on the exact
functionality. |
finance | Monetary, financial and related applications. | |
french | 法文支援。 | |
ftp | FTP client and server utilities. | If the port speaks both FTP
and HTTP, put it
in ftp with a secondary
category of www . |
games | 遊戲。 | |
geography* | 地理相關軟體。 | |
german | 德文支援。 | |
gnome* | Ports from the GNOME Project. | |
gnustep* | Software related to the GNUstep desktop environment. | |
graphics | 繪圖公用程式。 | |
hamradio* | Software for amateur radio. | |
haskell* | Software related to the Haskell language. | |
hebrew | 希伯來文支援。 | |
hungarian | 匈牙利文支援。 | |
ipv6* | IPv6 相關軟體。 | |
irc | Internet Relay Chat utilities. | |
japanese | 日文支援。 | |
java | Software related to the Java™ language. | The java category must not
be the only one for a port. Save for ports directly
related to the Java language, porters are also
encouraged not to use java as the
main category of a port. |
kde* | Ports from the KDE Project. | |
kld* | Kernel loadable modules. | |
korean | 韓文支援。 | |
lang | 程式語言。 | |
linux* | Linux 應用程式和支援的公用程式 | |
lisp* | Software related to the Lisp language. | |
mail | 郵件軟體 | |
math | Numerical computation software and other utilities for mathematics. | |
mbone* | MBone 應用程式。 | |
misc | 其他公用程式 | Things that do not belong anywhere
else. If at all possible, try to find a better
category for the port than misc ,
as ports tend to be overlooked in here. |
multimedia | 多媒體軟體。 | |
net | Miscellaneous networking software. | |
net-im | 即時通訊軟體。 | |
net-mgmt | 網路管理軟體。 | |
net-p2p | 點對點 (Peer to peer) 網路應用程式。 | |
news | USENET 新聞軟體。 | |
palm | Software support for the Palm™ series. | |
parallel* | Applications dealing with parallelism in computing. | |
pear* | Ports related to the Pear PHP framework. | |
perl5* | Ports that require Perl version 5 to run. | |
plan9* | Various programs from Plan9. | |
polish | 波蘭文支援。 | |
ports-mgmt | Ports for managing, installing and developing FreeBSD ports and packages. | |
portuguese | 葡萄牙文支援。 | |
print | 列印軟體。 | Desktop publishing tools (previewers, etc.) belong here too. |
python* | Software related to the Python language. | |
ruby* | Software related to the Ruby language. | |
rubygems* | Ports of RubyGems packages. | |
russian | 俄文支援。 | |
scheme* | Software related to the Scheme language. | |
science | Scientific ports that do not fit into other
categories such as astro ,
biology and
math . | |
security | Security utilities. | |
shells | Command line shells. | |
spanish* | 西班牙文支援。 | |
sysutils | 系統公用程式。 | |
tcl* | Ports that use Tcl to run. | |
textproc | Text processing utilities. | It does not include desktop publishing tools,
which go to print . |
tk* | Ports that use Tk to run. | |
ukrainian | 烏克蘭文支援 | |
vietnamese | 越南文支援。 | |
windowmaker* | Ports to support the WindowMaker window manager. | |
www | Software related to the World Wide Web. | HTML language support belongs here too. |
x11 | X Window 系統和他的朋友們。 | This category is only for software that directly
supports the window system. Do not put regular X
applications here. Most of them go into other
x11-* categories (see
below). |
x11-clocks | X11 時鐘。 | |
x11-drivers | X11 驅動程式。 | |
x11-fm | X11 file managers. | |
x11-fonts | X11 fonts and font utilities. | |
x11-servers | X11 伺服器。 | |
x11-themes | X11 佈景主題。 | |
x11-toolkits | X11 toolkits. | |
x11-wm | X11 window managers. | |
xfce* | Ports related to the Xfce desktop environment. | |
zope* | Zope support. |
As many of the categories overlap, choosing which of the categories will be the primary category of the port can be tedious. There are several rules that govern this issue. Here is the list of priorities, in decreasing order of precedence:
The first category must be a physical category (see above). This is necessary to make the packaging work. Virtual categories and physical categories may be intermixed after that.
Language specific categories always come first. For
example, if the port installs Japanese X11 fonts, then
the CATEGORIES
line would read
japanese x11-fonts
.
Specific categories are listed before less-specific
ones. For instance, an HTML editor is listed as
www editors
, not the other way
around. Also, do not list
net
when the port belongs to any of
irc
, mail
,
news
, security
,
or www
, as net
is included implicitly.
x11
is used as a secondary
category only when the primary category is a natural
language. In particular, do not put
x11
in the category line for X
applications.
Emacs modes are
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 goes into
lang
.
Ports installing loadable kernel modules also
have the virtual category kld
in
their CATEGORIES
line. This is one of
the things handled automatically by adding
USES=kmod
.
misc
does not appear with any
other non-virtual category. If there is
misc
with something else in
CATEGORIES
, that means
misc
can safely be deleted and the port
placed only in the other subdirectory.
If the port truly does not belong anywhere else,
put it in misc
.
If the category is not clearly defined, please put a comment to that effect in the port submission in the bug database so we can discuss it before we import it. As a committer, send a note to the FreeBSD ports mailing list so we can discuss it first. Too often, new ports are imported to the wrong category only to be moved right away. This causes unnecessary and undesirable bloat in the master source repository.
As the Ports Collection has grown over time, various new categories have been introduced. New categories can either be virtual categories—those that do not have a corresponding subdirectory in the ports tree— or physical categories—those that do. This section discusses the issues involved in creating a new physical category. Read it thouroughly before proposing a new one.
Our existing practice has been to avoid creating a new physical category unless either a large number of ports would logically belong to it, or the ports that would belong to it are a logically distinct group that is of limited general interest (for instance, categories related to spoken human languages), or preferably both.
The rationale for this is that such a change creates a fair amount of work for both the committers and also for all users who track changes to the Ports Collection. In addition, proposed category changes just naturally seem to attract controversy. (Perhaps this is because there is no clear consensus on when a category is “too big”, nor whether categories should lend themselves to browsing (and thus what number of categories would be an ideal number), and so forth.)
步驟如下:
Propose the new category on FreeBSD ports mailing list. Include a detailed rationale for the new category, including why the existing categories are not sufficient, and the list of existing ports proposed to move. (If there are new ports pending in Bugzilla that would fit this category, list them too.) If you are the maintainer and/or submitter, respectively, mention that as it may help the case.
Participate in the discussion.
If it seems that there is support for the idea, file a PR which includes both the rationale and the list of existing ports that need to be moved. Ideally, this PR would also include these patches:
Makefile
s for the new ports
once they are repocopied
Makefile
for the new
category
Makefile
for the old ports'
categories
Makefile
s for ports that
depend on the old ports
(for extra credit, include the other files that have to change, as per the procedure in the Committer's Guide.)
Since it affects the ports infrastructure and involves
moving and patching many ports but also possibly running
regression tests on the build cluster, assign the PR to
the Ports Management Team <portmgr@FreeBSD.org>
.
If that PR is approved, a committer will need to follow the rest of the procedure that is outlined in the Committer's Guide.
Proposing a new virtual category is similar to the
above but much less involved, since no ports will actually
have to move. In this case, the only patches to include in
the PR would be those to add the new category to
CATEGORIES
of the affected ports.
Occasionally someone proposes reorganizing the categories with either a 2-level structure, or some other kind of keyword structure. To date, nothing has come of any of these proposals because, while they are very easy to make, the effort involved to retrofit the entire existing ports collection with any kind of reorganization is daunting to say the very least. Please read the history of these proposals in the mailing list archives before posting this idea. Furthermore, be prepared to be challenged to offer a working prototype.
本文及其他文件,可由此下載: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/。
若有 FreeBSD 方面疑問,請先閱讀
FreeBSD 相關文件,如不能解決的話,再洽詢
<questions@FreeBSD.org>。
關於本文件的問題,請洽詢
<doc@FreeBSD.org>。