Состоялся (https://www.uhub.org/news.php) релиз uHub 0.4.1 (http://www.uhub.org/), кроссплатформенного высокопроизводительного p2p-хаба для сетей Advanced Direct Connect (http://ru.wikipedia.org/wiki/Advanced_Direct_Connect).
Основные отличия (https://raw.github.com/janvidar/uhub/master/ChangeLog) от версии 0.4.0 (http://www.opennet.me/opennews/art.shtml?num=33973):
- Для сборки программы теперь используется cmake (http://ru.wikipedia.org/wiki/CMake) (вместо вручную написанных Makefile-ов).
- Исправлена проблема с чрезмерной загрузкой процессора при использовании SSL.
- Исправлена проблема с определением TLS/SSL handshake.
- Исправлено падение в режиме mod_chat_only.
- Улучшена статистика использования сети (команда !stats).
- Для плагинов теперь используется директория /usr/lib/uhub/ вместо /var/lib/uhub/, что соответствует FHS (Filesystem Hierarchy Standard).
- Улучшен пример скрипта для системы инициализации initscripts и добавлен пример скрипта для upstart.
- Решение проблем с безопасностью клиента путем запрета UCMD (http://www.dcbase.org/wiki/UCMD_-_User_Commands) сообщений от трансляторов.
- Добавлен асинхронный DNS resolver.
- Исправлена сборка в Debian GNU/kFreeBSD.
Напомним, что основным преимуществом данной программы является низкое потребление ресурсов, что позволяет ему обеспечивать связь нескольких тысяч пользователей на полноценном сервере, или же работать в качестве небольшого приватного хаба на встраиваемых устройствах. Программа написана на C. Среди других характеристик uHub можно отметить поддержку IPv6 и простоту настройки.
За активностью разработки проекта можно наблюдать на данной странице (https://github.com/janvidar/uhub/network). Сообщения об ошибках и запросы на реализацию улучшений принимаются в системе трекинга ошибок (https://www.uhub.org/bugs/). Свежие пакеты для Debian, Ubuntu и производных дистрибутивов со стабильной версией программы и ежедневные сборки программы доступны (http://tehnick-8.narod.ru/uhub/ru/) в специальном PPA (https://launchpad.net/~tehnick/+archive/tehnick) на Launchpad.URL: https://www.uhub.org/news.php
Новость: http://www.opennet.me/opennews/art.shtml?num=35269
> вместо вручную написанных Makefile-овА cmake-файлы уже не нужно вручную писать?
Это же опенсорц, вы ничего не понимаете.
У нас фраза "мы бросили трахаться с $чем-то" означает "мы начали трахаться с $чем-то другим"
> Это же опенсорц, вы ничего не понимаете.
> У нас фраза "мы бросили трахаться с $чем-то" означает "мы начали трахаться с $чем-то другим"Можно подумать так происходит только в опенсорц.
CMake используется для генерации Makefile'ов. Ещё того же могут использоваться autotools (./configure).
CMake файлы на порядок выше уровнем чем Makefile. Как C++ и ассемблер.
- На ручном Makefile сборка более-менее сложного приложения - несколько страниц правил сборки отдельных файлов, вызовов gcc -M для определения зависимостей между исходниками, линковки приложения, установки, адового объёма обвязки для всего этого.
- Многое на make вообще нельзя сделать - например, работающий кросс-платформенный поиск зависимостей, проверки окружения и т.д.итого они требуют постоянного изменения - при изменении структуры проекта, добавлению новых исходных файлов, добавлению поддержки новых платформ, да ещё и с большой вероятностью не заработают изкоробки у пользователя, потому что у него библиотеки в /usr/local/lib, а не /usr/lib.
На cmake же это делается парой строк:
FIND_PACKAGE(SDL REQUIRED) # хотим библиотеку SDL
ADD_EXECUTABLE(myapp file1.c file2.c file3.c) # собираем приложение
INSTALL(myapp bin) # устанавливаем в PREFIX/binи не требует поддержки. Более того, даже список файлов можно сделать генерящимся автоматически. Это автоматически умеет генерацию Makefile (причем и GNU- и BSD-make совместимых), проектов для Visual Studio и (кажись) CodeBlocks и чего угодно, работает без модификаций на всех платформах, позволяет сразу разделить release/debug сборки и т.д. и т.п.
CMake не данный момент - самая совершенная система сборки, и ничего удивительного что они перешли именно на неё.
А как с помощью CMake собрать Qt проект в debug режиме?
Также как и в make
И чем тогда CMake лучше?
>И чем тогда CMake лучше?Кроссплатформенностью, один раз написал на cmake и собирай на любой ОС, кроме того, cmake содержит встроенную систему автоматического поиска зависимостей - заголовочных файлов и библиотек.
И прочитай уже матчасть, наконец.
CMake (от англ. cross platform make) — это кроссплатформенная система автоматизации сборки программного обеспечения из исходного кода. CMake не занимается непосредственно сборкой, a лишь генерирует файлы управления сборкой из файлов CMakeLists.txt:Makefile в системах Unix для сборки с помощью make;
файлы projects/workspaces (.dsp/.dsw) в Windows для сборки с помощью Visual C++;
проекты XCode в Mac OS X
у него цветные букаффки
> И чем тогда CMake лучше?Прочитай пост выше.
cmake -DCMAKE_BUILD_TYPE=Debug . && make
этим еще пользуются?
вы удвитесь
жаль только что эти сервера так и не научились до сих пор линковаться друг к другу
Verlihub вроде может (впрочем, не знаю, это его родная функциональность или это какой-то скрипт на Lua).
скрипт на lua, причем нерабочий, а в настоящее время и неподдерживаемый (verlilink)
Оно имеет какие-то преимущества по сравнению с кашалотом?