OpenBSD开发小组涉嫌抄袭Linux相关驱动代码
0 W8 G% E' B* d8 f, V8 r% M
5 ~$ K$ P7 p K& y% d来自osnews的消息
( X" A9 Q, E% ^3 T0 B k7 g2 e0 y# R v8 _+ N3 |- {8 ^
OpenBSD开发小组涉嫌抄袭别人代码,被Linux开发小组的人给揪出来了,该人同时是Broadcomchip bcm43x的专利拥有者。
D7 P" Z0 m! G+ H' C4 B0 J
下面是他的全文:
http://marc.info/?l=linux-wirele ... 766928130&q=raw1 h t2 L- n' D% E4 y
2 \0 Q" r4 z( S' a$ PI, Michael Buesch, am one of the maintainers of the GPL'd Linux
Y. d' }5 a7 d# ^) [0 b
wireless LAN driver for the Broadcom chip (bcm43xx).
" k3 E2 \7 l9 o, HThe Copyright holders of bcm43xx (which includes me) want to talk
1 s6 q9 l+ L! M. g, F+ Ito you, OpenBSD bcw developers, about possible GPL license and therefore
& p, n% }, @0 v4 U( Z5 M$ \. \
Copyright violations in your bcw driver.
7 W! s" A. s8 N( r+ h
% a s( z, o1 v" ?) c, `
We believe that you might have directly copied code
& } ^* R4 Z0 c- F( O" K" h8 L
out of bcm43xx (licensed under GPL v2), without our explicit permission,
* X: |8 h3 m. n: a" j# M4 L
into bcw (licensed under BSD license).
# u7 D7 O7 V+ {There are implementation details in bcm43xx that appear exactly
4 X2 P: L; h0 A- T/ M, zthe same in bcw. These implementation details clearly don't come
8 f" t* ^8 Q- F
from the open specifications at bcm-specs.sipsolutions.net
0 h/ T5 a2 {- m1 Jor bcm-v4.sipsolutions.net.
1 q4 N \8 e# L( l o- @- m( Q6 ? |
We have always made and still make a great effort to keep our code clean
5 t1 u2 h( V8 x
of any Copyright issues (cleanroom design). Please make sure you also do.
1 O1 _0 q4 f8 f4 N$ J. e
; @. [( o; J' y8 L m) LA few examples follow of what we think might be GPL violations.
" M! o. V1 f, bThis list is far from being complete.
7 d' ~* v$ [( R
% ?6 W6 Y1 K& A" \& P2 lBCW_PHY_STACKSAVE()
- I$ t! ]1 M, s! q
BCW_ILT_STACKSAVE()
2 s9 o3 i3 J2 Y0 W: U) }
bcw_stack_save()
+ M5 r5 x5 Y+ o" B% w4 H4 ebcw_stack_restore()
6 D3 b9 b; Q: Z: q0 x( H
These functions are a possible implementation of the specs when
; G) D* r& ]* P2 O' D6 e) q/ {3 q9 {) |they say "backup/restore a value".
: _: v, E% ]5 F
Yet, it looks like you had exactly the same idea implementing this
' B% K* d- [' y* u+ [" sgeneric description that I had.
& J0 t) G9 D; p3 y
5 U0 h L% v( C8 b0 k) z" o
bcw_set_opmode()
7 P# R( \& r2 d+ q/ Q
This function does not appear in the specifications.
/ ]+ N1 y8 K2 g" U& B
I think Jiri Benc wrote it initially (and gave it its name) and
2 O* }- u6 T7 }7 I. k/ N- AI extended it.
; V: I1 n# e1 G0 I
- R9 {& i7 B4 w1 W) kbcw_leds_switch_all()
. O' U2 @, l' Q- @. q3 U9 F
is not in the specs, but a pure implementation detail of bcm43xx.
2 Y9 K$ V q8 F2 P9 F7 W7 D2 F
) _/ r. N2 q* @- x5 o7 v# a
bcw_sprom_read()
8 [7 x- G$ l c# \: P
This is obviously copied. Even the error message string is similiar.
6 r, V: I* D) M8 r
# v9 Y. J$ U( D3 d* x. z
bcw_phy_calc_loopback_gain()
% @2 S7 H! U1 m6 z3 a* nI think it's no coincidence that you also decided to name the backup
) Q: x0 a+ ?, u& Q9 U& Xvariables like
# m( [+ G( N% b7 a7 M* q( t+ a, N uint16_t backup_phy[15];
- F( T; L+ u9 N
uint16_t backup_radio[3];
' u5 Z7 Q4 s' N uint16_t backup_bband;
8 I0 u) V8 p7 _$ M7 D0 n' i2 e# G7 C- a5 K R/ h' a P- T8 h
bcw_phy_init_pctl()
- k7 E* b! s$ M% ^4 X- J' k uint16_t saved_batt = 0, saved_ratt = 0, saved_txctl1 = 0;
) w9 I0 C% s T; l: [* Z int must_reset_txpower = 0;
: I6 c' ]0 m+ B5 m4 g( P* C" h
2 K7 j* O7 a8 f6 P8 F
bcw_phy_xmitpower()
" a- T( n' g c+ s! r! c
Attenuation adjustment algorithms (while loops).
2 Y5 u8 D$ B, r& Y" v/ @
_6 H' H; v& u
bcw_phy_lo_g_state()
# v4 j" O- I. c) l8 o0 T* Z5 `) }2 i- f
This exactly matches bcm43xx, although the specs only have an abstract
+ f" r. F, {* \4 Y5 s/ Idescription and diagram of the state machine.
. D8 j; e6 W4 b2 o! t/ u* f
9 B7 t& Q- E8 V9 _5 W7 ~bcw_phy_lo_g_deviation_subval()
" X8 y! _4 m) G- R/ v4 W; X7 f/* XXX bcm43xx_voluntary_preempt() ? */
5 |* M1 ^9 N( J( H" s3 UNice comment there.
/ u6 I" }9 a$ {2 J4 c( W2 K0 jYou might want to grep bcw for the string "bcm43xx"
9 v, F" j. X" m: q( g9 |- n% R+ \
and you will find more of them.
( U3 P+ M# x3 ^6 t
& \/ ^* w/ x. R9 E) ?. D5 [& v* W& m! D1 I7 D0 j! b
... and all the rest.
" g/ D Y/ S! v) i! a8 m/ \: t
7 {* O: ?2 ?$ Y f! ^# H' M! [
2 t5 H7 u2 ]. O; z( TWe'd like to have this issue resolved.
( |* @ n/ }5 DIn general we are not against having a free (and BSD licensed) driver
! d4 u3 B9 j1 M! x; e* uin the BSD operating system. But you _have_ to cooperate with us if you'd
7 D' V" ~+ `( l& E. L
like to take our code and relicense it under BSD license. We intentionally
, X8 f( ?. f. ~% K
put the code under GPL license. We did _not_ do this, because "everybody
- Q( d z" T1 h+ t
does this". We did this, among other reasons, because we
3 Z N6 a9 ?6 X3 U[citing Michael, Mon, 26 Dec 2005 13:03:44 +0100]
1 z, d4 Q0 C' L' q. @8 d1 f"don't think we should allow proprietary vendors to take our code
6 U5 O( {6 N8 ^; X6 _9 u
and close it again."
9 ]" `- ~2 S8 ~# F# i0 K, k9 H
% N2 _5 j/ P) H" a! g! w. {' g: H[citing Michael, Date unknown]
" [& b* q2 z" |( V! a* c9 l# {
"What if Broadcom decides to take our LO measure state machine and
. z, D. [- `: M- k' Vput it into the original driver? (The Rev Engineers told me they have
/ N5 Y9 ~, |! U9 J
a very different weird solution for this in their code).
3 R7 F, Y/ C( a% R) }6 |) _I really don't want to see this happen."
: R9 |. [' o# ]1 I
5 U( P# y+ o, x% A% O+ AWe'd like to offer you to start cooperating with us.
5 D3 M- b" a) m+ F6 QWe respect you and your Copyright. You should also do so on our work.
0 U; R2 Q6 y) T" Z/ G
1 R3 w4 S0 v3 u1 f, f: p8 ]: `
We would not be opposed to relicensing parts of our code under the BSD
: c) d, [2 [' wlicense on an explicit case-by-case base.
]4 l/ Y: j$ @8 r# n+ sSo if you ask "May I use this and that function" and if I own the
$ n6 p" I& b: d' @" rCopyright on that particular function, I will approve or deny your request.
6 k, q. y5 \5 ?. Z/ U7 qOther Copyright holders of the bcm43xx code might act the same way.
W5 m. S L! I% i3 v
+ E V6 i I2 t2 a( N7 T, KWe're not out for blood, just for a fair resolution.
$ J5 y. o, E6 C8 A' oWe'd like you to start contacting us to resolve the issue now.
& d6 m4 _+ u' n, D, @( K( I% B4 x
) U9 ^" q1 z3 R+ YHave a nice day.
% q$ M" p+ X- t# }- k$ V$ @7 ~: B) x
! j L9 K& u. y- H--
3 v/ C" F7 ?) V) Q7 J
Greetings Michael.
; A2 i/ y/ h; v* b* E, U, t' n) n-
/ K( W% j* Z# r" L9 ], t; M" g3 ~. H
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
) c; _. p6 x& ]+ q, qthe body of a message to
majordomo@vger.kernel.org
_1 d/ T' C9 N% oMore majordomo info at
http://vger.kernel.org/majordomo-info.html