Problem licencji BSD
Richard StallmanDwie główne kategorie licencji wolnego oprogramowania to copyleft i nie-copyleft. W licencjach typu copyleft, takich jak GNU GPL, żąda się, by zmodyfikowane wersje programu były również wolnym oprogramowaniem. Licencje nie-copyleft tego nie wymagają. Zalecamy korzystanie z copyleft, bo to rozwiązanie chroni wolność wszystkich użytkowników, niemniej jednak oprogramowanie na innego rodzaju licencjach może nadal być wolne i użyteczne dla społeczności wolnego oprogramowania.
Istnieje wiele wariantów prostych licencji wolnego oprogramowania, nie będących copyleft, łącznie z licencją Expat, licencją FreeBSD, licencją X10, licencją X11 i dwoma licencjami BSD (Berkeley Software Distribution). Większość z nich jest równoważna i różni się tylko szczegółami sformułowań, ale licencja używana w BSD do 1999 roku zawierała specyficzny problem: „uprzykrzoną klauzulę ogłoszeniową BSD”. Stwierdzała ona, że każde ogłoszenie czy tekst reklamowy odnoszący się do tych programów musi zawierać pewne konkretne zdanie:
3. Wszystkie materiały reklamowe informujące o funkcjach lub wykorzystaniu tego programu muszą wyświetlać następujące potwierdzenie: Ten produkt zawiera oprogramowanie stworzone przez Uniwersytet Berkeley w Kalifornii oraz jego współpracowników.
Początkowo powyższa klauzula ogłoszeniowa była stosowana tylko w Berkeley Software Distribution, Dystrybucji Oprogramowania z Berkeley. Nie powodowała żadnych szczególnych kłopotów, gdyż dołączenie jednego zdania do reklamy nie stanowi zbytniej trudności.
Gdyby inni programiści, którzy wykorzystali licencje w stylu BSD, skopiowali klauzulę ogłoszeniową dosłownie, łącznie ze zdaniem wskazującym na Uniwersytet Kalifornijski, ani trochę nie powiększyliby trudności.
Jednak, jak można się tego było spodziewać, inni programiści nie kopiowali tekstu słowo w słowo. Zmieniali klauzulę, zastępując „Uniwersytet Kalifornijski” nazwami swoich instytucji lub własnymi nazwiskami. W rezultacie mamy mnogość licencji, wymagających mnóstwa różnych zwrotów.
Gdy składa się wiele takich programów w jeden system operacyjny, powstaje poważny kłopot. Wyobraźcie sobie, że taki system wymagałby 75 różnych zdań, z których każde wymieniałoby autora bądź grupę autorów. Do jego reklamy trzeba by było całostronicowego ogłoszenia.
Może to wyglądać na sprowadzanie rzeczy do absurdu, ale w rzeczywistości to fakt. W wersji NetBSD z roku 1997 naliczyłem tych zdań 75. (Na szczęście NetBSD zdecydowało zaprzestania ich dodawania, oraz usuwania w miarę możliwości.)
Chcąc rozwiązać ten problem, w „wolnym czasie” rozmawiam z programistami, którzy zastosowali licencję typu BSD, prosząc, by zechcieli usunąć klauzulę ogłoszeniową. Około 1996 mówiłem na ten temat z twórcami FreeBSD i zdecydowali się usunąć klauzulę z całego własnego kodu. W maju 1998 autorzy Flick, z Uniwersytetu Utah, także ją usunęli.
Dziekan Hal Varian z Uniwersytetu kalifornijskiego zajął się tą sprawą i bronił jej w rozmowach z administracją. W czerwcu 1999, po dwu latach dyskusji, Uniwersytet Kalifornijski usunął klauzulę ogłoszeniową z licencji BSD.
W ten sposób, obecnie istnieje nowa licencja BSD, która nie zawiera klauzuli ogłoszeniowej. Niestety, to nie eliminuje jej dziedzictwa: podobne klauzule nadal są obecne w licencjach wielu pakietów oprogramowania, które nie są częścią BSD. Zmiana w licencji BSD nie ma żadnego wpływu na inne pakiety, które wydano wzorując się na starej licencji – tylko ci, którzy je skonstruowali, mogą zmienić ich licencje.
Jeśli jednak wcześniej kierowali się przykładem Berkeley, to być może zmiana polityki uniwersytetu przekona niektórych z nich do zmiany. Warto zapytać.
Dlatego jeśli macie jakiś ulubiony pakiet, dla którego nadal stosowana jest licencja ogłoszeniowa BSD, prosimy, zachęćcie jego opiekuna, by zajrzał na tę stronę i rozważył wprowadzenie zmiany do licencji.
Jeżeli zamierzacie wydać program jako wolne oprogramowanie, nieobjęte copyleft, prosimy nie stosujcie klauzuli ogłoszeniowej. Nie kopiujcie licencji BSD z któregoś z istniejących pakietów – może mieć starą wersję. Prosimy, byście zamiast tego użyli innej licencji nie-copyleft, takiej jak Expat lub FreeBSD.
Możecie też pomóc w rozpowszechnieniu świadomości problemu, nie stosując określenia „licencja typu BSD”, ani nie mówiąc „licencja BSD”, co sugeruje, że jest tylko jedna. Rzecz w tym, że gdy wszystkie nie zaliczające się do copyleft licencje wolnego oprogramowania nazywa się „licencjami BSD”, niektórzy nowi programiści wolnych programów, którzy chcieliby zastosować jakąś wolną licencję, lecz nie copyleft, mogą uznać za pewnik, że należy wziąć ją właśnie z BSD. W ten sposób może się zdarzyć, że autor skopiuje licencję z klauzulą ogłoszeniową nie celowo, a tylko przypadkiem.
Jeśli chcecie przytoczyć konkretny przykład licencji, która nie jest copyleft, a nie macie jakichś szczególnych upodobań, prosimy weźcie taką, z którą nie wiążą się żadne specyficzne kłopoty. Jeśli będziecie mówić, na przykład, o „licencjach typu X11”, zachęcicie innych do skopiowania licencji z X11, dzięki czemu niewątpliwie unikną klauzuli ogłoszeniowej, inaczej niż w przypadku ryzyka przy losowym wyborze jednej z licencji BSD.
Albo możecie wspomnieć o licencji nie-copyleft, którą proponujemy ponad inne licencje: licencja Apache 2.0, która ma notkę uniemożliwiając atak za pomocą patentów.
Jeśli chcecie przytoczyć przykład konkretnej licencji BSD, zawsze wyjaśniajcie którą: „oryginalną licencję BSD” czy „zmodyfikowaną licencję BSD”.
Później pojawił się trzeci wariant licencji BSD, który ma tylko pierwsze dwa z czterech oryginalnych warunków licencji BSD. Nazywamy ten wariant „licencją FreeBSD”. Jest licencją przyzwalającą, nie-copyleft, kompatybilną z GNU GPL, podobnie jak zmodyfikowana licencja BSD.
Strona „Jak wybierać licencję dla swojej twórczości” zawiera ogólne wytyczne dotyczące wybierania licencji dla swojej twórczości.