Licencje: GNU GPL a GNU LGPL
sielim onet pl - 27-12-2005 10:25
Licencje: GNU GPL a GNU LGPL
Tak sobie czytam o licencjach na oprogramowanie - w związku z tym, że chcę użyć pewnej biblioteki objętej licencją GNU GPL. Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, której chcę użyć, ma pracować w aplikacji komercyjnej, której kodu absolutnie nie mogę ujawniać, a samej aplikacji nie mogę rozdawać za darmo.
W opisach tych licencji rozróżniają dwa terminy: 1. Praca, która wywodzi sięz biblioteki (is derivative from). 2. Praca, która używa biblioteki (uses).
Różnica polega na tym, że w przypadku 1 biblioteka jest integralną częścią programu i bez niej nie może on działać, natomiast w przypadku drugim działanie programu nie wymaga użycia biblioteki, jest ona dodatkowym komponentem.
Przypadek c3p0 odpowiada w moim przypadku punktowi 2, ponieważ program działa bez tej biblioteki, użycie jej wpływa jedynie na znaczne poprawienie wydajności.
Problem w tym, że c3p0 jest objęty licencją GNU GPL, nie GNU LGPL.
Na chwilę obecną jestem pewien dwóch rzeczy: biblioteki na licencji LGPL mogą być swobodnie używane w produktach komercyjnych, jeśli zachodzi punkt 2. Biblioteki na licencji GPL NIE MOGĄ być używane w produktach komercyjnych (bez ujawniania kodu i swobody kopiowania), jeśli zachodzi punkt 1.
Wydaje mi się także, że w przypadku LGPL biblioteki mogą być także swobodnie używane w produktach komercyjnych jeśli zachodzi punkt 1.
Natomiast nie wiem, jak wygląda pożenienie GPL'a z punktem 2. Czyli: Czy biblioteka oparta o licencję GNU GPL może być włączona i rozprowadzana razem z produktem komercyjnym, jeśli stanowi ona jedynie dodatkowy, alternatywny komponent ?
Stefan Makarewicz - 27-12-2005 10:25
sielim onet pl napisał(a): > Tak sobie czytam o licencjach na oprogramowanie - w związku z tym, że chcę > użyć pewnej biblioteki objętej licencją GNU GPL. > Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, której chcę > użyć, ma pracować w aplikacji komercyjnej, > której kodu absolutnie nie mogę ujawniać, a samej aplikacji nie mogę > rozdawać za darmo. > > W opisach tych licencji rozróżniają dwa terminy: > 1. Praca, która wywodzi sięz biblioteki (is derivative from). > 2. Praca, która używa biblioteki (uses). > > Różnica polega na tym, że w przypadku 1 biblioteka jest integralną > częścią programu i bez niej nie może on działać, natomiast w przypadku > drugim > działanie programu nie wymaga użycia biblioteki, jest ona dodatkowym > komponentem. > > Przypadek c3p0 odpowiada w moim przypadku punktowi 2, ponieważ program > działa bez tej biblioteki, użycie jej wpływa jedynie na znaczne poprawienie > wydajności. > > Problem w tym, że c3p0 jest objęty licencją GNU GPL, nie GNU LGPL. > > Na chwilę obecną jestem pewien dwóch rzeczy: biblioteki na licencji LGPL > mogą być swobodnie używane w produktach komercyjnych, jeśli zachodzi punkt > 2. > Biblioteki na licencji GPL NIE MOGĄ być używane w produktach komercyjnych > (bez ujawniania kodu i swobody kopiowania), jeśli zachodzi punkt 1. > > Wydaje mi się także, że w przypadku LGPL biblioteki mogą być także swobodnie > używane w produktach komercyjnych jeśli zachodzi punkt 1. > > Natomiast nie wiem, jak wygląda pożenienie GPL'a z punktem 2. Czyli: > Czy biblioteka oparta o licencję GNU GPL może być włączona i rozprowadzana > razem z produktem komercyjnym, jeśli stanowi ona jedynie dodatkowy, > alternatywny > komponent ? >
Witam,
Ponieważ też długo siedziałem nad różnego rodzaju licencjami więc przedstawię moje zdanie i jeśli się mylę to proszę o poprawienie. Jeśli biblioteka na GPL nie jest powiedzmy zaszyta w Jarze twojej aplikacji to równie dobrze można powiedzieć klientowi: "Słuchaj klient, ściągnij sobie bibliotekę, ja dam ci instrukcję jak ją podmontować i używaj oprogramowania do woli (w ramach mojej licencji)" i nie jesteś w tym momencie zobowiązany do udostępniania aplikacji na licencji GPL. Nie wiem jak to jest, jeśli takową bibliotekę umieścisz powiedzmy na krążku ze swoją aplikacją. Na to pytanie chętnie usłyszałbym odpowiedz kogoś kto się z tym zetknął.
Pozdrawiam, Stefan
Uzytkownik - 29-12-2005 15:00
Filip Sielimowicz napisał:
> > Użytkownik "Adam Przybyla" <adam@gliwice.pl> napisał w wiadomości > news:newscache$jlh5si$a8h$1@gormenghast... >> In pl.comp.programming sielim onet pl <sielim@poczta.onet.pl> wrote: >> > Tak sobie czytam o licencjach na oprogramowanie - w zwi?zku z tym, ?e > chc? >> > u?y? pewnej biblioteki obj?tej licencj? GNU GPL. >> > Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, kt?rej > chc? >> > u?y?, ma pracowa? w aplikacji komercyjnej, >> > kt?rej kodu absolutnie nie mog? ujawnia?, a samej aplikacji nie mog? >> > rozdawa? za darmo. >> > >> > W opisach tych licencji rozr??niaj? dwa terminy: >> > 1. Praca, kt?ra wywodzi si?z biblioteki (is derivative from). >> > 2. Praca, kt?ra u?ywa biblioteki (uses). >> ... jesli to GPL i to biblioteka musisz dac kod >> swojej aplikacji na licencji GPL swojemu klientowi nie ma innej > mozliwosci. >> Chyba ze bedziesz się do niej odwolywal zdalnie np przez corbe/tcp/chgwcj. >> W przypadku LGPL dajesz tylko kod biblioteki. Z powazaniem > > Hmmm ... > W takim razie jak to jest, że biblioteka hibernate udostępniana na licencji > GNU LGPL jest rozpowszechniana w pakiecie z innymi bibliotekami, w skład > których > wchodzi właśnie m.in. c3p0 ? > > Stąd moje wątpliwości: dołączenie do biblioteki hibernate(nie GPL) > biblioteki c3p0(GPL) > razem z tekstem licencji, instrukcją i pozostawieniem w gestii użytkownika > decyzję, czy użyć > c3p0, czy nie wydaje się być OK. >
Nie jestem prawnikiem, ale czy GPL nie może być łączone z LGPL?
Na takiej zasadzie:
zamknięte <---> Proxy na LGPL <----> Jakiś GPL?
Pozdrawiam.
Stefan Makarewicz - 29-12-2005 15:00
Uzytkownik napisał(a): > > Nie jestem prawnikiem, ale czy GPL nie może być łączone z LGPL? > > Na takiej zasadzie: > > zamknięte <---> Proxy na LGPL <----> Jakiś GPL? > > Pozdrawiam. >
w przypadku GPL jeśli korzystasz z komponentów na GPL musisz udostępnić kod aplikacji (aplikacja też na GPL). wykorzystując komponenty LGPL w aplikacji nie jesteś zobowiązany udostępniać kod.
Pozdrawiam, Stefan
Marcin 'Qrczak' Kowalczyk - 29-12-2005 15:01
Uzytkownik <uzytkownik2@gmail.com> writes:
> Nie jestem prawnikiem, ale czy GPL nie może być łączone z LGPL? > > Na takiej zasadzie: > > zamknięte <---> Proxy na LGPL <----> Jakiś GPL?
Autor nie po to dawał licencję GPL, żeby to obchodzić przez jakieś owijacze.
-- __("< Marcin Kowalczyk \__/ qrczak@knm.org.pl ^^ http://qrnik.knm.org.pl/~qrczak/
Raf256 - 29-12-2005 15:01
Marcin 'Qrczak' Kowalczyk <874q4uiq92.fsf@qrnik.zagroda> Tuesday 27 of December 2005 15:11
> Autor nie po to dawał licencję GPL, żeby to obchodzić przez jakieś > owijacze.
O ile wiem (nie jestem absolutnie prawnikiem), rozwiązanie akceptowalne to na przykład (sam mam/miałem podobny problem z GPL):
- napisać swój program aby pracował dobrze z GnuPG, z GnuPG+ ORAZ z dowolnym innym programem PGP linii poleceń - swój program dać bez źródeł - GnuPG oraz GnuPG+ (ulepszona przez nas wersja GnuPG) z źródłami - całość w/w sprzedawać
Natomiast jeżeli program potrzebuje do pracy konkretnie naszej wersji opartej na GnuPG to jest już uważany za pracę opartą o GnuPG więc powinien być na GNU GPL. O ile dobrze zrozumiałem...
-- Rafał Maj
Sebastian Kaliszewski - 29-12-2005 15:01
Adam Przybyla wrote: > In pl.comp.programming sielim onet pl <sielim@poczta.onet.pl> wrote: > >>Tak sobie czytam o licencjach na oprogramowanie - w zwi?zku z tym, ?e chc? >>u?y? pewnej biblioteki obj?tej licencj? GNU GPL. >>Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, kt?rej chc? >>u?y?, ma pracowa? w aplikacji komercyjnej, >>kt?rej kodu absolutnie nie mog? ujawnia?, a samej aplikacji nie mog? >>rozdawa? za darmo. >> >>W opisach tych licencji rozr??niaj? dwa terminy: >>1. Praca, kt?ra wywodzi si?z biblioteki (is derivative from). >>2. Praca, kt?ra u?ywa biblioteki (uses). > > ... jesli to GPL i to biblioteka musisz dac kod > swojej aplikacji na licencji GPL swojemu klientowi nie ma innej mozliwosci.
Nie prawda
> Chyba ze bedziesz się do niej odwolywal zdalnie np przez corbe/tcp/chgwcj. > W przypadku LGPL dajesz tylko kod biblioteki.
Też o ile pamiętam nie prawda.
pzdr -- Sebastian Kaliszewski
Sebastian Kaliszewski - 29-12-2005 15:01
sielim onet pl wrote: > Tak sobie czytam o licencjach na oprogramowanie - w związku z tym, że chcę > użyć pewnej biblioteki objętej licencją GNU GPL. > Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, której chcę > użyć, ma pracować w aplikacji komercyjnej, > której kodu absolutnie nie mogę ujawniać, a samej aplikacji nie mogę > rozdawać za darmo. > > W opisach tych licencji rozróżniają dwa terminy: > 1. Praca, która wywodzi sięz biblioteki (is derivative from). > 2. Praca, która używa biblioteki (uses). > > Różnica polega na tym, że w przypadku 1 biblioteka jest integralną > częścią programu i bez niej nie może on działać, natomiast w przypadku > drugim > działanie programu nie wymaga użycia biblioteki, jest ona dodatkowym > komponentem. > > Przypadek c3p0 odpowiada w moim przypadku punktowi 2, ponieważ program > działa bez tej biblioteki, użycie jej wpływa jedynie na znaczne poprawienie > wydajności. > > Problem w tym, że c3p0 jest objęty licencją GNU GPL, nie GNU LGPL. > > Na chwilę obecną jestem pewien dwóch rzeczy: biblioteki na licencji LGPL > mogą być swobodnie używane w produktach komercyjnych, jeśli zachodzi punkt > 2. > Biblioteki na licencji GPL NIE MOGĄ być używane w produktach komercyjnych > (bez ujawniania kodu i swobody kopiowania), jeśli zachodzi punkt 1. > > Wydaje mi się także, że w przypadku LGPL biblioteki mogą być także swobodnie > używane w produktach komercyjnych jeśli zachodzi punkt 1.
Tak, z pewnymi ograniczeniami (jakoś tam realizowalna możliwość podmiany skompilowanej wersji biblioteki na dostarczoną przez użytkownika -- co sprowadza się do jakiejś formy linkowania dynamicznego, albo dostarczenia narzędzi do przelinkowania kodu)
> > Natomiast nie wiem, jak wygląda pożenienie GPL'a z punktem 2. Czyli: > Czy biblioteka oparta o licencję GNU GPL może być włączona i rozprowadzana > razem z produktem komercyjnym, jeśli stanowi ona jedynie dodatkowy, > alternatywny > komponent ?
Tylko, jeśli:
1. może być swobodnie zastąpiona czym innym bez zmiany skompilowanego kodu aplikacji wynikowej. 2. aplikacja wynikowa nie używa żadnego kodu (nawet nagłówków) pochodzących z biblioteki GPL, co w praktyce sprowadza się do tego, że można ją zbudować bez żadnego oparcia o jakikolwiek element biblioteki GPL.
Inaczej mówiąc: moduł na GPL nie może być tylko elementem dodatkowym, ale wystarczy żeby był elementem (łatwo) wymiennym. Np. istnieje jakieś API jest zamknięty system realizujący (serwer) to API, jak też jest i sytstem na GPL to samo API realizujący. Masz wówczas prawo dystrybuować swój własny zamknięty system korzystający (klient) z tegoż API i co istoptne, możesz dołączyć ów system na GPL rzeczone API realizujący.
Generalnie, jesli jesteś w stanie wydzielić c3p0 wraz z ewentualną obudową uzgadniającą je z jakimś API (obudowa też musi być na GPL) tak by stanowiło nizależny, dodatkowy komponent (plugin) to IMHO możesz c3p0 (w raz z obudową) użyć, jeśli dostarczysz również inny plugin -- np. mniej wydajny, ale bezwarunkowo realizujący to samo API. Przy czym nie może to być tylko ruch pozorny -- tzn API jest tak zrobione że np. zaiwera jedną superfunkcję linkującą dowloną bibliotekę z dowolnym programem -- w prawie istnieje pojęcie działań pozornych mających na celu ukrycie rzeczywistości (patrz wszelkiego typu fikcyjne umowy itp. które z definicji prawa są nieważne).
pzdr -- Sebastian Kaliszewski
Adam Przybyla - 29-12-2005 15:01
In pl.comp.programming Uzytkownik <uzytkownik2@gmail.com> wrote: > Filip Sielimowicz napisał: > >> >> Użytkownik "Adam Przybyla" <adam@gliwice.pl> napisał w wiadomości >> news:newscache$jlh5si$a8h$1@gormenghast... >>> In pl.comp.programming sielim onet pl <sielim@poczta.onet.pl> wrote: >>> > Tak sobie czytam o licencjach na oprogramowanie - w zwi?zku z tym, ?e >> chc? >>> > u?y? pewnej biblioteki obj?tej licencj? GNU GPL. >>> > Ta biblioteka to c3p0 - connection pooling dla Javy. Biblioteka, kt?rej >> chc? >>> > u?y?, ma pracowa? w aplikacji komercyjnej, >>> > kt?rej kodu absolutnie nie mog? ujawnia?, a samej aplikacji nie mog? >>> > rozdawa? za darmo. >>> > >>> > W opisach tych licencji rozr??niaj? dwa terminy: >>> > 1. Praca, kt?ra wywodzi si?z biblioteki (is derivative from). >>> > 2. Praca, kt?ra u?ywa biblioteki (uses). >>> ... jesli to GPL i to biblioteka musisz dac kod >>> swojej aplikacji na licencji GPL swojemu klientowi nie ma innej >> mozliwosci. >>> Chyba ze bedziesz się do niej odwolywal zdalnie np przez corbe/tcp/chgwcj. >>> W przypadku LGPL dajesz tylko kod biblioteki. Z powazaniem >> >> Hmmm ... >> W takim razie jak to jest, że biblioteka hibernate udostępniana na licencji >> GNU LGPL jest rozpowszechniana w pakiecie z innymi bibliotekami, w skład >> których >> wchodzi właśnie m.in. c3p0 ? >> >> Stąd moje wątpliwości: dołączenie do biblioteki hibernate(nie GPL) >> biblioteki c3p0(GPL) >> razem z tekstem licencji, instrukcją i pozostawieniem w gestii użytkownika >> decyzję, czy użyć >> c3p0, czy nie wydaje się być OK. >> > > Nie jestem prawnikiem, ale czy GPL nie może być łączone z LGPL? > > Na takiej zasadzie: > > zamknięte <---> Proxy na LGPL <----> Jakiś GPL? ... jasne, byle aby nie nastepowalo miedzy nimi linkowanie, wszystkie chwyty dozwolone, rpc, tcp/ip, corba itp. To nie krol midas, nie musisz zakladac rekawiczek na GPL do uzzywania kompa z jedna taka biblioteka;-))) Z powazaniem Adam Przybyla
Filip Sielimowicz - 31-12-2005 11:09
Użytkownik "Adam Przybyla" <adam@gliwice.pl> napisał w wiadomości news:newscache$ub59si$la3$1@gormenghast...
> > zamknięte <---> Proxy na LGPL <----> Jakiś GPL? > ... jasne, byle aby nie nastepowalo miedzy nimi linkowanie, > wszystkie chwyty dozwolone, rpc, tcp/ip, corba itp. > To nie krol midas, nie musisz zakladac rekawiczek na GPL do uzzywania kompa z > jedna taka biblioteka;-)))
Tak ... Problem w tym, że w przypadku Javy słowo "linkowanie" ma słabe zastosowanie.
Moja aplikacja działa zupełnie normalnie i funkcjonalnie bez biblioteki c3p0, natomiast klient może ją sobie sam wrzucić do katalogu aplikacji, dodać kilka wpisów (parametryzujących connection pool'a) do konfiguracji i w tym momencie aplikacja dopiero zaczyna się tą biblioteką interesować. Tzn. jest to sytuacja nieco hipotetyczna, bo na dzień dzisiejszy muszę bibliotekę c3p0 jawnie wpierw dodać do classpatha (czyli zmodyfikować skrypt uruchomieniowy aplikacji), ale teoretycznie można ją ładować całkowicie dynamicznie, bez wcześniejszego jawnego deklarowania.
Ująłbym problem w ten sposób: nasza aplikacja NIE POTRZEBUJE c3p0 do działania, ale JEST ŚWIADOMA MOŻLIWOŚCI JEJ ZAISTNIENIA, więc ma zaszyte przynajmniej minimalne mechanizmy wykrywania tej biblioteki. I pytanie jest takie: czy ta "minimalna świadomość" to już coś, co podpada pod "trwałe linkowanie" ?
Sebastian Kaliszewski - 31-12-2005 11:10
Filip Sielimowicz wrote: > Tak ... Problem w tym, że w przypadku Javy słowo "linkowanie" ma słabe > zastosowanie. > > Moja aplikacja działa zupełnie normalnie i funkcjonalnie bez biblioteki c3p0, > natomiast klient może ją sobie sam wrzucić do katalogu aplikacji, dodać kilka > wpisów (parametryzujących connection pool'a) do konfiguracji i w tym momencie > aplikacja dopiero zaczyna się tą biblioteką interesować. > Tzn. jest to sytuacja nieco hipotetyczna, bo na dzień dzisiejszy muszę bibliotekę > c3p0 jawnie wpierw dodać do classpatha (czyli zmodyfikować skrypt uruchomieniowy > aplikacji), ale teoretycznie można ją ładować całkowicie dynamicznie, bez > wcześniejszego > jawnego deklarowania. > > Ująłbym problem w ten sposób: nasza aplikacja NIE POTRZEBUJE c3p0 do działania, ale > JEST ŚWIADOMA MOŻLIWOŚCI JEJ ZAISTNIENIA, więc ma zaszyte przynajmniej minimalne > mechanizmy wykrywania tej biblioteki. I pytanie jest takie: czy ta "minimalna > świadomość" > to już coś, co podpada pod "trwałe linkowanie" ?
Nie chodzi o stricte "trwałe linkowanie", tylko o derived work. A więc nie możesz sie opszeć na żadnym fragmencie tekstu programu biblioteki c3p0. Twja aplikacja musi budować się bez obecności c3p0. Jeśli twoja "minimalna świadomość" oznacza konieczność posiłkowania się źródłem do napisania czy skompilowania aplikacji -- to nie wolno ci i koniec*.
Teraz tak: użytkownik końcowe ma prawo na własny użytek zrobić co chce z kodem GPL. To jest w licencji jawnie napisane. Własny użytek oznacza albo użytek prywatny (domowy) w przypadku pojedynczych osób, albo wewnątrz instytucji (w przypadku instytucji wszelakiego rodzaju). Może sam go dowolnie przerabiać, kompilować, linkować, podłączać do czego chce i podłączać cokolwiek zechce do tego kodu. Jest to w licencji jawnie i wyraźnie zapisane. Tyle tylko, że ty nie możesz w ten sposób dostarczyć tego użytkownikowi.
pzdr -- Sebastian Kaliszewski
Adam Przybyla - 31-12-2005 11:10
In pl.comp.programming Filip Sielimowicz <sielim@poczta.onet.pl> wrote: > > U?ytkownik "Adam Przybyla" <adam@gliwice.pl> napisa? w wiadomo?ci > news:newscache$ub59si$la3$1@gormenghast... > >> > zamkni?te <---> Proxy na LGPL <----> Jaki? GPL? >> ... jasne, byle aby nie nastepowalo miedzy nimi linkowanie, >> wszystkie chwyty dozwolone, rpc, tcp/ip, corba itp. >> To nie krol midas, nie musisz zakladac rekawiczek na GPL do uzzywania kompa z >> jedna taka biblioteka;-))) > > Tak ... Problem w tym, ?e w przypadku Javy s?owo "linkowanie" ma s?abe > zastosowanie. No to nie staraj się na sile dodawac mu nowych znaczen;-) Przy rozproszeniu na kilka wspolpracujacych apkikacji komunikujacych nie miedzy soba linkowanie nie zachodzi.
> > Moja aplikacja dzia?a zupe?nie normalnie i funkcjonalnie bez biblioteki c3p0, > natomiast klient mo?e j? sobie sam wrzuci? do katalogu aplikacji, doda? kilka > wpis?w (parametryzuj?cych connection pool'a) do konfiguracji i w tym momencie > aplikacja dopiero zaczyna si? t? bibliotek? interesowa?. > Tzn. jest to sytuacja nieco hipotetyczna, bo na dzie? dzisiejszy musz? bibliotek? > c3p0 jawnie wpierw doda? do classpatha (czyli zmodyfikowa? skrypt uruchomieniowy > aplikacji), ale teoretycznie mo?na j? ?adowa? ca?kowicie dynamicznie, bez > wcze?niejszego > jawnego deklarowania. > > Uj??bym problem w ten spos?b: nasza aplikacja NIE POTRZEBUJE c3p0 do dzia?ania, ale > JEST ?WIADOMA MO?LIWO?CI JEJ ZAISTNIENIA, wi?c ma zaszyte przynajmniej minimalne > mechanizmy wykrywania tej biblioteki. I pytanie jest takie: czy ta "minimalna > ?wiadomo??" > to ju? co?, co podpada pod "trwa?e linkowanie" ? .. pamietaj ze klient moze wszystko;-) Z powazaniem Adam Przybyla
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?[psql]_Polskie_t=B3umaczenie_?= =?ISO-8859-2?Q?licencji_BSD_dla_PostgreSQL=3F?=
sql server 2005 i serwis WWW - licencje
Licencja na narzedzia klienckie MS SQL Server
MS SQL Server 2005 Express - licencja
=?ISO-8859-2?Q?jak_wygl=B1da_licencja_PS?=
Licencja Procesorowa czy CAL SQL 2005
licencja softu kupionego poza Polska
[ps][flash] papierowy certyfikat licencji?
Licencja Oracle i niedoinformowana infolinia
zanotowane.pldoc.pisz.plpdf.pisz.plmarcelq.xlx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|