Журнал LinuxFormat - перейти на главную

LXF162:Сравнение

Материал из Linuxformat
Перейти к: навигация, поиск


Ка­ж­дый ме­сяц мы срав­ни­ва­ем тон­ны про­грамм — а вы можете отдыхать!

Содержание

Сво­бод­ные ли­цен­зии

Все про­грам­мы с от­кры­тым ко­дом сво­бод­ны, но неко­то­рые сво­боднее дру­гих. Бен Эве­рард сравнива­ет ли­цен­зии, даю­щие на­шим про­грам­мам сво­бо­ду.

Про наш тест…

По­сколь­ку на са­мом де­ле мы тес­ти­ру­ем не про­грам­мы, ру­ки при­ло­жить нам бы­ло не к че­му. Но мы сравнива­ли, как эти ли­цен­зии за­щи­ща­ют сво­бо­ду поль­зо­ва­те­ля. Мы ре­ши­ли ис­поль­зо­вать оп­ре­де­ление сво­бо­ды, за­клю­чен­ное в пе­ре­чис­лении че­ты­рех сво­бод от Free Software Foundation (FSF). Это:

» Сво­бо­да ис­поль­зо­вать про­грам­му для лю­бых це­лей.

» Сво­бо­да изу­чать то, как ра­бо­та­ет про­грам­ма, и из­ме­нять ее, что­бы она вы­пол­ня­ла по­став­лен­ную ва­ми за­да­чу по ва­ше­му усмот­рению. Не­пре­мен­ным усло­ви­ем для это­го яв­ля­ет­ся доступ к ис­ход­но­му ко­ду.

» Сво­бо­да рас­про­стра­нять ко­пии, что­бы по­мочь ближнему.

» Сво­бо­да рас­про­стра­нять мо­ди­фи­ци­ро­ван­ные ва­ми вер­сии. Та­ким об­ра­зом вы по­зво­ли­те все­му со­об­ще­ст­ву из­влечь поль­зу из внесен­ных ва­ми из­менений. Не­пре­мен­ным усло­ви­ем для это­го яв­ля­ет­ся доступ к ис­ход­но­му ко­ду.

На­ша под­бор­ка
  • Apache
  • BSD-style
  • GPLv2
  • GPLv3
  • LGPL

Мы час­то го­во­рим о про­грам­мах с от­кры­тым ко­дом так, слов­но это – од­на-един­ст­вен­ная идея, и од­на-един­ст­вен­ная фи­ло­со­фия. На са­мом де­ле в этой об­лас­ти име­ет­ся мно­же­ст­во те­чений и дви­жений, и ка­ж­дое оп­ре­де­ля­ет­ся соб­ст­вен­ной ли­цен­зи­ей. Эти до­ку­мен­ты со­дер­жат в се­бе идеа­лы груп­пы ко­де­ров точ­но так же, как по­ли­ти­че­­ский манифест со­дер­жит в се­бе идеа­лы по­ли­ти­че­­ской пар­тии; един­ст­вен­ное от­ли­чие в том, что с юри­ди­че­­ской точ­ки зрения они обя­за­тель­ны к ис­полнению.

Они опи­сы­ва­ют пра­ва, ко­то­рые раз­ра­бот­чи­ки пе­ре­да­ют поль­зо­ва­те­лям, и тре­бо­вания, ко­то­рые они предъ­яв­ля­ют бу­ду­щим ко­де­рам.

Еди­но­го и унифицированного оп­ре­де­ления от­кры­то­го ко­да в природе не су­ще­ст­ву­ет, и ряд про­ек­тов име­ет соб­ст­вен­ный спи­сок ут­вер­жден­ных ли­цен­зий. Са­мые из­вест­ные из этих спи­сков под­дер­жи­ва­ют­ся Open Source Initiative, Debian и Free Software Foundation. Раз­ли­чия между ними незна­чи­тель­ны, но ли­цен­зии здесь бу­дут рас­смат­ри­вать­ся по всем спи­скам.

Мы ре­ши­ли рас­смот­реть пять ли­цен­зий, ко­то­рые ох­ва­ты­ва­ют и весь спектр фи­ло­со­фий от­кры­то­го ко­да, и боль­шин­ст­во имею­щих­ся про­грамм с от­кры­тым ко­дом. Это (в скоб­ках ука­за­ны са­мые из­вест­ные про­грам­мы): GPLv2 (яд­ро Linux), GPLv3 (раз­де­лы GNU боль­шин­ст­ва ди­ст­ри­бу­ти­вов Linux, та­кие, как Bash и GCC), Apache (web-сер­вер Apache, Android за ис­клю­чением яд­ра, недавние вер­сии OpenOffice.org), LGPL (LibreOffice) и BSD (все опе­ра­ци­он­ные сис­те­мы BSD, X.org). Чи­тай­те, что­бы уз­нать, как они вы­гля­дят под на­шим мик­ро­ско­пом.

Copyleft

Соз­дание ко­да, ко­то­рый нель­зя за­крыть.

Ве­ро­ят­но, са­мое силь­ное рас­хо­ж­дение на­блю­да­ет­ся ме­ж­ду те­ми ли­цен­зия­ми, ко­то­рые тре­бу­ют, что­бы все мо­ди­фи­ка­ции бы­ли с от­кры­тым ко­дом, и те­ми, ко­то­рые это­го не тре­бу­ют. В пер­вых (из­вест­ных под на­званием copyleft – по­то­му что это сло­во про­ти­во­по­лож­но по зна­чению copyright, уло­ви­ли?) лю­бые раз­ра­бот­чи­ки, ко­то­рые до­ба­ви­ли ка­кие-ли­бо функ­ции к про­грам­ме, долж­ны по­де­лить­ся эти­ми функ­ция­ми с дру­ги­ми поль­зо­ва­те­ля­ми. В по­следних они остав­ля­ют эти функ­ции ис­клю­чи­тель­но для се­бя (или тре­буют за них пла­ту).

