Jak ostatnio informowaliśmy tutaj :
Xamarin rozwidlił Cocos2D-XNA, platformę do tworzenia gier 2D / 3D, tworząc międzyplatformową bibliotekę, którą można włączyć do projektów PCL.
Jednak założyciel rozwidlonego projektu mówi :
Celem licencji MIT jest unieważnienie dozwolonego użytku. Aby nie zachęcać Cię do wzięcia oprogramowania, zmień jego nazwę na własną, a następnie „weź go w nowym kierunku”, jak mówisz.
Chociaż nie jest nielegalne, jest nieetyczne.
Wygląda na to, że strona GitHub nowego projektu nawet nie wskazuje, że jest to rozwidlenie w typowy sposób GitHub, wybierając zamiast tego łatwo usuwalną sekcję Historia (patrz poniżej).
Więc moje pytania to:
- Czy działanie Xamarina i sposób jego wykonania były etyczne, czy nie?
- Czy można uniknąć takiej sytuacji, jeśli jesteś pojedynczym programistą lub małą niefinansową grupą programistów?
Mam nadzieję, że może to być pytanie typu wiki lub znajdą się obiektywne odpowiedzi oparte na etyce / filozofii współczesnego OSS.
źródło
Odpowiedzi:
Zapytajmy eksperta - wykaz samej licencji MIT w ramach Open Source Initiative , z całą licencją cytowaną:
Jeśli ktokolwiek - osoba fizyczna lub firma - wyda oprogramowanie / kod źródłowy z licencją MIT, oznacza to, że ktokolwiek inny - osoba fizyczna lub firma może „zajmować się Oprogramowaniem bez ograniczeń”. Tak długo, jak informacja o prawach autorskich pozostaje nienaruszona, są w stanie robić, co chcą.
Jest to jeden z tych przypadków, w których etyka i legalność są prawie dokładnie takie same. Jeśli osoba lub grupa nie zrozumiała licencji lub jej konsekwencji, nie dołożyła należytej staranności. Inicjatywa Open Source zapewnia wiele innych ciekawych zasobów, które pomagają nam zrozumieć licencje, takie jak wariant MIT. Spójrzmy na kilka klauzul ich definicji Open Source:
Moim odczytaniu wydaje się to całkowicie jasne: wydanie czegoś jako oprogramowania typu open source, szczególnie z licencją MIT, pozwala komuś swobodnie zabrać oprogramowanie, zmienić je, spakować i sprzedać prawie w dowolny sposób, o ile nie t usunąć informacje o prawach autorskich i twierdzą, że jest to ich własny podeszwa praca.
Jako autor wyraźnie rezygnujesz z prawa do bycia wybrednym i wybrednym. Nie możesz zdecydować, kto lub co może skorzystać z twojego oprogramowania ani z niego korzystać, i nie możesz zdecydować, dlaczego z niego korzystają. Wyraźnie rezygnujesz z tego prawa.
Chodzi o to, że przyczyniasz się do większego dobra poprzez wyraźne zrzeczenie się wszelkich praw, które masz do kontrolowania i ograniczania używania i zmiany tego, co zrobiłeś. Jeśli Microsoft chce rozwidlić projekt FluffBall i sprzedać go za 2 tys. USD za stanowisko jako WindowsSpongeCake, może to zrobić. Czy przede wszystkim nie pozwalano ludziom robić, co chcą, całego projektu?
Rodzaj! Najpierw użyj licencji odpowiedniej dla Ciebie i celów i pragnień organizacji. Jeśli nie chcesz, aby ktokolwiek używał go w sposób, którego nie akceptujesz, prawdopodobnie nie powinieneś wypuszczać go jako Open Source - i szczerze mówiąc, być może nie powinieneś go w ogóle wypuszczać! Jeśli nie chcesz, aby ktokolwiek używał dzieła pochodnego (takiego jak widelec) w komercyjnym projekcie, prawdopodobnie powinieneś wybrać wersję GPL typu copyleft . Jeśli chcesz uzyskać licencję niekomercyjną, prawdopodobnie powinieneś poprosić o poradę prawnika / licencję, ponieważ często nie jest to w ogóle uważane za oprogramowanie typu „open source” i nie ma żadnej ważnej wcześniej napisanej licencji na poparcie tej sprawy.
Problem z kerfuffami Xamarin i Coco nie jest kwestią etyki ani legalności - chodzi o walkę w Internecie między kilkoma osobami, które mają ze sobą do czynienia. Wszyscy jesteśmy ludźmi, to się zdarza. Wydaje się, że jest to wynik niemożności współpracy / współpracy, prawdopodobnie z powodu konfliktu osobowości lub niezgodnych wizji dotyczących sposobu obsługi projektu.
Tak więc innym sposobem obrony jest otwarcie się na współpracę i zmiany, ale zrozum, że jeśli to nie zadziała, a wizje się rozejdą ... to jest powód, dla którego możesz wybrać rozwidlenie i mieć swój własny oddzielny projekt.
To bardzo ludzkie i zrozumiałe dla poczucia własności i popularności, że projekty oprogramowania są bardzo, bardzo skomplikowane. Ale celem open source jest próba przekroczenia tego i umożliwienie najlepszego oprogramowania dla wszystkich.
Podsumowując, jasno określ swoje cele przy podejmowaniu decyzji o licencji i zrozum, że ma to wpływ na twoją przyszłą kontrolę i kierowanie projektem. Jeśli chcesz po prostu przekazać darowiznę na rzecz większego dobra, najlepszym rozwiązaniem jest oprogramowanie typu open source. Jeśli chcesz ściślej kontrolować swój projekt i mieć własność oraz przynajmniej sprawę prawną, jeśli ktoś spróbuje sprzedać twój projekt lub przejąć go na swój (częściowo lub całkowicie), będziesz potrzebować innej licencji i prawdopodobnie będziesz musiał załatw to z prawnikiem.
źródło
Wydanie projektu na licencji MIT daje ludziom pozwolenie na rozwidlenie projektu. Częścią filozofii stojącej za wolnym oprogramowaniem jest zapewnienie użytkownikom i programistom prawa do używania, modyfikowania i wydawania oprogramowania w sposób, który normalnie nie byłby dozwolony. Jeśli nie chcesz, aby ludzie to robili, nie używaj licencji MIT. Naprawdę nie możesz narzekać, kiedy ludzie używają kodu na warunkach udzielonej im licencji.
Widelce są dość normalną rzeczą w społeczności wolnego oprogramowania. Wygląda na to, że programiści rozwidlenia próbowali przyczynić się do oryginalnego projektu i nie zgodzili się, więc zamiast tego przyczynili się do własnego projektu. Wolne oprogramowanie zachęca do tego, aby programiści nie mieli możliwości modyfikowania oprogramowania, ponieważ właściciele nie lubią ich zmian.
Ponadto, wydając coś na podstawie licencji wolnego oprogramowania, korzystasz z wkładów innych osób, wkładów, których możesz nie otrzymać, gdyby było to na podstawie innej licencji. Jeśli akceptujesz wkłady na podstawie licencji, sam musisz przestrzegać warunków licencji.
Jednym ze sposobów utrzymania kontroli nad oficjalną wersją jest poleganie na znakach towarowych. Na przykład Mozilla Corporation ma znak towarowy w Firefoksie, który pozwala im dyktować, co ludzie mogą zrobić z Firefoksem, nawet jeśli jest to oprogramowanie open source (zobacz Iceweasel, aby zapoznać się z tym).
Inne licencje, takie jak LGPL, nadal zezwalają na widelce, ale kod należy pozostawić otwarty. W ten sposób możesz przynajmniej wprowadzić zmiany z widelca do swojego oryginalnego projektu i skorzystać z rozwoju widelca. Kod LGPL może używać dowolnego kodu licencjonowanego MIT, więc jeśli chcesz mieć większą kontrolę nad projektem, możesz zamiast tego użyć LGPL.
źródło
Nie nazwałbym tego nieetycznym. Nazwałbym to niesportowym. Istnieje niepisane oczekiwanie, że dołożysz starań w dobrej wierze, aby poprawić oryginalną wersję przed podjęciem decyzji o rozwidleniu, i wydaje się, że oryginalny autor uważa, że wysiłek w dobrej wierze nie został podjęty.
To powiedziawszy, najlepszym sposobem na uniknięcie rozwidlenia oprogramowania jest reagowanie na żądania klientów w taki sposób, aby Twoje oprogramowanie miało jak najszerszy apel. Nikt nie udzieli wsparcia widelcowi, jeśli wie, że oryginał jest lepszy. Poza tym jedyną ochroną jest zmiana warunków licencyjnych.
źródło
Wiele osób łączy sytuację prawną i etyczną. Licencja X11 pozwala każdemu „użytkowania, kopiowania, modyfikowania, łączenia, publikowania, dystrybucji, udzielania licencji i / lub sprzedawania kopii Oprogramowania oraz w celu umożliwienia osobom, którym Oprogramowanie jest dostarczane, aby to zrobić”, więc jest to na pewno legalne .
Jednak etycznie jest to bardziej skomplikowane. W społecznościach typu open source generalnie uważa się za lepsze ulepszenie oryginalnego oprogramowania niż tworzenie widelca. W podanym linku Miguel de Icaza mówi:
Nie jest jasne, dlaczego „nie mogli współpracować ze sobą”, ale wygląda na to, że Xamarin podjął rozsądny wysiłek, aby pracować nad oryginalnym projektem, zanim zdecydował się go rozwidlić.
Zgodnie z prawem możesz użyć licencji, która nie pozwala na rozwidlenie, uniemożliwiając redystrybucję kodu źródłowego (w tym momencie nie byłoby to „wolne oprogramowanie”). Inną opcją jest pozostawienie kodu nieobciążonego, ale nie zezwalanie na redystrybucję zasobów statycznych, takich jak obrazy lub tekst bez kodu (niektóre gry mają takie licencje).
Społecznie możesz zapobiec rozwidleniu poprzez:
Oprogramowanie do rozwidlania to dużo pracy, a większość rozsądnych ludzi nie zrobi tego, jeśli będzie miała łatwiejszą opcję. Jeśli nie będą mieli innego wyboru, zapobieganie rozwidlaniu kodu zmusi go do rozwidlenia kodu innej osoby lub przepisania oprogramowania od zera. Może to ich spowolnić, ale tak naprawdę niewiele ci pomoże.
Ponadto stosowanie bardziej restrykcyjnej licencji sprawi, że niektórzy ludzie będą mniej skłonni do wniesienia wkładu. Xamarin najwyraźniej „przyczynił się w znacznym stopniu do Cocos2D-XNA” i wątpię, czy zrobiliby to, gdyby licencja nie pozwalała na jego redystrybucję.
źródło
To, co zrobił Xamarin, jest legalne i etyczne ... prawie.
Rzućmy okiem na poprawkę zatwierdzenia licencji i różne poprawki literówek w pliku readme :
LicenseAndCredit.txt (diff)
W całej licencji MIT jest tylko jeden wymóg:
I Xamarin zrobił dokładnie to, co zabronione. Xamarin może uważać, że dzięki temu licencja jest „ładniejsza”, ponieważ na górze ma mniej informacji o prawach autorskich, ale nie mają pozwolenia (prawnego ani etycznego) na usunięcie „nadmiarowości”.
Oczywiście, jeśli naprawią plik licencji, ponownie znajdą się w obszarze prawnym. Autor oryginalnej biblioteki może się nie zgodzić, ale dokonał wyboru licencji i nie może winić nikogo, że zrobił to, na co licencja wyraźnie zezwala.
źródło
Niełatwo byłoby pozwolić ludziom na wyciąganie błędnych wniosków na temat autorstwa jakiegokolwiek kodu, z którego korzystają statki widłowe, nawet jeśli legalność jest objęta zapewnieniem niezbędnych powiadomień i historii zmian każdemu, kto zdecyduje się przyjrzeć. Więc może prezentacja Xamarina jest nieetyczna, może nie, ale myślę, że to jest podstawa do jej oceny: czy wprowadza w błąd?
Licencja określa pozwolenie na korzystanie z kodu oraz wymóg dołączenia odpowiednich informacji o prawach autorskich do kopii kodu. To wszystko na dość niskim poziomie. Nie omawia, w jaki sposób należy publicznie podsumować, kto przyczynił się, ale to, że jest to poza zakresem licencji i nie stanowi części umowy prawnej , nie oznacza, że wszystko idzie etycznie . Etyka jest różna, ale przyznawanie uczciwego uznania jest powszechnie uznawaną zasadą, więc łatwo jest zrozumieć, dlaczego nieprzestrzeganie tego będzie obrażać.
Jak wszyscy mówią, w licencji MIT nie ma zamiaru zapobiegać rozwidleniom, więc samo w sobie nie jest to nieetyczne. Jeśli „rebranduj go jako swój własny” to kod dla „publicznie zgłaszaj roszczenia kredytowe, na które nie zasługujesz”, to upewnij się, że byłoby to nieetyczne, jeśli to prawda.
Jeśli chodzi o zapobieganie, aby ci się to nie zdarzyło: jeśli chcesz uniknąć sytuacji, w której ktoś sugeruje, że Twój kod należy do Ciebie, to potrzebujesz głośnego głosu podczas ubiegania się o kredyt. Jeśli chcesz uniknąć sytuacji, w której ktoś tworzy rozwidlenie twojego kodu, który może ostatecznie okazać się bardziej popularny niż twój oryginalny (albo ze względu na ich większe zasoby, albo po prostu skupienie się na potrzebach „właściwego” użytkownika), myślę, że nie masz dostępu szczęścia w OSS. Nie możesz po prostu zdecydować, że masz rację, jeśli inna grupa chce innych funkcji w oprogramowaniu od tego, czego chcesz, a jeśli (w opinii użytkowników) się mylisz, powinieneś przegrać, niezależnie od tego, czy był tam pierwszy. Jest to konsekwencja podstawowej zasady otwartego oprogramowania (lub właściwie zasady wolnego oprogramowania), że autor nie kontroluje oprogramowania, ludzie, którzy go uruchamiają.
źródło
Rozszerzenie tematu znaku towarowego:
W Apache Software Foundation cały kod to AL. Podobnie jak w przypadku omawianej tutaj licencji BSD, jest całkowicie jasne, że AL zezwala na widelce. Kropka. Koniec dyskusji. W rzeczywistości, jak omówiono w innych odpowiedziach, wszystkie prawdziwe licencje typu open source zezwalają na widelce. Kontrolują jedynie licencję / użycie rozwidlonego kodu.
Fundacja Apache zdecydowała się zarejestrować i bronić znaków towarowych. Jeśli jakaś istota inna niż projekt fundacyjny rozwidla się, och, „Apache Tomcat”, są w porządku ... ale nie mogą nazywać go Apache Tomcat , a kiedy możemy obronić znak, nie mogą nazywać go Tomcat .
Problem polega na tym, że znaki towarowe nie są dla osób o słabym sercu. Jeśli jesteś małą grupą ludzi, bez struktury prawnej i finansowania, praktycznie nie możesz używać prawa znaków towarowych do ochrony swojego imienia i nazwiska.
W końcu tego rodzaju rzeczy są jednym z powodów istnienia różnych fundacji.
Z etycznego punktu widzenia, cóż, jeśli istnieje wewnętrzny rozłam między ofiarodawcami, kto ma powiedzieć, kto „zasługuje” na zachowanie nazwy? Jeśli natomiast ktoś z zewnątrz rozwidla, pozostawienie imienia bez zmian prawdopodobnie nie jest najbardziej etyczną rzeczą na świecie. To też nie jest haniebny czyn.
Github jest pełen widelców . Czasami ludzie zmieniają nazwę, pakiet Java lub cokolwiek innego - szczególnie jeśli chcą publikować w Maven Central. Często tego nie robią, a użytkownicy poruszają się po labiryncie zamieszania. To nie jest idealne, ale to zrywa z anarchią.
źródło