Estou desenvolvendo um pequeno projeto de código aberto. O aplicativo usa muitas bibliotecas de terceiros lançadas com várias licenças: Apache, MIT, BSD, LGPL e CDDL.
Cada uma dessas licenças possui seus próprios requisitos de "papelada". Por exemplo, a Licença Apache, v2.0 diz:
Se o Trabalho incluir um arquivo de texto "AVISO" como parte de sua distribuição, todos os Trabalhos Derivados distribuídos por você deverão incluir uma cópia legível dos avisos de atribuição contidos nesse arquivo AVISO.
A licença do MIT contém um aviso de direitos autorais e diz:
O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.
A licença BSD também contém um aviso de direitos autorais e diz:
As redistribuições em formato binário devem reproduzir o aviso de direitos autorais acima, esta lista de condições e o aviso de isenção de responsabilidade a seguir na documentação e / ou outros materiais fornecidos com a distribuição.
LGPL v.3 diz:
(Você deve) notificar com destaque a cada cópia do Trabalho Combinado que a Biblioteca é usada nela e que a Biblioteca e seu uso são cobertos por esta Licença.
As licenças LGPL e CDDL também exigem o fornecimento do código-fonte juntamente com uma forma binária de uma biblioteca; portanto, as informações sobre a maneira como o código-fonte pode ser obtido devem ser fornecidas em algum lugar.
Qual é a melhor prática para organizar todos esses dados? Devo criar um arquivo de texto e copiar o conteúdo de todos os NOTICE
arquivos, licenças MIT e BSD etc. para esse arquivo? ... ou devo criar um diretório separado para cada biblioteca e colocar todos os dados relacionados à biblioteca nesse diretório? … ou alguma outra coisa?
Também seria interessante ver exemplos dessa "papelada" em projetos publicados.
ATUALIZAR:
Eu li Você precisa incluir um aviso de licença em todos os arquivos de origem? , mas não resolve o meu problema. Minha pergunta é sobre bibliotecas de terceiros usadas em um projeto, e essa pergunta é sobre cabeçalhos no próprio código-fonte do projeto.