Пер­вой основ­ной ли­цен­зи­ей, ко­то­рая вве­ла copyleft и по-прежнему оста­ет­ся са­мой по­пу­ляр­ной, яв­ля­ет­ся GPL. Это есть во всех фор­мах GPL.

От раз­ра­бот­чи­ков тре­бу­ет­ся при рас­про­странении сво­их про­грамм пре­достав­лять ис­ход­ный код. Это оз­на­ча­ет, что они мо­гут раз­ра­ба­ты­вать код в ча­ст­ном по­ряд­ке и де­лить­ся им с об­ще­ст­вен­но­стью толь­ко тогда, когда код их уст­ро­ит. Конеч­но, мно­гие про­ек­ты пред­по­чи­та­ют де­лить­ся сво­им ко­дом рань­ше. Ес­ли они оста­вят свои мо­ди­фи­ци­ро­ван­ные про­грам­мы се­бе, им не при­дет­ся де­лить­ся из­менения­ми с дру­ги­ми поль­зо­ва­те­ля­ми. Это слег­ка на­ру­ша­ет­ся в сре­де об­лач­ных вы­чис­лений, по­сколь­ку здесь раз­ра­бот­чи­ки не рас­про­стра­ня­ют про­грамм, а вы­да­ют дру­гим поль­зо­ва­те­лям доступ к ним. В этой си­туа­ции раз­ра­бот­чик мо­жет из­менить про­грам­му GPL и про­дать поль­зо­ва­те­лю доступ к ней, но не воз­вра­щать свои из­менения в со­об­ще­ст­во. Для борь­бы с этим FSF вы­пусти­ли AGPL (Affero General Public Licence), ко­то­рая тре­бу­ет, что­бы раз­ра­бот­чи­ки де­ли­лись сво­им ко­дом, ес­ли они от­кры­ва­ют при­ло­жение для об­ще­ст­вен­но­сти, вне за­ви­си­мо­сти от то­го, рас­про­стра­ня­ют ли они эту про­грам­му.

Ни ли­цен­зия Apache, ни BSD не име­ют ника­кой фор­мы copyleft, и ком­пании име­ют пра­во – и ис­поль­зу­ют его – вклю­чать сво­бод­ный код в ком­мер­че­­ские про­дук­ты. Сто­ронники это­го ти­па ли­цен­зии за­яв­ля­ют, что в та­ком ви­де она бо­лее дру­же­ст­вен­на к бизнесу, и по этой при­чине, в конеч­ном ито­ге, ока­зы­ва­ет­ся в боль­шем ко­ли­че­­ст­ве про­дук­тов.

Вердикт
  • GPLv2★★★★★
  • GPLv3★★★★★
  • LGPL★★★★★
  • Apache
  • SD-style
  • Ка­те­го­рия типа «все или ни­че­го», где выс­ший балл по­лу­ча­ет FSF.

На­при­мер, когда Microsoft ре­шил вклю­чить се­те­вой про­то­кол TCP/IP в Windows, они взя­ли нема­лую часть ко­да из BSD. И это оз­на­ча­ло, что Microsoft по­лу­чил ра­бо­чий се­те­вой про­то­кол, взаи­мо­дей­ст­вую­щий с боль­шин­ст­вом дру­гих сис­тем. Воз­мож­но, сво­бод­ное ПО от это­го не вы­иг­ра­ло, но за­то вы­иг­ра­ли ком­пь­ю­тер­ные тех­но­ло­гии в це­лом, ведь это при­ве­ло к то­му, что боль­шин­ст­во ком­пь­ю­те­ров (с Windows) ста­ли ра­бо­тать луч­ше. По­доб­ным же об­ра­зом Apple ре­шил под­верг­нуть ра­дикаль­но­му ре­ди­зай­ну свою ОС, и по­стро­ил ее на ко­де FreeBSD. Это оз­на­ча­ло, что боль­шая часть ра­бо­ты его ди­зайнеров бы­ла по­тра­че­на на соз­дание пре­восход­но­го ин­тер­фей­са, и им не на­до бы­ло пе­ре­жи­вать по по­во­ду яд­ра. Цель ли­цен­зий с copyleft – улуч­шение ми­ра сво­бод­но­го ПО, а ли­цен­зий без него (иногда име­нуе­мых раз­ре­ши­тель­ны­ми) – улуч­шение ми­ра ком­пь­ю­тер­ных тех­но­ло­гий в це­лом.

Мно­гие из наи­бо­лее ши­ро­ко ис­поль­зуе­мых про­грамм с от­кры­тым ко­дом вы­хо­дят под раз­ре­ши­тель­ны­ми ли­цен­зия­ми – ска­жем, Android (кро­ме яд­ра), Chromium, web-сер­вер Apache и OpenOffice.org. Яд­ро Linux яв­ля­ет­ся од­ной из немно­гих важ­ных про­грамм под ли­цен­зи­ей copyleft.

Tивоизация

Из­менение «внут­рен­но­стей».

