質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.51%

  • C++

    4431questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Qt

    185questions

    QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。

LGPLとやるべきこと

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,438

BeatStar

score 1264

以前回答して頂いたのですが、混乱しているので再度質問します。

質問が多いですが宜しくお願い致します。

プログラミングというよりも(どちらかといえば)法関係ですが。

以前はLGPLでは「開示要求があったときに開示する」ことを教えていただきました。

( メールで要求されたときに...となると手間なので最初から公開した方がいいということも。 )

ですが、よくよく考えてみると基本的にAvidemuxというソフトやdoxygenのようにQtを使っていて、

LGPLライセンスのソフトは英語表記ですよね。

これって日本語ではダメなんでしょうか?

ライセンス条文は契約書なので英文にしますが、それ以外 ( ソースコード内のコメント, readme.txt 等 ) は日本語でも構わないのでしょうか?

科学等の論文は英語じゃないと見向きもされないという噂は聞いたことがありますが、それと同じなのでしょうか?

また、ライセンス条文はどのようにすればいいのでしょうか?

LGPLを考案した方の元の文章をコピペするだけなのか、自分で文章を考えるのか...

また、例えば Qt ( LGPLライセンス ) を使うとします。

Qtは私からすれば使いにくい部分があるのでQtのソースコードじゃなくて Qtを使う独自のライブラリ( 例えば libmyqt.a ) を作るとします。

Windows API の MessageBox関数の引数が多いから MsgBox関数として自分用に作る感じです。 ( それのQt版 )

で、このライブラリを使って ソフトを作る場合、

作品 = Qt + libmyqt.a + main.cpp...

となります。

このとき、libmyqt.a と それ以外の main.cpp 等も公開義務が発生するかと思いますが、

公開時に、完全にlibmyqt.a と それ以外の部分を分離して、「別途 libmyqt.a をリンクしてね」のような明記をすることは可能でしょうか?

というのも、作品Aを作り終えて、作品Bを作っている際に「あ、こういうAPIがあったらいいなぁ」と思い、それをlibmyqt.a に追加するとします。

で、何かしら ( ユーザからの「こういうエラーが出た」や機能追加 等 ) の理由で作品Aを再コンパイルする場合、

libmyqt.a のバージョンが上がったということで公開義務が発生しますよね。

その場合、すべての作品の修正をするよりも、別々でアップしているならlibmyqt.a の部分だけ修正すればいいことになりますね。

なので、このようにしたいのですが、これってアリでしょうか?

あと、Qtみたいなライブラリを使う場合、これも公開すべきでしょうか?

「Qt 5.6を使いました」みたいな感じではダメなのでしょうか?

また、ソースコードは"OSDN"のようなサイトを利用して公開し、実行ファイルは"窓の杜"のようなサイト利用して公開...
ってことは可能でしょうか?

私は今までは自分向けの作品しかやっていなかったので、何が何なのかがわからない状態です。

趣味でやっているので、学校で習ったわけでもないし。

私個人は「著作権を放棄しない」けど「自己責任で使うなら勝手に使ってもいい」と思っていますが、

QtというLGPLライセンスのライブラリを使うので...

ご存知の方、宜しくお願い致します。

Q1. ライセンス条文以外 ( コメント etc. ) は日本語でも構わないか
Q2. ライセンス条文はコピペで構わないか
Q3. 自分用のライブラリと実行ファイル用main.cpp等の分離は可能か
Q4. ソースコードの公開と実行ファイルの公開は別のアップロードサイトでも構わないか

宜しくお願い致します。


[ 追記1 ]
yohhoyさんからの指摘がありましたので、追記します。

できればプログラマだけじゃなくて一般ユーザにも使ってほしいと思っているので、"窓の杜" 等を利用しようと考えています。

ODSN等だと、有名な方が「これ面白いソフトだよ!」と取り上げてくださればいいですが、マイナーな状態なので、一般ユーザには無理だと思います。
( ソースコードは知りたい人が調べるのでいいですが。 )

ソースコード全般は公開したくないとまではいいませんが、上記でいえばlibmyqt.a ファイルに入れるコードと 実行ファイルの挙動を指定するmain.cpp等を分離していて、階層が複雑なので、公開しなくてもいいならそれでいいですが、公開義務があるので(すべて)公開してもいいです。


