[271] USB IR Tower 対応NQCについて 投稿者:JinSato 投稿日:00/12/18(Mon) 22:24
USB IR Towerの活用 のスレッドが長く深くなってしまいましたので、こちらに別スレッド
を作りました。

現状は
清水友人さんが
http://sources.redhat.com/cygwin/ からダウンロードできる
コンパイラを使いビルドの成功

ききょうや さんが
フリーのBCC55でnqcをビルドを成功しています。

ポイントは
1: NQCの function.h を NqcFunction.h と名前を変えてること。
2: NQCのソース( nqc-2.2.r2.tar.gz )の PSerial_win.cpp の69行目
if (!SetSpeed(kDefaultSpeed)) return false; という行をコメントアウト
同じく PSerial_win.cpp の53行目
return "\\\\.\\COM1"; を return "\\\\.\\LEGOTOWER1" に変更

の2つでしょうか?

あとは、コマンドラインから -S オプションを使って USBやCOM1〜COM4を
切り替えられるようにするのが目標になるかな?

さらに、Daveさんへのフィードバックですね。

[273] Re: USB IR Tower 対応NQCについて 投稿者:ききょうや 投稿日:00/12/19(Tue) 01:19 <URL>
ききょうやです。

> あとは、コマンドラインから -S オプションを使って USBやCOM1〜COM4を
> 切り替えられるようにするのが目標になるかな?

ここが結構面倒ですね。
今、ソースを見てみると、UNIXとMACとWINを
PSerial * PSerial::NewSerial()
をオーバーライドすることで実現しているみたいで
単にPSerial_usbクラスを作っても生かしようがないんです。

ということは、コマンドオプションを追加するか、
SオプションでUSBの文字を検出して
フラグを立ててPSerial_winクラスの中でごにょごにょする必要が
あるみたいです。
なるべく元のソースはいじりたくないんだけど
やむを得ないかもしれないですね。

何か別にいい方法でもあるかなぁ?

とりあえず -SUSB1 と言う風に指定することで
USBを使えるようにしてみましょうかねぇ・・・

ではでは

  ききょうや

[274] Re^2: USB IR Tower 対応NQCについて 投稿者:ききょうや 投稿日:00/12/19(Tue) 01:49 <URL>
ききょうや@自己レスです。

> とりあえず -SUSB1 と言う風に指定することで
> USBを使えるようにしてみましょうかねぇ・・・
完成しましたが、どうしましょう???
David Baumさんに報告しないといけませんねぇ

結局、PSerial_win.cppのみの書き換えだけで実現させました。
が、しかし、メッセージとかはシリアルポートのままです。
また、-SUSBxをデバイス名\\.\LEGOTOWERxのxの数字を変えるように
しましたが、USB2以上が使えるかどうかは、2台以上持ってないので
不明です。

ところで、今回の改造はいろんな方々の解析情報、アイデアに
よって完成できたので、これを再配布するときは、関係者全員の
クレジットを入れるというのはどうですか?

とりあえず、今夜はここで寝ることにします。

ではでは

  ききょうや

[286] USB IR Tower 対応NQCバイナリの配布について 投稿者:ききょうや 投稿日:00/12/21(Thu) 14:23 <URL>
ききょうやです。
とりあえずバイナリを用意してみました。
ドキュメントは英文と和文を用意して、
ここの議論に参加した人の名前はすべて入れてみました。
オリジナル作者にはメールにて連絡するつもりです。
ちゃんとリンクして公開する前にみなさんの意見をいただきたいので
見てみてください。
この書き込みのリンクからDLできます。

  ききょうや

[295] Re: USB IR Tower 対応NQCバイナリの配布について 投稿者:">mac 投稿日:00/12/31(Sun) 12:34 <URL>
> ちゃんとリンクして公開する前にみなさんの意見をいただきたいので
> 見てみてください。

