LINUX.ORG.RU
ФорумTalks

Лицензия, запрещающая распространение софта в бинарном виде

 , ,


0

3

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

Есть такое в готовом виде?

Перемещено leave из development

Ответ на: комментарий от Nietzsche

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

А, ну так еще ладно... Хотя тоже тот еще фашизм

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

Я уже отписал выше своё мнение о несвободности бинарей (да, ты хочешь от меня добиться четких правовых терминов, но я тебе их сейчас не дам, и не факт, что позже дам). Коротко - их труднее анализировать. Анонимус несколькими постами выше хорошо написал:

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

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

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

Для этого не требуется выдумывать лицензию с сомнительными условиями.

Предлаю еще другие направления твоей, ограничивающей свободу, мысли: требовать от пользователя квалификации программиста\админа, запрещать использовать ПО в рамках военных исследований\технологий, чистота помыслов и определенные религиозные\антирелигиозные воззрения пользователя :)

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

Чтобы лучше понять мою идею, достаточно сравнить возможности Mac OS X и iOS. Мак тянет за Xcode определенное окружение, которое позволяет пользоваться macport's и homebrew (что в корне позволяет изменить работу с этой осью), iOS - один монолитный DRM-зонд, который стремится ограничить пользователя и выжать из него побольше денег.

Nietzsche
() автор топика

под свободной GPL-like лицензией, но с оговоркой, что его нельзя распространять в бинарном виде

С этой оговоркой лицензия перестаёт быть свободной, а от несвободного кода стараются держаться подальше - не принимать в пакетные системы (в том числе source based), не использовать в качестве зависимости и не контрибутить. /topic.

slovazap ★★★★★
()

Что б тебе всю жизнь дрова к дисплею на телефонах компилять.

ya-betmen ★★★★★
()

Здорово. В первую очередь предлагаю перевести на эту лицензию йадро и конпелятор.

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

Т. е. никто не мешает составить свои критерии свободности и назвать предложенный вид лицензии — свободной.

Как никто не мешает и говно повидлом называть.

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

Одной из причин слабой распространенности qmail и djbdns считается запрет на распространение бинарников.
(посмотри лицензии указанных продуктов)

Справедливости ради, в 2007-м Бернштейна, наконец, отпустило, и он постепенно передал указанные и кое-какие еще свои программы, в общественное достояние.

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

Насколько я понимаю, позиция GNU насчет распространения бинарей базируется только на следующей фразе:

распространение программ в исполнимом виде необходимо для удобства в установке свободных операционных систем

https://www.gnu.org/philosophy/free-sw.ru.html

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

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

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

Nietzsche
() автор топика
Ответ на: комментарий от Deleted

Для этого не требуется выдумывать лицензию с сомнительными условиями.

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

Предлаю еще другие направления твоей, ограничивающей свободу, мысли: требовать от пользователя квалификации программиста\админа, запрещать использовать ПО в рамках военных исследований\технологий, чистота помыслов и определенные религиозные\антирелигиозные воззрения пользователя :)

Отказываясь понимать происходящие вокруг процессы, человек постепенно лишается свободы. Это касается не только высоких технологий, но и других сфер жизни. Например, в основной своей массе люди не понимают, как работает государство, но они допускаются к выборам его руководителей. Следуя твоей мысли, я должен быть за то, чтобы оставить право выбора только у людей, которые имеют определенную квалификацию (т.е. понимают процессы происходящие в государстве, возможные векторы его развития и пр.). Да, ты прав.

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

Моя позиция - бинарный формат файлов не имеет ничего общего со свободой.

Ну-ну. Для начала- полностью без бинариков вы даже не загрузитесь :) А компилятор чем бутстрапить (мы же собираем его из исходников, так)? Тоже бинариком, эхх.

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

В остальном- хорошо, если исходники на каком-нибудь распространенном я/п и их можно более/менее комфортно собрать имеющимся тулчейном для другой платформы. А если потребуется приложение на брейнфаке под восьмибитовый mips? По факту это будет ограничением использования, т.е. «несвободой».

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

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

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

Короче, флаг вам в руки. Не вы первый, не вы последний.

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

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

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

Eddy_Em>> Вероятность скомпилить бинарник так, чтобы он на любом линуксе запускался, стремится к нулю. Разве что ты жабку какую пользуешь... anonymous> А в чем проблема с нативным (не жабьим) бинарником? В рамках одной архитектуры разумеется. В ядре юзерспейс не ломают же.

Догадываюсь, что у т-ща Эдди там эта дурацкая метонимия — под «любым линуксом» имеется в виду не любой Linux®, а любая поставка (distribution) ГНУ/Линукса.

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

Ну-ну. Для начала- полностью без бинариков вы даже не загрузитесь :) А компилятор чем бутстрапить (мы же собираем его из исходников, так)? Тоже бинариком, эхх.