Ком­пь­ю­тер­ный мир сла­вит­ся сво­им обес­ку­ра­жи­ваю­щим язы­ком, но да­же в нем сло­во «tivo-иза­ция» яв­ля­ет­ся в неко­то­рой сте­пени ар­ха­ич­ным. Tivo – это уст­рой­ст­во, по­зво­ляю­щее поль­зо­ва­те­лям смот­реть и за­пи­сы­вать циф­ро­вое ТВ, и оно со­дер­жит код под ли­цен­зи­ей GPL. Про­из­во­ди­тель, в со­от­вет­ст­вии с ли­цен­зи­ей, от­крыл свой код для об­ще­ст­вен­но­сти. За­то са­мо обо­ру­до­вание бы­ло за­кры­то, и по­это­му поль­зо­ва­те­ли не мог­ли мо­ди­фи­ци­ро­вать код и вно­сить свои об­нов­ления в обо­ру­до­вание. И это при­ве­ло к рас­ко­лу в со­об­ще­ст­ве от­кры­то­го ко­да.

Ли­нус Тор­вальдс под­дер­жал пра­во ком­пании по­сту­пать та­ким об­ра­зом – раз уж они от­кры­ли код для об­ще­ст­вен­но­сти, дру­гие про­из­во­ди­те­ли обо­ру­до­вания мог­ли восполь­зо­вать­ся его мо­ди­фи­ка­ция­ми и улуч­шения­ми, внесен­ны­ми в него. А вот Ри­чард Столлмен счел, что поль­зо­ва­те­ли долж­ны иметь не толь­ко воз­мож­ность по­лу­чить доступ к ко­ду, но и воз­мож­ность из­ме­нять его на са­мом уст­рой­ст­ве.
Вердикт
  • GPLv3★★★★★
  • LGPL★★★★★
  • Apache
  • BSD-style
  • GPLv2
  • До это­го есть де­ло не всем, но если есть, вы­би­рай­те ли­цен­зию точ­но.

Пункт, пре­пят­ст­вую­щий ти­вои­за­ции, со­дер­жат толь­ко ли­цен­зии LGPLv3 и GPLv3: обе тре­бу­ют пре­доста­вить поль­зо­ва­те­лю воз­мож­ность уста­нав­ли­вать соб­ст­вен­ные вер­сии про­грам­мы на ори­ги­наль­ное уст­рой­ст­во. Од­на­ко они до­пуска­ют ис­клю­чения для уст­ройств, ко­то­рые фи­зи­че­­ски не мо­гут из­ме­нять ПО – на­при­мер, ес­ли ПО за­не­се­но в ПЗУ, ко­то­рое невозможно пе­ре­пи­сать.

Имен­но этот пункт способствовал тому, что Ubuntu вы­брал про­грам­му за­груз­ки под лицензией GPLv2 для бу­ду­щих вер­сий, ко­то­рые со­дер­жат безо­пас­ную за­груз­ку. Од­на­ко FSF зая­вил, что это про­изо­ш­ло из-за непонимания ли­цен­зии в Canonical. Итак, по­ка этот пункт при­сут­ст­ву­ет, продолжаются спо­ры о том, что же он оз­на­ча­ет. Так же, как и с copyleft, это со­всем не оз­на­ча­ет сла­бо­сти дру­гих ли­цен­зий – нет, это вы­бор, по­зво­ляю­щий дать раз­ре­шение.

Ин­ди­ви­ду­аль­ные мо­мен­ты

До­полнитель­ные пунк­ты, о ко­то­рых вам на­до знать.

Ка­ж­дая из ли­цен­зий име­ет свой пунк­тик. Это осо­бые тре­бо­вания, предъ­яв­ляе­мые ими к ко­ду и не по­па­даю­щие ни в од­ну из имею­щих­ся здесь ка­те­го­рий. А это оказывается крайне неудоб­ным, когда для несколь­ких раз­ных ли­цен­зий (на­при­мер, ва­риа­ций BSD) ис­поль­зу­ет­ся об­щий «на­кры­ваю­щий [umbrella]» тер­мин.

Об этом важ­но знать, по­то­му что неосве­дом­лен­ным ко­де­рам, ко­то­рые да­же не по­доз­ре­ва­ют, что им при­дет­ся под­чи­нять­ся лишним пунк­там – в основ­ном менее из­вест­ным, чем те, что мы об­су­ди­ли – лег­ко уго­дить в ло­вуш­ку. Здесь мы рас­смот­рим та­кие ве­щи, что­бы вы принимали их в расчет при раз­ра­бот­ке собственных про­грамм.

Мы так­же рас­смот­рим раз­ные вер­сии ка­ж­дой ли­цен­зии и их дрейф с те­чением вре­мени. Как вы са­ми убе­ди­тесь, для одних ли­цен­зий это про­бле­ма в боль­шей сте­пени, а для дру­гих – в мень­шей.

Apache ★★★★

Ли­цен­зия Apache ра­ду­ет пря­мо­той – в том смыс­ле, что име­ет толь­ко две вер­сии, изо­бре­та­тель­но на­зван­ные «один» и «два». Вто­рая вер­сия вы­шла в 2004 го­ду, и поч­ти все про­грам­мы пе­ре­шли на нее, так что мы рас­смот­рим толь­ко эту вер­сию.

Ес­ли про­грам­ма со­про­во­ж­да­ет­ся тек­сто­вым фай­лом NOTICE, этот файл дол­жен быть вклю­чен в мо­ди­фи­ци­ро­ван­ные вер­сии (воз­мож­но, в фор­ме, про­смат­ри­вае­мой из про­грам­мы). В этот файл мож­но до­бав­лять до­полнитель­ную ин­фор­ма­цию, при усло­вии, что она не пе­ре­пу­та­ет­ся с уже имею­щим­ся тек­стом. Ин­фор­ма­ция о ли­цен­зии долж­на при­сут­ст­во­вать в ка­ж­дом фай­ле, и ес­ли вы что-то ме­няе­те, из­менения долж­ны быть за­до­ку­мен­ти­ро­ва­ны в фай­ле. По­ми­мо этих двух ог­раничений и па­тент­ной ин­фор­ма­ции, вклю­чае­мой по­все­ме­ст­но, вы бо­лее или менее воль­ны де­лать с ко­дом под ли­цен­зи­ей Apache все, что вам за­бла­го­рас­су­дит­ся.

