専用OSイメージ搭載ソフトウェアのライセンス情報確認方法

CANDY Pi Lite専用OSイメージにインストールされているソフトウェアパッケージについて、ソースコードの入手方法やライセンスの確認方法について説明します。

途中、テキストエディターコマンドやパッケージ管理コマンドを使用しています。これらについては、こちらでは細かい利用方法について解説しておりませんのでご利用者様にて検索等で必要に応じてお調べください。また、インターネットに接続した状態を前提としていますのでご注意ください。

元となる情報は、以下のリンクとなります。これらはRaspberry Pi OS及びその元となるDebian OSの開発元の情報となります。この情報は、当社が所有・管理している情報ではなく下記ページの情報に基づいてまとめた情報となりますので、こちらの記載と下記ページの記載に違いがある場合は、下記ページの情報や実際の挙動の方が優先されます。ご承知おきください。

ライセンスの種類を調べるには

CANDY Pi Lite専用OSアナウンスページからダウンロード可能な「日本語版ソフトウェアの一覧ダウンロード」や「US英語版ソフトウェアの一覧ダウンロード」には、以下のような内容のテキストが含まれています。

Raspberry Pi reference 2020-11-02
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 5f884374b6ac6e155330c58caa1fb7249b8badf1, stage2-3-ja_JP

Firmware: https://github.com/raspberrypi/firmware/tree/2ba11f2a07760588546821aed578010252c9ecb3
Kernel: https://github.com/raspberrypi/linux/tree/ff93994fb3f92070d8521d709ad04675ecaa5817
Uname string: Linux version 5.4.72-v7+ (dom@buildbot) (gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)) #1356 SMP Thu Oct 22 13:56:54 BST 2020

Packages:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                               Version                             Architecture Description
+++-==================================-===================================-============-===============================================================================
ii  adduser                            3.118                               all          add and remove users and groups
ii  alsa-utils:armhf                   1.1.8-2                             armhf        Utilities for configuring and using ALSA

(snip)

この中のPackges以下に列挙される情報がソフトウェアの一覧となります。

ライセンスの種類はこの一覧には掲載されておりません。ライセンスの種類を見るためには、それぞれのパッケージのcopyrightファイルを確認する必要があります。

/usr/share/doc/パッケージ名/copyright 

というパス名のルールでcopyrightファイルを探すことができます。「パッケージ名」は、上記ソフトウェア一覧の中の「Name」列に出ている名称を指します(例えばadduser)。

中を確認すると以下のようにライセンス本文やライセンスの種類について言及がありますのでその内容を見てライセンスの種類を特定可能です。

(snip)
   This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
(snip)

ライセンスの本文全体を入手する必要がある場合は、以下のように言及されている場合はローカルファイルを、存在しない場合は、Open Soource Initiativeのページからライセンスの種類に応じた内容を検索して本文を特定することが可能です。

(snip)
On Debian GNU/Linux systems, the complete text of the GNU General
Public License can be found in `/usr/share/common-licenses/GPL-2'.

上記の場合は、/usr/share/common-licenses/GPL-2のファイルを見れば良いことになります。

ソースコードの入手先を調べるには

apt-cacheコマンドを利用するとパッケージのソースコードに関する情報を入手することができます。

最初に/etc/apt/sources.listをエディターで開きます。

sudo nano /etc/apt/sources.list #または sudo vi /etc/apt/sources.list

すると以下のような内容が表示されますので、コメントにある通り「deb-src」のある行のコメント(#)を削除して保存します(下記はまだ消す前のもの)。

deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

保存したら、変更を反映させるために以下のコマンドを実行します。

sudo apt-get update -y

続いて、ソースコード情報を入手します。以下のようなコマンドを実行します。パッケージ名には調べたいパッケージ名を指定します(例えばadduser)。

sudo apt-cache showsrc パッケージ名

例えば、adduserパッケージの情報を入手すると以下の内容が表示されます。

Package: adduser
Binary: adduser
Version: 3.118
Maintainer: Debian Adduser Developers <adduser@packages.debian.org>
Uploaders: Marc Haber <mh+debian-packages@zugschlus.de>
Build-Depends: po-debconf, debhelper (>= 9)
Build-Depends-Indep: gettext, po4a
Architecture: all
Standards-Version: 4.2.1
Format: 3.0 (native)
Files: 
 a03253e3e64b666c4a488e78b001a338 1670 adduser_3.118.dsc
 44ba2475ebdaafc9613236bdda321c97 212280 adduser_3.118.tar.xz
Checksums-Sha1: 
 8c2a26219fb5c95c17b1bf3587d5fd51bc233f44 1670 adduser_3.118.dsc
 40f9d6c8789fba8819c3936e5507c68b3d5643af 212280 adduser_3.118.tar.xz
Checksums-Sha256: 
 fc79bc37fcf5e5700546c78a80670bb7b34836d012595b343fe2304cac82917d 1670 adduser_3.118.dsc
 3e9eea661c9aac6b2c791bfcc1de3a9c6a422d45c8f3d38ed417737ed3166ffc 212280 adduser_3.118.tar.xz
Vcs-Browser: https://salsa.debian.org/debian/adduser
Vcs-Git: https://salsa.debian.org/debian/adduser.git
Package-List: 
 adduser deb admin important arch=all
Testsuite: autopkgtest
Directory: pool/main/a/adduser
Priority: source
Section: admin

上記の中の「Vcs-Browser」のURLがソースコードの入手が可能なWebページを指しています。このページからソースコードの閲覧やダウンロードが可能です。

終わりに

以上がソフトウェアパッケージのライセンス調査方法及びソースコード入手方法となります。copyrightファイルの書式がまちまちであるため、コマンドラインでライセンス種類を表示する機能がなく現在に至っています。この状況を改善するためのcopyrightファイル書式仕様がありますが、現状でもまだこの書式に沿わないファイルがあるため、この状況がすぐに変わるのはあまり期待できなさそうです。