Ну почему же? Загрузочная запись, написанная вручную в машкодах, запускает микроинтерпретатор Форта, на нём запускается компилятор Форта (уже полнофункциональный), на нём запускается компилятор минимального подмножества Си, необходимого для компиляции компилятора Си. Далее как всегда.

А если потребуется приложение на брейнфаке под восьмибитовый mips?

Если это приложение может распространяться в бинарниках на этом mips'е, значит его можно на нём скомпилировать. Разве нет?

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

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

qmail принимался.

И без этой оговорки появляется возможность писать формально свободный код, а по факту непригодный к использованию. Например, почитай, как скомпилировать gtk3 под windows, или docker. А ведь это широко используемые свободные программы.

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

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

Наивный милый юноша, скажи пожалуйста, что это за софт такой, который 1) может быть написан одним человеком за разумное время и 2) не может быть написан или куплен вместе с автором корпорацией вроде Apple? Это не говоря уже о том, что мало какой эпплоюзер (которому, на минуточку, обещали "just works") будет что-то там собирать.

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

qmail принимался.

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

Ничего общего с идеями нашего товарища Ницше.

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

Ничего общего с идеями нашего товарища Ницше.

Общее в том (IMHO), что и qmail (до передачи в общественное достояние) и идеи нашего товарища подразумевают ограничение свободы. А раз уж "«убийца sendmail’а» так толком и не взлетел", хотя потенциал был, то несбыточные мечты про "сферический в вакууме" код под несвободной лицензией тем паче останутся лишь мечтами.

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

А что с ним? Двоичные сборки gtk3 для windows существуют, например.

Именно это. Есть только бинарные сборки. Нормальной инструкции как скомпилировать не под Unix нету.

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

И что это делает в Development?

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

Nietzsche
() автор топика
Ответ на: комментарий от dexpl

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

Мои цитаты из первой страницы обсуждения:

запублишить код (сферический в вакууме)

Вопрос носит чисто теоретический характер.

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

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

2) не может быть написан или куплен вместе с автором корпорацией вроде Apple?

Это намек на монетизацию за счет двойного лицензирования? Я не против такой идеи.

Это не говоря уже о том, что мало какой эпплоюзер (которому, на минуточку, обещали «just works») будет что-то там собирать.

Отвечу своей цитатой:

Никто не запрещает поставлять build-скрипт вместе с исходниками, который будет тащить за собой в зависимостях компилятор и все необходимое окружение для сборки, если таковое отсутствует на девайсе пользователя.

Иначе говоря, я не предлагаю издеваться над домохозяйками, заставляя их читать маны и проводить сборку каждого пакета в slackware-like стиле.

Nietzsche
() автор топика
Ответ на: комментарий от dexpl

Для протокола: термины не патентуются. Нигде и никем.

Товарищ Zmicier дал хороший ответ по этому вопросу - Лицензия, запрещающая распространение софта в бинарном виде (комментарий)

Поэтому от суперсвободной™ лицензии можно отказаться и называть её просто свободной (исходя из моих личных понятий свободы и свободности).

Nietzsche
() автор топика
Ответ на: комментарий от monk

Нормальной инструкции как скомпилировать не под Unix нету.

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

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

В частности, приведенный пример делается как-то так

/usr/bin/glib-compile-schemas

То есть «установите Linux и скомпилируйте в нём для Windows». Тогда программы для 1С:Предприятие тоже open-source и free software: исходники есть, распространять можно, дорабатывать можно, только платформа для запуска за деньги.

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

««убийца sendmail’а» так толком и не взлетел», хотя потенциал был

Не из-за лицензии. А из-за того, что автор его считал уже идеальным и не хотел прикручивать нужные возможности. Даже SMTP AUTH. djbdns аналогично.

С лицензией проблем не было: в Debian пакет состоял из исходников и скрипта для установки. Ставилось, как и всё остальное, через dpkg -i.

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

Ну почему же? Загрузочная запись, написанная вручную в машкодах, запускает микроинтерпретатор Форта, на нём запускается компилятор Форта (уже полнофункциональный), на нём запускается компилятор минимального подмножества Си, необходимого для компиляции компилятора Си. Далее как всегда.

IMHO, машинный код, написанный вручную на целевой машине ничем принципиально не отличается от скомпилированного на другой и скопированного. И, подозреваю, что интерпретатор форта тоже придётся писать в машинных кодах :)

Если это приложение может распространяться в бинарниках на этом mips'е, значит его можно на нём скомпилировать. Разве нет?

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

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

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

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

Не-не, именно из-за закрепощенности.

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

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

Если вы сомневаетесь, что для Кумейла все, что нужно, написали бы и без Берштейна, то ведь немало чего написали же, правда лишь в виде кучки отдельно гуляющих по Сети патчей, ибо писать и распространять патчи Берштейн посредством авторского права запретить не мог при всем своем желании. Даже те из них, что «ломали» столь обожаемое им межюниксовое «единообразие», то есть, к примеру, устанавливали исполняемости в /usr/bin/ вместо навязываемого Бернштейном /var/qmail/bin/ (sic).

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

