LINUX.ORG.RU
ФорумTalks

«уязвимость» в GPL 3?

 ,


0

1

собственно возник вопрос по GPL: в лицензии сказано, цитирую:

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

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

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

Данное понятие слишком мутное и может приводить вот к каким проблемам: некто(допустим, гугл) берёт исходники программы под GPL, как пример — ядро линукс и компилирует их, с внесением изменений, проприетарным компилятором языка Х(некоторого языка, совместимого с языком исходников, в данном случае, С/С++), возможно, даже находящемся в облаке. Если язык Х разработан гуглом и для него доступен только один единственный компилятор и тот проприетарный и в облаке, фактически, программа становится несвободной, хотя при этом гугл и предоставляет исходники с изменениями.

★★★★★

Последнее исправление: next_time (всего исправлений: 1)

Если будешь писать Столлману то обрати его внимание на этот новый компилятор... Как, блин, его? Шланг? Ну БСДшники на него переходят.
В качестве одного из преимуществ неоднократно указывалась возможность писать под этот компилятор расширения. В том числе и проприетарные.
Как раз то, о чём ты говоришь.
Или ты думаешь на шланг плюются лишь потому что он не GCC?
Вовсе нет.

Stahl ★★☆
()

ядро линукс

С/С++

Ты автоматически идёшь нафиг за незнание матчасти.

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

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

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

«A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work.»

The “System Libraries” of an executable work include anything, other than the work as a whole, that... ...or a compiler used to produce the work, or an object code interpreter used to run it.

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

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

Ты автоматически идёшь нафиг за незнание матчасти.

вы не знаете, что ядро линукса компилится gcc и шлангом и оба поддерживают как С, так и С++, и в обоих режимах ядро может быть скомпилировано?

И что? Компилятор же доступен.

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

next_time ★★★★★
() автор топика

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

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

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

для внесения в него модификаций.

this.

om-nom-nimouse ★★
()

Не было печали — лицензии писали...

beastie ★★★★★
()

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

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

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

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

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от CYB3R

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

next_time ★★★★★
() автор топика
Ответ на: комментарий от om-nom-nimouse

this.

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

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

А из текста лично в моём понимании следует.

Кстати, это тоже косяк. Ибо в понимании судьи может внезапно оказаться иначе.

что исходной формой является изначальная.

такие вещи следовало бы прописать в лицензии явно

next_time ★★★★★
() автор топика

Исходный код определяется чем, что его пишет человек. К примеру, есть код на Protobuf foo.proto, из которого генерируется foo.cpp. При этом именно foo.proto является исходником и если он изначально был под GPL, то и производный от него код тоже должен быть под GPL. foo.cpp в данном случае продукт компиляции, и попытка публикации его вместо foo.proto будет нарушением лицензии, даже если это не повлияет на результат сборки. Обьяснение этому простое, если через N лет нужно будет добавить функционал, исправить ошибку или спортировать под ещё несуществующую платформу, то это должно делаться именно в исходном коде.

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

Исходный код определяется чем, что его пишет человек.

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

next_time ★★★★★
() автор топика

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

Английским же по белому написано: «предпочтительную форму произведения для внесения в него модификаций». :)

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

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

Но вы недочитали: "“Installation Information” for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work".

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

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

1)для внесения в него модификаций

я спросил для кого, а не для чего

2)то пользователи могут потребовать доступ к компилятору для пересборки.

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

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

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

Да. Но, как я только что сказал, если оригинальные исходники под GPLv3, то могут потребовать компилятор вашего асма. Кроме того - это абсолютно нереалистичный сценарий. Так нельзя вести серьёзную разработку. Только попробовать нагадить из принципа, но скорее всего на такого тролля просто болт забьют, поскольку ничего полезного он на своём асме не наваяет (сложно/долго). А если наваяет и будет полезно, то спортируют в оригинал.

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

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

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

Только попробовать нагадить из принципа

о том и речь

на такого тролля просто болт забьют

если только это не разработчик оборудования, скажем маршрутизаторов или телефонов

то могут потребовать компилятор вашего асма

могут. но только не его исходники. а компилер накомпилировать что угодно может.

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

я спросил для кого, а не для чего

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

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

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

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

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

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

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

Я не понял. А сейчас что мешает? Перелопатить исходники ядра не просто. Наличие у вас компилятора не помогает. Для параноиков есть сборки, делающиеся за пределами гугла.

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

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

если только это не разработчик оборудования, скажем маршрутизаторов или телефонов

Никто так не будет разрабатывать в реале. Не обижайтесь, но такое всерьёз может задумать только прыщавый школьник. Поскольку в Linux допустимы проприетарные модули и пропритераные программы в юзерленде, то любой разработчик сможет вести разработку, не нарушая GPL и не отдавая свои куски кода.

А если уж надо быть суперзакрытым, то можно или изначалько купить пропритераную систему или использовать систему с BSD-лицензией, вроде FreeBSD, как, вероятно, поступила Sony, при разработке PS4.

