LINUX.ORG.RU

Знатокам AGPL


0

2

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

2. Если ответ на первый вопрос ДА.

Есть либа Wurfl, которая определяет мобильные девайсы (размеры экрана итп) по юзер-агенту браузера. Хочу юзать ее в коммерческом веб-приложении, но у либы лицензия Affero GPL, что абсолютно несовместимо с коммерческим проектом.

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

Теперь вопрос. Какие способы проксирования не будут считаться «использованием» в терминах AGPL?

Какую технологию быстрее всего и эффективно по производительности реализовать под JVM?

★★★★☆

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

Из нормальных опенсорсных баз знаю только эту https://github.com/tobie/ua-parser . Они в принципе планируют вытаскивать правила в отдельный реп, и там можно попробовать добить разрешения. Сами девайсы вроде приемлимо детектят.

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

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

ТОЛЬКО так.

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

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

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

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

убогие телефоны (=фичерфоны) могут ниасилить жс. А они - основные девайсы ЦА

та же Nokia Asha - там даже CSS2 не полностью представлен

я сейчас пару прототипов написал на Bootstrap3, теперь мучаюсь: на фичерфонах ничерта не работает

похоже, придется пилить кроме нативных, еще и два вкуса html-клиентов: «modern HTML» и «совместимость с фичерфонами»

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

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

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

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

ТОЛЬКО так.

Как то так

client


.......
while(1){


    send(sock, message, sizeof(message), 0); // отправка сообщения на сервер
    int bytes_read = 0;
    printf("Ожидание сообщения\n");
    bytes_read = recv(sock, buf, sizeof(message), 0);
    printf("Получено %d bytes\tСообщение: %s\n", bytes_read, buf); // прием сообщения от сервера
    
 
}
    

.....

server


.....

while(1)
        {
            printf("Ожидаем сообщение...\n");
 
 
            bytes_read = recv(sock, buf, 2048, 0); // принимаем сообщение от клиента
            if(bytes_read <= 0) break;
            printf("Получено %d bytes\tСообщение: %s\n", bytes_read, buf);
            printf("Отправляю принятое сообщение клиенту\n");
            send(sock, buf, bytes_read, 0); // отправляем принятое сообщение клиенту
        }
    
        close(sock);
.....

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

+ многопоточность на клиенте (запрашивающем данные)

+ многопоточность на сервере (отдающем данные)

+ более 1 клиента

+ более 1 сервера

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

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

webview, в нем открывается сайт. Экраны обновляются релоадом страницы. Modern-вариант html юзает бутстрап и прочую адаптивную верстку, Legacy-вариант юзает quirks-mode или как там говнобраузеры назвают свой режим недо-HTML и недо-CSS2.

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

да откуда же вы такие мудаки беретесь? лишь бы урвать. Пишите сами либу, блеа. Или открывайте продукт под GPL.

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

+ неблокирующий многопоточный READ на сервере (пока БД/файл читается, обрабатывающий тред пошел дальше, а как I/O отработало - вызывается коллбэк)

+ бинарное сжатие объектов (сервер, в общем неоптимизированном случае, будет выплевывать объекты, ну или по крайней мере филды нефиксированной длины, а на клиенте они должны автоматически разжиматься на прокси, вот для этого нужно нечто thrift-подобное)

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

Блджат... серьезно у вас там... А коммерческую лицензию на WURFL купить пробовали или там цену заломили?

Есть еще яндексовская определялка http://api.yandex.ru/detector/doc/dg/concepts/detector-request.xml . Можно еще прокешировать запросы.

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

Опять горыныч коммунистов объелся.

Vit ★★★★★
()

Есть идея написать открытую (удовлетворяющую условиям AGPL) обертку, которая уже будет проксировать через себя вызовы в коммерческое приложение

http://www.gnu.org/licenses/gpl-faq.html#GPLWrapper:

Тот факт, что несвободный модуль А соединяется с модулем В, распространяемым по GPL, только через модуль Б, распространяемый по лицензии X11, с точки зрения закона значения не имеет; значение имеет тот факт, что модуль В включается в целое

GPL и X11 можно заменить на AGPL, суть не меняется: модуль В включается в целое.

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

в такой трактовке на территории России, США и Германии слиы не имеет. Лицензией легально покрывается только линковка, а у меня не линковка.

stevejobs ★★★★☆
() автор топика

Как на счёт спросить в FSF?

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

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