|
Analiza prezentacji pokazanej przez SCO w Las Vegas Bruce Perens, Perens LLC Z pomocą Linusa Torvaldsa i społeczności Open Source. Przetłumaczone przez Tomasza Mazurka Dozwolone jest republikowanie tego materiału. Dozwolone jest jego cytowanie, reformatowanie i tłumaczenie w razie konieczności. Nie jest dozwolona jego modyfikacja w celu rozmyślnego zafałszowania mojej opinii. Prezentacja pokazana przez SCO w Las Vegas 18 sierpnia stwierdzała naruszenie prawa przez programistów Linuksa. Prezentacja ta, w formacie Microsoft PowerPoint jest dostępna tu (skompresowana GZIPem), lub tu (nieskompresowana), w formacie PDF (Adobe Acrobat) tu, zaś konwersja tej prezentacji do formy możliwej do oglądania pod przeglądarką wwww jest tu. Dziękuję WebFarmHosting.com i vanGennip.nl za przejęcie tych plików z barków mojego biednego, słabego łącza DSL. SCO przekazało tę prezentację Bobowi McMillanowi, reporterowi IDG News Service, bez żadnych umów typu non-disclosure. Bob poprosił mnie o komentarz. Tu znajdziecie jego artykuł. Zacznę od przykładów dotyczących "skopiowanego" kodu. Najprawdopodobniej SCO zawarło w swojej prezentacji możliwie najlepsze przykłady "skopiowanego" kodu. Mimo to bez trudu udało mi się ustalić, iż jeden z tych dwóch przykładów wcale nie jest własnością intelektualną SCO, drugi zaś jest używany w Linuksie będąc objęty wiążącą licencją. Jeżeli to są najlepsze przykłady, jakie SCO ma do zaoferowania, to przegra. Slajd piętnasty miałby pokazywać "Zamaskowane kopiowanie" z Unix System V do Linuksa. SCO dalej zamaskowało ten kod przez zmianę czcionki na grecką, ale jest to łatwe do odwrócenia. Zabawne, że ludzie z SCO nie mają pojęcia, że zmiana czcionki jest tak łatwa do odwrócenia. Dobrze, że nie zajmują się bezpieczeństwem mojego komputera :-) Kod pokazany na tym slajdzie to implementacja Berkeley Packet Filter, firewalla nazywanego często skrótem BPF. Powstał on w Lawrence Berkley Laboratory za fundusze Rządu USA, sam zaś jest pochodną starszego oprogramowania o nazwie "enet", opracowanego przez Uniwersytety Stanforda i Carnegie-Mellon. BPF został po raz pierwszy użyty w systemie 4.3 BSD stworzonym przez Uniwersytet Kalifornijski w Berkley. Później jego kod został skopiowany przez SCO do Unix System V. Źródła BPF są dostępne tu, na stronie Laboratoriów. Dokumentacja projektu, opublikowana w 1993 tu BPF jest objęty licencją BSD. Ta licencja pozwoliła SCO na legalne skopiowanie jego kodu do Unix System V w 1996, ale ponieważ SCO nie jest właścicielem tego kodu, nie ma żadnych praw by zabraniać innym jego użycia. Tak więc, w tym przypadku grupa "rozpoznawania wzorców" z SCO poprawnie wydedukowała, że implementacje BPF: linuksowa i SCO są podobne. Z tym, że ja byłem w stanie określić pochodzenie BPF po kilku minutach poszukiwania przez google.com. Czemu grupa "rozpoznawania wzorców" nie zrobiła tego samego? Trudno uwierzyć, że po prostu im się nie chciało sprawdzić. Jest też prawdopodobne, że SCO usunęło informacje o prawach autorskich Laboratoriów z kopii kodu źródłowego BPF w Systemie V, w przeciwnym wypadku nie byłoby miejsca na takie pomyłki. Linuksowa wersja BPF nie jest zamaskowaniem kodu BPF. Jest to kompletna reimplementacja BPF wykonana przez programistę Linuksa Jaya Schulista, nie mająca żadnego kodu wspólnego z oryginałem, ale która została stworzona przy użyciu jego dokumentacji. Pokazane na 15 slajdzie fragmenty wersji linuksowej i Systemu V implementują ten sam zestaw instrukcji wirtualnej maszyny, która jest używana do filtrowania (akceptowania, odrzucania, zmieniania lub przekierowania) pakietów internetowych. A dokumentacja dla tej wirtualnej maszyny określa nawet nazwy pól. Dlatego implementacje Schulista i Laboratoriów wyglądają podobnie. Nawet gdyby Schulist postanowił bezpośrednio użyć kodu Laboratoriów, to byłoby to wciąż legalne. Ale wersja linuksowa została stworzona w całości przez programistów Linuksa. Nie istnieje żadna teoria prawna dająca SCO prawa do jakichkolwiek roszczeń w stosunku do niej. Slajdy od 10 do 14 pokazują funkcje alokacji pamięci z Unix System V i odpowiadający im bardzo podobny kod w Linuksie. Cześć z tego materiału została rozmyślnie zamaskowana przez SCO poprzez użycie greckich czcionek. Przekonwertowałem ten tekst z powrotem do zwykłych czcionek. W tym wypadku był błąd w procesie tworzenia Linuksa (w SGI) i mamy szczęście, że nie okazał się on gorszy. Okazuje się, że mamy prawo do użycia tego kodu, jakkolwiek nie jest on już częścią jądra. Kod na tych slajdach zawiera kilka błędów składniowych C i nigdy by się nie skompilował. Wobec tego nie reprezentuje on jakiegokolwiek kodu zawartego w Linuksie. Ale znaleźliśmy kod, do którego się on odwołuje. Jest on częścią kodu będącego pierwotnie własnością AT&T i opublikowanego jako Open Source objęty licencją BSD przez Calderę, firmę nazywającą się teraz SCO. Programiści Linuksa mają prawo do używania kodu objętego tą licencją. Nie zachodzi tu żadne naruszenie praw autorskich, czy sekretów handlowych SCO. Najstarsza wersja tego kodu, którą jak dotąd znaleźliśmy, znajduje się w Sztuce programowania Donalda Knutha, opublikowanej w 1968. Knuth prawdopodobnie korzystał z wcześniejszych dokumentów naukowych. Nie pisał on w C, więc są różnice w szczegółach, ale algorytm jest ten sam. Implementacja pokazana na slajdach jest autorstwa Dennisa M. Ritchiego lub Kena Thompsona w AT&T w 1973. Wersję tych funkcji z 1973 można obejrzeć w tym pliku, pierwotnie nazywającym się dmr/malloc.c. Kod pochodzi z wersji trzeciej Uniksa, najstarszej znanej wersji Uniksa, która ciągle istnieje w formie czytelnej komputerowo. Kompletne źródła systemu można znaleźć w sieci tu. W 2001 roku Caldera opublikowała ten kod jako Open Source obejmując go tą licencją. Caldera to, oczywiście, firma teraz nazywająca się SCO. Licencja bardzo wyraźnie pozwala programistom Linuksa na użycie kodu, o którym mowa. Historyczne informacje o tym, dlaczego Caldera opublikowała ten kod źródłowy są tutaj i zawierają pewne informacje istotne dla procesu SCO. We wczesnych latach dziewięćdziesiątych AT&T Unix System Labs (USL) pozwały BSDI, firmę sprzedającą system BSD, i Uniwersytet Kalifornijski w sprawie tego i innych fragmentów kodu w tworzonym w Uniwersytecie Kalifornijskim w Berkley systemie BSD. Poczynania SCO wyglądają bardzo podobnie do AT&T. AT&T przegrało. Gwoli ścisłości, AT&T utraciło swoje prawa autorskie to kodu, o który się procesowało, ponieważ został on opublikowany bez odpowiedniej wzmianki o prawach autorskich. Dziś stałoby się inaczej, ponieważ poczyniono zmiany w prawie autorskim i wszystkie dzieła są nim domyślnie objęte. Ale Wtedy decyzja sędziego brzmiała: Powodowi nie udało się wykazać możliwości obrony swoich praw autorskich do [Uniksa w wersji] 32V. Consequently, I find that Plaintiff has failed to demonstrate a likelihood that it can successfully defend its copyright in [Unix version] 32V. Zgłoszone przez powoda domniemanie naruszenia praw autorskich nie jest podstawą dla podjęcia dalszych kroków prawnych. (kiepskie tłumaczenie, jeśli ktoś zna prawniczą angielszczyznę proszę o korektę - tłum.) W rezultacie od wyroku do 1998, kiedy wprowadzono zmiany do konwencji o prawach autorskich, które objęły kod AT&T prawem autorskim, kod zasadniczo był przedmiotem użyteczności publicznej. Kod pochodny od Uniksa powstały przed i w tym okresie byłby legalny. Okazało się też, że AT&T kopiowało wiele kodu od Uniwersytetu bez zachowania praw autorskich, wobec czego AT&T zgodziło się załatwić sprawę polubownie. W umowie Uniwersytet zgodził się dodać notkę o prawach autorskich AT&T do niektórych plików i dystrybuować dalej cały system na licencji BSD. AT&T zgodziło się zwrócić Uniwersytetowi koszty sądowe. Pewne szczegóły umowy są tutaj. Kod AT&T, który był podstawą tego procesu przetrwał i wszedł do aktualnego systemu SCO, zaś wersja załączona Linuksie zdaje się pochodzić z Systemu V. Ta wersja różni się od wersji użyteczności publicznej o 2 linie - obie związane raczej z diagnostyką, niż z pracującym kodem. Tak trywialnych różnic raczej prawo autorskie nie chroni. "Grupa rozpoznawania wzorców" SCO znalazła ten kod i słusznie wywnioskowałą, że był on podobny do kodu Linuksa. Nie nie zrobili dodatkowego kroku i nie sprawdzili czy ten kod nie został opublikowany z pozwoleniem, by inni go kopiowali. Kod, o którym mowa został już usunięty z najnowszych wersji jądra z powodów technicznych. Duplikował funkcjonalność dostarczaną przez inną część jądra, wobec czego nigdy nie powinien zostać do niego włączony. Kod był przeznaczony dla pewnego systemu SGI, który nigdy nie został sprzedany i innego, który jest niezwykle rzadki i nie jest wykorzystywany z głównymi wersjami jądra Linuksa. NA slajdzie 30 SCO utrzymuje, że posiada właściwie cały kod w Linuksie, który kiedykolwiek dotknął IBM, SGI, czy też inni posiadacze licencji Uniksa. Co daje razem ponad 1,1 milionów linii kodu, w 1549 pliksch i stanowi 2/3 nowego kodu wprowadzonego do Linuksa pomiędzy wersjami 2.2 i 2.4. Ale w jaki sposób SCO mogłoby wejść w posiadanie tego kodu, objętego prawem autorskim innych firm i osób. Prawna teoria SCO, wyjaśniona na slajdzie 6 stanowi, że licencja AT&T na Uniksa wymagała od tych firm przekazania na AT&T, a później SCO, wszystkich dzieł pochodnych, które stworzyli, a zawierają one kod źródłowy Uniksa. Oto główna klauzula ze slajdu 6: Takie prawo do użytkowania zawiera prawo do modyfikowania takiego OPROGRAMOWANIA i do tworzenia dzieł pochodnych, opartych na takim OPROGRAMOWANIU, jeżeli powstały w ten sposób materiał będzie dalej traktowany jako część OPRGRAMOWANIA. Według teorii SCO, jeżeli jakikolwiek kod wytworzony przez posiadacza licencji Uniksa zetknie się z nim, to SCO jest od tego momentu posiadaczem tego kodu i może odmówić jego twórcy praw do wykorzystania w jakimkolwiek innym celu. Ta teoria jest błędna, ponieważ ignoruje fakt, że jeśli dzieło nie zawiera jakiejś porcji kodu, którego właścicielem jest SCO, to nie jest to dzieło pochodne. Szczególnie mocno widać to na slajdzie 20, gdzie SCO stwierdza swoją własność JFS, Journaling File System IBMu. Wersja JFS użyta w Linuksie została pierwotnie opracowana dla systemu operacyjnego OS/2 i później przeniesiona na Linuksa. Nie ma żadnego wspólnego kodu z implementacją JFS w Systemie V. Wymysły SCO mają podobne dziury w przypadku innych wymienianych produktów: RCU lub Read Copy Update, oprogramowanie zapobiegające kolidowaniu procesorów ze sobą w systemach wieloprocesorowych, zostało stworzone przez Sequent, firmę później wykupioną przez IBM. Sequent opracował RCU pod systemem Dynix, pochodnej Uniksa. Później usunęli oni RCU z Dyniksa - oddzielając go od jakiegokolwiek kodu będącego w posiadaniu SCO - i dodali je do Linuksa. Podobnie XFS - eXtent File System, autorstwa SGI, został oddzielony od pochodnego Uniksowi systemu IRIX i przeniesiony pod Linuksa. SCO argumentuje, że oprogramowanie objęte prawem autorskim nie może nigdy zostać oddzielone, że każdy kod stworzony przez posiadacza licencji Uniksa, który kiedykolwiek zetknie się z SCO Uniksem, lub też jest tylko ogólnie oparty na Uniksie należy od tego momentu w całości do SCO i nie może nigdy zostać użyty do innych celów przez swoich twórców bez zgody SCO. Taka argumentacja przekracza jakiekolwiek sensowne rozumienie granic prawa autorskiego i tajemnic handlowych. Jest mało prawdopodobnym, by utrzymała się ona w sądzie. Odpowiedzi SCO na ten dokument to Jesteśmy właścicielami Uniksa i chyba wiemy, jak on wygląda i To jest jego słowo przeciwko naszemu. Jakkolwiek ja nie żądam od Was, byście polegali na moim słowie. Dałem wam linki do dowodów, większość z nich znajdujących się na stronach poza moją kontrolą. Proszę, przejrzyjcie je i wyciągnijcie własne wnioski. Bruce Perens Linki
|
|