5.3. Разделение по категориям

5.3.1. CATEGORIES

В процессе создания пакета он помещается в каталог /usr/ports/packages/All, а в одном или более подкаталогов из /usr/ports/packages создаются на него ссылки. Имена этих подкаталогов определяются переменной CATEGORIES. Такая схема нужна для облегчения жизни пользователя, когда он сталкивается с массой пакетов на FTP-сервере или компакт-диске. Пожалуйста, посмотрите на список существующих категорий и выберите те из них, которые более всего подходят к вашему порту.

Этот список также определяет, куда в дереве портов будет помещен порт. Если вы укажете здесь более одной категории, то предполагается, что файлы порта будут помещены в подкаталог с именем первой категории. Посмотрите раздел о категориях для получения подробной информации о том, как правильно выбрать категории.

Если ваш порт действительно относится к чему-то, что абсолютно не имеет отношения ни к одной из существующих категорий, вы можете даже создать новую категорию. В этом случае, пожалуйста, пошлите письмо с вашим предложением на адрес Список рассылки, посвящённый Портам FreeBSD. Однако, вообще говоря, пока не наберётся более чем достаточного количества портов, которые можно отнести к предлагаемой вами категории, ваша идея будет отвергаться.

Замечание: Время от времени кто-нибудь предлагает произвести реорганизацию категорий либо до двухуровневой, либо другого типа на основе ключевых слов. На данный момент из этих предложений ничего не получилось, потому что, хотя они просты в реализации, но предполагаемая переделка всей коллекции портов по меньшей мере приводит в уныние. Пожалуйста, прочтите историю этих предложений в архивах рассылок перед тем, как присылать свои соображения; более того, вы должны быть готовы представить работающий прототип.

5.3.2. Текущий список категорий

Вот текущий список категорий. Те, которые отмечены звёздочкой (*), являются виртуальными категориями--они не имеют собственного подкаталога в дереве портов. Они используются только в качестве вторичных категорий, и только для поиска.

Замечание: Для каждой виртуальной категории имеется файл pkg/COMMENT с ее однострочным описанием в соответствующем подкаталоге (например, archivers/pkg/COMMENT).

