OSSのライセンスを容易に把握するためにWebインターフェースdosocs2-uiからDoSOCSv2でソースコードを解析する＜使い方編＞

# はじめに

近年、ソフトウェア開発にOSSを用いることは必要不可欠になってきています。
OSSを利用するときには、そのライセンスを把握し適切に対応することが大切です。
ソースコードを入手して1つ1つ手作業で確認していくこともできますが、とても時間がかかってしまいます。
ソースコードの解析を行うツールを導入し自動化することで、ライセンスを容易に把握することができます。

本記事では、ソースコードの解析を行うツールの1つであるDoSOCSv2をWebインターフェースから操作できるdosocs2-uiの使い方を示します。
実行環境を構築方法については、別の記事で紹介します。

# 前提知識

## SPDXとは

SPDXは"Software Package Data Exchange"の略で、ソフトウェア パッケージに関連するコンポーネントやライセンス、コピーライト等の情報をやり取りするための標準的なフォーマットの仕様です。
さらに詳しく知りたい場合は下記のWebサイトをご覧ください。
https://spdx.org/

## DoSOCSv2とは

DoSOCSv2は、SPDXドキュメントとデータを管理するためのコマンドライン ツールです。
ソース コードを解析し、SPDX情報を出力することができます。
さらに詳しく知りたい場合は下記のWebサイトをご覧ください。
https://github.com/DoSOCSv2/DoSOCSv2

## dosocs2-uiとは

dosocs2-uiは、DoSOCSv2のWebインターフェースです。
ソースファイルのアップロードと解析、及びSPDXドキュメントの表示ができます。
さらに詳しく知りたい場合は下記のWebサイトをご覧ください。
https://github.com/machida-yuki/dosocs2-ui

# 実行環境

主なソフトウェアとバージョンを下記に示します。

- Ubuntu 16.04
- Docker 17.03.1-ce
- DoSOCSv2 0.16.1
- dosocs2-ui master (edbb02b)

# 使い方

ここでは例として、eject 2.1.5のソースコードを解析し、ライセンスを把握する手順を示します。
なお、DoSOCSv2及び、dosocs2-uiの実行環境を構築した状態であるとします。

## dosocs2-uiへのアクセス

Webブラウザでdosocs2-uiを利用するためには下記のURLにアクセスしてください。
http://[IPアドレス or FQDN]:3000/
[IPアドレス or FQDN]はdosocs2-uiを起動したホストと同じホストから実行する場合はlocalhost、違うホストからアクセスする場合は適切なIPアドレスまたはFQDNに読み替えてください。

dosocs2-uiにアクセスした直後は下記の画面が表示されます。
初回はアカウントの登録が必要であるため、"Don't have an account?"の右の"Register"を押下します。

![dosocs2-ui_102.png](https://qiita-image-store.s3.amazonaws.com/0/204754/31cbcc1f-d552-d118-1f0f-47b06481ccfc.png)

## アカウントの作成

"Create an Account"のページでは必要事項を記入したら、"Register Now!"を押下すると登録が完了します。

![dosocs2-ui_101.png](https://qiita-image-store.s3.amazonaws.com/0/204754/30d334e1-4412-b0e1-a8a2-17ecdffd0603.png)

## ログイン

Sign inのページでユーザー登録したアカウントの情報を入力しログインすると、下記のページが表示されます。
"Browse"を押下し、解析したいソースコードのアーカイブを指定します。

![dosocs2-ui_103.png](https://qiita-image-store.s3.amazonaws.com/0/204754/8b416d9c-3fc0-d827-6479-97d3046da0be.png)

## ソースアーカイブのアップロード

ソースコードのアーカイブを指定すると中央にファイル名とファイルサイズが表示されます。
"Upload"を押下するとソースコードのアーカイブがアップロードされます。

![dosocs2-ui_105.png](https://qiita-image-store.s3.amazonaws.com/0/204754/67d9058c-e978-1655-8d16-ab6e4bbf746a.png)

## ソースコードの解析

ソースコードのアーカイブがアップロードされるとUploaded Packagesに表示されます。
"SPDX"を押下すると、SPDX Generation in progressというポップアップが表示され、ソースコードの解析が始まります。

![dosocs2-ui_108.png](https://qiita-image-store.s3.amazonaws.com/0/204754/ab1e6cb2-2207-d10e-56b8-9143c26e8c6e.png)

## SPDXドキュメントの表示

ソースコードの解析が終わると、下記の通り画面下部にSPDXドキュメントの内容が表示されます。

Package InformationのPackageLicenseInfoFromFilesの内容を確認することで、eject 2.1.5に含まれるライセンスを把握できます。
また、File InformationのFileNameとLicenseInfoInFileの内容を確認することで、ファイル毎のライセンスを把握できます。

![dosocs2-ui_008.png](https://qiita-image-store.s3.amazonaws.com/0/204754/60190f5e-4557-2e7e-7ab9-901bc5225ea1.png)

# まとめ

本記事では、ソースコードの解析を行うツールの1つであるDoSOCSv2をWebインターフェースから操作できるdosocs2-uiの使い方を示しました。
ソースコードを解析してライセンスを確認する人は必ずしもソフトウェア開発者だけではありません。
そのため、DoSOCSv2をコマンドラインから利用するよりも、Webインターフェースから操作できたほうが利用者の裾野が広がり、さらにOSSのライセンスのコンプライアンスの活動を促進できる可能性があります。

# 参考情報

- The Software Package Data Exchange
    - https://spdx.org/
- DoSoCSv2
    - https://github.com/DoSOCSv2/DoSOCSv2
- ushan89/dosocsv2
    - https://hub.docker.com/r/ushan89/dosocsv2/
- dosocs2-ui
    - https://github.com/machida-yuki/dosocs2-ui
- eject 2.1.5
    - http://sources.openembedded.org/eject-2.1.5.tar.gz

『各種製品名は、各社の製品名称、商標または登録商標です。本記事に記載されているシステム名、製品名には、必ずしも商標表示（(R)、TM）を付記していません。』