• ベストアンサー

GNU GPLライセンスプログラムの継承クラスは?

ライセンスについての質問いろいろあったのですが、より具体的な事例でどう解釈すればよいのかわからず、質問させていただきました。 class PROGRAM { ~~~~~ } という、GNU GPLライセンスのプログラムを親クラスにして、 class PROG extends PROGRAM { ・・・・・・・ } というクラスを自作します。 このとき、自作した継承クラスにはGNU GPLライセンスを適応させなければならないのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

それだとわかってるのかわかってないのかがわからん. (有償であると無償であるとを問わず) あなたの作ったプログラムを公開するときには GPL を適用しなければならない ということです. 逆にいえば, 「公開しない」なら有償であるかどうかには無関係に GPL を適用しなくてもかまいません.

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

あ~やって書いておいて確認するのもなんだけど, 「条件付き」の「条件」がどのようなものか理解していますか?

pQ2MZc53
質問者

お礼

ありがとうございます。 それからいろいろと調べてみました。 「改変したプログラムの複製を商業的に売ることは許可されていますが、それは GNU GPLの条項の下でのみです。そこでたとえば、あなたはGPLが指定する通りソースコードをプログラムのユーザが入手できるようにしなければなりませんし、またユーザはGPLに書かれている通りそれを改変したり再頒布したりできなければなりません。 これらは、あなたが入手したGPLで保護されたコードをあなた自身のプログラムに含める上での要件です。 」 この認識でおります。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

適用 (not 適応) しなくてもいい... ただし条件付きで.

pQ2MZc53
質問者

お礼

お礼を入力するつもりが、補足していました。

pQ2MZc53
質問者

補足

お忙しいところご回答ありがとうございます。 なるほど「適用」でしたね。 安心して開発に専念できそうです。ありがとうございました。

