Сборка libktorrent-2.0.1 - LibGcrypt 1.7.2-beta, но требуется как минимум "1.4.5"
Я пытаюсь собрать KTorrent 5.0.1 для моего Kubuntu 16.10
требует libKTorrent > 1.9.50.
Итак, я собираю libKTorrent 2.0.1
Источники их обоих находятся здесь: http://download.kde.org/stable/ktorrent/5.0/
И я застрял с libKTorrent на следующем:
$ cmake CMakeLists.txt
-- Boost version: 1.57.0
CMake Error at /usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
Could NOT find LibGcrypt: Found unsuitable version "#define GCRYPT_VERSION
"1.7.2-beta".#define GCRYPT_VERSION "1.7.2-beta".#define GCRYPT_VERSION
"1.7.2-beta"", but required is at least "1.4.5" (found /usr/include)
Call Stack (most recent call first):
/usr/share/cmake-3.5/Modules/FindPackageHandleStandardArgs.cmake:386 (_FPHSA_FAILURE_MESSAGE)
cmake/FindLibGcrypt.cmake:108 (find_package_handle_standard_args)
CMakeLists.txt:61 (find_package)
-- Configuring incomplete, errors occurred!
See also "/tmp/libktorrent-2.0.1/CMakeFiles/CMakeOutput.log".
Как я понимаю, у меня более новая версия libgcrypt20-dev, но она не работает. Установка libgcrypt11-dev тоже не помогает. Есть идеи, как заставить ее работать с 1.7.2 или получить правильную версию libgcrypt-dev на Kubuntu?
1 ответ
Ладно, похоже, это проблема скриптов сборки libKTorrent. Он использует cmake's find_package_handle_standard_args()
с регулярными выражениями, которые ожидают только x.y.z
как версия а не x.y.z-beta
или же x.y.z.-alpha1
, И текущая libgcrypt-dev в Ubuntu имеет версию 1.7.2-beta
,
Чтобы решить эту проблему, необходимо изменить подстроки"^.*GCRYPT_VERSION[ ]+\"([0-9]).([0-9]).([0-9])\".*$"
в"^.*GCRYPT_VERSION[ ]+\"([0-9]).([0-9]).([0-9]).*\".*$"
в libktorrent-2.0.1/cmake/FindLibGcrypt.cmake