LINUX.ORG.RU

Разработка коммерческого ПО с Qt

 ,


2

5

Вопрос по лицензии LGPL Qt. Можно-ли разрабатывать коммерческое ПО с использованием библиотек Qt без модификации последней, просто использо- вать ее? Эта лицензия вроде-бы разрешает... В вики пишут: существенно, чтобы при этом был обеспечен механизм по обновлению Qt. Я так понимаю,-через компановку статических или динамических библиотек? Я бы хотел статический вариант. Код ПО,разумеется,будет закрытым. Что-то сомнения одолевают.


Ответ на: комментарий от I-Love-Microsoft

Если статическая не запрещена
https://www.qt.io/faq/

The LGPL allows you to keep the source code of your application private as long as it is “work that uses” the library. Dynamic linking is usually recommended here.

recommended here

потому что проще

мы ждем

ждите

vvviperrr ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Вот я и спрашиваю - как легально?

Вроде как в Qt-ном FAQ-е все вполне доступно расписано.

Т.е. если предоставить свои объектники или либы + инструкции по сборке (а для встраиваемых устройств еще и полный тулчейн для сборки), то легально.

Другое дело, насколько все это возможно технически. И не пересекутся ли технические особенности с юридическими. Вот, скажем, берет юзверь ту же самую версию Qt, что и автор библиотеки, и вносит какие-то правки. Скажем, добавляет пару атрибутов в QWidget или QButton. После чего компилирует модифицированную версию Qt с немного другими параметрами (изменив размер выравнивания, скажем). И линкует такую версию с приложением.

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

PS. Кстати, для динамической линковки это так же актуально, имхо.

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

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

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

А потому повторяю для can, автора темы: либо плати либо линкуй динамически, при это второй вариант «потому что проще» и бесплатнее.

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от anonymous

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

А когда будут примеры, иллюстрирующие способы создания статических сборок закрытых программ без приобретения лицензии на библиотеку Qt, которые предлагаются нашими глубокоуважаемыми экспертами?

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Послушайте, внимательный вы наш! Проследите, пожалуйста, ветку моего с вами общения. Я ничего не предлагал ни вам, ни ТС. У вас был вопрос о том, есть ли смысл линковать либу статически. Я предположил, что такая линковка упростит распространение приложения между дистрибутивами Linux-а. Скажем, можно будет использовать один и тот же бинарник на Ubuntu 14.04, 15.04, 15.10, 16.04.

Но вы, почему-то, стали требовать от меня каких-то примеров, как будто я вам или ТС-у что-то предлагал делать.

Заодно, раз вы агитируете за динамическую линковку с Qt, расскажите, пожалуйста, что будет вот в такой ситуации:

- вы пишете программу на Qt, линкуете ее с динамической версией Qt. Дабы выполнить условия LGPL вы должны предоставить мне возможность запустить вашу программу с модифицированной версией Qt;

- я модифицирую ту же самую версию Qt путем расширения списка атрибутов в ряде Qt-шных классов (плюс меняю порядок их следования внутри классов). После чего подсовываю собранные мной so-шки модифицированной версии Qt вашей программе;

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

Не нарушили ли вы LGPL?

eao197 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

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

Пруф про платную версию?

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

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

где я кому что предлагал?

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

Я не случайно написал: либо человек понимает причины/цели создания и суть лицензии LGPL, либо не понимает и предлагает очевидно неработающие или неподходящие сценарии...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от vvviperrr

где я кому что предлагал?

Статическая линковка запрещена

не вводи народ в заблуждение

Запрещена не значит невозможна.

Я бы хотел статический вариант. Код ПО,разумеется,будет закрытым. Что-то сомнения одолевают.

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Как поменять версию Qt в том скайпе? Жду инструкцию :)

Внезапно, LD_PRELOAD. Только что проверил - системная Qt прекрасно подтянулась и используется, что видно по стеку вызовов из gdb. Динамическому линкеру пофиг что подменять - символы из библиотеки или символы из бинарника. Если только это явно не выписано, например, через параметр dlopen.

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Хорошо, но можно хотя бы два примера ПО, которое использовало LGPL-библиотеку с возможностью подмены новой версией?

В ЛЮБОМ ПО можно подменить версию Qt. Идем к любым ребятам линкующим статикой, которым хотим усложнить жизнь.Говорим показывайте код или объектные файлы, я хочу поменять версию Qt. Они тратят n дней, и отдают объектные файлы.

Пока никто не просит — никто не заморачивается, Digia ни на кого в суд по этому поводу не подавала и не собирается.

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

Факт в том, что логика тут и не ночевала. Толкование лицензии не по тексту, а по практике попахивает вашей аватаркой.

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

GNU LGPL позволяет компоновать с данной библиотекой или программой программы под любой лицензией, несовместимой с GNU GPL, при условии, что такая программа не является производной от объекта, распространяемого под (L)GPL, кроме как путём компоновки. Главное различие между GPL и LGPL в том, что последняя позволяет и такую компоновку с данным объектом других, которая создаёт производную от данного работу, если лицензия скомпонованных объектов позволяет «модификации для внутреннего использования потребителем и обратную разработку для отладки таких модификаций». То есть LGPL, в отличие от GPL, позволяет связывание библиотеки с любой программой, не обязательно свободной. Спорным является вопрос о том, разрешает ли LGPL статическую компоновку с проприетарным ПО. Явным образом LGPL не запрещает статическую компоновку (этот термин даже не используется в лицензии) и в настоящее время не было прецедентов, доказывающих обратное. В ряде коммерческих программ используется статическая компоновка с библиотеками, распространяемыми под LGPL.

Так что там насчет толкования лицензии по практике, типа не подавала и не собирается? :)

Существенно, что должна существовать возможность связывания этого ПО с новейшей версией программы или библиотеки, охваченной LGPL. Наиболее часто используемый способ реализации такой возможности — использовать «подходящий механизм разделяемых библиотек для связывания». Альтернативой этому является разрешение для статической библиотеки, если предоставлены либо исходный код, либо приспособленные для связывания объектные файлы.

Первое понятно - линкуй динамически. А далее? Исходный код понятно не вариант показывать. В том то и вопрос: я хочу видеть пример закрытых программ, если такие есть, для которых разработчики хоть раз выкладывали объектные файлы.

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

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от eao197

Читая текст лицензии LGPL напрямую, я не вижу явного разрешения статической линковки LGPL библиотек, а также описания процедуры передачи объектных файлов, хотя передачу исходников в той же GPL мы можем увидеть (хоть и не регламентирован срок, кажется). Это дело вкуса, но для себя я буду продолжать считать что это не является разрешенной практикой. И использовать исключительно динамическое связывание, что является на 100% разрешенным механизмом.

Предлагаю завершить :)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Дяденька, вы читать умеете? Вам задали вполне конкретный вопрос по динамической линковке:

- вы пишете программу на Qt, линкуете ее с динамической версией Qt. Дабы выполнить условия LGPL вы должны предоставить мне возможность запустить вашу программу с модифицированной версией Qt;

- я модифицирую ту же самую версию Qt путем расширения списка атрибутов в ряде Qt-шных классов (плюс меняю порядок их следования внутри классов). После чего подсовываю собранные мной so-шки модифицированной версии Qt вашей программе;

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

Не нарушили ли вы LGPL?

Но вы ничего ответить не можете, ни «да», ни «нет». Что заставляет думать, что в тонкостях LGPL мы понимаете чуть меньше, чем ничего.

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

https://www.gnu.org/copyleft/lesser.html#section4

d) Do one of the following:

0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source. 1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

В пункте 0) вижу упоминание исходника, но не объектных файлов:

Convey the Minimal Corresponding >>> Source <<< under the terms of this License, and the Corresponding Application >>> Code <<< in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Ключевое, по видимому, вот это:

