Aderência às licenças de software com o Buildroot
- por Sergio Prado
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.
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 |
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!