BSD ★★

Ли­цен­зии BSD – са­мые про­стые, и прак­ти­че­­ски не на­ла­га­ют ника­ких обя­за­тельств на тех, кто мо­ди­фи­ци­ру­ет код. Од­на­ко из-за их про­сто­ты очень мно­гие их пе­ре­пи­сы­ва­ли, и име­ет­ся мно­же­ст­во раз­ных вер­сий.

Из­на­чаль­но в ли­цен­зии бы­ло че­ты­ре пунк­та, ко­то­рые мож­но из­ло­жить так:

» Ди­ст­ри­бу­тив в ис­ход­ной фор­ме дол­жен вклю­чать уве­дом­ление об ав­тор­ских пра­вах. » Ди­ст­ри­бу­тив в дво­ич­ной фор­ме дол­жен вклю­чать уве­дом­ление об ав­тор­ских пра­вах в до­ку­мен­та­ции или фай­лах по­мо­щи. » В рек­лам­ном ма­те­риа­ле долж­ны упо­ми­нать­ся раз­ра­бот­чи­ки. » Име­на раз­ра­бот­чи­ков неприменимы для рекламы про­из­вод­ных про­дук­тов. Тре­тий пункт не со­гла­со­вы­вал­ся с GPL и был уда­лен в 1993 го­ду, когда вы­шла но­вая ли­цен­зия BSD, уже из трех пунк­тов. Ко­ман­да FreeBSD еще сильнее уп­ро­сти­ла ли­цен­зию, уда­лив из нее пункт че­ты­ре.

Чи­тае­мость

По­то­му что мы лю­бим понимать, что на­пи­са­но мел­ким шриф­том.

По­дав­ляю­щее боль­шин­ст­во поль­зо­ва­те­лей про­грамм с от­кры­тым ко­дом – и во­об­ще про­грамм – не яв­ля­ют­ся юри­ста­ми. Они не раз­би­ра­ют­ся в тон­ко­стях ли­цен­зий на ПО. Де­ло еще услож­ня­ет­ся тем, что про­грам­мы ныне бу­к­­валь­но в счи­тан­ные ча­сы рас­про­стра­ня­ют­ся по все­му зем­но­му ша­ру, и по этой при­чине ли­цен­зия долж­на со­от­вет­ст­во­вать сот­ням раз­ных за­ко­но­да­тельств. У ли­цен­зий BSD здесь яв­ное пре­иму­ще­ст­во: они зна­чи­тель­но про­ще осталь­ных.

В Apache немно­го боль­ше тек­ста, и она зву­чит бо­лее обосно­ван­но с точ­ки зрения пра­ва, но от­лич­но по­нят­на и не юри­стам, бла­го­да­ря сво­им про­стым тре­бо­ваниям.

Вердикт
  • GPLv2★★★★★
  • Apache★★★★
  • BSD-style★★★★
  • LGPL★★★
  • GPLv3★★
  • Я не юрист, од­на­ко же­лаю по­ни­мать, что гла­сит моя ли­цен­зия.

Не­смот­ря на боль­шую слож­ность, GPLv2 оста­ет­ся весь­ма по­нят­ной и чи­тае­мой. А LGPL по боль­шей час­ти – то же са­мое, что GPL для вер­сии 2.1.

Че­го не ска­жешь о вер­сии 3 этих ли­цен­зий. В оп­ре­де­лен­ной сте­пени это свя­за­но с по­пыт­ка­ми учесть мно­же­ст­во ва­ри­ан­тов слу­ча­ев, ко­то­рые FSF со­чла непо­до­баю­щи­ми, вме­сто то­го, что­бы дать об­щее оп­ре­де­ление. Мы пре­доста­вим за­клю­чи­тель­ное сло­во по этой те­ме раз­ра­бот­чи­ку SeleckTor:

«Вы мо­же­те так­же спро­сить, по­че­му GPL2, а не GPL3? Это про­сто: я ту­пой, и че­рез GPL3 про­драть­ся не смог. По мо­ему мнению, ли­цен­зия GPL2 – ку­да луч­ше на­пи­сан­ная ли­цен­зия для про­сто­го че­ло­ве­ка, она от­ве­ча­ет мо­им по­треб­но­стям, и мне глу­бо­ко на­пле­вать, сколь­ко юри­стов они там при­влек­ли к соз­данию GPL3».

GPLv2 ★★★★

Вер­сия 2 GPL – это за­ме­ча­тель­но чет­кая ли­цен­зия, чем, ве­ро­ят­но, и объ­яс­ня­ет­ся ее по­пу­ляр­ность. По­ми­мо copyleft, она на­ла­га­ет очень ма­ло ог­раничений на то, как вам допускается ис­поль­зо­вать код. Фак­ти­че­­ски, един­ст­вен­ное присутствующее в ней ог­раничение – не разрешить на­ла­гать дру­гие ог­раничения! На­при­мер, вам не разрешено ог­раничи­вать об­лас­ти при­менения про­граммного продукта.

В про­шлом этот ас­пект вы­звал раз­но­гла­сия, по­сколь­ку неко­то­рые про­ек­ты же­ла­ли обес­пе­чить непри­менимость разработанного ими ко­да для во­ен­ных це­лей.