Категория Описание Примечания
accessibility Порты для помощи пользователям с ограниченными возможностями.
afterstep* Порты, поддерживающие менеджер окон AfterStep.
arabic Поддержка арабского языка.
archivers Инструменты для работы с архивами.
astro Приложения, связанные с астрономией.
audio Поддержка работы со звуком.
benchmarks Утилиты для измерения производительности системы.
biology Программное обеспечение, связанное с биологией.
cad Инструменты Систем Автоматизированного Проектирования.
chinese Поддержка китайского языка.
comms Коммуникационное программное обеспечение. В основном программы для работы с последовательным портом.
converters Утилиты для преобразования символьных форматов.
databases Базы данных.
deskutils То, что было на столе до изобретения компьютеров.
devel Утилиты для разработки программного обеспечения. Не помещайте сюда библиотеки просто потому что это библиотеки--если они подпадают под какую-то другую категорию, то их быть здесь не должно.
dns Программное обеспечение для работы с DNS.
editors Редакторы общего назначения. Специализированные редакторы относят к разделу для соответствующих инструментов (например, редактор математических формул попадает в категорию math).
elisp* Порты для Emacs lisp.
emulators Эмуляторы других операционных систем. Эмуляторы терминалов сюда не относятся--те, которые разработаны для X, должны быть в категории x11, а текстовые в comms или misc, в зависимости от конкретного их предназначения.
finance Приложения для работы с деньгами, финансами и всем, что с этим связано.
french Поддержка французского языка.
ftp Клиенты и серверы FTP. Если ваш порт понимает как FTP, так и HTTP, поместите его в категорию ftp и укажите вторичную категорию www.
games Игры.
german Поддержка немецкого языка.
gnome* Порты Проекта GNOME.
graphics Графические утилиты.
haskell* Программное обеспечение, связанное с языком Haskell.
hebrew Поддержка иврита.
hungarian Поддержка венгерского языка.
ipv6* Программное обеспечение, связанное с IPv6.
irc Утилиты для работы с Internet Relay Chat.
japanese Поддержка японского языка.
java Программное обеспечение, связанное с языком Java.
kde* Порты проекта K Desktop Environment (KDE).
korean Поддержка корейского языка.
lang Языки программирования.
linux* Linux приложения и утилиты.
lisp* Программное обеспечение, связанное с языком Lisp.
mail Программы для работы с электронной почтой.
math Программное обеспечение для численных вычислений и другие утилиты, связанные с математикой.
mbone Приложения для MBone.
misc Различные утилиты В основном то, что не попадает в другие категории. Это единственная категория, которая не должна указываться вместе с любой другой невиртуальной категорией. Если вы указываете misc вместе с чем-то ещё в строке CATEGORIES, это значит, что вы можете спокойно удалить misc и просто поместить порт в этот другой подкаталог! Если это возможно, попробуйте найти более подходящую, чем misc, категорию для вашего порта, так как здесь порты теряются.
multimedia Программное обеспечение для работы с мультимедиа.
net Различное сетевое программное обеспечение.
net-mgmt Программное обеспечение для сетевого управления.
news Программное обеспечение для работы с конференциями USENET.
offix* Порты из пакета OffiX.
palm Программная поддержка Palm™.
parallel* Приложения, связанные с параллельными вычислениями.
pear* Порты, относящиеся к технологии Pear PHP.
perl5* Порты, которым для работы требуется Perl версии 5.
picobsd Порты для поддержки PicoBSD.
plan9* Различные программы из Plan9.
polish Поддержка польского языка.
portuguese Поддержка португальского языка.
print Программное обеспечение для печати. Инструменты для вёрстки (просмотрщики и тому подобное) тоже относятся сюда.
python* Программное обеспечение, связанное с языком Python.
ruby* Программное обеспечение, связанное с языком Ruby.
russian Поддержка русского языка.
science Научные программы, которые не подпадают под другие категории, скажем, astro, biology или math.
security Программы, обеспечивающие безопасность системы.
shells Различные командные процессоры.
sysutils Системные утилиты.
tcl76* Порты, которым для работы нужен Tcl версии 7.6.
tcl80* Порты, которым для работы нужен Tcl версии 8.0.
tcl81* Порты, которым для работы нужен Tcl версии 8.1.
tcl82* Порты, которым для работы нужен Tcl версии 8.2.
tcl83* Порты, которым для работы нужен Tcl версии 8.3.
textproc Утилиты для обработки текстов. Инструменты для вёрстки помещаются в категорию print, а не сюда.
tk42* Порты, которым для работы нужен Tk версии 4.2.
tk80* Порты, которым для работы нужен Tk версии 8.0.
tk81* Порты, которым для работы нужен Tk версии 8.1.
tk82* Порты, которым для работы нужен Tk версии 8.2.
tk83* Порты, которым для работы нужен Tk версии 8.3.
tkstep80* Порты, которым для работы нужен TkSTEP версии 8.0.
ukrainian Поддержка украинского языка.
vietnamese Поддержка вьетнамского языка.
windowmaker* Порты, поддерживающие менеджер окон WindowMaker.
www Программное обеспечение, связанное с World Wide Web. Поддержка языка HTML относится сюда же.
x11 X Window System и иже с ними. Эта категория предназначена только для программного обеспечения, которое поддерживает саму оконную систему. Не помещайте сюда обычные приложения для X: большинство из них должны быть перенесены в другие категории x11-* (смотрите ниже). Если ваш порт является приложением для X, задайте USE_XLIB (что подразумевается при использовании USE_IMAKE) и укажите подходящую категорию.
x11-clocks Часы для X11.
x11-fm Менеджеры файлов для X11.
x11-fonts Шрифты для X11 и утилиты для работы с ними.
x11-servers Серверы для X11.
x11-toolkits Пакеты разработчика для X11.
x11-wm Оконные менеджеры для X11.
zope* Поддержка Zope.

5.3.3. Выбор правильной категории

Так как многие категории перекрываются, вам часто необходимо будет выбирать, какая их них должна быть основной для вашего порта. Есть несколько правил, по которым можно решить этот вопрос. Вот список приоритетов, в уменьшающейся степени предпочтения:

  • Сначала всегда идут категории, специфичные для языков. Например, если ваш порт устанавливает японские шрифты для X11, то строчка CATEGORIES должна иметь вид japanese x11-fonts.

  • Более конкретные категории предпочтительней перед более общими. В частности, редактор HTML должен быть описан как www editors, а не наоборот. Кроме того, вы не должны указывать категорию net, если порт относится к одной из категорий irc, mail, mbone, news, security или www, так как net включается автоматически.

  • x11 используется как вторичная категория только в случае, если в качестве основной категории указан естественный язык. В частности, вам не нужно указывать x11 в качестве категории для приложений X.

  • Режимы для редактора Emacs должны помещаться в ту же категорию, что и приложение, которое поддерживается этим режимом, а не в editors. Например, режим Emacs для редактирования исходного кода некоторого языка программирования должен быть помещен в категорию lang.

  • Если ваш порт решительным образом не подпадает ни под какую категорию, поместите его в misc.

Если вы не уверены в правильности выбора категории, пожалуйста, отметьте это в вашем сообщении через send-pr(1), чтобы мы могли обсудить это до того, как включить порт в Коллекцию. Если вы являетесь коммиттером, пошлите замечание на адрес Список рассылки, посвящённый Портам FreeBSD, чтобы мы могли обсудить это. Зачастую новые порты помещаются не в ту категорию только для того, чтобы их оттуда сразу же удалили. Это приводит к излишнему и ненужному росту основного хранилища исходных текстов.

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <ports@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите по адресу <doc@FreeBSD.org>. Обновлено: 12.03.2015