LINUX.ORG.RU

MIT, GPL и сублицензии

 , , ,


0

3

Есть permissive-лицензия на некий проект, допустим, MIT. Могу ли я взять оттуда код и выпустить его под GPL? Или под двойной коммерческой лицензией, как тот же Qt?

Вот, к примеру, отрывок из MIT:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

А вот отрывок из Википедии по поводу permissive для Apache, который противоречит вышесказанному:

The Apache License is permissive in that it does not require a derivative work of the software, or modifications to the original, to be distributed using the same license

Тут я обратил внимание на строчку sublicense:

Permission is hereby granted ... including without limitation the rights to ... sublicense

Но первые две ссылки в гугле что такое это sublicense прямо противоречат друг другу:

a license granted to a third party by a licensee, extending some rights or privileges that the licensee enjoys.

A license is an agreement by which the owner of something grants, to someone else, rights that are less that all of the rights to that thing.

Где правда?

Могу ли я просто взять и заменить лицензию на код, выпущенный, к примеру, под MIT? А если нет и я обязан везде указывать лицензию MIT, то как это отличается от вирусных лицензий? К примеру, правлю я неспеша код, промежуточные версии обязан выпускать с шапкой MIT, потому что это мне навязано substantial portion. К тому времени, как от оригинального кода не останется и строчки, он всё равно обязан быть выпущен под MIT, поскольку так гласят промежуточные версии?

P.S. Да, я понимаю, что искать смысл в лицензиях это как учить рыбу ходить за ручку пешком, но тем не менее.

★★★★★

Ты можешь слинковаться статически с библиотекой, выпущенной под MIT, или даже скопировать её в дерево исходников своего проекта. При этом если ты её не менял, то не должен ничего открывать.

А если ты статически слинковался с GPL-библиотекой, то обязан открыть исходники и своего проекта тоже.

Это и есть вирусность. MIT позволяет как угодно использовать библиотеку, а GPL требует открывать исходники и своего проекта, если имеет место любая линковка.

KivApple ★★★★★ ()

Насколько я понимаю, включение условий в копии, которое требует лицензия MIT, не означает применения этих условий. Так что можно перелицензировать под GPL, указав, что оригинал был под MIT.

Klymedy ★★★★★ ()
Ответ на: комментарий от KivApple

MIT позволяет как угодно использовать библиотеку

В этом то и вопрос, насколько глубоко это «как угодно»? К примеру, выкинуть вообще упоминание MIT из библиотеки, это всё ещё «как угодно»? Я же не могу построчно указывать, вот эта буква была из оригинальной библиотеки, а следующая уже нет, в данном случае шапка лицензии в файле перестаёт иметь смысл, поскольку предоставляет неверную информацию.

Dendy ★★★★★ ()
Ответ на: комментарий от Klymedy

Ну вот я тоже так понимаю, это ближе всего дружит со здравым смыслом. Другой вопрос можно ли повыкидывать шапки лицензий из оригинальных файлов, ведь они теперь будут нести ложную информацию. К примеру, в оригинале стоит: © Дядя Вася, но в производном коде уже отметился и Дядя Петя. В идеале должно быть разрешено выкинуть шапки вообще, ведь в этом и отличие от вирусных лицензий вроде GPL, у которых производный код так или иначе будет на тех же условиях, что и оригинал.

Dendy ★★★★★ ()
Ответ на: комментарий от annulen

Я так понял, что и MIT разрешает, в отличии от BSD. Только тексты лицензий вроде для людей пишутся, но в результате каша в голове и все понимают по-своему.

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

Ты не понял. «Использовать» - значит слинковать со своей программой или даже встроить в свой исполняемый файл и дёргать оттуда любые функции. Но при этом саму библиотеку не трогай.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Изначальный вопрос был именно про модификацию кода, линковка не имеет смысла. Понимать как я хочу выпустить производную версию этой библиотеки, но в составе другой программы и на других условиях распространения.

Dendy ★★★★★ ()

