Версия для Linux не работает нигде кроме Ubuntu и Ubuntu-based
Перепробовал из любопытства десяток разных линуксов - нигде авторизация не проходит. Под Ubuntu и основанных на ней дистрибутивах всё работает. Почему так?
$ sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt
Сработало. Спасибо за решение!
надо собирать с родной библиотекой libcurl
А можно ли собрать cli-версию?
Проблема в том, что curl детектирует путь во время конфигура
if(CURL_CA_BUNDLE_AUTODETECT)
set(SEARCH_CA_BUNDLE_PATHS
/etc/ssl/certs/ca-certificates.crt
/etc/pki/tls/certs/ca-bundle.crt
/usr/share/ssl/certs/ca-bundle.crt
/usr/local/share/certs/ca-root-nss.crt
/etc/ssl/cert.pem)
foreach(SEARCH_CA_BUNDLE_PATH ${SEARCH_CA_BUNDLE_PATHS})
if(EXISTS "${SEARCH_CA_BUNDLE_PATH}")
message(STATUS "Found CA bundle: ${SEARCH_CA_BUNDLE_PATH}")
set(CURL_CA_BUNDLE "${SEARCH_CA_BUNDLE_PATH}")
set(CURL_CA_BUNDLE_SET TRUE CACHE BOOL "Path to the CA bundle has been set")
break()
endif()
endforeach()
endif()
А надо бы внести это в код и перебирать там. Иначе статически не слинкуеш так, чтоб работало везде. А динамически нельзя линковать т.к. везде разные версии. Или тащить динамическую с собой аля flatpak/snap/appimage.
@lieff проблема в том что публика, которая вывалила сюда в гитхаб код ICQ, нашла время и силы залатать код glfw и qt неизвестными изменениями и совершенно не озаботилась сделать libcurl функционирующей на всех вариантах Linux либо путём заплаты либо динамическим подключением системной библиотеки curl.
Нельзя системную динамически подключать, они разные на разных дистрах и можно краш спокойно поймать. Надо именно что латать статическую сборку libcurl, и хорошо бы в апстрим. Это же логично: собираеш шаред для реюза во всех прогах в системе - значит достаточно в конфигуре выбрать один вариант из системы; собираеш статическую версию - значит хз где она будет работать, не обязательно в этой системе, нужен этот перебор в коде. Вот хорошо бы апстрим версия так бы переключалась.
@lieff аналогично, нельзя поставлять статическую если там закодирован специфический адрес которого может не быть в других системах. и ещё раз: проблема в том что публика, которая вывалила сюда в гитхаб код ICQ не позаботилась о сборке всех компонентов или из системы или из известных исходников.
Ну так о том и речь, в статической надо перебирать все те адреса не в конфигуре, а в коде. Так оно на любой системе будет рассчитано на то-же, на что рассчитан конфигур.