• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Licencjonowanie własnego oprogramowania

VPS Starter Arubacloud
+4 głosów
782 wizyt
pytanie zadane 15 stycznia 2017 w Systemy operacyjne, programy przez Benek Szeryf (90,690 p.)

Chciałbym upublicznić własne oprogramowanie, mam jednak problem z licencjonowaniem. W zasadzie to chodzi mi o kompatybilność wsteczną, która nie do końca jest dla mnie jasna. Podam dwa przykłady, gdzie oba programy chciałbym wydać na licencji MIT. Pierwszy program jest napisany w Pythonie, korzysta on z rozbudowanych modułów, m. in. SciPy. Wszystkie moduły są wydane na zmodyfikowanej licencji BSD (3-klauzule). Oba poniższe linki wyraźnie wskazują, że licencja BSD jest kompatybilna z MIT:

Wydaje się więc, że można wydać oprogramowanie korzystające z modułu SciPy na licencji MIT. Jednak gdy zajrzymy do samej licencji BSD, to możemy znaleźć zdanie:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Czyli w takim wypadku do licencji MIT muszę dołączyć również licencję BSD? W drugim przypadku posiadam program napisany w C i też chciałbym go wydać na licencji MIT. W programie wykorzystuję takie plik jak stdio.h (normalna sprawa, podstawowa biblioteka), który to ma w sobie zapis:

* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley.

Czy w tym przypadku znów mam dołączać ich licencję do licencji MIT? Na stronie Pythona jest jeszcze napisane jakie licencję są kompatybilne, w przypadku języka C czy C++ mam z tym problem. Rozumiem kompatybilność licencji. Jeśli mamy licencję, która ma pewne ograniczenia, to bardziej liberalna licencja nie będzie z nią kompatybilna. Jednak w drugą stronę zachodzi kompatybilność. Po prostu kolejne licencje mogą narzucać ograniczenia, ale nie mogą bardziej "rozszerzać" wolności ograniczonych licencji. Czy w przypadku, gdy licencje są kompatybilne, to możemy wprost stworzyć nową licencję dla własnego programu, nie przejmując się że wcześniejsza licencja ma zapis o obowiązkowym dodaniu licencji-rodzica?

3 odpowiedzi

+3 głosów
odpowiedź 17 stycznia 2017 przez draghan VIP (106,230 p.)

W drugim przypadku posiadam program napisany w C i też chciałbym go wydać na licencji MIT. W programie wykorzystuję takie plik jak stdio.h (...) Czy w tym przypadku znów mam dołączać ich licencję do licencji MIT?

W zasadzie to chyba nigdy w życiu nie widziałem, żeby ktoś podawał w licencji że używał stdio. Jednak z cytowanego przez Ciebie zapisu wynika, że powinieneś dorzucić tę licencję.

Myślę że najlepszym wyjściem byłoby zapytać na jakimś forum prawniczym.

A już zupełnie na marginesie - doceniam Twoje starania o zapewnienie prawidłowej licencji swojemu oprogramowaniu. Sporo programistów olałoby zupełnie tę kwestię albo beztrosko zgwałciło którąś z wykorzystywanych licencji.

komentarz 17 stycznia 2017 przez Benek Szeryf (90,690 p.)

Skontaktowałem się z jednym znajomym, który ma firmę wytwarzającą oprogramowanie. Według jego słów, które niejako potwierdzają to, co napisali erx700 i Szykem2 w tym temacie, linkowanie do SciPy czy stdio.h nie wymaga udostępniania ich licencji ani zgodności licencji. O licencji trzeba by wtedy pomyśleć, gdyby rozpowszechniać SciPy lub stdio.h, ewentualnie przeróbki tych bibliotek (źródła lub binarki). Podsumowując, najprawdopodobniej bez problemu mogę upublicznić oba programy na licencji MIT.