Я уж не говорю о том, что ядро Linux застряло на GPLv2, где тивоизация цветёт и пахнет, и выкрутасов в вашем стиле вообще не надо.

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

могут. но только не его исходники. а компилер накомпилировать что угодно может.

Да по фиг. Если он настолько будет нужен - сделают открытую реализацию. Компилятор асма, прямо скажем, не бином Ньютона по сложности. :)

atrus ★★★★★
()

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

Неправда. Есть немало примеров свободных программ на несвободных программных платформах.

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

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

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

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

Dendy ★★★★★
()

Да, есть такой момент. Можно писать программу завязанную на чем-то (даже косвенно или поверхностно) так, что она будет бесполезна в руках смертных и будет мега-полезна в руках «богов». Это не зависит от лицензии программы и вообще никак не лечится. Взять тот же GNU/Linux в руках смертных этот набор неюзабелен (даже по мануалу, даже убунту), а в руках ИТ-недоспециалиста уже типа ОС, в руках специалиста ОС надо пилить и пилить до вменяемого состояния. И все это стоит денег. Денег.

Другой пример из жизни. Допустим у нас есть классическая мультизвенная система: сервер, БД, клиент. Сервер и БД могут иметь открытый код, клиент же может быть закрыт. Вот так Столлман позволяет создавать замки (опенсорс) и ключи к ним (закрытый код). Ключи платны :)

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

Я уж не говорю о том, что ядро Linux застряло на GPLv2, где тивоизация цветёт и пахнет, и выкрутасов в вашем стиле вообще не надо.

Ядро это не чистый GPLv2. Линус пошел на этот шаг (позволить делать закрытые модули) явно понимая, что если этого не сделать, то вся ОС это просто увлечение одного гика. Поэтому там идет отдельным пунктом какую часть GPL ядро не учитывает и разрешает. Именно поэтому ядро уже никогда не станет GPLv3, а если и станет, то опять же со своим набором исключений. И все будет точно также как сейчас.

Так что, Столлмана надули по факту, он до сих пор считает линукс открытой ОС, хотя основные положения и концепции GPL были нарушены. Именно поэтому, можно делать чуть ли не все тоже самое как с BSD-системами. Sony мог взять и Linux, но тогда бы пришлось пилить свой компилятор и libc, pthreads, что в 10 раз сложнее. Ибо в этом отношении GPL работает как положено.

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

1. интересно, кому я должен заплатить за то, что настроил арчик?
2. если сервер и БД открыты, клиент открытый другие напишут.

Lincor
()

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

xsektorx ★★★
()

Фигня ваш gpl. WTFPL - истинно свободная лицензия, погуглите.

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

вы не знаете, ядро линукса компилится gcc и шлангом и оба поддерживают как С, так и С++, и в обоих режимах ядро может быть скомпилировано?

и в обоих режимах ядро может быть скомпилировано

щито?

Пробовал собирать ядро с g++?

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

Ядро это не чистый GPLv2.

GPL позволяет добавлять исключения, позволяющие линковать открытый код с закрытым. Добавляется только исходным автором. И пусть в Linux это исключение было оформлено без надлежащего воскуривания текстов GNU GPL, это всё ещё GPLv2. :)

Именно поэтому ядро уже никогда не станет GPLv3

Не по этому. И v3 точно так же допускает исключения.

Так что, Столлмана надули по факту, он до сих пор считает линукс открытой ОС, хотя основные положения и концепции GPL были нарушены.

gNewSense смотрит на вас с удивлением. Не путайте закрытую систему, нарушения и сторонние пропритеарные компоненты, которые в общем случае не обязательны.

Sony мог взять и Linux, но тогда бы пришлось пилить свой компилятор и libc, pthreads, что в 10 раз сложнее.

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

пилить свой компилятор

Знаете, всё-таки прекращайте упорин-форте есть горстями. Вредно. Начните уже читать GPL FAQ что ли... Там ваши вопросы прямым текстом расписаны. Насчёт компилятора, например. И т.д.

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

Сервер и БД могут иметь открытый код, клиент же может быть закрыт. Вот так Столлман позволяет создавать замки (опенсорс) и ключи к ним (закрытый код). Ключи платны :)

Он вообще-то против любых несвободных программ.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от Lincor

1. интересно, кому я должен заплатить за то, что настроил арчик?

Никому. Я же сказал, что если ты типа осилил, то ты заплатил временем. Также делается в других сферах, надо спаять — научился паять или заплати.

2. если сервер и БД открыты, клиент открытый другие напишут.

Лол. Есть такие системы, что клиент ты не напишешь вот так просто. Начать с того, что времени туева туча надо. Плюс, в GPL не сказано, что надо писать идеальные мануалы. Мануала нет, размер клиента на 3 миллиона строк (закрытый) — вперед, с песней, пиши опенсорс :)

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