(b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

Если я вношу в Qt изменения, которые меняют состав и расположение полей класса, то это уже получается interface-non-compatible версия. Работать с которой ваше приложение не обязано.

Что до вашего сомнения относительно перелинковки отбъектников, то вот эту часть:

and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application

Вполне можно таковой считать: есть соответствующий код приложения в форме, подходящей для перелинковки приложения. Т.е. набор .o файлов или набор .a файлов вполне может быть походящей формой представления кода приложения.

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

Хорошо, я уже устал спорить, я же в этом тексте вижу: Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code, т.е. говорится о некоем минимальном коде со стороны библиотеки и со стороны приложения. Мне кажется это сделано для того чтобы не меняя всё приложение, можно было поменять лишь часть того кода программы, который линкуется с LGPL-библиотекой, которая тоже может поменяться.

Мне вообще кажется что я могу оказаться правым в этом споре, и первый пункт вообще не про статическую линковку, а лишь обыгрывает случай когда interface-compatibility нарушается. А если не нарушается, то действует второй пункт.

I-Love-Microsoft ★★★★★
()
Последнее исправление: I-Love-Microsoft (всего исправлений: 1)
Ответ на: комментарий от fluorite

Хорошо, сдаюсь, я проиграл :)

Раз этот FAQ прямо на сайте gnu.org то нет оснований ему не верить. Эту ссылку надо было поместить в первых постах этой темы... Хотя из самого текста лицензии всё это нифига не следует (лично мне так кажется).

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

В пункте 0) вижу упоминание исходника, но не объектных файлов:

Когда я выше писал, что лицензии ГНУ написаны просто и понятно, достаточно их просто почитать — я имел в виду, что прочитать надо осилить целиком и по порядку — там, как и в любом порядочном документе, есть такая секция — называется «определения».

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

То есть LGPL, в отличие от GPL, позволяет связывание библиотеки с любой программой, не обязательно свободной. Спорным является вопрос о том, разрешает ли LGPL статическую компоновку с проприетарным ПО.

Что это за цитата, зачем вы ее сюда притащили без ссылки? Это из Википедии что ли? Вы что, не знаете, что википедики брешут?

Исходный код понятно не вариант показывать.

Вопрос не имеющий отношения к делу: а кстати, почему? Из письма ОПа такого условия задачи не следует.

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

ваша программа, вполне ожидаемо, начнет падать, т.к. изменилось распложение полей в классах, а так же размеры самих классов.
Не нарушили ли вы LGPL?
Но вы ничего ответить не можете, ни «да», ни «нет».

Прикольный тест на дурака, но пардон — зачем вы сами на него ниже и отвечаете?

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

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

Так что мне самому было интересно.

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

eao197 Не ниже, а выше даже ;)

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

Отсюда и моя догадка что пункт 4/D/0 относится к созданию некоей прослойки, которая обыгрывает эту ситуацию. И если бы не ссылка на официальный FAQ я бы думал что к статической линковке это никак не относится...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Xenius

грешно

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

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

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

Вот Qt - да там невозможно создать минимальную прослойку чтобы выполнить LGPL 4/D/0 ибо Qt «размазывается равномерно» и чтобы пользователь не ломал линковку с модификациями то эту прослойку типа надо публиковать.

И что же делать? Если не совместим интерфейс то программа просто не обязана работать и всё? Где это написано?

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

Мне казалось так: чел пишет программу например с Qt. Если он внес в Qt изменения то он публикует код этих изменений. А кто хочет подменить библиотеку к этой программе должен учитывать эти изменения (особенно если они нарушили интерфейс).

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

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от eao197

Может для тех, кто использовал LGPL либы и внимательно разбирался с текстом LGPL, это и тест для дурака.

Да ну что вы, при чем здесь GNU Lesser GPL? Ваш пример прекрасен именно тем, что не требует для ответа ничего, кроме здравого смысла.

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

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

Если не совместим интерфейс то программа просто не обязана работать и всё?

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

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

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

Здравый смысл и юридические формулировки — это несколько разные вещи :)

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

eao197 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

был уверен что хорошо понимаю причины и цели создания LGPL

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

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

Что такое эти ваши «закрытые программы»? Программы, написанные не для широкого, но для закрытого пользования? Или вы хотите сказать «несвободные программы»?

Если первое (да и вообще), то обратите внимание, что GNU (L)GPL (и авторское лево вообще) совершенно не требует, чтоб всякий, кто доработал или изменил программу на ее уловиях, что-либо публиковал для всеобщего пользования. Более того, лицензия, что требовала бы такое, была бы несвободной — слишком обременительное требование.

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

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

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

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

