パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

4.4BSD Liteはnon-freeなの?」記事へのコメント

  • 根本的なところで (スコア:1, すばらしい洞察)

    by Anonymous Coward
    最近の様々な話から 坂村氏はGPLというものを根本的に受け付けない方 で、理解しようとも思わない方だというのが良く理解できます。 それはそれで構わないのですが,その考えの元、 gccを何食わぬ顔で使おうというのはかなり分裂していると 思います. (SCOうんぬんより坂村氏の方がなんだか最近狂ってる)
    • by bero (5057) on 2003年10月15日 21時54分 (#415329) 日記
      根本的なところで、GPLは「複製や頒布、改変」についてのライセンスであって、「使用」についてはただ一言「プログラムの実行は無制限」としか書かれていない。
      GPL(の一部)を理解してればこそ、非GPLなプログラムのコンパイルにも何食わぬ顔で使えるってもんでしょう。

      GPLの第0項にこうある。

      Activities other than copying, distribution and modification are not
      covered by this License; they are outside its scope. The act of
      running the Program is not restricted,

      直後にこう続く

        and the output from the Program
      is covered only if its contents constitute a work based on the
      Program (independent of having been made by running the Program).
      Whether that is true depends on what the Program does.

      ので、出力されたバイナリobjectは安心。
      てことで、こっから先に書かれているGPLの本体は読まなくても理解しなくても使用できる。

      問題は、自作プログラムにリンクされる付属ライブラリ、つまりlibgccと、C++を使う場合はlibstdc++(他の言語は調べれ)のほう。
      (-nostdlib等のオプションでこれらをリンクしない場合は気にしなくてよい。)

      (ここで「ライブラリのライセンスまで確認する必要があるのか、面倒くせー」と思う人がいるかもしれないが、商用コンパイラでもEditionによってはライブラリの再配布に制限があったり、評価用で本使用には別途購入ってライセンスのことがあるから、どのみち確認する必要があるという条件は同じ。)

      これらは例外付きGPLである。
      GPLと例外付きGPLは、GPLとLGPL以上に違いが大きい(だって例外の書き方次第で何でもできる)ことがあるので、別物と思ったほうがよい。
      ひとくくりに分類してしまうと、細部まで読まずに「GPLの全項目が適用される」と思い込んで誤解をまねきやすい(恥ずかしながら私もそう)。

      libgcc:
      In addition to the permissions in the GNU General Public License, the
      Free Software Foundation gives you unlimited permission to link the
      compiled version of this file into combinations with other programs,
      and to distribute those combinations without any restriction coming
      from the use of this file. (The General Public License restrictions
      do apply in other respects; for example, they cover modification of
      the file, and distribution when not linked into a combine
      executable.)

      libstdc++:
      As a special exception, you may use this file as part of a free software
      library without restriction. Specifically, if other files instantiate
      templates or use macros or inline functions from this file, or you compile
      this file and link it with other files to produce an executable, this
      file does not by itself cause the resulting executable to be covered by
      the GNU General Public License. This exception does not however
      invalidate any other reasons why the executable file might be covered by
      the GNU General Public License.

      てことで、単なるリンク、およびテンプレートやインライン関数、マクロが展開されて自作プログラムに組み込まれることは無制限で、GPLに従う必要は無い。ここでも(この範囲の使用であれば)GPLを読む必要は無くなる。
      逆にこの例外部分を読まずにGPLだけ理解してても意味が無い。

      まとめると、
      - コンパイラ(アセンブラ、リンカ)の実行は無制限
      - 付属ライブラリのリンクは無制限
      の二点だけ理解してれば、GPLの細則は知らんでよし。

      GCCを使用することと、GPLに賛同あるいはGCC同様の発展を期待して自作プログラムをGPLにするかどうかは別問題。
      商用コンパイラを使用したからといって、自作プログラムをプロプライエタリにする必要があるってこたあない(前述のようにEdisionによってはライブラリの再配布が制限されることはあるが)。
      逆に商用コンパイラを何食わぬ顔で使ってGPL'dソフトウェアを開発してもいいでしょ。
      親コメント
      • たとえばlibgccの中に知的所有権を侵害するようなコードが入っていたらどうするんだ。
        • by bero (5057) on 2003年10月16日 0時14分 (#415472) 日記
          そのためのFSF(Free Software Foundation)。
          #414993 [srad.jp]
          でもかかれているように、GNUのプロダクトでは「責任をとる組織」があります。

          contributeされたコードを取り込む際に著作権をFSFに書面で譲渡させることで、法的な権限と責任をFSFで一元管理しています。
          面倒くさいけど、きっちり考えてると思います(「書面」なのは、電子メールが法的に有効か明白でない/なかったからでしょう)。

          あとは、一開発者やエンドユーザがいきなり訴えられるか?という条件は企業と同じでしょう(本当に責任を取りきれるか?というところも)。
          親コメント
      • >根本的なところで、GPLは「複製や頒布、改変」についてのライセン
        >スであって、「使用」についてはただ一言「プログラムの実行は無
        >制限」としか書かれていない。
        T-kernel, TRONは頒布しないのかなぁ。。。。

開いた括弧は必ず閉じる -- あるプログラマー

処理中...