OPL-1 widnieje w opisie wielu płatnych modułów w App Store Odoo, a prawie nikt nie czyta, co się za nią kryje: pięciu krótkich akapitów, które Odoo S.A. publikuje w swojej dokumentacji. Czytamy je tu z perspektywy płacącego: na co pozwalają, czego zabraniają, o czym milczą i jak współistnieją z LGPL i AGPL. To lektura inżynierów, którzy publikują moduły, a nie porada prawna.
Co mówi OPL-1, akapit po akapicie
Odoo Proprietary License v1.0 mówi pięć rzeczy. Moduł wolno używać (uruchamiać, modyfikować i uruchamiać po modyfikacji) wyłącznie z licencją kupioną od jego autorów, „zwykle przez Odoo Apps”, albo na podstawie pisemnej umowy. Możesz pisać moduły, które od niego zależą, bez kopiowania jego kodu. Zabronione jest publikowanie, dystrybuowanie, udzielanie sublicencji i sprzedaż kopii, zmodyfikowanych lub nie. Informacja o prawach autorskich towarzyszy każdej kopii. A całość jest dostarczana „w stanie, w jakim jest”, bez gwarancji. W praktyce:
| Chcesz… | Wolno? | Zastrzeżenie |
|---|---|---|
| Używać go w Odoo swojej firmy | Tak | Z kupioną licencją lub pisemną umową z autorem. |
| Zmodyfikować go pod swoje procesy | Tak | Twoja zmodyfikowana wersja nadal podlega OPL-1. |
| Czytać i audytować kod | Tak | Dociera w czytelnej postaci: App Store usuwa kod zaciemniony lub zaszyfrowany. |
| Napisać moduł, który od niego zależy | Tak | Bez kopiowania jego kodu i na zgodnej licencji. |
| Wrzucić go na publiczny GitHub | Nie | To jest publikowanie. W Odoo.sh użyj prywatnego repozytorium. |
| Zainstalować jeden zakup u kilku klientów | Nie | To jest dystrybucja. Każdy klient kupuje własną licencję. |
| Odsprzedać go lub włączyć do swojego produktu | Nie | Ani za darmo, ani zmodyfikowanego. |
Czego OPL-1 nie mówi i gdzie szukać odpowiedzi
Licencja nic nie mówi o użytkownikach, bazach danych, aktualizacjach ani wersjach. Ustala to sprzedawca. W App Store robią to jego warunki sprzedaży: od Odoo 13 każda wersja jest sprzedawana osobno, więc zakup dla Odoo 18 nie daje Ci wersji dla Odoo 19; moduły zewnętrzne nie instalują się w Odoo Online; a na reklamację masz dwa miesiące, jeśli moduł nie instaluje się w zapowiedzianej wersji lub brakuje mu funkcji obiecanej w opisie. Zakup niewłaściwej wersji nie daje prawa do zwrotu pieniędzy. Jeśli kupujesz bezpośrednio od autora, obowiązuje jego umowa: nasza obejmuje jedną instancję produkcyjną i do dwóch testowych, z dwunastoma miesiącami wsparcia.
Dlaczego płatne moduły mają OPL-1
Ponieważ przy licencji wolnej sprzedaż na sztuki się nie sprawdza. Można sprzedawać moduł LGPL-3 lub AGPL-3, ale kupujący dostaje prawo do jego redystrybucji i mógłby go legalnie opublikować za darmo. OPL-1 to licencja, którą Odoo S.A. napisało na tę lukę, a App Store rozpoznaje ją po wartości OPL-1 w manifeście. Zaskakuje to, że ochrona jest umowna, a nie techniczna. Moduł trafia do Ciebie jako czytelny Python, jak moduł OCA.
OPL-1, LGPL-3 i AGPL-3 w tej samej bazie danych
Rdzeń Odoo Community jest na licencji LGPL-3, która pozwala innym modułom z niego korzystać bez dziedziczenia jego warunków; dlatego na nim mieszczą się moduły OPL-1. Moduły OCA mają zwykle AGPL-3. Zainstalowanie ich razem do własnego użytku nie tworzy konfliktu: AGPL zobowiązuje przy dystrybucji lub udostępnianiu zmodyfikowanej wersji przez sieć, na przykład w portalu klienta. Kolizja pojawia się, gdy jeden moduł zależy od drugiego. Tak podsumowuje to App Store:
| Jeśli Twój moduł ma licencję… | Może zależeć od… | Nie może zależeć od… |
|---|---|---|
| AGPL-3 | AGPL-3, GPL-3 i LGPL-3 | OPL-1, OEEL-1 (Enterprise), innych licencji OSI ani własnościowych |
| LGPL-3 | LGPL-3, OPL-1, OEEL-1, innych licencji OSI i własnościowych | AGPL-3 ani GPL-3 |
| OPL-1 | LGPL-3, OPL-1, OEEL-1, innych licencji OSI i własnościowych | AGPL-3 ani GPL-3 |
Mówiąc wprost: moduł OPL-1 nie może zależeć od modułu AGPL-3 z OCA ani odwrotnie, a fragment kodu importujący oba nie mieści się w żadnej licencji. Jeśli moduł OPL-1 zależy od Enterprise, potrzebujesz subskrypcji; jeśli zależy tylko od rdzenia, działa w Community. Więcej szczegółów w przewodniku po licencjach.
Bez klucza license w manifeście Odoo ładuje moduł jako LGPL-3 z ostrzeżeniem w logu, a App Store traktuje go jako „Other proprietary”. Ten sam moduł, dwie odpowiedzi: to pierwsza rzecz do poprawienia.
Przed zakupem: pięć sprawdzeń
- Manifest. Sprawdź
licenseidependsw__manifest__.py. Moduł OPL-1, który zależy od OCA, zasługuje na pytanie do autora. - Wersja. Kup tę dla swojego Odoo, a jeśli planujesz migrację, zapytaj o następną.
- Hosting. Odoo.sh lub własny serwer: tak; Odoo Online: nie.
- Repozytorium. Jeśli moduł trafia do Gita, prywatnego.
- Właściciel. Jeśli instaluje go Twój partner, zadbaj, by zakup został wystawiony na Twoją firmę.
Kiedy nie potrzebujesz modułu OPL-1
Jeśli OCA ma utrzymywany moduł dla Twojej wersji, który robi to, czego potrzebujesz, zacznij od niego; w tekście moduł natywny czy z OCA wyjaśniamy, jak o tym zdecydować. Płatny moduł ma sens, gdy nie ma dojrzałej wolnej alternatywy albo wolisz, by utrzymanie między wersjami prowadził jego autor. Nasze płatne moduły mają licencję OPL-1: na przykład moduł VeriFactu działa w Odoo 17, 18 i 19 i kosztuje 49 € jednorazowo w App Store Odoo, z kodem źródłowym w komplecie. A jeśli tego, czego potrzebujesz, nie ma, to już nie kwestia licencji: to rozwój na zamówienie.
Najczęstsze pytania
Czy mogę używać modułu OPL-1 w kilku bazach danych?
Tekst OPL-1 tego nie mówi: ustala to sprzedawca. W naszych modułach jest to jedna instancja produkcyjna i do dwóch testowych tej samej firmy, zgodnie z EULA. Czego nie dopuszcza żaden warunek, to przeniesienie tego samego zakupu do Odoo innej firmy: to jest dystrybucja.
Czy mogę zmodyfikować moduł OPL-1?
Tak. Tekst wyraźnie pozwala go modyfikować i uruchamiać po modyfikacji. Nie możesz tylko publikować tej wersji ani przekazywać jej osobom trzecim. Jeśli zmiana przyda się większej liczbie osób, poproś o nią autora: oszczędzisz sobie utrzymywania własnej kopii przy każdej aktualizacji.
Czy OPL-1 to ta sama licencja co w Odoo Enterprise?
Nie. Moduły Odoo Enterprise mają licencję OEEL-1, która wymaga ważnej subskrypcji Enterprise. OPL-1 jest dla modułów zewnętrznych i wymaga jedynie zakupu modułu; jeśli zależy wyłącznie od rdzenia, działa także w Community.
Przydatne linki w FlexigoTech
Masz wątpliwości co do licencji modułu przed jego instalacją?
Wyślij nam nazwę modułu lub jego manifest oraz wersję Twojego Odoo. Powiemy, jaką licencję ma naprawdę, od czego zależy i czy koliduje z tym, co już masz zainstalowane. Jeśli odpowiedź brzmi, że wystarczy Ci moduł z OCA, też to powiemy. Napisz na comercial@flexigobe.com lub umów rozmowę.