Если первое (да и вообще), то обратите внимание, что GNU (L)GPL (и авторское лево вообще) совершенно не требует, чтоб всякий, кто доработал или изменил программу на ее уловиях, что-либо публиковал для всеобщего пользования. Более того, лицензия, что требовала бы такое, была бы несвободной — слишком обременительное требование.

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

И таки да, поэтому многие считают GPL слишком обременительной.

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

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

Так ведь речь-то о не свободной программе.

eao197 ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Вообще странное требование LGPL, мне оно непонятно... Зачем кому-то надо подменять?

«Зачем» — это другой вопрос (и самый очевидный ответ на него: чтобы иметь возможность использовать несвободную программу с удобной вам редакцией свободной библиотеки).

Принципиально здесь то, что если свободная программа сама по себе сохраняет за вами право изучать и изменять ее под ваши нужды и распространять изменения, то когда она же связана с несвободной программой, вы внезапно такого права можете оказаться быть лишены. По причинам технического свойства: исходников вам не дали, например; так и по причинам юридического свойства — насколько я понимаю, в ряде юрисдикций копираст вполне может вам запретить запускать вашу копию программы в другом окружении (с другими библиотеками) и отлаживать ее. А может еще комбо применить — поставить программу вместе с компьютером, полноценный доступ к которому «из коробки» невозможен, и запретить вам доступ получать — это называется тивоизацией.

Вот для предотвращения всего этого безобразия и используется слабое авторское лево.

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

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

Да.

всякий, кто доработал или изменил программу, находящуюся под GPL, должен опубликовать свои модификации как только он делает доступной для кого-либо свою версию.

Нет. Соответствующие исходные тексты он обязан передать только тому, кто получил программу в об’ектной форме. Публиковать их не обязательно. То есть если об’ектная форма публикуется, должна быть опубликована и исходная, если нет — то нет.

Товарищ Любитель Микрософта выше писал о каких-то «закрытых программах» (под чем можно понимать программы закрытого пользования — те, что не для раздачи или продажи всем желающим), поэтому я и посчитал нужным напомнить ему эту прописную истину.

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

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

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

Так ведь речь-то о не свободной программе.

Я не понимаю, что вы хотите сказать. Что это несвободная лицензия «должна предоставлять какую-то защиту от таких модификаций LGPL-ных библиотек, после которых линковка либо невозможна, либо приводит к неработоспособному коду»?

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

Я не понимаю, что вы хотите сказать.

Я о том, что если Любитель Майкрософта написал какую-то софтину и слинковал ее динамически с Qt (пользуясь LGPL), то Любитель Майкрософта не нарушит LGPL если я подсуну ему свою версию Qt, с которой он не сможет нормально работать.

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

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

Нет. Соответствующие исходные тексты он обязан передать только тому, кто получил программу в об’ектной форме. Публиковать их не обязательно. То есть если об’ектная форма публикуется, должна быть опубликована и исходная, если нет — то нет.

Вроде как не все так просто. Если правильно понимаю, то GPLv2 позволяла так делать. Т.е. если кто-то взял GPL-ную софтину, модифицировал и использует у себя на серверах, обслуживая кучу народа (но никто из них не загружает софтину себе), то с GPLv2 это было легально. А вот GPLv3 вроде как запрещает такое использование.

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

Если правильно понимаю

Увы, неправильно.

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

Вы путаете GNU GPLv3 с Affero GPLv1 или GNU Affero GPLv3.

Плюс, обратите внимание, что я ничего не говорил, про использование на серверах, что обслуживают кучу народа. Даже при (GNU) Affero GPL есть масса случаев, когда вам не нужно ничего публиковать.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 2)
Ответ на: комментарий от I-Love-Microsoft

Исходный код понятно не вариант показывать.

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

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

Вы путаете

Походу, я перепутал с тивоизацией.

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

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

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

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

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

То есть, свободную программу можно распространять без исходного кода?

использовать и изменять

распространять

«Л» — логика

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

распространение - это частный пример использования

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.