ちょっと前に cygport が LICENSE
変数に対応したため、それの影響でいろいろ調べた話をまとめておく。
Add LICENSE variable
具体的な LICENSE
変数対応の差分は以下のとおり。
これによりインストーラが読む setup.hint にライセンス名が付与されるようになった。
(実際にインストーラの setup.hint のパーザのコードを見た感じだと読んではいなさそう。)
ライセンス名の書き方についてはコメントで言及があるように SPDX short-form identifiers に従う必要がある。
#****v* Information/LICENSE # DESCRIPTION # A SPDX license expression (See https://spdx.dev/ids/) for the license(s) of # the package. #****
実際に setup.hint に書かれたライセンス名は calm が license-expression で判定するため、不正な ID や式を書くと、怒られるようになる。
# license must be a valid spdx license expression if key == 'license' and licensing: try: le = licensing.validate(value, strict=True) except (license_expression.ExpressionParseError, license_expression.ExpressionError) as e: errors.append('value for key %s not a valid license expression: %s' % (key, e)) if le.original_expression != le.normalized_expression: errors.append("license expression: '%s' normalizes to '%s'" % (value, le.normalized_expression))
これに関連して、とあるパッケージを更新した時に calm がきちんと動かなくなっている旨の報告が ML に投げられていた。
Could we maybe turn down the licence messages to warnings for now, until we get a handle on what we need to change to make it valid and accurate! It was not obvious to me that these messages were referring to the cygport script variable LICENSE value.
LICENSE
変数が不正かどうかは cygport でパッケージを作成完了した時点ではわからない (LICENSE
変数の中身をチェックする仕組みは cygport にはない) ため、たしかにこの修正はちょっと影響が大きすぎるのではという感想。(↓のメールでもそのことを言及されている。)
実際にこの機能を入れるにはもっと議論が必要だろうという話も出ている。
この記事を書いている時点では↑が最新のメールなので、これ以降、話が進展して、良い方向に向かってくれれば良いかなと思う。