Tooling SWG
spdx toolsの紹介

2019/04/18
安倍 昌輝 <ambai.masaki@jp.fujitsu.com>
株式会社富士通コンピュータテクノロジーズ

1538ka10

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESspdx toolsについて
 Linux Foundation傘下のSDPXプロジェクトが公開してる支援ツール
https://spdx.org/tools Documentation
https://spdx.org/sites/cpstandard/files/pages/files/spdx_tools20170327.pdf
 Source Codehttps://github.com/spdx/tools
 最新版数：2.1.16 (2019年4月9日リリース)
The names of products are the product names, trademarks or registered trademarks of the respective companies.
Trademark notices ((R),TM) are not necessarily displayed on system names and product names in this material.
1

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES

機能紹介 spdx toolsには以下の機能がある。
機能概要

TagToSpreadsheet

SPDX(Tag形式)からスプレッドシード(xls形式)に変換

TagToRDF

SPDX(Tag形式)からSPDX(RDF形式)に変換

RdfToTag

SPDX(RDF形式)からSPDX(Tag形式)に変換

RdfToHtml

SPDX(RDF形式)からHTML形式に変換

RdfToSpreadsheet

SPDX(RDF形式)からスプレッドシード(xls形式)に変換

SpreadsheetToRDF

スプレッドシード(xls形式) からSPDX(RDF形式)に変換

SpreadsheetToTag

スプレッドシード(xls形式) からSPDX(Tag形式)に変換

SPDXViewer

SPDXの内容をディスプレイに表示

CompareMultipleSpdxDocs 複数のSPDXを比較
CompareSpdxDocs

2つのSPDXを比較※Tag形式 : annotated tag value flat text file
※RDF形式 : Resource Description Framework2

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESインストール方法
 Source Codehttps://github.com/spdx/tools• 詳細な情報は上記を参照

 実行環境 Java JRE 1.8以上

 インストール方法$ git clone https://github.com/spdx/tools$ cd tools$ mvn clean install3

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES

実行方法
 基本
$ java -jar spdx-tools-jar-with-dependencies.jar <function> <parameters> spdx-tools-jar-with-dependencies.jar• インストールした際の「target」ディレクトリ配下にある例) /tools/target/spdx-tools-2.1.16-jar-with-dependencies.jar

 <function>• 各機能を指定する
例) TagToSpreadsheet <parameters>• 入力ファイルや出力ファイルを指定する例） inputFile outputFile

4

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESDEMO SPDX(Tag形式)からスプレッドシード(xls形式)に変換
 スプレッドシード(xls形式) からSPDX(Tag形式)に変換

5

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESSPDXからスプレッドシードに変換 SPDXをスプレッドシートする事で情報を扱いやすくなる GPLv2だけなどライセンス毎にフィルタリング
 ライセンスの集計やグラフ化
 SPDXを見たことがない人でも取り組みやすい 実行例：bzip2-1.0.6.spdx$ java -jar spdx-tools-2.1.16-jar-with-dependencies.jar ¥TagToSpreadsheet bzip2-1.0.6.spdx bzip2-1.0.6.xls

6Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES結果(変換前)7

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES結果(変換後)
Document Info

Package Info

Extracted License Info

Per File Info

Per File Info8

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES

スプレッドシードからSPDXに変換
 FOSSologyなどのScan toolを使用してなくても手動で記入した情報をSPDXにする事ができる
 組織間のライセンス情報授受SWGで考えている「SPDX lite」の情報をSPDXにする事ができる

 実行例：sample.xls$ java -jar spdx-tools-2.1.16-jar-with-dependencies.jar ¥SpreadsheetToTag sample.xls sample.spdx

9Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES結果(変換前) 入力例
Document Info

最低限の項目※項目を一個一個試しました。

 スプレッドシートに入力した項目

 Document Info：Spreadsheet Version, SPDX Version, Data License,
SPDX Identifier, Document Name, Document Namespace, Document
Contents, Creator, Created Package Info：Package Name, SPDX Identifier, Package Version,
Package FileName, Package Download Location, License Declared,License Concluded, License Info From Files, Package Copyright Text
 Per File Info：File Name, SPDX Identifier, File Type(s), License
Concluded, License Info in File Relationships：SPDX Identifier A, Relationship, SPDX Identifier B

10

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIES結果(変換後)

11

Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESまとめ spdx toolsはSPDXを扱いやすくするために様々な機能を持った支援ツール
 TagToSpreadsheet：SPDXからスプレッドシードに変換
 CUIに慣れてない方でも簡単にフィルタリングや集計などが扱えるようになる
 例えばOSS申請する際などに必要な形式に変換しやすくなる SpreadsheetToTag：スプレッドシードからSPDXに変換
 FOSSologyなどソースを解析しなくても手入力した情報をSPDXにする事ができる

 この他にもCompareSpdxDocsではバージョン アップしたOSSを比較して差異を確認するなど、様々な事に活用できる
12Copyright 2019 FUJITSU COMPUTER TECHNOLOGIESCopyright 2018 FUJITSU COMPUTER TECHNOLOGIES