Есть permissive-лицензия на некий проект, допустим, MIT. Могу ли я взять оттуда код и выпустить его под GPL?

Да, можете. Обе основные т. н. «лицензии MIT» (Expat и X11) GNU GPL (а равно и другим лицензиям авторского лева GNU) не противоречат.

двойной коммерческой лицензией, как тот же Qt?

Да.

А вот отрывок из Википедии по поводу permissive для Apache, который противоречит вышесказанному:

Во-первых, не вижу противоречий. А во-вторых, что вас удивляет в том, что между двумя *разными* договорами могут быть противоречия?

Но первые две ссылки в гугле что такое это sublicense прямо противоречат друг другу:
a license granted to a third party by a licensee, extending some rights or privileges that the licensee enjoys.
A license is an agreement by which the owner of something grants, to someone else, rights that are less that all of the rights to that thing.

Не усматриваю противоречий, ни прямых, ни косвенных. Возможно, вы неверно понимаете слово «extend». У него здесь то же значение, что в словосочетании «extend an invitation», например.

Могу ли я просто взять и заменить лицензию на код, выпущенный, к примеру, под MIT?

А если нет и я обязан везде указывать лицензию MIT

Да.

то как это отличается от вирусных лицензий?

От чего-чего? Это оскорбительное словечко из лексикона проприетарщицких пропагандистов, а не термин.

К тому времени, как от оригинального кода не останется и строчки, он всё равно обязан быть выпущен под MIT, поскольку так гласят промежуточные версии?

Нет.

Да, я понимаю, что искать смысл в лицензиях это как учить рыбу ходить за ручку пешком

Ложь.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

Я так понял, что и MIT разрешает, в отличии от BSD.

Вы поняли что-то нет то.

Существует как минимум: две т. н. «лицензии МТИ» и три лицензии BSD. Среди них есть катастрофически отличная от других 4-BSDL и в целом схожие остальные, но ни одна из них не воспроизводить текст договора полностью с каждой копией *не* дозволяет.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

Другой вопрос можно ли повыкидывать шапки лицензий из оригинальных файлов

«The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software» — это *единственное* условие лицензии Expat, неужели так легко его не заметить?

ведь они теперь будут нести ложную информацию. К примеру, в оригинале стоит: © Дядя Вася, но в производном коде уже отметился и Дядя Петя.

И где ложь?

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

Не усматриваю противоречий, ни прямых, ни косвенных.

Противоречие в словах «extending some rights or privileges» и «rights that are less». Первое говорит, что я могу расширить изначальные права, позволив в производном коде делать больше, чем предполагала оригинальная лицензия. Второе, что я наоборот имею право только сузить права, то-есть нельзя выходить за пределы изначально дозволенного.

Могу ли я взять оттуда код и выпустить его под GPL?

Да, можете.

А если нет и я обязан везде указывать лицензию MIT

Да.

И кто-то мне будет рассказывать про понятность и прозрачность лицензий. Так могу я выкинуть лицензию MIT и заменить её на GPL в производном продукте или нет? Если я обязан указывать везде лицензию MIT (ответ был: Да), это естественно будет трактоваться как весь код под этой лицензией, что не есть правда, поскольку код уже под GPL.

Dendy ★★★★★ ()

Могу ли я просто взять и заменить лицензию на код, выпущенный, к примеру, под MIT?

нет, менять лицензию на чужое произведение ты права не имеешь.

waker ★★★★★ ()
Ответ на: комментарий от waker

нет, менять лицензию на чужое произведение ты права не имеешь.

Но ведь лицензия MIT напротив говорит что могу, если я правильно понимаю сублицензирование.

Dendy ★★★★★ ()
Ответ на: комментарий от Zmicier

all copies or substantial portions

Где начало и конец этой substantial portions? Каждый это может трактовать по-своему.

Вот нашёл другую выдержку в интернете:

Under the MIT license you can do basically two seemingly similar things:

1) You can incorporate the work in your own works and distribute these under a more restrictive license.