Тогда программы для 1С:Предприятие тоже open-source и free software: исходники есть, распространять можно, дорабатывать можно, только платформа для запуска за деньги.

Я не знаю, что там за программы для 1С «Предприятия», но если они удовлетворяют всем критериям (вы перечислили только два), то да — сами по себе они является свободными, вне зависимости от того, свободно ли «Предприятие». (А сколько денег оно там стоит — это вообще другой вопрос.)

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

Хотя, разумеется, нет ничего хорошего в том, что пишут программы, прибитые гвоздями к проприетарщине.

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

Возьми GPL, допиши пункт, назови Nietzsche Public License.

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

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

но если они удовлетворяют всем критериям

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

С 1С немножко хуже — нет никакой лицензии на распространяемые обработки (например, http://helpme1c.ru/izuchenie-buxgalterskix-provodok). При этом обработки всегда распространяются в исходниках и никого ещё не преследовали за их распространение. То есть по факту свободы есть, юридически — неясно.

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

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

С точки зрения GPL отличается. Если написан вручную, то это «исходник», а если скомпилирован из любого другого представления, то «бинарник».

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

сами по себе они является свободными, вне зависимости от того, свободно ли «Предприятие»

То есть, теоретически, можно сделать язык над С/С++ (аналогично Vala и Qt), линковать с исходниками на GPL, распространять бинарники (с защитой от копирования, добавляемую компилятором) и текст программы на этом языке, а компилятор с этого языка не открывать. И это будет соответствовать букве GPL.

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

то им удовлетворяет даже qmail

Сейчас — конечно; раньше не удовлетворял.

С 1С немножко хуже — нет никакой лицензии на распространяемые обработки

Нет лицензии — программа несвободна. И побоку, в каком там виде она распространяется, и уж тем паче наивно апеллировать к тому, что «никого еще не преследовали за их распространение».

На qmail, к слову, тоже не было внятной лицензии, причем намеренно, это было еще одним тараканом^W принципом Бернштейна — т. н. безлицензионные программы. (Прочтя текст по ссылке стоит вспомнить, что в мире есть и другие страны, помимо США.)

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

Нет лицензии — программа несвободна.

В РФ свободна: ГК РФ Статья 1276 даёт право на распространение (включая модификации), ГК РФ Статья 1280 даёт право на использование и модификацию. Поэтому публично выложенная программа без лицензии по законам РФ свободна (в смысле 4 свобод).

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

то им удовлетворяет даже qmail

раньше не удовлетворял.

Какой из 4 свобод не удовлетворял qmail? Нет отдельной свободы «распространять изменённую программу».

monk ★★★★★
()

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

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

теоритически, можно сделать язык над С/С++ (аналогично Vala и Qt), линковать с исходниками на GPL

Не знаком с Vala, но Qt — это никак не «язык», это набор библиотек. Если бы он был несвободен (или более обще — несовместим с GNU GPL), то нет, нельзя было бы основывать свой продукт на нем и на чужой работе под GNU GPL одновременно.

Собственно почему «если» — он был; вы, может быть, вспомните — у KDE были из-за этого проблемы.

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

Qt — это никак не «язык», это набор библиотек

class Counter : public QObject
{
   Q_OBJECT
public:
   Counter() { m_value = 0; }
   int value() const { return m_value; }
public slots:
   void setValue(int value);
signals:
   void valueChanged(int newValue);
private:
   int m_value;
};

Без moc сможешь такое скомпилировать? Представь ситуацию, Qt открыли под GPL, но при этом moc закрытый и платный.

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

Нет отдельной свободы «распространять изменённую программу».

Есть — третья (последняя). Чем вы читаете?

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

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

Нет лицензии — программа несвободна.

В РФ свободна: ГК РФ Статья 1276 даёт право на распространение (включая модификации), ГК РФ Статья 1280 даёт право на использование и модификацию. Поэтому публично выложенная программа без лицензии по законам РФ свободна

Ну все, приехали.

Ну пойдите что-ли отпечатайте на продажу тираж книжек какой-нибудь Донцовой — на них ведь нет лицензии.

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

на них ведь нет лицензии.

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

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

Чем вы читаете?

Есть четыре свободы, который должен иметь каждый:

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

(c) http://wiki.openhealth.ru/xwiki/bin/view/OpenHealth/Rukovodstvo

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

/usr/bin/glib-compile-schemas

Нет. К собственно сборке там относится только часть между строками %prep и %install.

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

Потому что эпл стор и вообще устройства эпл подразумевают, что пользователь не сможет внести изменения в программу, а значит распространяя программу ты не выполняешь условия gpl3, gpl2 - можешь

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