Tutaj już takiej pewności nie mam, ale zdaje się, że można nawet upubliczniać pluginy na wolnej licencji do komercyjnego software'u, na przykład gdy napisaliśmy wtyczkę do 3ds Max. Problem by się pojawił, gdybyśmy chcieli pobierać za taki dodatek opłaty. Tu pewnie trzeba by przeczytać konkretną licencję i jeszcze się skontaktować z autorami oprogramowania. W przypadku jednak wolnego oprogramowania i linkowania jego bibliotek, taki kłopot nie istnieje.

komentarz 17 stycznia 2017 przez draghan VIP (106,230 p.)

O licencji trzeba by wtedy pomyśleć, gdyby rozpowszechniać SciPy lub stdio.h, ewentualnie przeróbki tych bibliotek (źródła lub binarki)

Całkiem możliwe, chociaż ja inaczej pojmuję zdanie "Redistribution and use in source and binary forms are permitted provided that the above copyright notice (...)". :)

Podsumowując, najprawdopodobniej bez problemu mogę upublicznić oba programy na licencji MIT.

Dla pewności i tak podpytałbym jakiegoś prawnika.

Powodzenia. :)

komentarz 17 stycznia 2017 przez Benek Szeryf (90,690 p.)
edycja 17 stycznia 2017 przez Benek

Znalazłem wreszcie podobny temat na zagranicznym forum. Jednak pierwsze zdanie w odpowiedzi sugeruje, że użytkownik Tibo nie jest prawnikiem. Ponadto ciekawy wydaje się drugi komentarz Alexey w kontekście przeglądarki Mozilla Firefox.

Z kolei z tego tematu wynika, że spora część kodu SciPy jest napisana w C. W takim razie gdzie jest licencja z użytych bibliotek przy publikacji SciPy? Coraz więcej pytań, coraz mniej odpowiedzi.

Odnośnie Pythona, to znalazłem jeszcze taką odpowiedź.

+1 głos
odpowiedź 15 stycznia 2017 przez Szykem2 Nałogowiec (29,510 p.)

Przy licencjonowaniu ZAWSZE czytaj całość. Znalazłbyś taką ciekawą informację:

This document does NOT cover the issue of whether or not you may include code from numpy or scipy into your own project.

Jeśli chodzi o dołączanie do twojego projektu to łap LINK

komentarz 15 stycznia 2017 przez Benek Szeryf (90,690 p.)
edycja 15 stycznia 2017 przez Benek

Znalazłbyś taką ciekawą informację (...)

Mógłbyś podać źródło do tej informacji? Ponadto:

Przy licencjonowaniu ZAWSZE czytaj całość.

Przeczytałem całą licencję i z niej wynika, że każdy nowo powstały program bazujący na SciPy, powinien mieć dołączoną licencję BSD (3-klauzule). Z tego co wiem, to najczęściej na GitHubie ludzie używają licencji MIT. Poza tym nie widziałem w różnych projektach dodatkowych licencji pochodzących od rodziców.

1
komentarz 15 stycznia 2017 przez Szykem2 Nałogowiec (29,510 p.)
Źródłem jest jeden z twoich linków(konkretniej ten drugi) i gdybyś przeczytał wszystkie informacje na tych stronach znalazłbyś to. To co czytałeś odnosi się do licencjonowania twojego kodu, który chcesz dołączyć do scipy, a nie na odwrót. Wszystkie niezbędne informacje masz w linku w odpowiedzi.
komentarz 15 stycznia 2017 przez Benek Szeryf (90,690 p.)

 To co czytałeś odnosi się do licencjonowania twojego kodu, który chcesz dołączyć do scipy, a nie na odwrót.

Masz rację, nie doczytałem dokładnie.

Wszystkie niezbędne informacje masz w linku w odpowiedzi.

Ten link również jest w moim pierwszym poście, tylko URL jest zaszyty pod wyrażeniem "licencji BSD". Może tak. Napisałem swój program, wykorzystuję w nim SciPy, chciałbym wydać ten program na licencji MIT. Co mam więc zrobić? Udostępnić mój kod, licencję BSD (tak wynika z zapisu stąd) oraz licencję MIT?