現在のStatusは、どのようになっていますか?
既に十分時間があったし、決して悪い話ではない様ですので、
応答のない方を含めて、問題無しとしてよろしいのではないかと思います。

できましたら、2.3.a1でも、パッチ可能との情報と、
パッチも含めてBaumさんにご連絡ください。

[293] Re: USB IR Tower 対応NQCバイナリの配布について 投稿者:清水友人 投稿日:00/12/21(Thu) 23:56 <URL>
清水です。こんにちは。

> とりあえずバイナリを用意してみました。
> ドキュメントは英文と和文を用意して、
> ここの議論に参加した人の名前はすべて入れてみました。
> オリジナル作者にはメールにて連絡するつもりです。
> ちゃんとリンクして公開する前にみなさんの意見をいただきたいので
> 見てみてください。

バイナリアーカイブ作成、大変ありがとうございます。
# あ、自分の名前が入ってる。なんだかうれしい。(^_^;

ところで、ソースのアーカイブも作ってみたのですがどうでしょう。
修正方法だけでなく、固まったソースファイルが誰でも入手可能な方がいいような気がしたからです。

・オリジナルのソースにmacさんのパッチをあて、変更のあるソースだけをアーカイブしました(Windowsだとpatchを持っていない人もいるので)。
・bcc55用のバッチファイルを入れました。
・ききょうやさんの書かれたドキュメントに簡単なビルド方法を加えてREADMEとしました。
・MPLのライセンスを目立つところに入れました

http://www.yk.rim.or.jp/~tomoto/nqc-usb/
に置きましたので、もしよろしければ、中身を改めていただいて
活用していただけたらなと思います。

あ、バイナリアーカイブでもLICENSEファイルは目立つところに
あるとよいと思います。
アーカイブのルートにあれがあると「アヤしくない」感じがして好きです。

それでは。

[292] Re: USB IR Tower 対応NQCバイナリの配布について 投稿者:JinSato 投稿日:00/12/21(Thu) 23:48
JinSato です

ききょうや さん、皆様、ごくろうさまでした、私もDLさせていただきました。
また、文中掲示板のことも入れていただいて、有難うございます> ききょうやさん

手元に、RIS2.0Jも届いたので、早速使わせてもらいます。

 N!QCのページも更新しないとな〜<自分

[291] Re: USB IR Tower 対応NQCバイナリの配布について 投稿者:ななしの 投稿日:00/12/21(Thu) 23:31
ななしのです。
ちょっと日本を離れている間にここまで進んでいたんですね〜
名前を入れていただきありがとうございます。m(__)m

さっそくバイナリをいただいて動かしてみましたがとくに問題はなさそうです。ドキュメントの方もとくに問題はないと思います。

[288] Re: USB IR Tower 対応NQCバイナリの配布について 投稿者:">mac 投稿日:00/12/21(Thu) 14:31 <URL>
> ききょうやです。
> とりあえずバイナリを用意してみました。

ご苦労様です。

