LINUX.ORG.RU

В программе применяется функция GNU getline(). Открывать программу под GPL обязательно?

 , ,


0

0

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

В ОС GNU/Linux для этой цели предусмотрено две функции языка Си:

  • getline(). Изначально функция getline() была расширением GNU. Затем она была включена в стандарт POSIX.1-2008.
  • fgets( ... , stdin). Является частью стандрта «ANSI C».

Правильно ли понимаю, что программа, в которой используется указанная функция getline(), должна быть обязательно открыта под лицензией GPL?

Deleted

Если бы так было, под линукс вообще не было бы проприетарщины!

Eddy_Em ☆☆☆☆☆
()

С библиотекой readline путаете (которая не просто прочитать, а с редактированием и прочим блэкджеком).

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

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

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

всякие там патенты и прочая огороженная хрень.

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

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

дать «фору» исследователю во внедрении своего изобретения

В таком — можно. Но не больше трех-пяти лет. А не так, как сейчас: придумал тюбик для зубной пасты, и всю жизнь капусту стрижешь!

Eddy_Em ☆☆☆☆☆
()

что программа, в которой используется указанная функция getline(), должна быть обязательно открыта под лицензией GPL?

С какого перепоя? glibc, вообще-то, под LGPL.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

Что плохого в проприетарных программах?

Огороженность, скрытые баги, возможность внедрения всякой дряни.

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

она тупая, глючная и вообще не нужна.

— основной аргумент против проприетарщины

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

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

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

разве? Кстати, ещё насчет внедрить хрень - посмотри на systemd, который планомерно внедряется по самые гланды, и хрен ты его выпилишь из большинства дистрибутивов. Зато опенсорс, GPL во все поля, йоптыть.

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

Аноним, ты сравниваешь теплое с мягким. Разупорись, пожалуйста.

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

Настоящий опенсорс еще жив (слака, гента). А так, да — большинство дистрибутивов перестали иметь право называться линуксом. Теперь надо говорить "говно-дебиан", "говно-федора" и т.п.

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

До тех пор, пока есть возможность форка - ничего страшного не произошло, и такое ПО с полным правом может называться свободным, даже если оно насаждается тоталитарной рукой $CORPNAME

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

Настоящий опенсорс еще жив (слака, гента).

какой к чёртовой матери настоящий опенсорс? Там абсолютно те же пакеты из абсолютно тех же исходников. И мейнтейнеры такие же дебилы, особенно в генте.

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

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

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

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

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

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

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

а кто помешает мне пользоваться долго?

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

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

Сутью свободного ПО является то, что оно не ущемляет права пользователя делать с ним что угодно (при условиях распространения на тех же условиях)

Это GPL. В случае с BSDL/MIT/etc я могу делать вообще что угодно, при условии что укажу авторов в readme. Это гораздо большая свобода, не находишь?

В случае закрытого ПО я кстати тоже могу делать что угодно, потому что еулы, запрещающие дизассемблирование, противоречат законодательству РФ и идут лесом.

anonymous
()

tl;dr

ещё не написали, что getline() в гнутой реализации - под лицензией LGPL?

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

devl547

Нет, неправильно.

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

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

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

GPL не является единственной альтернативой проприетарщине.

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

Нет, на этот раз анонимус дело говорит.

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

Все верно. А теперь объясни, как то, что ты только что сказал, соотносится с тем, что ты написал в том посте, на который отвечал я?

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

разжую специально для тебя: сутью так называемого «свободного ПО» не является свобода пользователя, несмотря на все вопли штольмана. Сутью «свободного ПО» является самая обыкновенная жадность - что-то типа «и сам не заработаю денег, и другим не дам».

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

А что у нас гпл насчет внешних либ говорит?

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

скопировать её в код программы - нельзя, слинковаться с libc при условии соблюдения лицензии LGPL - можно.

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

Знаю, но GPL — самая лучшая. LGPL — уже не то.

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

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

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

C поправкой на LGPL. Нельзя например запрещать реверсить на предмет где и когда эта закрытая программа вызывает getline и прочее.

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

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

PS: Поправка, если ты используешь проприетарный продукт, в котором используется статически прилинкованная библиотека под BSD-подобной лицензией, что-то поменять в этой библиотеке или слинковать программу с другой версией ты, естественно, не сможешь. Посему, с точки зрения «четырех свобод», BSD-лицензии менее свободны. Однако этот случай лишь наглядно подтверждает, что копилефт лицензии ориентированы на пользователя.

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

Ты правда всё ещё считаешь что GPL лучше?

Да.

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

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

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

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

А что, кто-то еще софт пишет?

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

Знаю

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

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

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

Копилефт лицензии имеют перевес (огромный) в пользу пользователя, всякая EULA максимально ограничивает права пользователя и составляется в пользу правообладателя («зонд»), BSD-like где-то между ними (ближе к копилефт, конечно).

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

PS: перефразирую, чтобы съэкономить время местных юмористов: если зонд очень нужен или практически не натирает, то можно и потерпеть.

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

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

Когда Qt была под GPL выделяли интерфейс в отдельную сущность и вполне себе отдавали код. Это все решаемо было бы зачем.

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

А, прошу прощения, я думал ты об api. Такой подход, с разделением программы на части, не всегда подходит. Можно конечно и через dlopen загружать гплнутую библиотеку, чтобы не линковаться с ней, но я предпочёл бы избежать такого кошмара.

anonymous
()

Спасибо участникам за разъяснения по моему вопросу!

Нашел подробный ответ на свои вопросы в 5, 6 пунктах лицензии LGPL, на основе которой распространяется «GNU C Library».

Cypher

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

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

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

Неожиданно. Примеры подобного часто используемого софта можно? Что-то не припомню, чтобы я активно пользовался какой-нибудь проприетарщиной.

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

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

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