2) You can take the original MIT-licensed work, add additional restrictions on it, and distribute the work under a more restrictive license but where you have not modified the code at all. The GPL v3 claims to require this to be compatible, if one sees the GPL as governing all terms of the license.

Many of your questions are likely to be long and complicated,[2] and depend on jurisdiction, but a basic rule regarding the MIT License is that if your channel claims it is licensed now under the GPL, it is licensed under the GPL. Moreover this is true regardless of whether the original version was modified or not if the MIT license was used.

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

Отсюда вопрос как это вообще согласуется с требованием:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

Я это могу понимать только как обязательство прикреплять текст лицензии MIT только с копией исходного продукта. В производном продукте под другой лицензией это ограничение снимается.

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

процитируй конкретно, что ты там понимаешь, и что она говорит.

edit: уже увидел, нет, ты неправильно понимаешь. сублицензирование != смена лицензии.

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от waker

сублицензирование != смена лицензии

И? Не знаю что вы понимаете под сменой лицензии. Если выпуск оригинального продукта под другой лицензией, то понято, что это может делать только его автор. Мне интересен только производный продукт. Видимо я могу выбрать любую более строгую лицензию, независимо от того был ли код вообще правлен.

И тут вводит в ступор вот эта фраза:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

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

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

Мне интересен только производный продукт. Видимо я могу выбрать любую более строгую лицензию, независимо от того был ли код вообще правлен.

ты можешь распространять производный продукт на любых условиях, не нарушающих требования лицензии MIT.

т.е. производный продукт обязан включать в себя «The above copyright notice».

это будет однозначно трактоваться как мой проект распространяется на условиях этой лицензии.

нет. это будет трактоваться именно так, как и задумано, что в твоем проекте используются компоненты (названные поименно), лицензированные под MIT.

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от Dendy

Тогда как он распространяется уже по другой лицензии на мой выбор.

ты что-то неправильно понимаешь в лицензиях.

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

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

чтобы понять принцип, возьми к примеру android, и нажми «О телефоне -> Юридическая информация -> Лицензии открытого ПО».

подобные окошки можно найти почти в любой программе.

waker ★★★★★ ()
Ответ на: комментарий от waker

Спасибо, теперь становится яснее. То-есть необходимость смены названия производного продукта связанна именно с тем, чтобы корректно указать к чему именно относится та или иная лицензия, к оригинальному продукту, либо к производному, верно? К примеру, Android → CyanogenMod.

Остаётся открым вопрос что делать с шапками лицензий в отдельных файлах, если таковые имеются. К примеру, я выпускаю DendyMod, правлю исходники, получается и шапку в исходных файлах я тоже должен поменять, ведь теперь там мой код, распространяющийся на других условиях. Могу ли я вытеперь все шапки и перенести текст лицензии в отдельный файл? Или я должен раздуть шапку, добавив к ней условия новой лицензии? Предположим, разговор идёт всё ещё про MIT.

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

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

нет, это нарушает условия, на которых тебе предоставлен исходный код.

Или я должен раздуть шапку, добавив к ней условия новой лицензии? Предположим, разговор идёт всё ещё про MIT.

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

пример: https://github.com/Alexey-Yakovenko/deadbeef/blob/master/plugins/mms/COPYING

libmms - MMS over TCP protocol
Copyright (C) 2002-2003 the xine project
Copyright (C) 2004-2012 the libmms project
Modifications for DeaDBeeF (C) 2009-2016 Alexey Yakovenko

еще пример:

https://github.com/Alexey-Yakovenko/deadbeef/blob/master/plugins/dumb/COPYING

modified DUMB 0.9.3
Dynamic Universal Music Bibliotheque, Version 0.9.3

Copyright (C) 2001-2005 Ben Davis, Robert J Ohannessian and Julien Cugniere

...........

Uses code from kode54's foobar2000 plugin, http://kode54.foobar2000.org/



deadbeef-related modifications (C) Alexey Yakovenko
waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от Dendy

