koszkonutek

Moja nowa licencja

Od dłuższego czasu zastanawiałem się, pod jakimi warunkami wypuszczać swój kod. Gdyby chodziło tylko o kwestie praktyczne, byłbym zwolennikiem GPL'a. Tak się jednak składa, że jestem przeciwny prawu autorskiemu. Nie miałbym serca kogoś pozywać, nawet gdyby ten ktoś wykorzystywał mój kod w zły sposób. A skoro nie mam zamiaru pozywać, to nie mam też zamiaru udawać, że jest inaczej i przylepiać do swojego kodu licencji, której i tak bym nie egzekwował. Co zatem robić? Udostępniać kod na zasadach domeny publicznej? Przez pewien czas tak właśnie robiłem. Licencje, których używałem, to kolejno Unlicense, 0BSD i CC0.

Dual-licensing

Przez pewien czas, oprócz domeny publicznej, wykorzystywałem równolegle GPL. Na pierwszy rzut oka może się to wydawać dziwnym pomysłem. Czy jest w ogóle celowe udostępnianie programu pod dwoma takimi licencjami jednocześnie? Jaki to ma sens, jeśli domena publiczna jest i tak kompatybilna z GPL'em? Już wyjaśniam:
  1. Używając dodatkowo GPL'a pokazuję, że choć nie chcę osobiście używać copyleft'u, to mimo wszystko sympatyzuję z GNU i FSF.
  2. Niektórzy z jakichś powodów obawiają sę wykorzystywać kod na warunkach domeny publicznej (może dlatego, że w niektórych krajach domena publiczna prawnie nie istnieje). Może się zdarzyć, że ktoś zdecyduje się skorzystać z mojego kodu tylko wtedy, kiedy zobaczy przy nim dodatkowo jakąś inną licencję.
  3. GPLv3 daje użytkownikom kodu ochronę przed sztuczkami patentowymi. W zasadzie jeśli nie posiadam żadnych patentów, to nie powinno to mieć znaczenia, jednak ktoś, kto mi nie ufa, może się poczuć bezpieczniej właśnie dzięki GPL'owi.

Nowy pomysł

Przez długi czas miałem wrażenie, że używanie domeny publicznej stawia mnie w złym świetle w oczach zwolenników copyleft'u. Miałem ochotę ją czymś zastąpić, jednocześnie nie dając sobie możliwości pozywania kogokolwiek. I z czasem coś odpowiedniego faktycznie przyszło mi do głowy. Coś pozornie głupkowatego, a zarazem mającego pewien sens. Zastąpienie domeny publicznej licencją, która oficjalnie pozwala mi nazywać licencjobiorcę słowem „asshole”. Po angielsku brzmi to całkiem przekonywująco. Tak też zrobiłem. Postanowiłem nazwać swój twór „Asshole license”, z dopisaną wersją: 1.0.

Ochrona przed pozwami

Kiedyś wyczytałem, jak Facebook swego czasu używał licencji, która zabraniała pozywania go. Jest to dziwne zastosowanie praw autorskich, co jednak nie znaczy, że niepraktyczne. Choć owa (już zresztą nieaktualna) praktyka Facebook'a nie za bardzo mi się podobała, to tamten właśnie przypadek zainspirował mnie do zrobienia czegoś podobnego, choć w trochę innej formie - zabronienia w licencji pozywania mnie za obrażanie licencjobiorcy. Taki warunek uznałem za dobry, bo choć wykorzystywałem prawo autoskie, to tylko do ochrony siebie przez sprawami sądowymi, w dalszym ciągu bez grożenia pozywaniem innych samemu.

Pozwolenie na inżynierię wsteczną

Miałem poprzestać na tych właśnie warunkach, kiedy przyszedł mi go głowy jeszcze jeden pomysł. Skoro i tak już tworzę własną komiczną licencję oprogramowania i mogę do niej wrzucić co chcę, to czemu się ograniczać? No więc w jakich jeszcze przypadkach obawiam się potencjalnego pozwania? Ano przy inżynierii wstecznej. Więc dodałem warunek zakazujący pozywania mnie w związku z inżynierią wsteczną i warunek zakazujący wykorzystywania DMCA przeciwko moim programom. Jednocześnie starałem się nie przesadzić i nie zadać absurdalnie ostrych warunków.

