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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Qt

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

C++

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

Q&A

解決済

3回答

3037閲覧

LGPLとやるべきこと

BeatStar

総合スコア4958

Qt

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

C++

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

0グッド

1クリップ

投稿2018/03/16 03:36

編集2018/03/28 04:05

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

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

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

以前は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 //----------------------------------------------------------------------------

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2018/03/16 03:59 編集

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

回答3

0

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

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

特に問題ありません。

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

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

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

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

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

投稿2018/03/16 03:58

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

いいえ、発生しません。

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

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

投稿2018/03/18 00:13

Kunihiro_Narita

総合スコア472

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2018/03/18 02:49

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

2018/03/18 04:19

> つまり、Qt自体を改変して別のライブラリにしたりとかしなければ公開義務はないのでしょうか? はい、Qt自体を改変しないかぎり公開義務はありません >継承して自分用の libmyqt.a に(子クラスを)追加した場合、公開義務はないのでしょうか? はい、継承して作成したクラスに公開義務はありません。 GPLとLGPLを混同していらっしゃるようですね。 まずはGPLとLGPLの違いについて、調べられるとよいかと思います。
BeatStar

2018/03/18 04:30

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

2018/03/18 08:27

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

0

ベストアンサー

こんにちは。

恐らく混乱の元は、「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 05:03

編集2018/03/16 05:05
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2018/03/16 05:25

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

2018/03/16 05:45 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問