Противоречие в словах «extending some rights or privileges» и «rights that are less». Первое говорит, что я могу расширить изначальные права

Надо же — с первого раза угадал, какое слово вы не понимаете!

Так могу я выкинуть лицензию MIT и заменить её на GPL в производном продукте или нет?

Нет.

«The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software» — какое слово здесь непонятно?

это естественно будет трактоваться как весь код под этой лицензией

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

Zmicier ★★★★★ ()
Ответ на: комментарий от waker

менять лицензию на чужое произведение ты права не имеешь

Если такое право явным образом не дано, разумеется.

При том, что для для большинства свободных трудов такое право в том или ином об’еме дано, утверждение ваше в контексте беседы выглядит очень скользко.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

нет, менять лицензию на чужое произведение ты права не имеешь.

Но ведь лицензия MIT напротив говорит что могу, если я правильно понимаю сублицензирование.

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

Точно так же, как в общем случае справедливо сказать, что вы не имеете права распространять чужое произведение за деньги.

Zmicier ★★★★★ ()
Ответ на: комментарий от anonymous

вроде MIT требует только того, чтоб было указано, что в проекте пользуется такая-то такая-то либа.

Попытайтесь осилить хотя бы три абзаца лицензии Expat (или четыре — лицензии X11, или что вы зовете «лицензией MIT»?), и уловить, что там нет слов «используется» и «либа».

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

Где начало и конец этой substantial portions?

Не оговорено. Но вас это и не должно особо волновать.

Каждый это может трактовать по-своему.

Совершенно справедливо. Значение имеет трактовка хозяина работы (= лицензиара).

Вы обмолвились, что лицензии-де «пишутся для людей» — так вот это верно лишь для ряда свободных лицензий, таких как лицензии ГНУ или Апача. Небрежные же пермиссивки, типа лицензий BSD или Expat, писались не для людей, а для сугубо внутреннего использования (в кампусе Беркли и т. д.) — безо всякой мысли, что их будет использовать куча народу по всему миру. Потому они так плохо и написаны.

Живой пример ответственности, что может нечаянно лечь на любого из нас — какие-то американцы тридцать лет тому назад сляпали типовой договор на скорую руку, а теперь под него в России приходится гражданский кодекс править!

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

Согласно этому тексту я могу выпускать производный от MIT код под GPL или другой проприетарной лицензией, неважно был ли он вообще изменён.

Конечно. Только слово «другой» здесь лишнее.

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

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

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

Я это могу понимать только как обязательство прикреплять текст лицензии MIT только с копией исходного продукта. В производном продукте под другой лицензией это ограничение снимается.

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

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

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

С чего вы это взяли?

Мне интересен только производный продукт.

Нормальные свободные лицензии не делают разницы меж изначальным и производным. Ведь если подумать, то легко понять, что такое различие было бы самопротиворечиво — дважды измененное легко может оказаться идентично изначальному. А значит ставить условие вида «работу можно изменять и X-овать измененную версию, но нельзя X-овать изначальную» практически бессмысленно.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

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

Да. Где «более строгую» значит включающую в себя все запретительные условия изначальной лицензии.

Обратите внимание, что ни те же лицензии ГНУ, ни лицензии BSD, ни лицензии Апача сами по себе не содержат условий лицензии Expat’а, но не воспрещают их добавить. Получившийся таким образом договор можно обозначить знаком кон’юнкции: Expat & GNU GPLv3+, Expat & 2-BSDL, Expat & ASLv2. Договора, к которым можно применять кон’юнкцию называются «совместимыми».

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

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

Обратите внимание, что «лицензии MIT» и другие небрежно прописанные типовые договора в отличие от основательных лицензий ГНУ или Апача, не предполагают наличия какого-то «файла с лицензией», их полный текст умещается в каждый файл.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

То есть необходимость смены названия производного продукта связанна именно с тем, чтобы корректно указать к чему именно относится та или иная лицензия, к оригинальному продукту, либо к производному, верно?