[ 追記2 ]
追記で。

Qtを使う場合、そのライブラリも載せるべきでしょうか?

「Qt 5.6を使っています」程度でいいのか、Qtそのものも上記で言うlibmyqt.a と一緒に追加するべきでしょうか?


[ 追記3 ]
もしLGPLとして開示する場合、ヘッダファイルにもLGPLであるという明示をする必要があるようですが、

これって、

//----------------------------------------------------------------------------
//
//  ■ ファイル名: (ここにファイル名)
//
//  ■ 用      途: (ここに用途)
//
//  ■ 備      考: LGPLライセンス
//                 (ここにその他の備考)
//
//                                                           (C) **** reserved
//----------------------------------------------------------------------------
// ここにコード
#ifndef (インクルードガード)
#define ...

#endif


//----------------------------------------------------------------------------
//   (ここにファイル名)
//                                                           (C) **** reserved
//----------------------------------------------------------------------------

という感じでいいでしょうか?

それとも明示方法があって、それ以外はライセンス違反になるとかでしょうか?

趣味でやっていて、私が読みやすいようにしているので上記のような感じになるのですが...

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • yohhoy

    2018/03/16 12:53 編集

    前提として「最終的なプログラムは一般に広く頒布したい(有償/無償問わず)」「main.cpp部やlibmyqt.aソースコードは公開したくない」という条件はありますか?本文では少しあいまいに思えたのですが、全てのソースコードを開示する意図があり、その改変も許可する気があるなら何も問題ないと思います。

    キャンセル

  • yohhoy

    2018/03/16 13:02

    https://www.sra.co.jp/qt/licence/ 日本語でQtライセンスについて詳しい説明があります。ご参考にどうぞ。

    キャンセル

回答 3

+4

まず著作権法の原則まで立ち戻ると、著作物を著作権者の許可なく再配布しては(一部の例外を除いて)いけません。一方で、LGPLは同じライセンスをかけてソースコードまで公開するなら、自由に改造・再配布できる、というルールになっています(「コピーレフト」といいます)。

Q1.  ライセンス条文以外 ( コメント etc. ) は日本語でも構わないか

特に問題ありません。

Q2. ライセンス条文はコピペで構わないか

むしろ、コピペでなければなりません。勝手に変えれば、そちらのほうがライセンス違反となります。

Q4. ソースコードの公開と実行ファイルの公開は別のアップロードサイトでも構わないか

和訳に「あなたは 『プログラム』のソースコードの複製物を、あなたが受け取った通りの形で複 製または頒布することができる。媒体は問わない。」とあるように、適切な方法で公開すれば、どこでも構いません。

(Q3は判断がつかないのでいったんノーコメントとします)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

+1

こんにちは。

恐らく混乱の元は、「BeatStarさんが著作権を保持しているプログラム」と「そうでないプログラム(この場合Qt)」について、異なるライセンスで配布することが原則なことを把握されていないからのように感じます。

原則として、BeatStarさんが著作権を保持しているプログラムのライセンス(使用許諾)はBeatStarさんが自由に決めることができます。LGPLなライブラリを使ったからと言ってLGPLでライセンスする義務はありません
BeatStarさんのプログラムを配布する際に、Qtを(一部でも)BeatStarさんが配布する場合はQtのライセンスに従う必要があります。つまり、BeatStarさんのプログラムのライセンスを定める際に、Qtのライセンスと矛盾するようなライセンスにしてはいけないだけです。
また、LGPLはライブラリ用のライセンスですから、BeatStarさんが配布するプログラムがライブラリではない場合はGPLでライセンスするのも手です。GPLと矛盾しないライセンスでライセンスするのもありです。
更に、逆にBeatStarさんのプログラムにソース非公開なライセンスも適用出来ます。

BeatStarさんのプログラムがLGPLなQtライブラリを使っているようですが、使うだけでQtライブラリを改変していない場合、BeatStarさんがやるべきことはわずかです。

  1. BeatStarさんのプログラムのライセンスに解析禁止条項を入れないこと。
  2. QtのLICENSEを添付すること。
  3. 使用したQtのソースもBeatStarさんの責任で配布すること。

(なお、これで間違いないかどうかはご自身でご確認下さい。私のこの記載について私は責任を負えませんので)

