Aderência às licenças de software com o Buildroot

- por Sergio Prado

Categorias: Buildroot Tags: ,

Utilizar software de código-aberto nos dá a liberdade de produzir rapidamente sistemas bastante completos. Mas também nos dá algumas obrigações, que devemos respeitar.

software-livre

Algumas licenças de software requerem que liberemos o código-fonte para aqueles que estão “consumindo” o nosso produto. Já para outras licenças precisamos citar a autoria do projeto original caso liberemos uma versão alterada do mesmo. As obrigações serão diferentes para cada tipo de licença, mas uma coisa é fato: precisamos respeitá-las.

E para que possamos ter este tipo de controle, uma funcionalidade essencial em qualquer sistema de build é gerar informações sobre as licenças de todos os componentes de código-aberto utilizados para produzir a imagem final do sistema.

O Buildroot possui esta funcionalidade, através do processamento do target legal-info:

$ make legal-info
>>> Collecting legal info
WARNING: the Buildroot source code has not been saved
WARNING: the toolchain has not been saved
WARNING: mplayer: cannot save license (MPLAYER_LICENSE_FILES not defined)
WARNING: gcc-final: cannot save license (HOST_GCC_FINAL_LICENSE_FILES not defined)
WARNING: gcc-initial: cannot save license (HOST_GCC_INITIAL_LICENSE_FILES not defined)
Legal info produced in /home/sprado/workspace/build/buildroot/buildroot-2014.08/output/legal-info

Os arquivos de saída estarão disponíveis em output/legal-info/:

$ ls output/legal-info/
buildroot.config host-licenses.txt host-sources licenses.txt README
host-licenses    host-manifest.csv licenses     manifest.csv sources

Um diretório com a licença de cada pacote estará disponível em output/legal-info/licenses:

$ ls output/legal-info/licenses
alsa-lib  busybox input-tools openssh sdl   uclibc
am33x-cm3 evtest  linux       openssl uboot zlib

E o código-fonte dos componentes de software em output/legal-info/sources/:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ ls output/legal-info/sources/
alsa-lib-1.0.28.tar.bz2
am33x-cm3-11107db2f1e9e58ee75d4fe9cc38423c9a6e4365.tar.gz
busybox-1.22.1.tar.bz2
evtest-1.31.tar.gz
joystick_20051019.orig.tar.gz
linux-7f280334068b7c875ade51f8f3921ab311f0c824.tar.gz
MPlayer-1.1.1.tar.xz
openssh-6.6p1.tar.gz
openssl-1.0.1i.tar.gz
SDL-1.2.15.tar.gz
u-boot-2013.10.tar.bz2
uClibc-0.9.33.2.tar.xz
zlib-1.2.8.tar.xz

O Buildroot também gera um arquivo no formato CSV que permite exibir em uma planilha todos os pacotes de código aberto utilizados e suas respectivas licenças:

$ libreoffice output/legal-info/manifest.csv

licenças

O Yocto Project também possui um suporte bem completo ao controle de licenças de software. Na verdade, bem mais completo que o Buildroot. Por exemplo, ele permite com que você filtre e desabilite a inclusão de um componente de software de determinada licença na imagem final.

De qualquer forma, nunca se esqueça de verificar se a sua ferramenta de build de sistema possui suporte ao controle de licenças de software. O controle manual é sempre trabalhoso e suscetível à erros.

Um abraço!

Sergio Prado

Sem Comentários

Nenhum comentário até agora... é a sua chance de ser o primeiro a comentar!

Faça um Comentário

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.