Wykonanie

Wiedząc już, czego chcę, musiałem jeszcze to napisać. Jako szablon wykorzystałem licencje BSD. Standardowe warunki zastąpiłem swoimi. Trochę zastanawiałem się nad doborem słownictwa i sformułowaniami, po czym ostatecznie wybrałem takie, które intuicyjnie wydają się bezpieczne. Nie przejmowałem się tym bardzo, bo i tak sama licencja jest w większej połowie niepoważna i jej głównym celem nie są korzyści prawne, a raczej zniechęcenie ludzi do robienia czegoś złego z kodem. Na koniec pomyślałem jeszcze o dodaniu licencji na patenty, jednak z powodu lenistwa nie zrealizowałem tego pomysłu.

Efekt końcowy

Asshole license 1.0

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. You agree that you're an asshole.
2. You agree for the copyright owner of this software/work to call you an
   asshole, both privately and publicly.
3. You agree and promise not to sue the copyright owner of this
   software/work nor anyone acting on behalf of the copyright owner of this
   software/work for calling you an asshole.
4. You agree and promise not to sue the copyright owner of this
   software/work, nor anyone acting on behalf of the copyright owner of this
   software/work, in relation with reverse-engineering actions performed on
   your software/products.
5. You agree and promise not issue DMCA claims against any software
   developed and/or distributed by the copyright owner of this
   software/work or anyone acting on behalf of the copyright owner of this
   software/work. Should such claims happen regardless, they will be
   automatically void.

THIS SOFTWARE/WORK IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS''
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE/WORK, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
Przyznam, że jestem zadowolony. Pewnie niektórym zagorzałym zwolennikom GPL'a ten pomysł się i tak nie spodoba, jednak wszystkich nie uszczęśliwię, a siebie mogę 😉 Licencja jest tak sformułowana, że powinna się nadawać zarówno do kodu programów, jak i do innych dzieł. Planuję ją wykorzystywać w obu tych przypadkach, odpowiednio z GPL'em i CC BY-SA. Teraz czeka mnie jeszcze tylko jedno nieprzyjemne zadanie - zaktualizować licencję wszystkiego, co kiedykolwiek napisałem 😕

Plany na przyszłość

Trzeba przyznać, że moja licencja nie jest całkiem poważna i niektóre z jej punktów mogą nie mieć mocy prawnej w praktyce. Mimo wszystko nie stanowi to dużego problemu, bo i tak w pierwszej kolejności chodziło mi mniej o ochronę przed pozwami, a bardziej o zniechęcenie tych, którzy mogliby rozważać wykorzystanie kodu w sposób niezgodny z GPL'em.
Być może w przyszłości skorzystam z pomocy kogoś obeznanego w temacie w celu stworzenia tym razem już poważnej licencji, która będzie rozwinięciem zamysłu tej. Wtedy pozbylibyśmy się wszystkiego, co się tyczy słowa „asshole”, a za to być może sensowne okazałoby się dodanie jeszcze jakichś warunków w stylu tych dotyczących inżynierii wstecznej.

O przezywaniu innych

Dochodzę do wniosku, że ten pomysł z licencją może mnie stawiać w złym świetle. Prawda jest jednak taka, że groźba nazwania kogoś słowem „asshole” jest po prostu humorystycznym sposobem zaradzenia pewnym problemom. To, że sformułowałem w ten sposób licencję, nie znaczy bynajmniej, że mam ochotę kogoś zwyzywać albo że w jakiś sposób popieram hamskie przezwiska. Tak naprawdę wolałbym, żeby ktokolwiek użyje mojego kodu, wykorzystał uprawnienia wynikające z GPL'a. Natomiast jeśli tak się nie stanie... Cóż, i tak uważam swoje podejście za mniej brutalne niż autorów, którzy używają wyłącznie licencji copyleft'owej. Oni w przypadku naruszenia tego copyleft'u grożą postępowaniem sądowym, a ja tylko przezwiskiem 😊
Mimo wszystko, dla uniknięcia niezręcznych sytuacji będę się starał odnosić do swojego tworu jako do licencji „A”.