GPU, кли­ент Gnutella, соз­дал на осно­ве GPL но­вую ли­цен­зию, из­менив этот пункт. Со­глас­но этой ли­цен­зии, код мож­но бы­ло ис­поль­зо­вать толь­ко в мир­ных це­лях. Это на­ру­ши­ло со­вмес­ти­мость с ори­ги­наль­ной ли­цен­зи­ей GPL, и ли­цен­зия не по­лу­чи­ла по­пу­ляр­но­сти в дру­гих про­ек­тах.

GPLv3 ★★★

В GPLv3 на­мно­го боль­ше пунк­тов, чем в дру­гих на­ших ли­цен­зи­ях. Часть из них уже рас­смат­ри­ва­лась в этой ста­тье. Не рас­смат­ри­вал­ся по­ка что пункт о техниче­­ских сред­ст­вах за­щи­ты ав­тор­ских прав – Digital Rights Management (DRM). Это когда ком­пания про­да­ет вам циф­ро­вой про­дукт (на­при­мер, ви­део или му­зы­ку), но шиф­ру­ет его так, что­бы он мог ис­поль­зо­вать­ся толь­ко на од­ном уст­рой­ст­ве.

По это­му по­во­ду GPLv3 го­во­рит: «Ес­ли вы пе­ре­дае­те за­щи­щен­ное про­из­ве­дение, вы от­ка­зы­вае­тесь от юри­ди­че­­ско­­го пра­ва за­пре­щать об­ход техниче­­ски­­ми сред­ст­ва­ми до та­кой сте­пени, когда по­доб­ный об­ход...» Ины­ми сло­ва­ми, вы мо­же­те по­пы­тать­ся вста­вить DRM в код под GPLv3, но не мо­же­те по­ме­шать дру­гим най­ти сред­ст­ва и воз­мож­но­сти его обой­ти. А по­сколь­ку лю­ди, пы­таю­щие­ся его обой­ти, бу­дут иметь доступ к ва­ше­му ис­ход­но­му ко­ду, ве­ли­ка ве­ро­ят­ность то­го, что они преуспе­ют в сво­их на­ме­рениях.

LGPL ★★★★

LGPL вы­хо­дит в несколь­ких фор­мах. Са­мая из­вест­ная – 2.1, ко­то­рая при­мер­но со­от­вет­ст­ву­ет GPLv2, и вер­сия 3 – со­звуч­ная GPLv3. И хо­тя во мно­гих ас­пек­тах они по­хо­жи, их от­ли­чие ле­жит в их со­вмес­ти­мо­сти. Ве­ро­ят­но, са­мое стран­ное в LGPL – то, что лю­ди, ее на­пи­сав­шие (FSF), не одоб­ря­ют ее ис­поль­зо­вания.

Они со­глас­ны с тем, что для нее есть свое ме­сто (ина­че они бы ее не соз­да­ли), но при этом счи­та­ют, что ее сле­ду­ет при­ме­нять толь­ко в осо­бых об­стоя­тель­ст­вах. Ее раз­ра­бо­та­ли, что­бы соз­дать биб­лио­те­ку С под сво­бод­ной ли­цен­зи­ей, ссыл­ку на ко­то­рую мог­ла со­дер­жать лю­бая ком­мер­че­­ская про­грам­ма. По их мнению, эту ли­цен­зию сто­ит при­ме­нять ис­клю­чи­тель­но ра­ди внедрения сво­бод­но­го ПО там, где в ином слу­чае бу­дет ис­поль­зо­ва­на ком­мер­че­­ская про­грам­ма. Для вя­щей пу­таницы, бу­к­ва L оз­на­ча­ла раз­ные ве­щи: из­на­чаль­но – «биб­лио­теч­ная [library]», а сей­час – «ума­лен­ная [lesser]».

Со­вмес­ти­мость

Хо­ро­шо ли ли­цен­зии ужи­ва­ют­ся друг с дру­гом? Об­лас­тей, в ко­то­рых вста­ет про­бле­ма со­вмес­ти­мо­сти, две: кон­вер­ти­ро­вание ко­да из од­ной ли­цен­зии в дру­гую и свя­зы­вание.

Свя­зы­вание – это когда код в про­грам­ме ссы­ла­ет­ся на биб­лио­те­ку. GPLv2 и дальней­шие вер­сии за­пре­ща­ют внешнему ко­ду под несво­бод­ной ли­цен­зи­ей ссы­лать­ся на код под ли­цен­зи­ей GPL. За это ее иногда называют­ ви­русной ли­цен­зи­ей – она пы­та­ет­ся «за­ра­зить» сво­бо­дой все про­грам­мы в сис­те­ме. FSF ве­дет спи­сок ли­цен­зий, ко­то­рые, по его мнению, со­вмес­ти­мы, на сайте www.gnu.org/licenses/license-list.html.
Вердикт
  • BSD-style★★★★
  • LGPL★★★★
  • Apache★★★
  • GPLv2★★★
  • GPLv3★★★
  • Будь­те ос­то­рож­нее, объ­е­ди­няя ко­ды под раз­ны­ми ли­цен­зия­ми.
Но FSF об­на­ру­жил, что «ви­русная» при­ро­да тормозит пе­ре­ход на сво­бод­ное ПО. Лю­дей за­бо­тит ее аг­рес­сив­ность, и они пред­по­чи­та­ют биб­лио­те­ки, не так же­ст­ко ли­цен­зи­ро­ва­нные, обыч­но не copyleft. Что­бы с этим бо­роть­ся, FSF вы­пустил LGPL (Lesser или Library GPL). Код, вы­хо­дя­щий под этой ли­цен­зи­ей, име­ет тот же copyleft в GPL, но мо­жет быть свя­зан с ко­дом, не яв­ляю­щим­ся сво­бод­ным.