komentarz 15 stycznia 2017 przez Szykem2 Nałogowiec (29,510 p.)
Nie wiem jak Ty ale ja tam nie widzę wzmianki, że licencja musi byc BSD. Jedna aplikacja nie moze byc dystrybuowana z dwiema licencjami bo nie wiadomo, które warunki są wiążące. Musisz wybrac jedną. Nie znam licencji BSD a nie mam czasu się z nia zapoznawać. Jeżeli masz problem z licencjonowaniem to najbezpieczniejszym wyjściem jest napisać maila do autorów czy MIT jest ok przy podaniu copyrightów i tej formułki.
komentarz 15 stycznia 2017 przez Benek Szeryf (90,690 p.)

Nie wiem jak Ty ale ja tam nie widzę wzmianki, że licencja musi byc BSD.

Jest to opisane pod linkami w pierwszym poście (źródło):

Scipy is distributed under the modified (3-clause) BSD license.

A tu jest sama licencja, z której wynika, że ma być ona zawarta w nowym oprogramowaniu, które wykorzystuje moduł SciPy:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

Nadal mam więc wątpliwość, czy do oprogramowania należy ją dodać. Ta wątpliwość się bierze stąd, że mamy coś takiego jak kompatybilność licencji, ale ostatni cytat świadczy o tym, że i tak licencja SciPy powinna być zawarta w nowym oprogramowaniu. To oznacza, że wymusza ona, by moje oprogramowanie było na licencji BSD, a nie MIT (pomimo że obie są kompatybilne).

komentarz 15 stycznia 2017 przez Szykem2 Nałogowiec (29,510 p.)
Pisałeś, że chcesz to upublicznić na licencji MIT, a ekipa z SciPy chce BSD może być problem to zrobić, chyba że napiszesz maila do nich i się zgodzą, a licencje są podobne to raczej problemu mieć nie będą. Wystarczy tyle. To jest najlepsze wyjście, bo dokładnie wiesz na czym stoisz i nie musisz się zagłębiać w te licencje. Ewentualnie zastanów się, czy nie prościej będzie upublicznić na BSD i nie będzie problemu.
+1 głos
odpowiedź 15 stycznia 2017 przez erx700 Gaduła (3,430 p.)
Nie jestem jakimś C masterem więc mogę się mylić, ale myślę że pliki nagłówkowe nie generują żadnego kodu w pliku binarnym więc używając stdio.h nie musisz podawać, że z niego korzystałeś. Jeśli chciałbyś rozprowadzać kod źródłowy to też nie widzę sensu umieszczenia tam stdio.h. Przecież każdy system ma ten plik.
komentarz 15 stycznia 2017 przez Benek Szeryf (90,690 p.)

To był skrót myślowy. Skoro są pliki nagłówkowe, to muszą też być pliki z definicjami funkcji *.c. Na przykład stdio.h zawiera linię:

int     _EXFUN(printf, (const char *, ...));

Tak więc jednocześnie korzystasz z definicji funkcji printf(), którą ktoś napisał i udostępnił na licencji, którą cytowałem wyżej. Funkcja printf() już się znajdzie w pliku binarnym po skompilowaniu programu.

1
komentarz 15 stycznia 2017 przez erx700 Gaduła (3,430 p.)
Nie znajdzie się ponieważ printf np w bibliotece libc jest domyślnie dołączane dynamicznie.

Podobne pytania

0 głosów
2 odpowiedzi 475 wizyt
pytanie zadane 12 lutego 2022 w Inne języki przez Pawel1995 Gaduła (3,810 p.)
+1 głos
3 odpowiedzi 278 wizyt
pytanie zadane 9 lutego 2017 w Offtop przez PejtaM Użytkownik (550 p.)
0 głosów
1 odpowiedź 195 wizyt
pytanie zadane 10 grudnia 2017 w Systemy operacyjne, programy przez niezalogowany

92,417 zapytań

141,222 odpowiedzi

318,984 komentarzy

61,831 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...