Hej,
chodzi oczywiście o wtyczki do oprogramowania, a nie o elektryczne ;)
Jak pewnie niektórzy tutaj wiedzą, piszę program do automatycznego doboru indeksów w różnych systemach baz danych. Program podzieliłem na 2 części: jądro, realizujące całą logikę, oraz wtyczki, obsługujące specyficzne rzeczy związane z konkretnym RDBMSem. Grubo ponad 90% kodu jest wspólnego, co powoduje, że wtyczki są małe, proste i powinno szybko się je pisać.
No i teraz zacząłem się zastanawiać, na jakich zasadach taki program rozprowadzać, ponieważ powoli zbliżam się do czegoś, co można by nazwać wersją beta (choć długo to idzie, a to choćby ze względu na fakt, że system obsługuje praktycznie cały podzbiór DML SQLa 92i musiał przejść testy na benchmarku TPC-H). Kwestia jest taka, że chciałbym na programie trochę zarobić, ale z drugiej strony nie chciałbym za bardzo hamować jego rozwoju przez całkowite zamknięcie źródeł. Stąd pomysł, żeby wtyczki i ich specyfikacja była otwarta, a jądro zamknięte. I tu się niestety zaczynają schody z licencjami.
Najchętniej wtyczki wypuściłbym na BSD albo MIT. Wtyczki chyba nie mogą pójść na GPLu, bo GPL nie zezwala na dystrybucję kodu zamkniętego razem z GPLowym. Ale z drugiej strony np. wtyczka do MySQLa będzie musiała pójść na GPLu, bo sterownik JDBC do niego jest na GPLu i cały mój program byłby potraktowany jako "derived work", co jest oczywiście bzdurą, bo ten driver to co najwyżej opcjonalny dodatek. Właściwie to głównie ten MySQL bruździ.
Czy jest naruszeniem licencji GPL:
- Dystrybucja zamkniętego kodu i wtyczek GPL osobno, jako 2 produkty? Użytkownik musi sobie wtedy ściągnąć oba i zainstalować na kompie.
- Dystrybucja zamkniętego kodu i zawarcie w nim automatycznego instalatora wtyczek, który pobiera je ze strony?
- Dystrybucja kodu GPL razem z kodem BSD?