Chapter 18. Имена пакаджей

Далее описаны некоторые соглашения, которым вы должны следовать в именовании ваших пакаджей. Они были разработаны для облегчения просмотра каталога, так как пакаджей уже имеется достаточно много и еще больше их появляется, а пользователи отвернутся от нас, если список не понравится их взору!

Имя пакаджа должно иметь вид [language[_region]]-name[[-]compiled.specifics]-version.numbers.

Имя пакаджа определяется как ${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}-${PORTVERSION}. Вы должны задавать значения переменных в соответствии с этим форматом.

  1. FreeBSD пытается поддерживать языки, на которых разговаривают ее пользователи. Часть language- должна быть двухсимвольным сокращением от названия языка по стандарту ISO-639, если порт специфичен для конкретного языка. Примерами являются ja для японского, ru для русского, vi для вьетнамского, zh для китайского, ko для корейского и de для немецкого языков.

    Если ваш порт специфичен для конкретного региона внутри области использования языка, добавьте также двухсимвольный код страны. Примерами являются en_US для US English и fr_CH для Swiss French.

    Часть language- должна задаваться в переменной PKGNAMEPREFIX.

  2. Первая буква части name должна быть в нижнем регистре. (Оставшаяся часть названия может содержать буквы в верхнем регистре, так что принимайте решение сами, когда преобразуете имя программного пакета, содержащего в имени некоторое количество заглавных букв.) Существует традиция именовать модули для Perl 5, добавляя впереди p5- и преобразуя пару двоеточий в дефис; например, модуль Data::Dumper будет именоваться p5-Data-Dumper. Если программное обеспечение содержит в имени числа, дефисы или подчеркивания, то вы можете включить также и их (например, kinput2).

  3. Если порт может быть построен с различными статически заданными значениями по умолчанию (обычно это часть имени каталога в семействе портов), то часть -compiled.specifics должна определять вкомпилированные значения по умолчанию (дефис не обязателен). Примерами являются размеры бумаги и шрифтов.

    Часть compiled.specifics должна задаваться в переменной PKGNAMESUFFIX.

  4. Строка с номером версии должна следовать за дефисом (-) и являться списком разделенных двоеточием чисел и букв в нижнем регистре. В частности, не разрешается иметь еще один дефис внутри строки с обозначением номера версии. Единственным исключением является строчка pl (означающая `уровень патчей'), которая может использоваться только тогда, когда у программного обеспечения нет старшего и младшего номера версии. Если в номер версии программного обеспечения включена строчка типа "alpha", "beta", "rc" или "pre", возьмите из неё первую букву и поставьте её непосредственно после точки. Если после таких строк номер версии ещё продолжается, то после буквы должно следовать число без дополнительной разделяющей точки.

    Смысл такого формата заключается в удобстве сортировки портов по номеру версии. В частности, следите за тем, чтобы компоненты номера версии разделялись точкой, и если там присутствует дата, то используйте формат yyyy.mm.dd, но не dd.mm.yyyy или не совместимый с проблемой Г2000 yy.mm.dd.

Вот несколько (реальных) примеров того, как преобразовать имя из оригинального, придуманного авторами, к подходящему для имени пакаджа:

Имя дистрибутива PKGNAMEPREFIX PORTNAME PKGNAMESUFFIX PORTVERSION Обоснование
mule-2.2.2 (пусто) mule (пусто) 2.2.2 Изменений не потребовалось
XFree86-3.3.6 (пусто) XFree86 (пусто) 3.3.6 Изменений не потребовалось
EmiClock-1.0.2 (пусто) emiclock (пусто) 1.0.2 Для отдельных программ имена с заглавными буквами запрещены
rdist-1.3alpha (пусто) rdist (пусто) 1.3.a Строчки типа alpha запрещены
es-0.9-beta1 (пусто) es (пусто) 0.9.b1 Строчки типа beta запрещены
mailman-2.0rc3 (пусто) mailman (пусто) 2.0.r3 Строчки типа rc запрещены
v3.3beta021.src (пусто) tiff (пусто) 3.3 Что это такое было вообще?
tvtwm (пусто) tvtwm (пусто) pl11 Всегда требуется указание номера версии
piewm (пусто) piewm (пусто) 1.0 Всегда требуется указание номера версии
xvgr-2.10pl1 (пусто) xvgr (пусто) 2.10.1 pl разрешено только при отсутствии старшего/младшего номера версии
gawk-2.15.6 ja- gawk (пусто) 2.15.6 Версия на японском языке
psutils-1.13 (пусто) psutils -letter 1.13 Размер бумаги задается статически во время построения пакаджа
pkfonts (пусто) pkfonts 300 1.0 Пакадж для шрифтов 300dpi

Если в исходном коде абсолютно нет информации о номере версии и не похоже, что автор собирается выпускать другую версию, то в качестве номера версии задайте просто 1.0 (как в примере с piewm выше). В противном случае спросите автора программы или используйте дату (yyyy.mm.dd) в качестве номера версии.

По вопросам связанным с системой портов для FreeBSD, пишите по адресу <[email protected]>.
По вопросам связанным с этом документацией, пишите по адресу <[email protected]>.