ライセンスの諸問題

ちょっとnmoshの手が止まっていた。今日から再開予定。
nmoshは一応MIT/BSDライセンスということで方々で使ってきた。一度は( http://d.hatena.ne.jp/mjt/20111204/p2 )legalの方も入れて、使うコンポーネントについてはクリアランスもしている。
しかし今回別の機関で使う案件があって、配布物としてはNG判定が有って結局C++ / Cで諸々書き直す事態になった。
(経験上機関が異なればlegalの見解もそれぞれになる。これは仕方ないと個人的には考えている。)
もっとも、今回のNG判定でnmosh自体が違法な状況にあると判定されたとは考えていない。単に僕がスーツを着て偉い人のハンコを集めに出向く程でも無いと考えて取り下げただけで、プロトタイプをSchemeでやったあとC++にするのは寧ろよくある事と言える。

修正を要求されたもの

いくつかの点は修正を要求された。結局nmoshは採用しなかったので現状でも修正していないが、修正必須バグと位置付けて0.2.8までには修正するつもり。

  • SRFI等のライブラリを変更しているケースで、nmoshとしてのCopyright表記が無い

手元でパッチして動かした後Copyrightをアップデートしていないため、結果的に虚偽表記となっているもの。表記を追加する必要が有る。
特にwrapper関数等が同じファイルに居る場合はそれが解るように記述することを求められている。

以前も問題になったSRFI-99は、今回はNG判定となってしまった。SRFI-99のリファレンスコードは通常のBSDLに"REMEMBER, THERE IS NO SCHEME UNDERGROUND"の一文が追加されており、これが指すものが明確でないため有効なライセンスと見做されずapproveされなかった。
SRFI-99は削除するかもしれない。既にR7RSでSRFI-9が採用されており、SRFI-99の方を利用する意義があまり無いため。

  • Copyrightが2014になっていない

更新忘れ。Copyrightの書き方は機関によってルールが異なるが、衝突が有る場合は最低でも現バージョンの発行年を含むこと とされた。
nmoshとしては、一般的な 初版-現行 の表記を採用している。Copyright表記は法的な意味は現状無いが、ライセンスがその表記を要求している以上は許諾要件の一部であるため表記は正確であることが必要。

議論のあるもの

この辺は個人的にはグレーゾーンと考えていて、今のところ変更の予定は無し。

  • public domainコードの採用には決済が必要

厳しい。。nmoshの場合は、(match)ライブラリがpublic domainなソースをベースに変更されたコードで、原著作者以外の権利処理をしていないと見做されている。
BSDLのライセンス文をファイルに挿入し再ライセンスすることが推奨された。

  • 不完全なre-brandには全著作者の合意が必要 or 徹底が必要

nmoshは、いわゆるmobile-shellのmoshとの混同を防ぐために基本的にnmoshと呼ぶように変更しつつある。moshは普通名詞化しているとは言い難く、かつ、登録商標となっているリスクも高い。必要な部分ではpsyntax-moshとかvanilla-moshのような呼称を導入して、moshの名称が単体で使われることが無いように配慮している。
しかし、完全にforkせず呼称変更するのはNGということでapproveされなかった。つまり、現状のように部分的にnmoshを名乗るのは認められず、元のmosh-schemeの著作者全員が部分的なre-brandに合意しているか、完全にforkを行って混同が起こらない状況でなければ係争のリスク有と判定されている。
ちなみに、Legalの見解としては、nmoshのように元の名称を含んだりハイフンで接続するような呼称変更は全く意味が無く、目的を達成するならば完全に異なる名称にするべきとのこと。
個人的にはglibc vs. eglibcのような先行事例も有るので、nmoshの現状に特に問題が有るとは考えていない。