関連するQ&A

  • 自分で作ったクラスを継承するとエラーが出ます。

    サーブレットを勉強しているのですが、自分で作成したクラスを継承した サーブレットを作成してコンパイルするとその継承したクラスの シンボルを解釈できませんというエラーが出ます。 たとえばclass01というクラスを継承したclass02.javaをコンパイルすると シンボルを解釈できません public class02 extends class01{ といったエラーが出てしまいます。 どうも自分で作ったクラスを読み込めていないようなのですが どうしたらよいのでしょうか? 初歩的な質問かもしれませんが、よろしくお願いします。 ちなみにOSはWin2000、サーブレットはJRUNを使用しています。

    • ベストアンサー
    • Java
  • 動的リンク時のGPLライセンス

    あるプログラムAはGPLライセンスではないとします。 そして「A用に作られた」プラグインBはGPLであるプログラムCを使用するため、GPLライセンスであるとします。 なお、両プログラムAとプラグインBの作者は同じですが、プログラムAとプラグインBは(同じサイト上ではあるものの)同時配布されるわけではないとします。 原文ではないものの、WikiにGPLに関しての説明があります。 http://ja.wikipedia.org/wiki/GNU_General_Public_License この中で、動的リンク時の問題にも触れられています。 私が読んだ限りでは「明文化されているわけでも、法的に明らかでもないが、動的リンクをするプログラムにもGPLが派生すると言うような習慣になっている。」と見受けられます。 もし「プログラムAがプラグインBを前提としている」場合は、プログラムAはGPLであるべきである思っています。 しかし「プログラムAはプラグインBがなかったとしても正常に動作するものであって、プラグインBが提供する機能以外は正常に使え、かつそれ以外の機能というものが存在している」場合はどうなるのでしょうか? 極端な話「Windows上で動くWindows拡張用DLLがGPLライセンスのとき、WindowsはGPLライセンスであるべきなのか?」といわれたら、そうではないと思います。 しかしながら「Windowsが、Windows上で動くGPLライセンスのWindows拡張用DLLの使用を前提としている」のなら、WindowsはGPLであるべきだと思います。 要するに派生関係によってライセンスが変わるので、 「Bの上でAが動く」なら「AはGPL」 「Aの上でBが動く」なら「AはGPLではない」 と解釈しています。 <質問1>プログラムAとプラグインBが同じ作者によるものであっても、「Aの上でBが動く」なら「AはGPLではない」という論理は正しいといえるのでしょうか? <質問2>仮にプログラムAがプラグインBの影響でGPLになったとした場合、その他のプラグインEはGPLであるべきということになってしまうのでしょうか? 以上、よろしくお願いします。

  • 継承(extends)について

    extendsについてわからないことがあります。 次の3つのクラスがあった時、 class スーパークラス { ... class サブクラス1 extends スーパークラス { ... class サブクラス2 extends サブクラス1 {... サブクラス2は、サブクラス1でスーパークラスから継承しているフィールドをメソッドを継承するのでしょうか?

    • ベストアンサー
    • Java
  • GPLライセンス(著作権)について

    GPLライセンスのフリーウェアについての質問です。 以下のようなケースでは著作権はどうなるのか知りたい次第です。 ・GPLライセンスのお絵かきフリーウェアを使用してアイコン(絵)を作成しました。 ・そのアイコンを使用して操作するソフトを製作して販売する場合、GPLソフトの著作権は一切関わってこないのでしょうか? 当たり前のことなのかもしれませんが、自分で調べてみたところ「プログラムを使った例」でしか説明されておらず、「プログラム本体を改変したプログラム」や「プログラムをライブラリとして参照したケース」といったようなプログラムの中身についての説明しかされておりませんでした。 フリーソフトや著作権に対しての知識が乏しいためにおかしな質問をしているかもしれませんが、よろしくお願いいたします。

  • GPLライセンスのスクリプトの公開義務について

    プログラムのことはわからない初心者です。 GNU-GPL ライセンスのphpスクリプトを有償で販売しているのを見つけたのですが、それを購入し、業者などに改変してもらって会員制サイトを作成しようと考えています。スクリプトの販売サイトを作成するわけではないのですが、以下の件についてよくわかっていないのでご教授お願いします。 1、GNU-GPL ライセンスのphpスクリプトはそもそも有償で販売できるものなのでしょうか。 2、例えば同じようなサイトを作成しようと考えているような人などからソースコードの公開を求められたりしたら無料で公開義務があるということになるのでしょうか。 3、公開を求められなくても誰もがアクセスできるような公の場に公開しておかなくてはいけないというものではないですよね。 4、サイトの著作権は、GNU-GPL ライセンスのスクリプトがあるため、プログラム部分に関してのみ、もしくはサイト全体の著作権が認められないといことになりますか。 5、そのサイトを万が一将来販売する場合、プログラム部分に関しては無料でなければならないのでしょうか。その他の部分、例えばデザインやコンテンツのみなどを有料として販売するような形になるのでしょうか。 6、オープンソースで販売されているのでたくさんの人が簡単に手にいれることが可能であるということは、一部を改変していても、いちからスクリプトを作成しているサイトよりやはりセキュリティー上解読されやすいということになるのでしょうか。 よろしくお願いします。

  • static変数を持ったクラスを継承した複数のクラスで、独立してその変

    static変数を持ったクラスを継承した複数のクラスで、独立してその変数を使いたい。 例えば、 class AbstractStatic{ public static String str; } class Ex1 extends AbstractStatic{} class Ex2 extends AbstractStatic{} というクラスがあったとして、 Ex1 e1 = new Ex1(); ex1.str = "hoge"; といれると、 ex2.str で、hogeが入ってしまいます。同じようなstatic変数を持つクラスを複数作りたいのですが、継承させると、独立して変数を持たせられません。 同じようなクラスに直接static変数を、記述するしかないのでしょうか?

    • ベストアンサー
    • Java
  • GPLライセンスの再配布時の著作権表示

    GPLライセンスに関して、GPLライセンスで作られたプログラムを改変して配布することにしました。 改変したプログラムを配布する際に著作権表示は行う必要はないと思っていますが、正しいでしょうか? 以下の表示になるかと思いますが、後半の著作権表示はどこまで必要なのか調べたのですが、答えが出ていません。  GPLライセンスに関する表示  著作権表示(誰が作成したかなど) パターン1 ------------ オープンソース(GPLライセンス)のプラグインを新規に作成 作成したプログラムはGPLライセンスのため、プラグインもGPLライセンスの元配布 ○質問1  LGPLの場合のプログラムの場合は、LGPLでなくてもよいでしょうか ○質問2  GPLライセンスの表示はするが、私が作ったことを表示しない(著作権表示をしない)ことは問題はないでしょうか ------------ パターン2 ------------ オープンソース(GPLライセンス)の既存プラグインを改変 プラグインには作成された方の著作権表示がある。 ○質問3  私が改変したことを表記する必要はありますか ○質問4  改変した場合に著作権表示をする場合は、本来あった著作権表示に加えて、  改変したことを明記することを表記はしてもよいでしょうか ------------ 全てでなく一部の回答でも構いませんので、よろしくお願いします。

  • クラスを継承するか、変数に入れて持ち回すか?

    掲示板のような仕組みを作っています。 そこで、とりあえず先にHPのヘッダーをと思いPHPRequestというクラスを作りました ユーザーエージェントを元に、Doctypeや文字コード、アクセスしたディレクトリ情報が入っているものです これをヘッダーに継承させるか、変数に放り込んで掲示板の方にも使い回しするかで悩んでいます。 リクエスト class PHPRequest { function PHPRequest() { xxxxx } } ******************************** パターンA class PageHeader extends PHPRequest { } class BBS extends xxxxx { function BBS() { $request = new PHPRequest; } } ******************************** パターンB $request = new PHPRequest; class PageHeader { function PageHeader($request) { $this->xxxx=$request; } } class BBS extends xxxxx { function($request) { $this->xxxx = $request; } } どちらの使い方が正しいのでしょうか? 二通りのやり方をやってみましたけど、特段速度に差があるようにも思えないんです… クラスの考え方が基本的に間違えてるっていうことでしたら、間違えてると言ってくださった方がスッキリします どうも気になって先に進めないので教えてください! お願いします!

    • ベストアンサー
    • PHP
  • PHPのクラス継承において質問

    class SuperClass{ public function getSuperClassName (){ //操作中のオブジェクトのクラス名を取得する print get_class($this); print "<br />"; print __CLASS__; } } class SubClass extends SuperClass{ public function getSubClassName (){ //操作中のオブジェクトのクラス名を取得する print get_class($this); print "<br />"; print __CLASS__; } $obj = new SubClass(); print "<br />"; $obj -> getSuperClassName(); print "<br />"; $obj -> getSubClassName(); 上記のようなコードがあった場合、 出力結果は SubClass SuperClass //継承しているにもかかわらず、SuperClassという文字列が返る。 SubClass SubClass と上記のようになります この結果に一点疑問があるのですが、親クラスのメソッドは子クラスに継承されるんですよね? であれば親クラスの public function getSuperClassName (){ //操作中のオブジェクトのクラス名を取得する print get_class($this); print "<br />"; print __CLASS__; } の箇所の print __CLASS__; の記述箇所はSubClassとでなければいけないような気がします。 しかし結果はSuperClassとでますが、このメソッドは子クラスに継承されていないのですか? publicなら継承されるとマニュアルにかいてありましたが、どうなっているのでしょうか よろしくご教授御願い致します。

    • ベストアンサー
    • PHP
  • GPLについて

    GPLライセンスで配布されているソースコード(Aとする)を利用したソフトを配布する際は、 強制的にそのソフトもGPLとなり、ソースコードを公開しないといけないと思うのですが、 このソフトのソースコードでAの利用をやめ、そのコードの部分を自作したり、他のLGPLのような ライセンスのコードに置き換えた場合は、GPLのソースコードを利用している部分がなくなったので、 成果物のソフトGPLで配布する(ソースコードを公開する)必要はなくなるという理解で合っていますでしょうか。 一度GPLで配布してしまうと変えることが出来ないという話を聞いたのですが、 上記の場合はどうなのだろうと疑問に思い、質問しました。 よろしくお願いします。

専門家に質問してみよう