この記事はOpenChain Advent Calenderの19日目の記事です
はじめに
車載向けOSSコミュニティのAGL(AutomotiveGradeLinux)で使用しているソフトウェアについて、OpenChainにて議論が進められているSW360とSPDX Liteを利用して、AGLで使用しているソフトウェアを誰でも簡単に確認出来る方法を紹介します
尚今回の内容については2020CESのAGLデモブース内のOpenChainブースでも紹介予定です
OpenChain and AGL Collaborate to Facilitate Open Source Compliance in Automotive Production
AGLのリリースソフトウェアについて
AGLでは年2回ソフトウェアをリリースしており、現状の最新ソフトはIcefish RC3 (v8.99.3)が年明けの正式リリースに向けて、リリースの準備が進められています。AGLリリースノートについて、このページを参照して下さい。
ビルド済みのソフトについても公開されており、Yoctoビルド時に出力されるlicense.manifestを確認すれば、AGLでどのようなソフトウェアが使用されているか、下記のように確認する事が出来ます
PACKAGE NAME: af-binder
PACKAGE VERSION: master+gitAUTOINC+82a9d79621
RECIPE NAME: af-binder
LICENSE: Apache-2.0
このように
・パッケージ名
・バージョン
・ライセンス
を確認する事が出来ますが、AGLでは1,500~1,600位のソフトウェアが使用されており、license.manifestを確認するのはそれなりに苦労するため、SW360/SPDX Liteを利用して誰でも簡単にAGLのリリースソフトウェアを確認出来るようにしたいと思います
今回の環境の全体イメージ
SW360にはSPDXをインポートして使用する想定のため、meta-spdxscannerを利用して、AGLリリースソフトからSPDXファイルを作成します。SW360ではSW360toolsを利用してSPDX Liteをアウトプット可能なため、EXCELを使用してAGLのソフトウェアを誰でも簡単に確認する事が可能です
環境のセットアップ
meta-spdxscanner
AGLでは下記のようにmeta-spdxscannerがサポートされていますので、
<!-- meta-spdxscanner - support for fossology -->
<project name="dl9pf/meta-spdxscanner" path="external/meta-spdxscanner" remote="github" revision="483f79e66eb76b0f1bebe1e3a0a0327b0ba59f16" upstream="thud"/>
spdxscannerが使用するfossdriverをセットアップします。セットアップ方法は10日目の記事を参考にして下さい
セットアップ完了後、https://github.com/dl9pf/meta-spdxscanner を参考に local.conf を編集しbitbakeを実行して、SPDXファイルを出力します
$ bitbake agl-demo-platform –-runall=spdx # will generate all agl-demo-platform spdx
$ bitbake package_name -c spdx # will generate spdx of a specified package
SW360
SW360のセットアップについては、この記事を参考にセットアップを実施します
今回はSW360からSPDX Lite(EXCEL)を出力したいので、SW360toolsを追加でセットアップします
SPDXファイルの取り込みから、SPDX Liteの出力
環境のセットアップが完了したら、生成したSPDXファイルをSW360にインポートします
インポートが完了するとSW360にインポートしたソフトウェアが表示されます
SW360toolsを使用すると出力するSPDXの項目を選択する事が可能となり、SPDX Liteなど必要な情報だけを最小限にしてcsv形式で出力する事が可能です
SW360が使用出来ない環境でも、Excelで出力したファイルをいつでも簡単に参照する事が可能となります
さいごに
駆け足での紹介になってしまいましたが、実際の開発現場に使用する際に課題と感じた事を下記します
・meta-spdxscannerを使用してSPDXを出力する時間が、bitbakeのビルド時間よりも長く、CIに組み込むには課題がある
・SPDXファイルをSW360にインポートする時に、ファイル数が100を超えると読み込み途中でフリーズが発生する時がある
・Dockerfileのメンテナンスが遅れており、環境構築にコストがかかる
他にも運用面での課題もあるかと思いますが、AGLなどのオープンな場所で少しずつFBしながら、実績を積みたいと思います
明日のテーマは・・・
明日は「OSSのコンプライアンス体制構築をするうえでの留意事項」について
Promotion SWGにも参加頂いているDLA Piperのパートナー弁護士である野中さんにご担当頂く予定です