Нет. Название программы имеет весьма малое отношение к авторским монополиям. А свободные лицензии — это как правило договора, не выходящие за рамки авторского права.

Необходимость смены названия программы продиктована либо монополией на товарные знаки (ваш Android® сюда), либо просто правилами хорошего тона — зачем людей-то путать.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Dendy

что делать с шапками лицензий в отдельных файлах, если таковые имеются.

В случае с неизмененными или малоизмененными файлами, прикладной ответ — не трогать.

В случае с основательно переработанными файлами — написать все, что вы хотите, таким образом, чтобы: а) соблюсти условия, б) не породить разночтений.

К примеру, я выпускаю DendyMod, правлю исходники, получается и шапку в исходных файлах я тоже должен поменять

Почему? Нет. Лицензия Expat'а не накладывает на вас такой обязанности. Но вероятно вы *сами* захотите это сделать из собственнических побуждений.

Могу ли я вытеперь все шапки и перенести текст лицензии в отдельный файл?

С какой целью интересуетесь? Практически это, как нетрудно заметить, сделать сложнее, чем сохранить текст в файле. Так что даже если бы вам это явно было дозволено, едва ли бы вы это делали.

Или я должен раздуть шапку, добавив к ней условия новой лицензии?

Как я уже отметил, вы не должны — выбрав одну из т. н. «лицензий МТИ» хозяин не обязал вас указывать на измененных версиях ни ваше имя, ни даже отмечать факт изменения.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

В случае с основательно переработанными файлами — написать все, что вы хотите, таким образом, чтобы: а) соблюсти условия, б) не породить разночтений.

Dendy, вы, конечно, хотите конкретики. Хорошо (IANAL, TINLA):

/* Copyright © 2017 Peter Vasiliev
   Copyright © 1999, 2002, 2007 Mark Mayer

   This file is part of Foobar.

   Foobar is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.

   Foobar is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with Foobar.  If not, see <http://www.gnu.org/licenses/>.


   This file is based on src/bazzo.c from libquux2 which was
   distributed under the following terms:

   ,----
   | Copyright (c) 1999, 2002, 2007 Mark Mayer
   |
   | Permission is hereby granted, free of charge, to any person obtaining
   | a copy of this software and associated documentation files (the
   | "Software"), to deal in the Software without restriction, including
   | without limitation the rights to use, copy, modify, merge, publish,
   | distribute, sublicense, and/or sell copies of the Software, and to
   | permit persons to whom the Software is furnished to do so, subject to
   | the following conditions:
   |
   | The above copyright notice and this permission notice shall be included
   | in all copies or substantial portions of the Software.
   |
   | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
   | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
   | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
   | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
   | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
   | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
   | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
   `----
*/

Вместо «This file is based on...» подобрать по смыслу: «This file is a heavily modified...», «This file include portions from...», «This file is a shamelessly stolen copy of...» :-).

Zmicier ★★★★★ ()
Ответ на: комментарий от Zmicier

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

Вместо «This file is based on...» подобрать по смыслу:

Вот в том и проблема, что вместо занятия непосредственной задачей я должен сидеть и заниматься ерундой и править комментарии с авторами и прочее. Любой открытый проект развивается динамично, правки добавляются на лету везде постоянно и помногу и сразу опубликовываются, выискивать и редактировать строчки с лицензиями себе дороже. А если по глупости не отредактировал шапку лицензии вовремя и твой код уже уплыл в паблик, то вместо GPL ты внезапно обнаружишь, что твой код уже распространился по другой лицензии. Ведь шапки для того и делают, что они перекрывают глобальные условия лицензии, чтобы скачав отдельный файл без всего проекта пользователь знал его условия распространения.

В исходном коде должна быть только полезная информация, относящаяся непосредственно к программированию. Поэтому если лицензия позволяет, а я так понимаю, MIT позволяет, то стоит сразу вытереть все шапки из исходников и добавить записку, что мол где-то внутри используется код такого-то проекта. Где именно ищите сами, сравнивая с оригиналом.

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