Ли­цен­зии BSD в об­щем наи­бо­лее со­вмес­ти­мы, и код, вы­хо­дя­щий под ними, мо­жет быть свя­зан с ними или пе­рей­ти на дру­гие, менее раз­ре­ши­тель­ные ли­цен­зии. Ис­клю­чение – ли­цен­зия BSD из че­ты­рех пунк­тов (ста­рая). Пункт о рек­ла­ме ли­ша­ет ее со­вмес­ти­мо­сти с GPL.

Так как под ли­цен­зи­ей Apache вы­шел ряд важ­ных про­грамм, FSF обес­пе­чил ее со­вмес­ти­мость с вер­си­ей 3 GPL, несо­вмес­ти­мой с бо­лее ранними вер­сия­ми. Она ог­раниче­на ли­цен­зи­ей Apache вер­сии 2.

Па­тен­ты

Не толь­ко copyright со­хра­ня­ет за­кры­тость ко­да.

В по­следние го­ды па­тент­ное за­ко­но­да­тель­ст­во ста­ло по­лем боя, где ве­дут сра­жения бо­га­тей­шие ком­пании ми­ра. Па­тен­ты за­щи­ща­ют ско­рее идеи, а не реа­ли­за­цию. В ка­че­­ст­ве недавнего при­ме­ра – Apple inc. соз­да­ли функ­цию Slide to unlock, что­бы раз­бло­ки­ро­вать функ­ции на уст­рой­ст­вах iOS. За­кон об ав­тор­ских пра­вах не по­зво­ля­ет дру­гим ком­паниям на­пря­мую ко­пи­ро­вать ис­поль­зо­ванный код и соз­да­вать его ко­пии.

Од­на­ко Apple хо­тел за­щи­тить са­му идею, а не про­сто код, ис­поль­зо­ван­ный для его соз­дания. Он под­го­то­вил со­от­вет­ст­вую­щую за­яв­ку и по­лу­чил па­тент на идею Slide to Unlock, за­пре­щаю­щий дру­гим про­из­во­ди­те­лям реа­ли­зо­вы­вать дан­ную функ­цию, неза­ви­си­мо от то­го, бу­дут ли они на­пря­мую ко­пи­ро­вать код (при­ме­чание: этот па­тент мо­жет быть при­знан недей­ст­ви­тель­ным. На мо­мент на­пи­сания ста­тьи он рас­смат­ри­вал­ся в су­де).

Это оз­на­ча­ет, что соф­твер­ные ли­цен­зии, соз­дан­ные для за­щи­ты от copyright, не мо­гут слу­жить аде­к­ват­ной за­щи­той от па­тент­ной уг­ро­зы.

Ли­цен­зии BSD не пред­ла­га­ют ника­кой за­щи­ты в этой об­лас­ти. Соф­твер­ная ком­пания мо­жет вы­пускать под од­ной из этих ли­цен­зий код, и при этом тре­бо­вать уп­ла­ты па­тент­ных по­шлин от тех, кто ис­поль­зу­ет эти про­грам­мы.

LGPL в этой об­лас­ти пред­ла­га­ет та­кую же за­щи­ту, как и со­от­вет­ст­вую­щая вер­сия GPL. Пункт о па­тен­тах GPLv2 час­то име­ну­ют «Сво­бо­да или смерть» – что все­го лишь оз­на­ча­ет сле­дую­щее: ес­ли вы ог­раничи­вае­те пра­ва поль­зо­ва­те­лей, вы те­ряе­те пра­во ис­поль­зо­вать про­грам­му. Од­ной из глав­ных при­чин об­нов­ления GPL до вер­сии три бы­ло же­лание сде­лать раз­дел за­щи­ты от па­тен­тов бо­лее недву­смыс­лен­ным.

В но­вой вер­сии ли­цен­зии эта за­щи­та ук­ре­пи­лась, в от­вет на раз­би­ра­тель­ст­во ме­ж­ду Novell и Microsoft. При этом Novell за­пла­тил Microsoft, а Microsoft, в свою оче­редь, со­гла­сил­ся не предъ­яв­лять иск кли­ен­там Novell.

Все это до­пуска­лось ли­цен­зи­ей GPLv2, по­это­му FSF ввел в GPLv3 пункт, ко­то­рый уста­нав­ли­вал, что ес­ли вы предъ­яв­ляе­те по­доб­ный иск, он бу­дет от­но­сить­ся ко всем, кто ис­поль­зу­ет про­грам­му, а не толь­ко к тем, кто по­лу­чил ее от вас.

Вердикт

  • GPLv3★★★★★
  • LGPL★★★★★
  • Apache★★★★
  • GPLv2★★★
  • BSD-style
  • Боль­шин­ст­во ли­цен­зий на СПО спра­ви­лись с па­тент­ной уг­ро­зой.