まだ間があるかと思い、patchを作ったのですが、
ぴったり同じ時刻にかぶってしまいました(^^;

どうしましょう。
問題があるようでしたら、公開中止します。

[280] USB対応版のビルド方法 投稿者:ききょうや 投稿日:00/12/19(Tue) 23:49 <URL>
ききょうや@自己レスです。
以下に対応版のための変更点を示しますので
自分でビルドできる方は挑戦してみてください。
USBデバイス名のチェックはめちゃめちゃ甘いので
UUU1なんかでもいけてしまいますが、正式に採用するときは
まともにしようと思います。
とりあえず、すぐに使いたい人のため用です。
フリーBCCでビルドする方は先日の書き込みを見てください。

USB対応に伴う変更点について

PSerial_win.cppを以下に従って変更します。

1.クラスPSerial_win宣言部にフラグ用変数fUSBを追加する。

private:
HANDLE fFile;
bool fUSB; // for USB IrTower

2.関数PSerial_win::Open()内にデバイス名用の変数を2つ(n,usbname)追加し、
Openチェック用のif文の後に下記のデバイス名の設定処理を入れる。
また、CreateFileのデバイス名用の変数をnameからnに変更する。

const char *n=name;
char usbname[]="\\\\.\\LEGOTOWER1";

if (fOpen) return false;

// for USB devices
if ((name[0]=='U') || (name[0]=='u')) {
fUSB = true;
usbname[13]=name[3];
n=usbname;
}else fUSB = false;

// fFile = CreateFile(name,GENERIC_READ | GENERIC_WRITE,
// 0, 0, OPEN_EXISTING, 0, 0);
fFile = CreateFile(n,GENERIC_READ | GENERIC_WRITE,
0, 0, OPEN_EXISTING, 0, 0);

3.関数PSerial_win::SetSpeed()の最初にUSB使用時にこの関数のスキップ処理を入れる。

DCB dcb;

if (fUSB) return true; // skip SetSpeed() to use USB IrTower

以上3点を変更、追加すればSオプションにUSB1を指定することでUSB IrTowerを
使うことができます。
当たり前ですが、倍速ファームウエア転送はできません。

バイナリの方は再配布条件がクリアした時点で行います。

ではでは

[285] Re: USB対応版のビルド方法 投稿者:">mac 投稿日:00/12/20(Wed) 22:47 <URL>
> 以上3点を変更、追加すればSオプションにUSB1を指定することでUSB IrTowerを
> 使うことができます。

お教えいただいた手順により、
BCC55はもちろん、
Cygwinでも、ビルド可能で、
生成したオブジェクトでUSB IR Towerが、
動作することを確認しました。

オリジナルをCVSにセーブしてから、
作業したので、完全なpatch fileを生成できます。

[287] Re^2: USB対応版のビルド方法 投稿者:">mac 投稿日:00/12/21(Thu) 14:23 <URL>
> オリジナルをCVSにセーブしてから、
> 作業したので、完全なpatch fileを生成できます。

http://www.line.to/mac/MindStorms/soft/usbnqc.patch
に置きました。

一般使用者のための公開を目的とするものではなく、
追試とさらに改良する方の利便を目的にしています。

使用により発生した一切の事態に、私も関係者も、
責任を負いません。

[294] NQC 2.3.a1 + USB Patch 投稿者:">mac 投稿日:00/12/25(Mon) 11:07 <URL>
> > オリジナルをCVSにセーブしてから、
> > 作業したので、完全なpatch fileを生成できます。
>
> http://www.line.to/mac/MindStorms/soft/usbnqc.patch
> に置きました。

Current Beta Release: 2.3 a1 (12/17/00)
http://www.enteract.com/~dbaum/nqc/beta/index.html
に、このパッチを当て、
Cygwin/Bcc55双方で生成したNQC.exeでも、
USB IR Towerが動作することを確認しました。

手順は2.2.r2と同一です。

フォルダーにIconという名のfileがあるため、
Windowsでcopyしようとすると、
エラーで、中断されるため、要注意です。

Linuxで試験したあと、SambaでNetworkから、
フォルダーごとWindowsに持ってこようとして、
引っかかりました。

[289] ビルドできました 投稿者:中村 吉宏 投稿日:00/12/21(Thu) 21:41 <URL>
清水さん、ききょうやさん、macさんこんにちは。
皆さんには感心するばかりです。

早速BCC55を(会社で)ダウンロードして、

> http://www.line.to/mac/MindStorms/soft/usbnqc.patch

のpatchと、ききょうやさんのバッチとでビルドしてみました。
(Win用の patchコマンドはもってないのでパッチはLinux上で
あてました)

あっさりとビルドできました。すごい!の一言です。

> 追試とさらに改良する方の利便を目的にしています。

とりあえず追試ということで、改良の知識はあんまりないですが、
報告まで。
これでWin上ではシリアルタワーはいらなくなって幸せです。(^^)

バッチの
if not exist compiler\lexer.cpp copy default\*.* compiler\
最後の \ はいらないようですね。

[290] Re: ビルドできました 投稿者:">mac 投稿日:00/12/21(Thu) 22:27 <URL>
> 早速BCC55を(会社で)ダウンロードして、
>> http://www.line.to/mac/MindStorms/soft/usbnqc.patch
> のpatchと、ききょうやさんのバッチとでビルドしてみました。
> (Win用の patchコマンドはもってないのでパッチはLinux上で
> あてました)

> あっさりとビルドできました。

追試レポートありがとうございます。

Linuxをお持ちでないためにPatchが使えない方は、
早速Installしてください!
#おっと、そうじゃなくって (^^;
patch は、Cygwinにも入っていますので、
Windowsしかもっていない方でも、
あの、patch fileを使用できます。

さて、次はいよいよLinux-usbにLegotowerを繋ぐ様ですね。
# あ、予約でないです。誰か是非 (^^

[303] USB Lego Tower Device Driver on Linux 投稿者:">mac 投稿日:01/01/05(Fri) 13:18 <URL>
> さて、次はいよいよLinux-usbにLegotowerを繋ぐ様ですね。
> # あ、予約でないです。誰か是非 (^^

というわけで、
ごそごそやってみたんですが、
# コンテストはどーしたと言う突っ込みが(^^;
やはり、すんなりとは行きません。

中間報告します。
Linux Kernel 2.4.0-test12をbuildして、install。
drivers/usb/serialのソースをかき集めて、
legotower.c, legotower.hをでっち上げ、
Vendor 0x694/ Product 0x01で、
legotower_probe()をおこして、
make、insmod legotower.o
すると、/var/log/messagesに、kernelに組みこまれ、
ばっちり認識され、テストプログラムで、
/dev/usb/legotowerをopenしたり、
ioctlで、制御を移すとこまでは来たんですが、
まだ、認識時以外、「緑のLED」をつけるに至ってません。

これまで、解っているControl以外のEndPointは、
1. Input(Interrupt)
2. Output(Interrupt)
で、USB Serial Converterのように、
Bulk mode転送のEndPointではないようです。

また、Power/Mode切り替えは、
VendorRequest Commandで行う様で、
Value= 0x0p0q
q: 1 Mode切り替え
p: 1 VLL
p: 2 IR

q: 2 Power切り替え
p: 1 High
p: 2 Mid
p: 3 Low
じゃないかなーと思ってます。

同じような制御をするデバイスを探して見たのですが、
あまり似たようなのがないですね。

USB Serialは、I/Oが大抵Bulk転送だし...
どなたか、もっと先に進んでいる方いらっしゃいますか?

[304] Re: USB Lego Tower Device Driver on Linux 投稿者:JinSato 投稿日:01/01/05(Fri) 16:16
どうも、mac さん、今年もよろしくお願いします。

 それにしても、新年早々Deepな世界に入ってますね。

 RIS2.0も入手したのですが、考えてみると、USBがついているマシンにLinuxを入れた
事がない自分に気がつきました。 (^^)

[310] Re^2: USB Lego Tower Device Driver on Linux 投稿者:">mac 投稿日:01/01/05(Fri) 19:54 <URL>
>  それにしても、新年早々Deepな世界に入ってますね。

最近のDevice DriverはModule化しているし、
しかも、USBはHOT PLUGできるので、
Rebootも、Kernel再構築もせず、
insmod/rmmodで、driverを入れ替え、
USB機器を挿し込めば試験でき、
手軽にDeepな世界に「入る」ことは可能です。
# その後は、見てのとーリ、技がないと進まない(;_;)

USBを正規にサポートしているLinux Kernel 2.4.0も、
先ほど正式リリースされたので、
皆さんも是非、ご一緒にhackしましょう (^o^)

>  RIS2.0も入手したのですが、考えてみると、USBがついているマシンにLinuxを入れた
> 事がない自分に気がつきました。 (^^)

私も、DevDri試験用に潰しても良いマシンを確保することが出来なかったので、
HDDのみ1台を買ってきて、Windowsが入っているマシンに増設し、
これにLinuxを入れたのであります。

[312] Re^3: USB Lego Tower Device Driver on Linux 投稿者:JinSato 投稿日:01/01/06(Sat) 00:49
Jinです

> 私も、DevDri試験用に潰しても良いマシンを確保することが出来なかったので、
> HDDのみ1台を買ってきて、Windowsが入っているマシンに増設し、
> これにLinuxを入れたのであります。

そういえば、パソコンショップに、PCI の USB増設カードが100ドルもしないで
売ってましたね、それ入れれば、いいかな〜。 (でも、いまだにP120なんて
笑われますかね。 k2-300のCPUに変えたいんだけど、もう売られてないし)

[315] Re^4: USB Lego Tower Device Driver on Linux 投稿者:">mac 投稿日:01/01/06(Sat) 11:48 <URL>
> そういえば、パソコンショップに、PCI の USB増設カードが100ドルもしないで
> 売ってましたね、それ入れれば、いいかな〜。

USB ControllerをUHCIとOHCI両方試してみようという向きなら、
増設カードも良いのですが、100CADもするんだったら、
M/Bを交換のが、元が取れませんか?

370 Socketの安物M/Bだと、こっちでは8000円台からあるようです。
USBも、もちろんついています。
Soundや、Video Chipまで乗っている奴だと、
Linuxでは、ちょっとリスキーですね。
もっとも、うまくなかったら、BIOSで蓋をし、
「なかったこと」にして、古いマシンのカードを挿す覚悟なら、
別にかまわないですが...

P120の頃のものだと、Memoryが今のM/Bに刺さらないでしょうか。
CPUも、Memoryも買い替えで、HDDも不足で、CDもx4以下で、
Fanもだいぶ怪しくなっていて...と、
結局、使えるのは、ケースとFDDだけだったりすると、
つらいですね。
# 実際良くあるパターンなんですが(;_;)

それと、私はABITのBP6でCeleron x2のSMPしてたんですが、
今売っている奴は、もう、Multi CPUできないんですね。
# もともと、仕様上は「できないはず」だったけど。

次は、PIII買う事になってしまうのかなあ...
どうも、新しいマシンを調達するたびに、
「果して、何年使えるの?」と、思い、
なんか、「乗せられている」気がして、
買った満足感がないですね。 > ニューマシン

[316] Re^5: USB Lego Tower Device Driver on Linux 投稿者:JinSato 投稿日:01/01/06(Sat) 12:22
なんだか、どんどん脱線していきますが、こういうの好きです。

> USB ControllerをUHCIとOHCI両方試してみようという向きなら、
> 増設カードも良いのですが、100CADもするんだったら、

いや〜、値段を暗記しているわけじゃないんですが、今、調べたら
$50くらい見たいでした。

> P120の頃のものだと、Memoryが今のM/Bに刺さらないでしょうか。
> CPUも、Memoryも買い替えで、HDDも不足で、CDもx4以下で、
> Fanもだいぶ怪しくなっていて...と、
> 結局、使えるのは、ケースとFDDだけだったりすると、
> つらいですね。
> # 実際良くあるパターンなんですが(;_;)

電源が昔のATタイプのものだと、最近のMBはATXだかた
ケースも使えない場合もありますね。
で、結局 P120のまま、メモリーつけたりしてLinuxあたりで
いろいろ遊ぶのが一番楽しい感じになりますね〜。

> 次は、PIII買う事になってしまうのかなあ...
> どうも、新しいマシンを調達するたびに、
> 「果して、何年使えるの?」と、思い、
> なんか、「乗せられている」気がして、
> 買った満足感がないですね。 > ニューマシン

まったく同感です。 HDでも、SCSIでも、SCSI-1,2ときて
最近の SCSI160とかになると早いけど、カードも高いし。
EIDEでも、シリアルのがこれから主流になりそうだし、
そう思うと、まだまだ、我慢したって平気だと思ってしまいますね。
(その前に、オシロもほしいし)

[282] Re: USB対応版のビルド方法 投稿者:清水友人 投稿日:00/12/20(Wed) 14:20 <URL>
清水です。こんにちは。

> とりあえず、すぐに使いたい人のため用です。
> フリーBCCでビルドする方は先日の書き込みを見てください。

私もbcc55を入手して、やってみました。
バッチファイルをほんのちょっと直す必要がありましたが
(copyコマンドのコピー先に\が付いているとエラーになった)、
うまくいきました。どうもありがとうございました。

> バイナリの方は再配布条件がクリアした時点で行います。

ご苦労様です。よろしくお願いします。
bcc55のライセンスを読んでみましたが、
これはバイナリの配布に関してあんまり厳しくないようですね。

それでは。

[276] Re^3: USB IR Tower 対応NQCについて 投稿者:">mac 投稿日:00/12/19(Tue) 13:32 <URL>
> > とりあえず -SUSB1 と言う風に指定することで
> > USBを使えるようにしてみましょうかねぇ・・・
> 完成しましたが、どうしましょう???
> David Baumさんに報告しないといけませんねぇ

すばらしいです。
早く使ってみたいな。

> が、しかし、メッセージとかはシリアルポートのままです。

まあ、「ご愛嬌」というか、気に入らなければ、
Baumさんが、直すでしょうから、あまり細かいところまで、
修正は入れないほうがいいような気がします。

> ところで、今回の改造はいろんな方々の解析情報、アイデアに
> よって完成できたので、これを再配布するときは、関係者全員の
> クレジットを入れるというのはどうですか?

貢献してないものが、口挟むのは、
気が引けるんですが、その後のライセンスはという意味ではないですよね。
改良前の「BSD ライセンスが抱える問題」
http://www.gnu.org/philosophy/bsd.ja.html
というのがあります。

[277] Re^4: USB IR Tower 対応NQCについて 投稿者:ききょうや 投稿日:00/12/19(Tue) 15:59 <URL>
> > 完成しましたが、どうしましょう???
>
> すばらしいです。
> 早く使ってみたいな。
まずはどうやって配布するかですね。
ちょっと使用条件を見てみないといけないですね。

> > が、しかし、メッセージとかはシリアルポートのままです。
>
> まあ、「ご愛嬌」というか、気に入らなければ、
> Baumさんが、直すでしょうから、あまり細かいところまで、
> 修正は入れないほうがいいような気がします。
では放っておきましょう。

> > ところで、今回の改造はいろんな方々の解析情報、アイデアに
> > よって完成できたので、これを再配布するときは、関係者全員の
> > クレジットを入れるというのはどうですか?
>
> 貢献してないものが、口挟むのは、
> 気が引けるんですが、その後のライセンスはという意味ではないですよね
違いますよ。もしも、改造した人を紹介してもらえるようなことになったときに、
私だけの力で改造ができた訳じゃないので、みんなでやったということに
しましょうと言いたかっただけです。
改造したコード自体は皆が共有すればよいと思っています。
もちろんmacさんも貢献者の一人だと思いますよ。

ではでは。

[278] Re^5: USB IR Tower 対応NQCについて 投稿者:清水友人 投稿日:00/12/19(Tue) 19:32 <URL>
清水です。こんにちは。
公開はすっかりききょうやさんにお任せしようという気になっています。

> > すばらしいです。
> > 早く使ってみたいな。

> まずはどうやって配布するかですね。
> ちょっと使用条件を見てみないといけないですね。

自分がMPLを読みながら作った Annotated MPL 1.0 の和訳があります。
訳したのは半分ぐらいまでですが、核心はだいたいカバーしていると思います。
もしご参考になるならば、下記URLをご覧下さい。
http://www.yk.rim.or.jp/~tomoto/MPL/

私の理解の範囲では、今回の場合、
・ソースコードが入手可能で、
・オリジナル開発者のことが書いてあって、
・変更履歴が入っていれば、
修正して再配布するのは特に問題なさそうです。
あ、一度公開したものは6ヶ月とか12ヶ月とか公開し続けるように、っていうのもありました。

また、私も公開と作者へのフィードバックのやり方をどうしようかと、
思案していましたので、浮かんだイメージもお伝えしておきます。
もしかしたらあたりまえのことなのかもしれませんが、
これもまた参考になればと思います。
・本家のNQCをUSBに対応させてもらうのはしばらく時間がかかるような
気がする。というのは、Baumさんもご自分でUSB IRタワーの
動作確認をしたいだろうし(アメリカではまだ入手困難なのでは?)、
NQC内部の設計にもちょっとした選択肢があるので、
「我々の修正を目をつぶって取りこんでください」とは言えない。
・しかし、日本の仲間のために、USB対応版NQCを一刻も早く公開したい。
・そこで、我々の版を公開し、しばらくの間NQCの異なる2つの
バージョンを存在させる。ここで混乱しないように、
我々の版はnqcj(日本のj)と名前を変えるとか
Baumさんからバージョン番号の枝番をもらうとかする。
・Baumさんへのフィードバックは「これを取りこんでください」という
よりは、USBタワーに関する情報を提供することに注力する。
Baumさんはとても力のある方なので、情報を消化して、
ご自分のやり方で実装してくれるだろう。

以上、ご参考になれば幸いです。
また、公開のためにできる限りの貢献をさせていただきたいと思います。
それでは。

[279] Re^6: USB IR Tower 対応NQCについて 投稿者:">mac 投稿日:00/12/19(Tue) 22:09 <URL>
●ききょうやさん
>> > ところで、今回の改造はいろんな方々の解析情報、アイデアに
>> > よって完成できたので、これを再配布するときは、関係者全員の
> > クレジットを入れるというのはどうですか?
>>
>> 貢献してないものが、口挟むのは、
>> 気が引けるんですが、その後のライセンスはという意味ではないですよね
>違いますよ。もしも、改造した人を紹介してもらえるようなことになったときに、
>私だけの力で改造ができた訳じゃないので、みんなでやったということに
>しましょうと言いたかっただけです。

お手数おかけしました。
日本語で議論された経緯をBaumさんに、
読んで頂くのはおそらく無理でしょうから、
どのような方が、Contributedしたかだけでもお伝えする事は、
大賛成です。

●清水さん
>また、私も公開と作者へのフィードバックのやり方をどうしようかと、
>思案していましたので、浮かんだイメージもお伝えしておきます。

MPL1.0が条件なので、とりあえず、Source TreeとPatchおよび、
Windows版binaryすべてを含む形で再配布してしまえば、
ライセンス上の問題はない様に思います。

GPLをもつライブラリーと(LGPLでないもの)MPLを混ぜると、
GPL側に抵触する危険性があるとおもいます。
# Cygwin.dllはどっちでしたっけ?

Baumさんにも、こうやったら、USB IR Towerで使えたし、
Bccでもcygwinでもビルドできたよーとそのまま送れば、
きっと後は、いい様にやってくださると思うのですが...

[283] cygwinのライセンス 投稿者:清水友人 投稿日:00/12/20(Wed) 14:30 <URL>
清水です。こんにちは。
もはやUSB IRタワーの話題ではなくなってしまいますが...

> GPLをもつライブラリーと(LGPLでないもの)MPLを混ぜると、
> GPL側に抵触する危険性があるとおもいます。
> # Cygwin.dllはどっちでしたっけ?

気になったので、後学のために調べてみました。

cygwinはGPLに従っていますが、「オープンソースの定義に従うプログラムから
使われる場合には、そのプログラムはGPLに従わなくてもよい」という
例外条項みたいのがあるようです。
オープンソースの定義は http://www.opensource.org/osd.html にあります。

で、MPLはオープンソースの定義に従っているのかというと、
MPL 1.1 は「suitable」だそうです。
MPL 1.0 はそう明言されてないのでよくわかりません。

したがって、MPL 1.1とcygwinは混ぜて問題ないが、
MPL 1.0は危険かもしれない、ということだと思います。

それでは。

[284] Re: cygwinのライセンス 投稿者:">mac 投稿日:00/12/20(Wed) 15:25 <URL>
> > # Cygwin.dllはどっちでしたっけ?
>
> 気になったので、後学のために調べてみました。
>
> cygwinはGPLに従っていますが、「オープンソースの定義に従うプログラムから
> 使われる場合には、そのプログラムはGPLに従わなくてもよい」という
> 例外条項みたいのがあるようです。

ありがとうございます。

> したがって、MPL 1.1とcygwinは混ぜて問題ないが、
> MPL 1.0は危険かもしれない、ということだと思います。

そうなんですね。
オープンソースや、フリーソフトというと、
配布も使用も「自由」とか、もっと単純に「無料」のソフトと、
誤解されている事が多いようなのですが、
いろいろなライセンス形態があり、それぞれの規定に従わなければ、
著作権法上の問題を生じますね。

特にGPLは、そのソフトが、
派生物を含め恒久的にGPLで再配布されることを保証するため、
非常に厳密で、強力な制約を課しています。
このため、他のライセンスとの組み合わせは難しく、
また、GPLを取りこんでしまうと、
パッケージ全体に感染してしまうのですが、
ソースの無償自由流通はFSFの主張の根幹になっていることですから、
当然ですね。

GPLの厳しさを緩和するいろいろな、
オープンソースライセンスがありますが、
いろいろな抜け道が出来きる事を防止し、
そのライセンス条件を派生物が完全な形で継承できる性質を持っていないと、
結局、原作者の意図は、最後まで継承できなくなってしまいます。

「勝手にしていいよ」と、
本当に「自由に使ってもらいたくって」言ったはずなのに、
勝手にライセンスを変更する権利まで与え、
派生物がオープンソースでもなくなってしまうのは、
作者としては不本意ですよね。

FSFやGNUプロジェクトを支援しているのではないのに、
私が公開しているソフトをGPLにしているのは、
この理由からです。

[281] Re^7: USB IR Tower 対応NQCについて 投稿者:清水友人 投稿日:00/12/20(Wed) 10:45
清水です。こんにちは
# 風邪で会社休んでます。げほげほ。

> MPL1.0が条件なので、とりあえず、Source TreeとPatchおよび、
> Windows版binaryすべてを含む形で再配布してしまえば、
> ライセンス上の問題はない様に思います。

> Baumさんにも、こうやったら、USB IR Towerで使えたし、
> Bccでもcygwinでもビルドできたよーとそのまま送れば、
> きっと後は、いい様にやってくださると思うのですが...

なるほど、ためになります。
私のさじ加減はどうも形式的なものにコダワリすぎる
きらいがあるような気がしました。
# 頭があんまりオープンソース的ではないのかな。

> GPLをもつライブラリーと(LGPLでないもの)MPLを混ぜると、
> GPL側に抵触する危険性があるとおもいます。
> # Cygwin.dllはどっちでしたっけ?

これも気がついていませんでした。

この調子では、もし私が自力で公開することになっていたら
いろいろな壁にぶちあたっていたことでしょう。(^_^;;
# 実際MPLはてごわい相手でした...
ききょうやさんがいてくださって助かりました。

それでは。