やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

ライセンスファイルを取得・配置するスクリプトを書いた

 Webから取得しローカルへ配置する。

成果物

実行

sudo apt install -y jq
git clone https://github.com/ytyaru/Shell.license_getter.20200129080000
cd Shell.license_getter.20200129080000/src
./get_license mit

 カレントディレクトリにLICENSE-MIT.txtが出力される。

対応ライセンス

取得元 件数 補足
github 33 内3つがファミリーネームなので実質30個
spdx 402 重複名があるためもっと少ないはず。GPL-3.0, GPL-3.0-ony

問題

 とりあえずライセンスファイルを取得することを最優先にした。細かいことには一切手を付けていない。以下のような問題がある。

  • ライセンスファイル名はどうべきか?
    • LICENSE, LICENSE.txt, LICENSE.md, LICENSE-APACHE, LICENSE-Apache.2.0, LICENSE-Apache.2.0.txt, LICENSE-apache.2.0.txt
  • 複数のライセンス(デュアルライセンス)がある場合の対処方法は?
  • ライセンスファイルの著作権copyright (c)を置き換えない
    • github
      • フォーマットされていない
      • 各ライセンスファイルに対応する置換処理を実装する必要がある
    • spdx
      • text: フォーマットされていない
      • template: 形式が難解すぎる
  • 標準ライセンスヘッダーを追加
    • 追加するかどうか
      • ライセンスごとに異なる
    • どこに?
  • 別の名前で同じ名前が出力される
    • 例1:
      • GPL-3.0GPL-3.0-onlyは同じである
      • 次のように個別のファイルとして出力されてしまう
        • LICENSE-GPL-3.0.txt
        • LICENSE-GPL-3.0-only.txt     * 例2:
      • GPL-3.0 +GPL-3.0-or-laterは同じである
      • 次のように個別のファイルとして出力されてしまう
        • LICENSE-GPL-3.0+.txt
        • LICENSE-GPL-3.0-or-later.txt

所感

 問題が多い。特にcopyright (c)はどこかに記載しておくべきだろう。もしパブリックドメインなら最低でも著作権発行年だけは書いておくべきと思われる。表記の仕方はどうすべきか?

  • since: 2020
  • publish: 2020-01-01

 どこに書くべき? ライセンスファイル内? それともREADME?

 おそらくREADMEに標準ライセンスヘッダの一部として書くのが正しいと思うが、どうなのだろう。ライセンスによって違うのかもしれない。調べるのが超面倒。

対象環境

$ uname -a
Linux raspberrypi 4.19.75-v7l+ #1270 SMP Tue Sep 24 18:51:41 BST 2019 armv7l GNU/Linux