OpenBSD开发小组涉嫌抄袭Linux相关驱动代码
/ A5 m( ^5 t+ w6 r& t4 z8 ^/ M7 Y
, @- {- m2 F; x来自osnews的消息
0 h2 b1 b3 M2 p: z: s
; h" z8 t. v. T" U0 y+ @
OpenBSD开发小组涉嫌抄袭别人代码,被Linux开发小组的人给揪出来了,该人同时是Broadcomchip bcm43x的专利拥有者。
3 n- |! k1 ?5 p; Y
下面是他的全文:
http://marc.info/?l=linux-wirele ... 766928130&q=raw/ ~' l5 \, h$ Z8 `+ \9 Z
# }( Y# J& k! d3 c5 I; KI, Michael Buesch, am one of the maintainers of the GPL'd Linux
5 L4 t% z1 m8 w3 q
wireless LAN driver for the Broadcom chip (bcm43xx).
* o7 R; B& W# }7 }6 w8 r! _
The Copyright holders of bcm43xx (which includes me) want to talk
Z6 q- V9 v: u/ J. q
to you, OpenBSD bcw developers, about possible GPL license and therefore
0 e! ` A0 Q9 @Copyright violations in your bcw driver.
2 a0 @, }+ Y: _" i9 G
6 t5 s1 s# G; R1 W4 {* p) kWe believe that you might have directly copied code
6 ^$ Q _' B0 V) v7 U5 ?
out of bcm43xx (licensed under GPL v2), without our explicit permission,
. j! R7 ?1 b- m! j' g0 x$ q
into bcw (licensed under BSD license).
9 J3 v0 p7 x6 ?4 h- y% w2 iThere are implementation details in bcm43xx that appear exactly
. O- D. X, F- L) {* j4 r# F3 W, j: mthe same in bcw. These implementation details clearly don't come
3 Q, c v6 T2 Sfrom the open specifications at bcm-specs.sipsolutions.net
I- v2 S7 F7 Z M) K# Q/ t3 eor bcm-v4.sipsolutions.net.
+ q# {+ Q1 A- V3 [$ i/ P* t
, Z4 f6 z: J: p( L9 qWe have always made and still make a great effort to keep our code clean
1 Y: Q- t3 W( R" h4 o! y$ f5 d% H7 `of any Copyright issues (cleanroom design). Please make sure you also do.
4 d9 X$ U$ h; e3 `$ v; B2 p
# }; s" s5 i4 l- _# D5 p6 xA few examples follow of what we think might be GPL violations.
1 U) n6 W, T4 q0 QThis list is far from being complete.
# d5 S$ l$ x8 r' Z
5 \8 d$ N- Q) T3 i. n% hBCW_PHY_STACKSAVE()
+ K9 L" x& L+ ~# Z" t) }4 D
BCW_ILT_STACKSAVE()
0 G9 F" m' N. q; J/ H3 h( p
bcw_stack_save()
3 p. t4 q& z; b& V7 q
bcw_stack_restore()
$ ?+ S8 p% a2 b$ C7 d
These functions are a possible implementation of the specs when
) K' a, T4 F2 ^7 K6 q! C& I$ q
they say "backup/restore a value".
5 y5 t8 l6 c5 |+ ^7 wYet, it looks like you had exactly the same idea implementing this
( [/ c$ c: e3 w) Q! n. E, g, ~6 \' x; Pgeneric description that I had.
8 Z) @' a* h( B9 {: H5 l5 N! u
7 ?. P8 }" p8 Q# b% ibcw_set_opmode()
; c3 V4 H- j' }2 U9 d: v0 E# \$ J' iThis function does not appear in the specifications.
( o" b2 z( g. o
I think Jiri Benc wrote it initially (and gave it its name) and
' q/ X" P8 S8 |I extended it.
1 I9 |9 b1 v0 {7 @ C7 l
" ?* _. t; j/ Z7 `# j
bcw_leds_switch_all()
+ G' F; \( I( S- n& `) ^is not in the specs, but a pure implementation detail of bcm43xx.
* c5 w w( z6 ~8 h; @9 C
2 F, E9 l- v6 ]/ @) z% b, Pbcw_sprom_read()
% c. L& \ w# Z4 }: {This is obviously copied. Even the error message string is similiar.
4 W& k- _/ y9 V) f
3 k; n8 C& N* n5 v$ G N, S; `8 F6 B
bcw_phy_calc_loopback_gain()
+ g1 X; x; D- q& _I think it's no coincidence that you also decided to name the backup
; _* }0 r6 G1 v3 U7 g9 a
variables like
2 m5 m5 Q) g' B) a3 \- P
uint16_t backup_phy[15];
% I: M* ~6 d2 K: V- a0 c2 y uint16_t backup_radio[3];
6 z# P2 X- z( e uint16_t backup_bband;
- ?6 @; E0 o, h# O, K0 F1 b' o) ^$ U* h/ U' c6 {
bcw_phy_init_pctl()
/ y8 t4 `3 d3 k( [5 {1 B; `) c uint16_t saved_batt = 0, saved_ratt = 0, saved_txctl1 = 0;
- M, C% a- Y. o* N' W int must_reset_txpower = 0;
. \! z) V4 n' W4 N7 z
0 a5 G6 f3 G$ a7 L1 q0 Ybcw_phy_xmitpower()
. q+ y" y& Q. J c2 m7 P; T
Attenuation adjustment algorithms (while loops).
% M |; l+ L$ ]3 m, ^4 G0 Y+ ^2 P$ X# W" k0 ? r# o l4 K
bcw_phy_lo_g_state()
* |* v! x0 x! ^6 z* H; E
This exactly matches bcm43xx, although the specs only have an abstract
* l1 }) e$ w5 H, vdescription and diagram of the state machine.
' z- C* i7 L) s' h5 U! a$ S6 l2 ]- u; G( h- h$ M
bcw_phy_lo_g_deviation_subval()
0 d4 j7 e- M, @2 N/ l, D1 y
/* XXX bcm43xx_voluntary_preempt() ? */
& M; Y& m* N6 d! u% Y3 i5 c% d
Nice comment there.
' L# A0 G% e( @You might want to grep bcw for the string "bcm43xx"
+ {+ p' J) i. g4 G2 M! gand you will find more of them.
7 R- ^( Q- B* L. S! [! P0 X/ G7 v" j
0 j1 _5 z* P0 Q+ `' k... and all the rest.
8 Q/ a! L$ h; ~& S
) p6 \" e: B0 r' O l# L$ H
/ P' ]; u7 G: L& _7 J1 `/ m
We'd like to have this issue resolved.
B0 d Y a3 g. j( g
In general we are not against having a free (and BSD licensed) driver
+ f3 D; b# Y7 Z! a( d; B* k# D3 zin the BSD operating system. But you _have_ to cooperate with us if you'd
/ _* p. }) [+ j2 D% \8 D/ ]" P
like to take our code and relicense it under BSD license. We intentionally
( Y! d8 B; }8 H* Hput the code under GPL license. We did _not_ do this, because "everybody
. O2 W! k5 z6 y+ odoes this". We did this, among other reasons, because we
% ~, C* ~7 C+ l- a: c& O% w O
[citing Michael, Mon, 26 Dec 2005 13:03:44 +0100]
: K7 q W" y3 ]+ W
"don't think we should allow proprietary vendors to take our code
3 t, B: _( u: r7 d4 o8 O, }and close it again."
% Y3 g# N2 ]& b+ e* i$ c6 C3 X6 @
1 m: _# \" N7 k' Z[citing Michael, Date unknown]
# o; Y( ^9 X+ z- z"What if Broadcom decides to take our LO measure state machine and
! Q/ \6 L9 P ?4 @! D; B
put it into the original driver? (The Rev Engineers told me they have
, L# s4 f4 q, }% ba very different weird solution for this in their code).
# x; B) Q" S& U
I really don't want to see this happen."
" o; P; t$ L: o$ B- ]
) @$ X4 s1 g7 c: tWe'd like to offer you to start cooperating with us.
2 M& s7 e" ^& E: [) {0 @0 y
We respect you and your Copyright. You should also do so on our work.
4 s. j! d! `! B, J: J0 C! B2 W1 D4 x" h" W. {7 o% I
We would not be opposed to relicensing parts of our code under the BSD
" k% _4 _+ m; `+ Z; y! P% @
license on an explicit case-by-case base.
' A4 `4 ?5 ?& m& H; `
So if you ask "May I use this and that function" and if I own the
9 L* B! b& i, U# z8 K
Copyright on that particular function, I will approve or deny your request.
. K: S$ ?% K3 k3 |3 R/ j" p& e' O5 [
Other Copyright holders of the bcm43xx code might act the same way.
+ H7 N* y- S3 H2 a; A( a
% C* p! T& K# {9 cWe're not out for blood, just for a fair resolution.
. {! S, \' t% [0 a$ n! K
We'd like you to start contacting us to resolve the issue now.
5 R8 b4 {4 v: t6 q6 `! \; i4 _% v
4 z# C$ m$ n0 YHave a nice day.
; _% x/ J# e$ @! ]. d1 B2 e8 ]* D
! S" _$ Y3 M2 m1 x4 h" K--
! Y: r' V" j+ Q* r3 O5 iGreetings Michael.
( G$ U* @1 o4 {+ e$ ~
-
. T& k9 t& v) s; Z1 ?To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
) D9 U1 \0 i$ Hthe body of a message to
majordomo@vger.kernel.org
+ Y [5 [0 i4 j# EMore majordomo info at
http://vger.kernel.org/majordomo-info.html