Лицензии бывают разных видов, и некоторые накладывают ограничение на то, как приложение может быть оформлено в виде пакета, может ли оно продаваться для извлечения коммерческой выгоды, и так далее.
На вас, как на человека, портирующего приложение, ложится обязанность прочесть лицензионные соглашения на программное обеспечение и удостовериться, что проект FreeBSD не будет являться их нарушителем, если будет заниматься распространением исходного кода или в бинарном виде по FTP/HTTP или на CD-ROM. Если у вас возникли сомнения, то, пожалуйста, обратитесь в Список рассылки, посвящённый Портам FreeBSD.
В подобных ситуациях можно использовать переменные, описываемые в последующих разделах.
Эта переменная указывает, что мы не можем создавать для приложения двоичный пакет. К примеру, лицензия не позволяет бинарное распространение или она может запрещать распространение пакетов, созданных из изменённых исходников.
Однако файлы DISTFILES
могут свободно
зеркалироваться по FTP/HTTP. Они также могут
распространяться, используя CD-ROM (или на похожих
носителях), если не установлена переменная
NO_CDROM
.
NO_PACKAGE
должна также
использоваться, если двоичный пакет, как правило, бесполезен,
а приложение должно всегда компилироваться из исходного кода.
К примеру, если в приложение во время компиляции жёстко
включается конфигурационная информация, привязанная к
конкретной системе, то задайте переменную
NO_PACKAGE
.
Значением переменной NO_PACKAGE
должна
быть строка, описывающая причину, по которой пакет не должен
создаваться.
Эта переменная указывает на то, что, хотя мы имеем право
создавать бинарные пакеты, мы не можем помещать эти пакеты
или файлы DISTFILES
порта на CD-ROM (или
на похожие носители) для перепродажи. Однако бинарные пакеты
и файлы DISTFILES
порта будут оставаться
доступными посредством FTP/HTTP.
Если эта переменная устанавливается вместе с
NO_PACKAGE
, то только файлы порта
DISTFILES
будут доступны, и только
посредством FTP/HTTP.
В качестве значения NO_CDROM
должна
указываться строка, описывающая причины, по которым порт не
может распространяться на CD-ROM. К примеру, это
применяется, если лицензионное соглашение приложения
предполагает только его <<некоммерческое>>
использование.
Файлы, определенные в переменной
NOFETCHFILES
, не будут извлекаться ни из
одного из MASTER_SITES
. Примером такого
файла является файл, поставляемый на CD-ROM.
Инструменты, проверяющие доступность этих файлов на
MASTER_SITES
, должны игнорировать эти
файлы и не сообщать о них.
Задайте эту переменную, если лицензия на приложение не
позволяет ни зеркалировать файлы
DISTFILES
, ни распространять бинарный
пакет через FTP/HTTP или на CD-ROM.
Ни NO_CDROM
, ни
NO_PACKAGE
не стоит устанавливать вместе с
RESTRICTED
, так как последняя переменная
подразумевает первые две.
В качестве значения RESTRICTED
должна
указываться строка, описывающая причины, по которым порт
нельзя распространять. Обычно это означает, что порт
использует закрытое программное обеспечение, а пользователь
должен вручную сгрузить файлы DISTFILES
,
возможно, после заполнения регистрационной формы или
подтверждения соглашения с условиями
EULA.
Если заданы RESTRICTED
или
NO_CDROM
, то значение этой переменной по
умолчанию соответствует ${DISTFILES}
${PATCHFILES}
, в противном случае она пуста.
Если ограничены в распространении лишь некоторые из
дистрибутивных файлов, то в этой переменной задаётся их
список.
Если порт имеет правовое обременение, которое не
покрывается перечисленными выше переменными, то переменной
LEGAL_TEXT
следует присвоить строку с
описанием данного обременения. Например, если было получено
особое разрешение для FreeBSD на распространение двоичного
файла, то эта переменная должна содержать соответствующее
указание.
Порт, содержащий любую из перечисленных выше переменных,
также должен быть добавлен в
/usr/ports/LEGAL
. Первый столбец
содержит шаблон совпадения с дистрибутивными файлами,
имеющими ограничения на распространение. Второй столбец
содержит корень порта. Третий столбец содержит вывод
make -VLEGAL
.
Предпочтительным способом реализации утверждения "архивы исходных текстов для этого порта должны загружаться самостоятельно" является следующее:
.if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})
IGNORE= may not be redistributed because of licensing reasons. Please visit some-website
to accept their license and download ${DISTFILES} into ${DISTDIR}
.endif
Это одновременно и информирует пользователя, и устанавливает нужные метаданные на пользовательской машине для использования автоматическими программами.
Обратите внимание, что данная кляуза должна
предшествовать подключению файла
bsd.port.pre.mk
.
Этот, и другие документы, могут быть скачаны с https://download.freebsd.org/ftp/doc/.
По вопросам, связанным с FreeBSD, прочитайте
документацию прежде чем писать в
<questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку
<doc@FreeBSD.org>.