Q1. ライセンス条文以外 ( コメント etc. ) は日本語でも構わないか

BeatStarさんのプログラムの言語は自由です。BeatStarさんのライセンス条文も日本語でなんら問題ありません。

Q2. ライセンス条文はコピペで構わないか

ライセンス条文(契約書)に著作権は認められないそうです。(弁護士さんに確認したことがあります。)
ですので、コピペして問題ありません。

Q3. 自分用のライブラリと実行ファイル用main.cpp等の分離は可能か

BeatStarさんの自由です。

Q4. ソースコードの公開と実行ファイルの公開は別のアップロードサイトでも構わないか

構わないとは思いますが、ソースの公開期間の方が長い(LGPLの場合、最後にバイナリ配布後3年間だったと思います)ので、この点には要注意です。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/16 14:25

    読みながら考えています。
    つまり、ライセンス云々は使う側のみが受けて、公開するときは別のライセンスにしてもよいという。
    で、さらに私が組んだライブラリを別の人が使う場合は私が指定したライセンスによる...でしょうか?

    キャンセル

  • 2018/03/16 14:44 編集

    ライセンスの意味は「使用許諾」です。貸出条件と言っても良いと思います。
    BeatStarさんがお持ちのものを他の人に貸し出す際に、どんな条件をつけるのかはBeatStarさんの自由です。ただし、その貸し出すものにBeatStarさんが他の人から借りているものを一緒に添付する場合は、BeatStarさんが他の人から借りた時の条件に矛盾しないように貸し出す必要があります。

    例えば、BeatStarさんが持っている服を他の人に貸す時、「返してくれれば汚してもいいよ。ただし、汚した時はクリーニング代を1000円払ってね」って条件で貸すこともあるでしょう。その服にBeatStarさんが他の人から借りているアップリケを貼り付けている場合、他の人から「返さなくて良いけどあげるんじゃないよ。記念品なので汚さないでね」と言われていたらBeatStarさんは「汚さないでね」という条件を付けることが義務になります。「500円で貸し出すよ」等の条件は矛盾しないので追加することも自由です。

    キャンセル

+1

このとき、libmyqt.a と それ以外の main.cpp 等も公開義務が発生するかと思いますが、

いいえ、発生しません。

GPLではライブラリを使用して作ったアプリケーションについても開示義務が発生します。それでは商用利用が難しくなるため、あえて制限を緩めたのがLGPLです。

LGPLはライブラリを利用して作ったアプリケーションについて、ソースコードの開示義務はありません。Qtそのものに対して修正を行った場合のみ、開示義務が発生します。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/03/18 11:49

    つまり、Qt自体を改変して別のライブラリにしたりとかしなければ公開義務はないのでしょうか?

    たとえば、Qtには QMainWindowっていうクラス ( メインウィンドウ用 ) があり、それを継承して自分用の libmyqt.a に(子クラスを)追加した場合、公開義務はないのでしょうか?

    キャンセル

  • 2018/03/18 13:19

    > つまり、Qt自体を改変して別のライブラリにしたりとかしなければ公開義務はないのでしょうか?
    はい、Qt自体を改変しないかぎり公開義務はありません

    >継承して自分用の libmyqt.a に(子クラスを)追加した場合、公開義務はないのでしょうか?
    はい、継承して作成したクラスに公開義務はありません。

    GPLとLGPLを混同していらっしゃるようですね。
    まずはGPLとLGPLの違いについて、調べられるとよいかと思います。

    キャンセル

  • 2018/03/18 13:30

    なるほど。
    LGPLなら(他の)ライブラリ自体を改変しなければ公開義務はないんですね。
    もうちょっと調べてみます。

    キャンセル

  • 2018/03/18 17:27

    細かいことを言うなら、LGPL とリンクしても公開義務がないのは静的リンクではないときだけです。
    が、Qt の静的リンクライブラリのバイナリは公式からは配布されていませんので、自分でビルドして用意しなければ静的リンクはできません。BeatStar さんに自分で Qt をビルドするスキルがあるとは思えないので、今のところは関係のないお話です。

    キャンセル

同じタグがついた質問を見る

  • C++

    4431questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • Qt

    185questions

    QtはGUIプログラムの開発で広く使われているクロスプラットフォーム開発のフレームワークです。