Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Версия для Linux не работает нигде кроме Ubuntu и Ubuntu-based #53

Open
atolstoy opened this issue Jul 19, 2017 · 9 comments

Comments

@atolstoy
Copy link

Перепробовал из любопытства десяток разных линуксов - нигде авторизация не проходит. Под Ubuntu и основанных на ней дистрибутивах всё работает. Почему так?

@sasokol
Copy link

sasokol commented Feb 15, 2018

$ sudo ln -s /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt

@atolstoy
Copy link
Author

Сработало. Спасибо за решение!

@ykne
Copy link

ykne commented Apr 17, 2018

надо собирать с родной библиотекой libcurl

@Anth0nyME
Copy link

А можно ли собрать cli-версию?

@lieff
Copy link

lieff commented Apr 28, 2018

Проблема в том, что 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.

@ykne
Copy link

ykne commented Apr 28, 2018

@lieff проблема в том что публика, которая вывалила сюда в гитхаб код ICQ, нашла время и силы залатать код glfw и qt неизвестными изменениями и совершенно не озаботилась сделать libcurl функционирующей на всех вариантах Linux либо путём заплаты либо динамическим подключением системной библиотеки curl.

@lieff
Copy link

lieff commented Apr 28, 2018

Нельзя системную динамически подключать, они разные на разных дистрах и можно краш спокойно поймать. Надо именно что латать статическую сборку libcurl, и хорошо бы в апстрим.
Это же логично: собираеш шаред для реюза во всех прогах в системе - значит достаточно в конфигуре выбрать один вариант из системы; собираеш статическую версию - значит хз где она будет работать, не обязательно в этой системе, нужен этот перебор в коде. Вот хорошо бы апстрим версия так бы переключалась.

@ykne
Copy link

ykne commented Apr 28, 2018

@lieff аналогично, нельзя поставлять статическую если там закодирован специфический адрес которого может не быть в других системах.
и ещё раз: проблема в том что публика, которая вывалила сюда в гитхаб код ICQ не позаботилась о сборке всех компонентов или из системы или из известных исходников.

@lieff
Copy link

lieff commented Apr 28, 2018

Ну так о том и речь, в статической надо перебирать все те адреса не в конфигуре, а в коде. Так оно на любой системе будет рассчитано на то-же, на что рассчитан конфигур.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants