Здравствуйте, Cyberax, Вы писали:
C>Нет. LGPL требует чтобы это можно было сделать, но не обязательно для любой поставки. Ты можешь на своём сайте выложить набор .o-файлов и в документации к статически связанной программе указать, что их можно там скачать. Это выполнит все требования LGPL.
Если так то зачем отдельно обговаривают static linking exception для LGPL?
Здравствуйте, FR, Вы писали:
C>>Нет. LGPL требует чтобы это можно было сделать, но не обязательно для любой поставки. Ты можешь на своём сайте выложить набор .o-файлов и в документации к статически связанной программе указать, что их можно там скачать. Это выполнит все требования LGPL. FR>Если так то зачем отдельно обговаривают static linking exception для LGPL?
Чтобы не требовалось делать и этого. Всё-таки дополнительные проблемы.
Здравствуйте, Cyberax, Вы писали:
FR>>Если так то зачем отдельно обговаривают static linking exception для LGPL? C>Чтобы не требовалось делать и этого. Всё-таки дополнительные проблемы.
Сейчас читаю похоже да ты прав, хотя конечно надо бы юриста специализируещегося на этом расспросить.
Но помню лет восемь назад этого не было, или нас неправильно проконсультировали.
Еще есть интересный вопрос. Допустим есть приложение запакованное py2exe (должно пускатся легко
с флешки). При этом py2exe запоковывает туда все включая dll и pyd, но получившийся exe по
сути простой zip файл, легко открывается к примеру WinRAR'ом или другим подобным архиватором,
получается это не нарушает LGPL?
Здравствуйте, FR, Вы писали:
C>>Чтобы не требовалось делать и этого. Всё-таки дополнительные проблемы. FR>Сейчас читаю похоже да ты прав, хотя конечно надо бы юриста специализируещегося на этом расспросить.
Спрашивай сюда, при желании могу напрячь юриста в головной компании в США.
FR>Но помню лет восемь назад этого не было, или нас неправильно проконсультировали.
Ага.
FR>Еще есть интересный вопрос. Допустим есть приложение запакованное py2exe (должно пускатся легко FR>с флешки). При этом py2exe запоковывает туда все включая dll и pyd, но получившийся exe по FR>сути простой zip файл, легко открывается к примеру WinRAR'ом или другим подобным архиватором, FR>получается это не нарушает LGPL?
Если ты в документации напишешь как его распаковать — не нарушает.
Здравствуйте, Cyberax, Вы писали:
FR>>Сейчас читаю похоже да ты прав, хотя конечно надо бы юриста специализируещегося на этом расспросить. C>Спрашивай сюда, при желании могу напрячь юриста в головной компании в США.
Ну по сути впорос уже задан, про py2exe, правда паковщик там другой но работает полностью аналогично.
FR>>Но помню лет восемь назад этого не было, или нас неправильно проконсультировали. C>Ага.
То есть тогда еще не было такого?
FR>>получается это не нарушает LGPL? C>Если ты в документации напишешь как его распаковать — не нарушает.
Здравствуйте, FR, Вы писали:
FR>>>Но помню лет восемь назад этого не было, или нас неправильно проконсультировали. C>>Ага. FR>То есть тогда еще не было такого?
Нет, вас тогда неправильно проконсультировали.
C>>>Это МОЖНО сделать с LGPL. Всё что от тебя требуется — предоставить по требованию версию с динамическим связыванием. Совсем необязательно всё делать с динамикой. _>>LGPL требует что бы библиотека могла быть заменена при условии сохранения бинарных интерфейсов: C>Нет. LGPL требует чтобы это можно было сделать, но не обязательно для любой поставки. Ты можешь на своём сайте выложить набор .o-файлов и в документации к статически связанной программе указать, что их можно там скачать. Это выполнит все требования LGPL.
А как же требование "в течение времени исполнения использует копию библиотеки, которая уже находится в компьютерной системе пользователя, а не копирует функции библиотеки в исполняемый файл", при статической линковке это невозможно.
_>>Например одна фирма уже попалилась на этом: она распространяла Linux на устройстве, которое работало только с подписанной версией ядра. C>Опять мимо.
Опять мимо. Если железо работает с версией ПО только с определенной MD5 суммой, то это нарушает "надлежащим образом работает с модифицированной версией библиотеки, установленной пользователем, при условии совместимости интерфейсов модифицированной версии и той версии библиотеки, которая использовалась для создания произведения, содержащего части Библиотеки"
_>>Соответственно поскольку статическая линковка на позволяет заменять библиотеку, пользователь не может подменить библиотеку и поэтому распространение ее в таком виде — незаконно. C>Опять мимо.
Опять мимо. Нарушение лицензий использования и в частности LGPL — незаконно.
Cyberax, перед тем как отвечать прочитай пожалуйста еще раз приведенную цитату из LGPL.
FR>Еще есть интересный вопрос. Допустим есть приложение запакованное py2exe (должно пускатся легко FR>с флешки). При этом py2exe запоковывает туда все включая dll и pyd, но получившийся exe по FR>сути простой zip файл, легко открывается к примеру WinRAR'ом или другим подобным архиватором, FR>получается это не нарушает LGPL?
Распространять ПО под LGPL в архивах можно, поскольку в все равно выполнение идет в распакованном виде с динамическим связыванием, независимо от того кто распаковал — пользователь, WinRAR или сама операционная система.
Здравствуйте, astral_marine, Вы писали:
_>Распространять ПО под LGPL в архивах можно, поскольку в все равно выполнение идет в распакованном виде с динамическим связыванием, независимо от того кто распаковал — пользователь, WinRAR или сама операционная система.
Тот же py2exe сам напрямую грузит dll из архива в память, без распаковки на диск. С точки зрения того же Process Explorer это монолитное приложение без динамической линковки.
Здравствуйте, astral_marine, Вы писали:
C>>Нет. LGPL требует чтобы это можно было сделать, но не обязательно для любой поставки. Ты можешь на своём сайте выложить набор .o-файлов и в документации к статически связанной программе указать, что их можно там скачать. Это выполнит все требования LGPL. _>А как же требование "в течение времени исполнения использует копию библиотеки, которая уже находится в компьютерной системе пользователя, а не копирует функции библиотеки в исполняемый файл", при статической линковке это невозможно.
См. пункты 6 c и 6 d.
_>>>Например одна фирма уже попалилась на этом: она распространяла Linux на устройстве, которое работало только с подписанной версией ядра. C>>Опять мимо. _>Опять мимо. Если железо работает с версией ПО только с определенной MD5 суммой, то это нарушает "надлежащим образом работает с модифицированной версией библиотеки, установленной пользователем, при условии совместимости интерфейсов модифицированной версии и той версии библиотеки, которая использовалась для создания произведения, содержащего части Библиотеки"
Нет. Это НИЧЕГО не нарушает. Такое поведение называется "Tivoization" по имени компании TiVo. Оно не нарушает ровно ничего — ты МОЖЕШЬ создать свою версию программы, тебя никто не удерживает. Но лицензии LGPLv2.x и GPLv2 не требуют, чтобы ты мог запускать программу на том же устройстве, на котором ты их получил.
Вот [L]GPL v3 этого требуют. Собственно, tivoization и было одним из мотивов их создания.
_>>>Соответственно поскольку статическая линковка на позволяет заменять библиотеку, пользователь не может подменить библиотеку и поэтому распространение ее в таком виде — незаконно. C>>Опять мимо. _>Опять мимо. Нарушение лицензий использования и в частности LGPL — незаконно.
У тебя тут две ошибки:
1) Это не нарушение лицензии (смотри пункты 6 c и 6 d в http://www.gnu.org/licenses/lgpl-2.1.html#SEC3)
2) LGPL не является лицензией на использование, а является лицензией на распространение.
_>Cyberax, перед тем как отвечать прочитай пожалуйста еще раз приведенную цитату из LGPL.
Я лицензии LGPL и GPL построчно разбирал с юристами, специализирующимися на них
Здравствуйте, vadimcher, Вы писали:
V>Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
V>Вопросы простые: V>1) Использует ли кто Qt или GTK+ или и то, и другое, или что-то еще для GUI. V>2) Что проще для изучения, с чем проще начать (просто взять и без особых проблем начать писать, типа как Delphi в свое время), я знаю, что для GTK+ есть специальные редакторы, один из них идет в комплекте, для Qt -- не знаю. Может кто подскажет, как проще использовать. Короче, что более удобно для изучения и использования. V>3) Может у кого есть информация, что более эффективно? Знаю, что GTK+ жрет меньше памяти. Больше -- не в курсе. Или может даже есть мнение за чем будущее? (Может за чем-то еще, кроме этих двух, а сюда не стоит и соваться?) Вроде как Nokia выбрала Qt, Motorola -- GTK+. С лицензией вроде как у GTK+ попроще.
V>Короче, что учить и использовать (или вообще что-то другое).
V>Спасибо.
Здравствуйте, Mr.Cat, Вы писали: MC>ИМХО, gtk попроще, ибо фич там поменьше. Но для гуя без извращенных требований — вполне себе неплох. MC>Однако под винду почему-то не так много gtk-приложений (и то это по большей части порты из линупсов).
Я как-то пробовал под виндой с ним разобратся... ниасилил.
А вот с Qt — с полпинка.
Здравствуйте, Tonal-, Вы писали:
T>Я как-то пробовал под виндой с ним разобратся... ниасилил. T>А вот с Qt — с полпинка.
T>Может сейчас положение и улучшелось.
Здравствуйте, vadimcher, Вы писали:
V>Задаю здесь, а не в Средства разработки или, не дай Бог, Священные войны, т.к. интересует именно приложение к C++, более того, под Win32.
В принципе, все уже сказали, но я дополню, как человек, уже почти 2 года пищущий кастомный интерфейс на GTK+.
Во-первых GTK+ написана на С и использует сложную и слабо поддающуюся осмыслению систему классов GObject. Т.е. там есть и наследование и абстрактные классы, и даже полифорфизм, но вы задумайтесь и представьте, как это может выглядеть на С. Так вот оно выглядит именно так как вы представили и даже еще хуже. Написать сабкласс для кнопки и перегрузить метод отрисовки — задача копания в исходном коде и скудной документации на день-два, которая в итоге приведет вас к тому, что для того, чтобы самому рисовать кнопку надо делать совсем не так.
Да, есть порты на С++, питон и по-моему даже Руби, но, честно говоря, они на мой взгляд добавляют к приложению еще один сложный и потенциально глючный уровень сложности.
Да, и еще на GTK наложили тяжелый отпечаток долгие годы разработки и тот факт, что это по сути слияние нескольких разных библиотек. Поробуйте-ка на раз-два-три рассказать, в чем отличия между классами GdkImage, GtkImage, GdkPixbuf и GtkPixmap, зная, что всех их можно использовать для загрузки и отображения картинок
Во-вторых, для GTK+ отвратительная документация. Простые вещи описаны неплохо, есть туториалы, и даже есть книга "Foundations of GTK+ development". Но в основном — это документация, автоматически сгенеренная из исходников, без примеров или дополнительных пояснений. И в какой-то момент вам надо разузнать что-то посложнее, чем как повесить картинку на кнопку, вы лезете в документацию и видите там что-то вроде этого: http://library.gnome.org/devel/gtk/stable/GtkContainer.html#GtkContainer-check-resize и со вздохом открываете исходники на несколько тысяч строк.
В-третьих для GTK существует весьма поганая поддержка. Основное коммьюнити — http://gtkforums.com/, где существуют несколько гуру, которые помогают с относительно несложными задачами, и множество вопрошающих.
В общем, это основное. Если у вас есть выбор между GTK и QT, выбирайте QT и не задумывайтесь. Единственный стрёмный момент с QT — это то, что trolltech вроде как купила моторола и если вы хотите разрабатывать серьезный интерфейс для коммерческого приложения, лицензия может обойтись недешево.
Здравствуйте, Corvin, Вы писали: C>В общем, это основное. Если у вас есть выбор между GTK и QT, выбирайте QT и не задумывайтесь. C>Единственный стрёмный момент с QT — это то, что trolltech вроде как купила моторола и если вы C>хотите разрабатывать серьезный интерфейс для коммерческого приложения, лицензия может обойтись недешево.
trolltech купила Nokia (не принципиально, просто уточнил).
А по ссылкам на документацию и правда жутковатая у жтк
пс. Для коммерческого применения недешовые лицензии это нормально, да и либа того стоит. Достойная поделка
Здравствуйте, trdm, Вы писали:
T>пс. Для коммерческого применения недешовые лицензии это нормально, да и либа того стоит. Достойная поделка
Хватит распространять бред. QT бесплатна для коммерческого использования по лицензии LGPL.
Здравствуйте, Corvin, Вы писали:
C>В общем, это основное. Если у вас есть выбор между GTK и QT, выбирайте QT и не задумывайтесь. Единственный стрёмный момент с QT — это то, что trolltech вроде как купила моторола и если вы хотите разрабатывать серьезный интерфейс для коммерческого приложения, лицензия может обойтись недешево.
Хватит распространять бред. QT бесплатна для коммерческого использования по лицензии LGPL.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Corvin, Вы писали:
C>>В общем, это основное. Если у вас есть выбор между GTK и QT, выбирайте QT и не задумывайтесь. Единственный стрёмный момент с QT — это то, что trolltech вроде как купила моторола и если вы хотите разрабатывать серьезный интерфейс для коммерческого приложения, лицензия может обойтись недешево. C>Хватит распространять бред. QT бесплатна для коммерческого использования по лицензии LGPL.
Возможно вы и правы, я не вникал, если честно, особо. Это было решение нашего заказчика, который свой отказ от КуТэ мотивировал таким образом (чтоб ему пусто было!)
Здравствуйте, Corvin, Вы писали:
C>Возможно вы и правы, я не вникал, если честно, особо. Это было решение нашего заказчика, который свой отказ от КуТэ мотивировал таким образом (чтоб ему пусто было!)
Все правильно, два года назад такой бесплатности не было.
Здравствуйте, Cyberax, Вы писали:
C>Здравствуйте, Corvin, Вы писали:
C>>В общем, это основное. Если у вас есть выбор между GTK и QT, выбирайте QT и не задумывайтесь. Единственный стрёмный момент с QT — это то, что trolltech вроде как купила моторола и если вы хотите разрабатывать серьезный интерфейс для коммерческого приложения, лицензия может обойтись недешево. C>Хватит распространять бред. QT бесплатна для коммерческого использования по лицензии LGPL.
И нахрена так грубо? Человек сразу написал, что работает на GTK+ два года, как я понял два года назад (когда у него, или там босса, может быть и стоял выбор) лицензия на коммерческое использование Qt была другая, и сейчас он написал "может обойтись недешево", а не "обойдется недешево", потому как здраво предполагал, что за два года могло что-то поменяться...