GPLv3 пред­ла­га­ет пре­восход­ную за­щи­ту от па­тен­тов, но ред­ко при­ме­ня­ет­ся в кон­ку­рент­ных об­лас­тях. Воз­мож­но, вы­даю­щей­ся ли­цен­зи­ей в этой сфе­ре яв­ля­ет­ся Apache – не по юри­ди­че­­ским при­чи­нам, а по при­чине ши­ро­ко­го рас­про­странения в са­мой кон­фликт­ной тех­но­ло­ги­че­­ской об­лас­ти, мо­биль­ных те­ле­фо­нах. Стыч­ки Apple с раз­но­об­раз­ны­ми про­из­во­ди­те­ля­ми те­ле­фо­нов с Android всем из­вест­ны, а вот ме­ж­ду кон­ку­ри­рую­щи­ми про­из­во­ди­те­ля­ми те­ле­фо­нов на Android су­деб­ных раз­бо­рок нет, хо­тя у ка­ж­до­го из них вну­ши­тель­ное па­тент­ное порт­фо­лио. От­час­ти за это нуж­но бла­го­да­рить раз­дел 3 ли­цен­зии Apache, где про­сто го­во­рит­ся, что ес­ли вы рас­про­стра­няе­те про­грам­му под этой ли­цен­зи­ей, вы долж­ны пе­ре­дать и па­тент­ные пра­ва на нее.

При­ме­ча­тель­но, что она не вво­дит та­кой же пункт, как GPLv3, и бы­ло несколь­ко па­тент­ных со­гла­шений ме­ж­ду про­из­во­ди­те­ля­ми Android и Microsoft, невоз­мож­ных под ли­цен­зи­ей FSF.

Ко­ли­че­­ст­во про­грамм

Ли­цен­зия хо­ро­ша так, как хороши про­грам­мы под ней.

Да­же от­лич­но за­щи­щаю­щая поль­зо­ва­те­лей ли­цен­зия бес­по­лез­на, ес­ли нико­му не нуж­ны про­грам­мы под ней. Итак, сле­ду­ет рас­смот­реть, что имен­но ли­цен­зии за­щи­ща­ют. Black Duck Software ве­дет на http://osrc.blackducksoftware.com/data/licenses спи­сок про­грамм с от­кры­тым ко­дом, и здесь мы мо­жем уви­деть, на­сколь­ко ши­ро­ко ис­поль­зу­ет­ся ка­ж­дая из них. Де­сят­ка са­мых по­пу­ляр­ных ли­цен­зий вы­гля­дит так [на мо­мент на­пи­сания ста­тьи – прим. ред.]:

Вердикт
  • GPLv2★★★★★
  • Apache★★★★
  • BSD-style★★★★
  • GPLv3★★
  • LGPL★
  • Ино­гда все это сво­дит­ся к про­сто­му кон­кур­су на по­пуляр­ность.

1 – GPL v2 (36 %)

2 – MIT Licence (12 %)

3 – Apache Licence (10 %)

4 – GPL v3 (10 %)

5 – BSD Licence (7 %)

6 – Artistic Licence (6 %)

7 – LGPL v2.1 (6 %)

8 – LGPL v3 (2 %)

9 – Code Project Open Licence (2 %)

10 – Microsoft Public Licence (1 %)

В этом Сравнении мы объ­е­динили ли­цен­зии MIT и BSD, по­сколь­ку они оди­на­ко­вы. Конеч­но, об­ще­из­ве­ст­но вы­ска­зы­вание, что есть ложь, есть на­глая ложь, а есть ста­ти­сти­ка. Этот спи­сок не пы­та­ет­ся сравнить ни ка­че­­ст­во про­грамм, вы­хо­дя­щих под ка­ж­дой ли­цен­зи­ей, ни ши­ро­ту их рас­про­странения, и, воз­мож­но, во­все не ха­рак­те­ри­зу­ет их ис­поль­зо­вание.

Но этот спи­сок в основ­ном от­ра­жа­ет наш опыт. Воз­мож­но, са­мое уди­ви­тель­ное в нем то, на­сколь­ко GPLv2 до сих пор по­пу­лярнее v3. На то есть несколь­ко при­чин. От­час­ти это объ­яс­ня­ет­ся тем, что бо­лее ста­рые про­ек­ты не мо­гут пе­ре­вес­ти код на но­вую ли­цен­зию по юри­ди­че­­ским при­чи­нам. Од­на­ко мно­гие раз­ра­бот­чи­ки про­сто пред­по­чи­та­ют ста­рую вер­сию, и по­ла­га­ют, что v3 отнима­ет боль­ше сво­бод, чем пре­достав­ля­ет.

Вер­дикт

Мы ­тес­ти­ро­ва­ли ли­цен­зии на со­от­вет­ст­вие оп­ре­де­лению сво­бод­но­го ПО от FSF, и неуди­ви­тель­но, что по­бе­ди­ла та ли­цен­зия, ко­то­рую именно FSF и пред­по­чи­та­ет.

Од­на­ко это со­всем не обя­за­тель­но оз­на­ча­ет, что она луч­шая. Ка­ж­дая ли­цен­зия от­кры­то­го ко­да долж­на най­ти ба­ланс ме­ж­ду тем, что она раз­ре­ша­ет, и тем, что она ог­раничи­ва­ет, во имя сво­бо­ды поль­зо­ва­те­ля. Факт нечас­то­го при­менения GPLv3 за пре­де­ла­ми про­ек­та GNU по­ка­зы­ва­ет, что она на­ла­га­ет те­ку­щие ог­раничения во имя бу­ду­щих сво­бод на­мно­го жест­че, чем это уст­раи­ва­ет раз­ра­бот­чи­ков.

Бо­лее чис­тое оп­ре­де­ление сво­бо­ды мо­жет рас­смат­ри­вать та­кие ог­раничения, как copyleft, в ка­че­­ст­ве до­полнитель­ной реа­ли­за­ции основ­ной сво­бо­ды де­лать с ко­дом все, что угод­но. Это со­стояние осо­бен­но хо­ро­шо вы­ра­же­но в BSD-по­доб­ной ли­цен­зии DWTFYWWI [Де­лай­те Все, Что За­бла­го­рас­су­дит­ся], всего с од­ним усло­вием:

0 Ав­тор га­ран­ти­ру­ет всем раз­ре­шение де­лать все, что угод­но, ка­ки­ми бы, черт по­бе­ри, ни бы­ли по­след­ст­вия.

Это весь­ма по­хо­же на то, что обыч­но на­зы­ва­ют об­ще­ст­вен­ным до­ме­ном. Дру­гие ли­цен­зии BSD обыч­но до­бав­ля­ют несколь­ко ог­раничений, обыч­но тре­бую­щих не за­быть упо­мя­нуть ав­то­ров.

Две вы­ше­пе­ре­чис­лен­ных ли­цен­зии яв­ля­ют со­бой край­но­сти фи­ло­со­фии от­кры­то­го ко­да. Ме­ж­ду ними ле­жит об­шир­ная об­ласть мо­раль­ных основ, где и оби­та­ет боль­шин­ст­во раз­ра­бот­чи­ков.

На­при­мер, Ли­нус Тор­вальдс гро­мо­глас­но под­дер­жи­вал GPLv2, и не на­ме­рен пе­ре­во­дить свое яд­ро на но­вую вер­сию ли­цен­зии. Мно­гие со­глас­ны с Ли­ну­сом, и GPLv2 оста­ет­ся ли­цен­зи­ей но­мер один согласно ста­ти­сти­ке Open Source Resource Centre. Вряд ли си­туа­ция из­менит­ся в бли­жай­шем бу­ду­щем, по­то­му что она вы­ра­жа­ет мыс­ли лю­дей об от­кры­том ко­де: copyleft, но с ог­раничения­ми. Ли­цен­зия Apache, по­хо­же, со­хранит до­миниро­вание на кор­по­ра­тив­ной сто­роне от­кры­то­го ко­да. Мно­гие костю­мо­носные кро­хо­бо­ры бо­ят­ся copyleft, что мо­жет препятствовать при­сое­динению ком­паний к дви­жению от­кры­то­го ко­да. Бла­го­да­ря ли­цен­зии Apache по­доб­ные опа­сения не яв­ля­ют­ся про­бле­мой, а возможность па­тент­ных уг­ро­з миними­зи­ро­ва­на.

I GPLv3 ★★★★

  • Сайт: www.gnu.org/licenses/gpl.html
  • Рья­но за­щи­ща­ет сво­бо­ду поль­зо­ва­те­ля, но труд­на для понимания.

II GPLv2 ★★★★

  • Сайт: www.gnu.org/licenses/gpl-2.0.html
  • Про­сто со­дер­жит оп­ре­де­ление copyleft, и ох­ва­ты­ва­ет

мас­су про­грамм.

III BSD-style ★★★

  • Сайт: en.wikipedia.org/wiki/BSD_licenses
  • Ис­тин­ная сво­бо­да, но несколь­ко опо­ро­че­на оби­ли­ем вер­сий.

IV Apache ★★★

  • Сайт: www.apache.org/licenses/LICENSE-2.0
  • Дру­же­ст­вен­ная к бизнесу оп­ция, за­щи­щаю­щая от па­тент­ных войн.

V LGPL ★★★

  • Сайт: www.gnu.org/licenses/lgpl.html
  • Иногда бывает по­лез­на, но мо­гут обнаружиться оп­ции и по­лу­чше.

Рас­смот­ри­те так­же...

При­год­ных ли­цен­зий су­ще­ст­ву­ет мно­го – неко­то­рые счи­та­ют, что слиш­ком мно­го, и что на­ли­чие прак­ти­че­­ски иден­тич­ных ли­цен­зий толь­ко пу­та­ет поль­зо­ва­те­лей. Пом­ня об этом, луч­ше ис­поль­зо­вать од­ну из вы­ше­пе­ре­чис­лен­ных, а не менее из­вест­ную ли­цен­зию, ес­ли толь­ко у вас нет на то осо­бых при­чин. Од­на­ко есть еще две ли­цен­зии, ко­то­рые при­ме­ня­ют­ся в круп­ных про­ек­тах: Mozilla Public Licence и Artistic Licence (Perl). В основ­ном они уме­ст­ны со свои­ми ро­ди­тель­ски­ми про­ек­та­ми.

Ес­ли вам нуж­на ли­цен­зия не для ко­да, есть смысл взгля­нуть на ли­цен­зии Creative Commons. В них есть ряд по­ло­жений, ко­то­рые мож­но сме­ши­вать и со­че­тать в со­от­вет­ст­вии с ва­шей фи­ло­со­фи­ей. Ос­нов­ная ли­цен­зия – Attribution – тре­бу­ет толь­ко то­го, что­бы те, кто ис­поль­зу­ет ва­шу ра­бо­ту, не за­бы­ва­ли вас упо­ми­нать. К ней мож­но до­ба­вить ShareAlike (при­мер­но то же, что copyleft), NonCommercial и NoDerivs (ко­то­рая оз­на­ча­ет, что ва­шу ра­бо­ту мож­но рас­про­стра­нять толь­ко в неиз­менен­ном ви­де). Вы­би­рай­те ту их ком­би­на­цию, ко­то­рая удов­ле­тво­рит ваш вкус. Ли­цен­зии Creative Commons сде­ла­ны про­сты­ми для понимания, и в них есть знач­ки, ко­то­рые мож­но до­бав­лять к ви­зу­аль­ным ра­бо­там, без необ­хо­ди­мо­сти до­бав­лять весь текст лицензии. |

Персональные инструменты
купить
подписаться
Яндекс.Метрика