Вот в том и проблема, что вместо занятия непосредственной задачей я должен сидеть и заниматься ерундой и править комментарии с авторами и прочее.

Ути-пути, четырехзвездочный Дениска страдает, что ему надо потратить 10 минут на написание скрипта, а не то злобные проприетарщики уведут его нетленный код под пермиссивной лицензией.

aedeph_ ★★ ()
Ответ на: комментарий от Dendy

Спасибо за детальный разбор.

Всегда пожалуйста. Можно посмотреть, что у вас в итоге получилось-то?

В исходном коде должна быть только полезная информация

Совершенно верно. И самой полезной информацией для любого исходного кода являются условия его распространения. Без них код не нужен.

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

Если вы про некие четко установленные правила составления эффективного лицензионного договора из кусочков, то их просто не существует. У вас слишком алгоритмический подход.

А если вы про обычаи написания свободных программ, то не существует обычно никаких «глобальных условий».

А указывают условия в каждом отдельном файле потому, что это (как вы справедливо заметили) есть некоторый естественный рубеж, до которого программа делится настолько легко, что иногда даже случайно.

Zmicier ★★★★★ ()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Dendy

в случае с MIT если я получаю исходый код, то могу его править как мне вздумается, в том числе и вытирать комментарии с отрывками лицензий и прочее

Как тебе вздумается, да. Но так, чтобы было соблюдено ограничение, накладываемое этим договором (оно там ровно одно).

intelfx ★★★★★ ()
Ответ на: комментарий от Zmicier

Всегда пожалуйста. Можно посмотреть, что у вас в итоге получилось-то?

Пока всё в процессе, склоняюсь к варианту всё переписать. Дело в том что есть старый, но полезный код, который использовался в коммерческих проектах и возможность его лицензировать под свободной лицензией, заказчик не против. Вот и мучаюсь выбором какую лицензию для него использовать, чтобы угодить всем. В принципе, MIT подходит.

есть некоторый естественный рубеж, до которого программа делится настолько легко, что иногда даже случайно

Программа зачастую делится гораздо мельче, чем один файл. Собственно, шапки потому и стают бессмысленными. В исходном коде обязана быть дедупликация данных, если есть общий текст, то он выносится в отдельный файл и лицензия не исключение. Иначе легко можно подставить в шапку отдельно взятого исходника вредоносные условия и опробовать на себе роль человека-айпадоножки.

А уж как мне нравятся изменения между версиями программ, в которых авторы меняют «© Username 2016» на «© Username 2017». В каждом долбанном исходнике. После чего понять что действительно изменилось в системе контроля версий решительно невозможно.

Dendy ★★★★★ ()
Ответ на: комментарий от Dendy

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

А тут ведь нечем мучиться — берите и публикуйте уже быстрее под GNU Affero GPL. Если потом поймете, что «сетевое» авторское лево тут ни к селу — отбросите его и все, оставив простую GNU GPL. Если потом решите, что и это авторское лево слишком сильное — ослабите его до GNU Lesser GPL. Если потом осознаете, что программа ваша насколько никому не нужна, что можно и вовсе подарить ее проприетарщикам — назначите вторую лицензию Апача. А опуститься до всяких небрежностей типа лицензий МТИ — ну тоже можно будет, в принципе.

в которых авторы меняют «© Username 2016» на «© Username 2017»

А кто это у нас так делает? Так можно (и нужно) делать только если вы с нуля переписали файл, к которому это относится.

Zmicier ★★★★★ ()
Ответ на: комментарий от Dendy

В исходном коде обязана быть дедупликация данных, если есть общий текст, то он выносится в отдельный файл и лицензия не исключение

Совершенно верно, со всеми хорошо прописанными условиями (типовые лицензии ГНУ, Мозиллы, Апача) так и делают изначально. А вот плохо прописанные, типа т. н. «лицензий МТИ», этого обычно не позволяют.

Zmicier ★★★★★ ()