6.4. Ports com Restrições de Distribuição ou Preocupações Legais

As licenças variam e algumas delas impõem restrições sobre como o aplicativo pode ser empacotado, se pode ser vendido com fins lucrativos e assim por diante.

Importante:

É de responsabilidade de um mantenedor de um port ler os termos de licenciamento do software e certificar-se de que o projeto do FreeBSD não será responsabilizado por violá-los, redistribuindo o código fonte ou os binários compilados via FTP/HTTP ou CD-ROM. Se estiver em dúvida, entre em contato com a Lista de discussão de ports do FreeBSD.

Em situações como esta, as variáveis ​​descritas nas próximas seções podem ser definidas.

6.4.1. NO_PACKAGE

Esta variável indica que não podemos gerar um pacote binário da aplicação. Por exemplo, a licença pode proibir a redistribuição binária, ou pode proibir a distribuição de pacotes criados a partir de código adaptado.

No entanto, o DISTFILES do port pode ser livremente espelhado no FTP/HTTP. Eles também podem ser distribuídos em um CD-ROM (ou mídia similar), a menos que a variável NO_CDROM esteja definida também.

Se o pacote binário geralmente não é útil, e o aplicativo sempre deve ser compilado a partir do código-fonte, use o NO_PACKAGE. Por exemplo, se o aplicativo tiver informações de configuração específicas do site codificadas nele em tempo de compilação, defina o NO_PACKAGE.

Defina a variável NO_PACKAGE para uma string descrevendo o motivo pelo qual o pacote não pode ser gerado.

6.4.2. NO_CDROM

Esta variável sozinha indica que, embora tenhamos permissão para gerar pacotes binários, não podemos colocar nem esses pacotes nem o DISTFILES em um CD-ROM (ou mídia similar) para revenda. No entanto, os pacotes binários e os DISTFILES do ports ainda estarão disponíveis via FTP/HTTP.

Se esta variável for definida junto com NO_PACKAGE, então apenas o DISTFILES do port estará disponível e somente via FTP/HTTP.

Defina a variável NO_CDROM para uma string descrevendo o motivo pelo qual o port não pode ser redistribuído em CD-ROM. Por exemplo, use isto se a licença do port for somente para uso não comercial.

6.4.3. NOFETCHFILES

Arquivos definidos em NOFETCHFILES não podem ser obtidos de nenhum dos MASTER_SITES. Um exemplo de tal tipo de arquivo é quando o arquivo é fornecido apenas em CD-ROM pelo fornecedor.

Ferramentas que verificam a disponibilidade desses arquivos nos MASTER_SITES devem ignorar estes arquivos e não informar nada sobre eles.

6.4.4. RESTRICTED

Defina esta variável sozinha, se a licença do aplicativo não permitir o espelhamento do DISTFILES e nem a distribuição do pacote binário de forma alguma.

Não defina as variáveis NO_CDROM ou NO_PACKAGE juntamente com a variável RESTRICT, uma vez que esta última variável implica as anteriores.

Defina a variável RESTRICTED para uma string que descreva o motivo pelo qual o port não pode ser redistribuído. Normalmente, isso indica que o port contém software proprietário e que o usuário precisará baixar manualmente o DISTFILES, possivelmente após se registrar para ter acesso ao software ou após concordar em aceitar os termos de um EULA.

6.4.5. RESTRICTED_FILES

Quando a variável RESTRICT ou a NO_CDROM está definida, o valor padrão normalmente contém ${DISTFILES}${PATCHFILES} caso contrário, ela fica vazia. Se apenas alguns dos arquivos da distribuição forem restritos, defina essa variável para listá-los.

6.4.6. LEGAL_TEXT

Se o port tem preocupações legais as quais não foram abordadas pelas variáveis acima, defina a variável LEGAL_TEXT para uma string explicando a preocupação. Por exemplo, se o FreeBSD obteve uma permissão especial para redistribuir o binário, esta variável deve indicar isso.

6.4.7. /usr/ports/LEGAL e LEGAL

Um port que defina qualquer uma das variáveis ​​acima também deverá ser adicionado ao /usr/ports/LEGAL. A primeira coluna é uma glob que corresponde aos distfiles restritos. A segunda coluna é a origem do port. A terceira coluna é a saída do comando make -VLEGAL.

6.4.8. Exemplos

A maneira preferida de declarar "os distfiles para este port devem ser obtidos manualmente" é a seguinte:

.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

Isso tanto informa o usuário, quanto define os metadados apropriados na máquina do usuário para uso por programas automatizados.

Note que esta estrofe deve ser precedida por uma inclusão de bsd.port.pre.mk.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.