표준 레시피와 내 소유물을 포함하는 이미지를 만듭니다. 포함 된 모든 패키지에서 사용하는 라이센스를 나열하고 예를 들어 상용 응용 프로그램에 사용할 수 있는지 나중에 확인하고 싶습니다.Yocto의 패키지 그룹 및 이미지 라이센스
나는 놀랍게도 packagegroups에 LICENSE 플래그가 이미 있습니다.
bitbake -e -n -v core-image-minimal | grep "LICENSE"
그것은 그것이 BB 파일에 정의되어 있기 때문에 라이센스 = MIT를 반환 : 나는 일을 나타났습니다.
그러나 포함 된 모든 패키지에 대한 정보가 없습니다. 이 MIT는 수동으로 core-image-minimal.bb에 넣어졌지만 모든 종속성에 관심이 있습니다. 내 .bb 파일에 대해 동일한 문제가 있습니다.
접근 한
해결책은 INCOMPATIBLE_LICENSE 등 모든 라이선스를 넣어하는 것입니다 다음
bitbake -k -n -e -v <recipe> | grep "incompatible with license"
다음 LICENSE_FLAGS_WHITELIST에 추가하고 INCOMPATIBLE_LICENSE 및 반복 처리에서 제거, 튀어 어느 보십시요. 문제는 매번 작업이 완료 될 때마다 전체 작업 공간을 다시 구문 분석하고 시간이 오래 걸린다는 것입니다.
쉽게 확인할 수있는 스크립트가 있습니까? Yocto와 같은 python이 항상 그렇습니다. 메타 I/클래스/license.bbclass를 편집 check_license_format 함수의 for 루프에
bb.warn('%s license is %s' %(pn, licenses))
추가 2
접근. 지금은 각 패키지에 대한 라이센스를 인쇄,하지만 난 종류가 그래서, 나는 "패키지 관리하기 때문에 내 모든 조리법을 컴파일 할 수없는 그것을
을 할 수
좋은 방법을 요약하고 싶습니다 "기능은 현재 deb 패키지에서 작동하지 않습니다 (here을 읽으십시오). 이미지 레시피를 수정하고 @Roman Khimov의 방법을 사용하십시오. 그것을하는 청결한 방법입니다.
가 건조 실행 (-n, 나는 테스트에는 라이센스 없어 작업을 만들 수있는 방법이 있나요 매니 페스트)? –
@DavidBensoussan :'license_create_manifest()'가'ROOTFS_POSTPROCESS_COMMAND'에서 실행되고 rootfs 생성 단계에 있기 때문에 그렇게 생각하지 마십시오. 또한 이론적으로 적어도 동적 패키지로 인해 이미지를 빌드 할 때까지 전체 패키지 및 라이센스 목록을 작성할 수 없습니다. –