OracleJDKからOpenJDKへ。OracleはJava世界に不要
何でjavaにこだわるのかな
go javascript python
好きなとこにいけばいいのに 新規開発と既存システムの運用を分けて考えられないの?バカなの? 何でこだわるって目の前のシステムがjavaで動いてるからに決まってるだろ OracleJDKのライセンス料払うの嫌ならOpenJDK使えって事だろうけど
自前で修正してビルドしてテストするのを半年毎にするのは変わらんのな OpenJDKのコントリビュータになるためにはこれにサインする必要がある
OpenJDKに夢見てる奴は一度目を通してお前ならこれにサインできるかどうか考えてみるべきだな
http://www.oracle.com/technetwork/oca-405177.pdf
ちなみに無視して野良OpenJDKを配ったら特許侵害な 提出しないでソース書き換えて配布したらどうなるんだ? >>18
著作権法状は問題ないが、特許利用許諾の対象から外れるから特許侵害 すまんOpenJDKの話な
GNUは勝手に改変して配っても別に何の問題もないよ
GPL2なら特許訴訟の可能性も無くはないけどFSFがGPLに従った再配布行為を訴えるなんてあり得ないし >>19
それ本当か?Linuxディストリビューション、
具体例ではRed Hatクローン配ってるところがみんな
Oracleに書類提出してるとは思えんが。 コントリビューターとディストリビューターを勘違いしているのでは? なるほど、OpenJDKを配布するだけなら何も書類書く必要ないってことだな。
無料で使えて無料でばんばんコピーできる >>23
でも半年毎にセキュリティホール潰しのパッチ配布されるから都度修正ビルド必要 ディストリビューション独自のパッチ当ててるところもあるが
みんなOracleに契約書出してるのかと。 >>24
Oracleはパッチ配布しないの?
それじゃ使えないな OK、完全に理解した。
OpenJDKのコントリビュータというのは、
OpenJDKに対してソースコードを寄付した場合の話だ。
OpenJDKにコードをマージしてほしい場合の話だ
だからディストリ独自にパッチを当てる分には不要なんだ >>27
勝手に改変すると特許で訴えると主張してる奴いるぞ >>28
ははは、馬鹿なんだろ
OpenJDKのライセンスはGNU GPL(+リンク例外)だよ
それ以外の何者でもない GPLなんだから勝手に改変して再配布してもOK
もちろん再配布するときは、再配布した相手にソースコードを
入手できるようにしないといけない。これはGPLの制限。
OpenJDKプロジェクトに対してコードをマージしてもらいたいなら(=コントリビュート)
オープンソースプロジェクトにコードを提供したんだから、
特許問題とか解決してあとからそのコードは俺のもんだとかいうなよ。
なにか問題があったらお前の責任で解決するんだぞ。って言ってるだけ
これ、全てのオープンソースプロジェクトに対して
有効にしてもいいぐらいの常識的なことだと思う >>30
常識というか全てのオープンソースプロジェクトの大前提なんだけどな。
それをわざわざ文書で宣言させるところがオラクルらしい。 書いてないことを前提にするのは良くないことだぞ
この場合Oracleは素晴らしいと言わないといけない >>30
違う
OpenJDKが採用しているのはGPLv2であり、GPLv2によって明示的に許諾されるのは著作権の利用のみで特許は含まれない
GPLv3が生まれた背景を調べたらすぐわかるけど、特許訴訟のリスクがあるというのはよく知られたGPLv2の問題だよ
書いてないことを前提にするのは良くないこと、は全くもって正しくて、それがまさにOpenJDKの問題なの >>33
なんか変な勘違いしてるぞ。
GPLが適用されるのは、作成して配布しているソフトウェアに対してだ
作った製品に対する利用ライセンス
それに対してOracleがやってるのは、製品に組み込む際のルールだよ。
それは組み込まれた製品のライセンスの対象外
↓ Oracleへの寄稿同意書(ソフトウェア利用許諾契約の対象外)
↓ ---------------------------
↓ ソフトウェア利用許諾契約(GPL等)
OpenJDKが採用しているのがGPLでも他のライセンスであっても関係ないんだよ
利用許諾契約外の話なんだから >>13に基づいたコントリビューションはGPLとは無関係だろ
これに従ってOpenJDKにマージされたソースには(コントリビュータの著作権に基いた)GPLは適用されないはず
Oracleが共同著作権を行使することにより、あくまでOracleの著作権に基づいてGPL下でOpenJDKがリリースされる
オラクルはいつでもOpenJDKとは無関係にコントリビュータのソースを使い派生物を作成してソースを公開することなく販売できる >>33
あと間違えてる
> OpenJDKが採用しているのはGPLv2であり、GPLv2によって明示的に許諾されるのは著作権の利用のみで特許は含まれない
GPLv2には特許に関してどう扱うかは記述されてない
だから「特許が含まれない」と断定することができない。
GPLv2で配布しているのに、ソースコードは公開していても特許が含まれるために
自由に使えないということがあり得るということ
だからGPLv3が生まれた
でもこれはあくまで配布する側の話
Oracle「よし、俺はGPLv2は配布するぜ!オープンソースだから外部からのコードも受け入れるぜ。明確に書いてないけど俺が特許権を行使することはないぜ」
怪しいやつ「Oracle様〜、ソースコード献上しますだぁ〜(俺のコードには特許がある。あとで行使してやるぞwww)」
Oracleは特許権を行使しなくても、される可能性があるんだよ。これはGPLv3でも同じ。
なぜならGPLv3のコードにマージする前の、提供されたコードにもともと存在する権利だから。
GPLにマージできないコードをGPLソフト開発者がマージしてしまったら、訴えられるのはGPLソフト開発者のほうだよ。
GPL開発者「さーせんwww あんたが権利を持ってるコードをマージしちゃった。GPLの方が偉いんだからお前の権利剥奪するわwww」
なんてことは言えない >>32
GPLでもMITでも、プロジェクト自体にオープンソースライセンスが適用されてりゃいちいち個別に宣言する必要なんてないわ。 >>37
一般的に君がプロジェクトのライセンスとして認識してるのはソースコードの利用に際するライセンスだよ
君は混同してるようだけど、コントリビュータのソースをどう扱うかはまた別の問題だ
GPL下でソースをリリースするときには成果物が他人の著作権に基いたGPLによって「汚染」されることを防ぐために
>>13のように(権利者にとって)安全にコントリビューションを受け入れるパスを設けることは一般的なプラクティスだよ
MITならコントリビューションもMITでやっちゃっても実質的な問題はないかもしれないけど、
それでも管理が複雑になるから.NET Coreなんかも同様の契約があるね(契約相手はMSではないが)
本来の思想上はGPLオンリーでいいはずのFSFですらもそう JAVAの場合、かってMSが喰らって今もgoogleとやりあってる
互換性テスト云々の縛りが別途あるような気がするが。 >>39
一般的にGPLv2では特許については常識的に考えて暗黙的に許諾されてるものとして高を括って権利者を信じるもんだけど、
OpenJDKについて特許訴訟のリスクが特に懸念されてるのは互換性テストのせいだね
OpenJDKも含め、特許利用許諾の必須要件としてJCPによる互換性の認定が必要だと明示的に規定されているわけで、
GPLが暗黙の特許利用許諾を含んでいることを仮定するならば、OpenJDKのライセンスはGPLと矛盾する OpenJDKのライセンスはGPLだよ。
矛盾してたら世界の誰かが指摘している。
諦めろ >>41
だから実際指摘されてまくってるんだよなあ >>42
どこで指摘されてるの?
このスレで問題があると指摘しているやつは
単なる間違いなので無視するとして(大爆笑) GPLが暗黙の特許利用許諾を含んでいないことは
まあ、あきらかですね。言うまでもありません。
暗黙 = 明言されてないので許諾になることは
法律上ありえない >>44
OpenJDKの特許に関する安全性はGPLv2が暗黙の特許利用許諾を含んでいるという解釈が前提なんだけど、自分で何言ってるか分かってる?
含んでないなら改変によって互換性の失われたOpenJDKを利用することは完全に特許侵害行為となるわけだが… > GPLv2が暗黙の特許利用許諾を含んでいるという解釈が前提なんだけど
お前の解釈なんて知らん。
GPLv2が特許利用許諾を含んでいるか否かだ
暗黙って書いてないんだろ?なら含んでいないと解釈すべきだ
どんなに都合よく解釈したとしてもケースバイケースが限界 >>45
> 含んでないなら改変によって互換性の失われたOpenJDKを利用することは完全に特許侵害行為となるわけだが…
OpenJDKに特許が含まれていないなら、特許侵害にはならない このサイトによると、
http://en.swpat.org/wiki/Java_and_patents
・OpenJDKがオラクルの特許を含んでいることは誰がどう見ても明らか
・米国では一般的にGPLv2は暗黙の特許利用許諾を含んでいると信じられている(判例はない)
・↑を信じるなら改変したOpenJDKの配布は安全である
というのが現時点での結論のようだ で、なんの話だっけ?まとめるか?
OpenJDKにOracleの特許が含まれてる
GPLv2にしたところで特許は消滅しない
悪意ある人ならGPLv2にしておいて、後から特許利用料を請求する可能性がある
(だからこそそれができないGPLv3ができた)
Oracleさんは正義だからGPLv2であっても、その特許を使っていいですよって許諾している(はず)
↑ここまではOracleさんの話
Oracleさんへ悪意のある人がコード提供した。
そのコードには特許があった。
GPLv2にしたところで、特許は消滅しない。
もちろん特許をOracleへ譲渡したわけではないので、その特許は悪意のある人が持ってる
OpenJDKを使った人が、悪意のある人から特許利用料を請求する可能性がある。
↑
という自体を防ぐために、OpenJDKのコントリビュータになるためには
そういうことをしませんよという契約が必要になる
(それが http://www.oracle.com/technetwork/oca-405177.pdf )
もちろんOpenJDKはGPLv2なのでそれに従っている限り、勝手に改変して再配布してもよい。
勝手に再配布しても正義のOracleさんは、その特許を使っていいですよって許諾している(はず)
だけど悪意のある人が再配布したものは、どんな改変がされてるかわからないし、
悪意のある人の特許が追加されているかもしれないので、信用出来ないなら
正義のOracleさんが配布している公式のOpenJDKを使いましょう。
Oracleさんは正義だからGPLv2であっても、その特許を使っていいですよって許諾している(はず) >>49
惜しい
OpenJDKのコントリビュータにOCAを要求する目的は、もちろん特許訴訟を避けるためというのもあるけど、
それ以上に重要なのは他人がOpenJDKに対して著作権を主張して利用が妨げられることを避けること。
もっと端的に言うと、オラクルの保有するオリジナルのコードベースがGPLに逆感染するのを防ぐためだ。
そうしないと、俺の送ったパッチがマージされてるはずだから Oracle JDK11 LTS のソースを継続的にGPLで公開しろ、なんていう主張が通ってしまう。
二度とクローズドにできなくなるわけ。 >>13
とにかくこれはデタラメということでOK? > OpenJDKのコントリビュータになるためにはこれにサインする必要がある
この部分だけ正しい
> OpenJDKに夢見てる奴は一度目を通してお前ならこれにサインできるかどうか考えてみるべきだな
なんの夢なのか意味不明。俺ならコントリビューターになりたい場合にサインする。
> ちなみに無視して野良OpenJDKを配ったら特許侵害な
GPLv2は暗黙の特許利用許諾を含んでいると信じられているので
サインしないで野良OpenJDKを配っても、Oracleの特許侵害にならない
GPLv2にさえ従っていれば、自分で改造したOpenJDKを配ることは可能
そもそもこのサインはコントリビューターになるためのサインで、
Oracleが提供しているOpenJDKは、必ずこのサインに署名されているので
Oracleもしくはその他の特許侵害にならない。安心して使えるといえる
Oracle以外が提供しているOpenJDKを使う場合はこの限りではない。
Oracleの特許侵害になることはないが、Oracle以外の特許侵害になる可能性はある。 つまりコントリビュータにこれを文書で誓約させている時点で、他の一般的なオープンソースプロジェクトよりもむしろ安全ってことだよな。
オープンソースライセンスで公開されているプログラムにコードを提供した時点で利用許諾をしたものとみなされる、ってのが判例で明示されればいいんだけどな。
今のところは各プロジェクト単位のContributionのところにそのむね書いておくくらいしかできないか。 ぶっちゃけ怖いよな。素晴らしいコードを提供してくれた、ありがとう!
ってマージしたら、そのコードの権利を主張されるとかさ
もしかしたらそのコードは、コードを提供してくれた人ではない
他の誰かが作ったものだったら、勝手にGPLに変えちゃいますとか
言えないし。この場合はコードの本当の作者も被害者なわけで。
コードを持ってきた人に責任を負わせないと 請求来たらコーダーに払わせたらいいのか
javaコーダーは金持ちだから大丈夫だな >>52
言ってることが無茶苦茶だな。
当然誰かが改変した野良OpenJDKもGPLv2の下で配布されるんだから、
GPLv2の暗黙の特許利用許諾を信じるなら、改変者の特許もOracleの特許と同様に利用許諾されていることになるだろ。
一方、Oracleの特許利用はJCPによって互換性があると認められたJava実装に対してのみ認められると定められていることも事実。
そして実際に裁判になった際に、GPLv2の暗黙の特許利用許諾とJavaの特許利用規定のどちらが優先されるかは自明ではない。 >>56
OpenJDKのライセンスは、GPLv2 with classpath extensionなんだよね。
この規定の中にはJCPなる単語はあるの?
特許の許諾が発生するのはJCPの範囲なんでしょう?
だとすれば、classpathで分離されたjarファイル単体でJCP主張するのしか出来ないよね。OpenJDK自体はGPLv2なので再配布自由だけど、JCPが派生する根拠はあります? >>57
まず大前提として、Oracleの特許利用許諾は「TCKをパスしたJavaの実装」に対して与えられる。
そして、原則としてTCKを入手するにはオラクルからライセンスを受ける必要がある。
しかしこれでは個別にオラクルのライセンスを受けない限りOpenJDKを改変できなくなってしまうので、
GPLに基いてOpenJDKの派生物を配布しようとする者には特別にTCKを利用するライセンスを受けることができる。これがOCTLAと呼ばれるライセンスだ。
当然、オラクルがこのライセンスの供与を終了すればOpenJDKの改変は直ちに不可能になる。これが第一の問題。
そしてこのライセンスに基づいてオラクルからTCKを提供してもらうわけだが、なんと、そのためにはOCAにサインした上で(!!)
プロジェクトについてOracleのレビューを受けなければならない。Oracleの気に入らない実装はここでリジェクトできる。これが第二の問題。
http://openjdk.java.net/groups/conformance/JckAccess/ ちなみにRedHatもAdoptOpenJDKも当然このTCKを利用して正規のプロセスでOpenJDKを再配布してる。
AdoptOpenJDKによると、「野良実装はリスクがあるからプロダクションには使うな」だそうだよ。 あと、OpenJDKを改変するにはTCKが要るというのはちょっと語弊があるな。
そもそもOpenJDKは単なるソースコードであって、それ自体は正規のJavaディストリビューションじゃない。
たとえ無改変だろうと、第三者へJavaを配布しようと思ったらTCKをパスしてなきゃいけない。
もちろん、AdoptOpenJDKをはじめとした再配布を許可しているTCK通過済みの正規のディストリビューションを使うのも手だ。 >>58
いや、それOpenJDKを勝手に改変して、OpenJDKとしてリリースするのが駄目ってことだろ?
OpenJDKという名前も使えないだろうから、
OpenMyDKみたいに、OpenJDKを改変した違うものとして
リリースすれば問題ないでしょ?
もちろんそんなものを使ってくれるかどうかは別としてだけど GPLv2だから、ソース配布は無償だし、ビルドも無償でバイナリ配布だって無償だと理解しているけど。フォークや改変や再配布を禁止出来る理由がない。
特許の使用権と、ソースバイナリ配布とは全く別の概念のはず。後者はGPLv2でカバー、改変も許諾されている。
改変後のソース、バイナリに、特許の許諾が及ぶかどうかはGPLv2では担保されない。全部個別判断だし都度裁判沙汰になるだけ。 >>62
ソフトウェアは方法ではなく物だから、ネットワーク等の媒体を介してソフトウェアを流通させること自体が実施行為だよ >>61
さあね
少なくともOpenJDK自体のライセンスは特許の利用を明示的に許諾していないのは事実だし、
OpenJDKに含まれる特許について明示的な特許利用許諾を受ける唯一の方法はTCKをパスすることであるのも事実だ
あとは法廷で決着をつけるしかないよ
Oracleからある日突然書類が送られてきて、正規のプロセスを通しなさい、さもなくば法的措置を取ることになりますと言われたら、君はOracleと戦う? お前らなにをそんなに盛り上がってるの
自分でJDKでも作るの OpenJDKはGPLだからOracleの支配から解放されて自由だなんていうのは全くの幻想であり、
Oracleのライセンスを受けた正規のディストリビュータから提供される正規のOpenJDKディストリビューション(Oracle Javaも含む)を使いましょう
それが法的リスクに怯えずに堂々とJavaを使える唯一の方法です、という話 Java名乗るには互換性テスト受けないとダメという話は
サンの頃からずーと問題視されてたのでその点を取り上げてOracle死ねは今更感がある。
Red Hatは許諾を受けるとしてもRed Hatクローンやってる団体が
全て許諾を取るとも思えないがそのあたりどうなるだろうか RedHatが作成したJDKをそのまま再配布するだけならええんでないの 互換性テストをパスしなけりゃJavaを名乗れないのは納得できるけど
Javaを名乗らずに配布した場合は特許訴訟のリスクを背負うってことになるの? >>70
さあ
ならない明示的な根拠はどこにもないし、OpenJDKのFAQとか見たらわかるけどOracleは明らかに意図的にその可能性を排除していない >>66
これがオラクルのなせる技か
Openと言いながら、実態は違うと言う二枚舌 WindowsXPではMS Javaみたいなのがデフォルトで載ってて互換性問題引き起こしたからなんらかの認定が要るのは分かる >>67
現状ですでにOpenJDK7の更新版の配布とかしてるんだから、そこはクリア済みでしょ、普通に考えて Visual StudioのXamarin.AndroidもOpenJDKに変更になるって予告来た >>80
そりゃ余計な金をオラクルに払いたく無いわな
でもソースはいじらずそのまましか使えないジレンマ こういう作業を一般中小企業がやるとなると、労力は相当だろうな 半年に一回アップデート作業するかお金払うか選べって話でしょ? 半年という短い期間ごとにテスト、稼働を繰り返すのはなぁ >>84
基本的にはね
でもプログラムソースを勝手にいじってオラクルの機嫌損ねたら訴えられるリスク込み >>86
お前このスレで詳しい人に完全に論破されてただろ まあ、ちゃんとテストさえ書いてあればJavaのバージョンアップもそんなに怖いものじゃないわな。
RailsだのRubyだのはかなりの頻度でのアップデートにみんな普通に追随してるわけだし。
とはいえさすがに年一にして欲しいが Javaは互換性壊すようなアップデートはあまりしてこなかったと思うけど Java9から明らかに潮目が変わったから今後どうなるかは完全な不確定要素 怖いものかどうかってのが手間(コスト)って言う尺度で言うなら
メーカーがなんと言おうと確認試験は発生するからな。 普通に考えたら半年に一回ミドルウェアのメジャーバージョンアップ強制なんて正気じゃねえわな
Rubyは年一アップデートだけど一年でサポート切れるわけじゃないし さすがにRuby程度のレベルでいいんならOpenJDKを半年ごとに自動更新するほうがマシだろw 273 デフォルトの名無しさん [sage] 2018/09/04(火) 08:29:51.03 ID:TKsJiWYY
信用の問題だろ
OracleがOpenJDKを潰そうと思えば直接的な法的手段を用いるまでもない
Oracleはいつでもディストリビュータに対するTCKの提供を停止することができ、それにより既にGPL化で配布されたOpenJDKも即座に破綻する
OracleはTCKのテストケースに対して著作権を有しており、これを侵害することなく互換テストを再構築することは事実上不可能だ
これが現在想定される最悪のシナリオだが、Oracleならやりかねないと思われてしまったこと自体が問題 Javaを混乱させておいて
次のoracleおすすめ言語を出してくるのかもしれない Java EEはEclipse移管でOSS化
(Jakarta)
OpenJDKは半年サイクル更新
Java EEだけ使ってる所はセーフだが両方使ってるのが普通だからねえ 結局OpenJDKの公式LTSは音沙汰なし
Oracle様のご意思だろうなあ >>101
OpenJDKの中の人は早々と意欲を示してたけど、結局その後ピタリと言わなくなったということは、つまりそういうことだよなw 当初はやろうとしてたのは本当
そもそもそんな嘘をつくメリットがない オラクルは形式的にはOpenJDKのディストリビューターの一社であり、
OpenJDKの公式というのはすなわちオラクルの公式と事実上同義である
つまり、OpenJDKのLTSというのはOracle JDKに他ならないんだよ
無償で配るなんて誰も言ってないだろ? >>105
>>無償で配るなんて誰も言ってないだろ?
だよな
こういうのを二枚舌と言う OpenJDKの中の人は殆どなOracleの人だよ。
OpenJDK=OracleJDK
OracleがOpenJDKにパッチを提供しないことは無いだろう。
しかし一手不足とかスケールを理由で1ヶ月ほどセキュリティパッチを遅延したらどうなると思う? >>107
OpenJDKはあくまでオラクルのコントロール下にあるソースをGPLで「リリース」してるんだぞ
OracleのオリジナルのコードベースはGPLには感染していないから、
Open JDKをハブってOracle JDKに対してだけパッチをリリースことは著作権的に全く問題ない
というかオラクルは当然そうするだろ