SHARP Zaurus の GPL 違反を検証

In English

経緯:

SHARP Zaurus の SL-C860 という型番の製品は、 Sonet の bitWarpPDA という Internet 接続サービスに対応するために、 authdrv という実行ファイルを install した状態で出荷されています。 また、 SL-C750/760 という型番用にbitWarpPDA 対応ソフトが公開されていますが、 こちらも同じ authdrv を含んでいます。
この authdrv の実体は ppp-2.4.0 の改造品で、 この ppp-2.4.0 の中には GPL に従って公開されている tdb.c が含まれています。 GPL に従うならば、 Zaurus 販売元の SHARP はこの authdrv の source 公開義務がある筈ですが、 SHARP にこの authdrv をライセンス提供しているアジアパシフィックシステム総研は公開を拒み続けています。
authdrv の実体が ppp-2.4.0 であることは、 authdrv を --version 付で実行した際に表示される version 表記でも確認出来ますが、 ここでは ppp-2.4.0 を compile して得られる binary と authdrv とを比較することで、 authdrv が tdb.c を含む実行ファイルであることの検証を行ないます。


手順:

以下の操作を i386 用 Linux 環境で行ないます。 RPM パッケージの展開作業が含まれますので、 RedHat 系の distribution の方が作業し易いと思います。

  1. SL-C860 のルートファイルシステムをダウンロードする。
  2. bzip2 -cd ./rootfs-slc860-20031107.tar.bz2 | tar xf - rootfs/root_jffs2/usr/sbin.rom/authdrv
  3. od -tx1 rootfs/root_jffs2/usr/sbin.rom/authdrv >./authdrv.od
  4. Zaurus 用クロスコンパイル環境 (gcc, glibc, headers, binutils) をダウンロードして RPM で install する。
  5. ppp-2.4.0 をダウンロードする。
  6. tar xfz ./ppp-2.4.0.tar.gz
  7. (cd ppp-2.4.0/pppd; make CC=arm-linux-gcc -f Makefile.linux tdb.o)
  8. echo "int main(void) { return(0); }" >./main.c
  9. arm-linux-gcc -O2 -o tdb ./main.c ppp-2.4.0/pppd/tdb.o
  10. arm-linux-strip ./tdb
  11. dd if=/dev/zero of=./padding bs=1 count=127180
  12. cat ./padding ./tdb | od -tx1 >./tdb.od
  13. diff -u ./authdrv.od ./tdb.od
最後の diff の結果を見ると、 0374160(octal)-0411440(octal) 辺りの 6KB 強がほぼ一致していることが判ります。 これは tdb.c の生成物のコード部分ほぼ全てに相当します。


結果:

という訳で、 アジアパシフィックシステム総研の GPL 違反は明白なので、 上記の内容を tdb.c の著作権者である Andrew Tridgell 氏に報告しました。 最後に報告用に英語での検証手順も示しておきます。
なお、 SHARP の名誉のために補足しておきますが、 今回の GPL 違反は飽くまでもアジアパシフィックシステム総研の独断専行であり、 私からの問い合わせに対しても、 SHARP サポートセンターからはアジアパシフィックシステム総研の紹介を始め可能な限りの協力が得られました。 SHARP サポートセンターにはこの場を借りてお礼申し上げます。


その後:

tdb.c の作者 Andrew Tridgell 氏と pppd の作者 Paul Mackerras 氏に連絡を取り、 本件に関し問い合わせと交渉を行ないました。 何度か mail を交わした結果、 以下の結論を得るに至りました。

  1. ppp-2.4.0 の pppd に含まれる全 source には CMU/BSD license を適用する。
  2. tdb.c のコメントにある GPL の文言は無視して構わない。
  3. SHARP 及びアジアパシフィックシステム総研は pppd を自由に改変し公開し、 尚且つ source を公開しない権利を有する。
既に複数の人間の patch が contribute されている GPL products に対してこんないい加減な扱いでいいのか、 個人的には大いに疑問が残るところですが、 著作権者がいいと言っているのでこれ以上問題は生じ得ないでしょう。
因みに、 この結果をアジアパシフィックシステム総研に mail で報告し、 メーカの瑕疵の尻拭いをユーザに行わせる企業倫理について問い正したのですが、 一週間以上経っても回答は届いていません。 徹頭徹尾コンプライアンスのなってない会社ですねー。


In English:

Do the following operations on Linux/i386. These includes extracting RPM packages, so that you should use the distribution derived from RedHat.

  1. Download the root file system for SL-C860.
  2. bzip2 -cd ./rootfs-slc860-20031107.tar.bz2 | tar xf - rootfs/root_jffs2/usr/sbin.rom/authdrv
  3. od -tx1 rootfs/root_jffs2/usr/sbin.rom/authdrv >./authdrv.od
  4. Download the cross-compilers for Zaurus (gcc, glibc, headers, binutils), and install them via RPM.
  5. Download ppp-2.4.0.
  6. tar xfz ./ppp-2.4.0.tar.gz
  7. (cd ppp-2.4.0/pppd; make CC=arm-linux-gcc -f Makefile.linux tdb.o)
  8. echo "int main(void) { return(0); }" >./main.c
  9. arm-linux-gcc -O2 -o tdb ./main.c ppp-2.4.0/pppd/tdb.o
  10. arm-linux-strip ./tdb
  11. dd if=/dev/zero of=./padding bs=1 count=127180
  12. cat ./padding ./tdb | od -tx1 >./tdb.od
  13. diff -u ./authdrv.od ./tdb.od
The result of the last `diff' shows that most of the over 6KB data from 0374160(octal) to 0411440(octal) is the same. These data corresponds to most of the whole code part derived from tdb.c.


苦情・問い合わせはこちらまで。 shirai@unixusers.net

トップページ