Как скомпилировать libgit2 без HTTPS

Я пытаюсь скомпилировать статическую сборку libgit2 без или с ограничениями, но мне еще не удалось скомпилировать ее без openssl.

До сих пор моя лучшая попытка заключалась в следующем наборе команд:

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ -DBUILD_SHARED_LIBS=OFF -DCMAKE_DISABLE_FIND_PACKAGE_OpenSSL=TRUE
make

Но я получаю следующее:

[ 11%] Building C object CMakeFiles/git2.dir/src/openssl_stream.c.o
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:41: warning: unused parameter 'out' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
                                        ^
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:58: warning: unused parameter 'host' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)
                                                         ^
/Users/raphael/src/github.com/libgit2/libgit2/src/openssl_stream.c:369:76: warning: unused parameter 'port' [-Wunused-parameter]
int git_openssl_stream_new(git_stream **out, const char *host, const char *port)

Затем:

[ 23%] Building C object CMakeFiles/git2.dir/src/hash/hash_generic.c.o
In file included from /Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_generic.c:10:
/Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_generic.h:13:8: error: redefinition of 'git_hash_ctx'
struct git_hash_ctx {
       ^
/Users/raphael/src/github.com/libgit2/libgit2/src/hash/hash_common_crypto.h:15:8: note: previous definition is here
struct git_hash_ctx {
       ^

И многие другие, явно следующие.

Детали среды:

Я использую MacOS X Yosemite, использую Clang или GCC 4.9, и я собираю статически, я пробовал с тегом v0.22.1 и master от 24 января 2015 года.

Я ищу процесс, который можно было бы перенести и на Linux/FreeBSD.


person Raphaël Monrouzeau    schedule 24.01.2015    source источник


Ответы (1)


Предупреждения о потоке openssl не имеют значения; конструктор просто возвращает ошибку, поэтому он не использует переданные параметры. Хорошо бы почистить, но они ничего не делают.

Что касается проблемы переопределения, вы можете найти обходной путь в PR 2820.

person Carlos Martín Nieto    schedule 24.01.2015
comment
Работает хорошо, и обходной путь не нужен в Linux или FreeBSD, спасибо! - person Raphaël Monrouzeau; 25.01.2015