Skip to content

Fails to build on macOS unless OPENSSL_ROOT_DIR is set #229

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

Closed
kornelski opened this issue Jul 28, 2017 · 16 comments
Closed

Fails to build on macOS unless OPENSSL_ROOT_DIR is set #229

kornelski opened this issue Jul 28, 2017 · 16 comments

Comments

@kornelski
Copy link
Contributor

kornelski commented Jul 28, 2017

Projects that depend on git2-rs fail to build on macOS with openssl from Homebrew (tested 10.13, with libgit2-sys v0.6.12, and libgit2 and libssh2 installed via Homebrew):

-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")

-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.
(…tons of CMake output…)
'libgit2 failed to find libssh2, and SSH support is required', libgit2-sys/build.rs:137:12

$ pkg-config --libs libssh2
-L/usr/local/Cellar/libssh2/1.8.0/lib -lssh2

git2-rs builds fine I export LIBGIT2_SYS_USE_PKG_CONFIG=1. However, it took me a bit of effort to investigate the failure and read the source code to learn that this option exists.
Could you use pkg-config by default?

@alexcrichton
Copy link
Member

Maybe related to https://github.com/alexcrichton/git2-rs/issues/207? The pkg-config for libgit2 is disabled as this is rarely using a released version of libgit2, and breakage of the abi happens between releases.

@kornelski
Copy link
Contributor Author

kornelski commented Jul 29, 2017

Build failure I get is different than the 207 issue.

I've noticed it's probably because it can't find libssl.

Package 'libssl', required by 'libssh2', not found

$ cargo test --all
 Downloading ctest v0.1.4
 Downloading syntex_syntax v0.27.0
 Downloading conduit v0.7.4
 Downloading conduit-git-http-backend v0.7.5
 Downloading civet v0.8.3
 Downloading civet-sys v0.1.4
   Compiling unicode-xid v0.0.3
   Compiling strsim v0.5.2
   Compiling winapi-build v0.1.1
   Compiling gcc v0.3.51
   Compiling winapi v0.2.8
   Compiling libc v0.2.28
   Compiling nom v1.2.4
   Compiling bitflags v0.9.1
   Compiling percent-encoding v1.0.0
   Compiling utf8-ranges v0.1.3
   Compiling log v0.3.8
   Compiling lazy_static v0.2.8
   Compiling matches v0.1.6
   Compiling regex-syntax v0.3.9
   Compiling rustc-serialize v0.3.24
   Compiling pkg-config v0.3.9
   Compiling unicode-normalization v0.1.5
   Compiling cfg-if v0.1.2
   Compiling civet-sys v0.1.4
   Compiling bitflags v0.3.3
   Compiling kernel32-sys v0.2.2
   Compiling memchr v0.1.11
   Compiling rand v0.3.16
   Compiling time v0.1.38
   Compiling unicode-bidi v0.3.4
   Compiling socket2 v0.2.1
   Compiling semver v0.2.3
   Compiling aho-corasick v0.5.3
   Compiling cmake v0.1.24
   Compiling libz-sys v1.0.16
   Compiling curl-sys v0.3.14
   Compiling openssl-sys v0.9.15
   Compiling miniz-sys v0.1.9
   Compiling conduit v0.7.4
   Compiling idna v0.1.4
   Compiling tempdir v0.3.5
   Compiling libgit2-sys v0.6.12 (file:///private/tmp/git2-rs/libgit2-sys)
   Compiling libssh2-sys v0.2.6
   Compiling term v0.2.14
   Compiling thread-id v2.0.0
   Compiling thread_local v0.2.7
   Compiling civet v0.8.3
   Compiling regex v0.1.80
   Compiling flate2 v0.2.19
   Compiling curl v0.4.8
   Compiling url v1.5.1
   Compiling conduit-git-http-backend v0.7.5
   Compiling syntex_syntax v0.27.0
   Compiling docopt v0.6.86
error: failed to run custom build command for `libgit2-sys v0.6.12 (file:///private/tmp/git2-rs/libgit2-sys)`
process didn't exit successfully: `/private/tmp/git2-rs/target/debug/build/libgit2-sys-69c32d8b94aba1b0/build-script-build` (exit code: 101)
--- stdout
running: "cmake" "/private/tmp/git2-rs/libgit2-sys/libgit2" "-DBUILD_SHARED_LIBS=OFF" "-DBUILD_CLAR=OFF" "-DCMAKE_INSTALL_PREFIX=/private/tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out" "-DCMAKE_C_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_C_COMPILER=/usr/bin/cc" "-DCMAKE_CXX_FLAGS= -ffunction-sections -fdata-sections -fPIC -m64" "-DCMAKE_CXX_COMPILER=/usr/bin/c++" "-DCMAKE_BUILD_TYPE=Debug"
-- The C compiler identification is AppleClang 9.0.0.9000022
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found PkgConfig: /usr/local/bin/pkg-config (found version "0.29.2")
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM
-- Performing Test HAVE_STRUCT_STAT_ST_MTIM - Failed
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC
-- Performing Test HAVE_STRUCT_STAT_ST_MTIMESPEC - Success
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC
-- Performing Test HAVE_STRUCT_STAT_MTIME_NSEC - Failed
-- Performing Test HAVE_STRUCT_STAT_NSEC
-- Performing Test HAVE_STRUCT_STAT_NSEC - Success
-- Looking for SSLCreateContext in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Security.framework
-- Looking for SSLCreateContext in /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Security.framework - found
-- Checking for module 'libcurl'
--   Found libcurl, version 7.49.1
-- Could NOT find HTTP_Parser (missing: HTTP_PARSER_INCLUDE_DIR HTTP_PARSER_LIBRARY)
-- http-parser version 2 was not found; using bundled 3rd-party sources.
-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.8")
-- Checking for module 'libssh2'
--   Package 'libssl', required by 'libssh2', not found
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.
-- Found Iconv: -L/usr/lib -liconv
-- Performing Test IS_WALL_SUPPORTED
-- Performing Test IS_WALL_SUPPORTED - Success
-- Performing Test IS_WEXTRA_SUPPORTED
-- Performing Test IS_WEXTRA_SUPPORTED - Success
-- Performing Test IS_WDOCUMENTATION_SUPPORTED
-- Performing Test IS_WDOCUMENTATION_SUPPORTED - Success
-- Performing Test IS_WNO-MISSING-FIELD-INITIALIZERS_SUPPORTED
-- Performing Test IS_WNO-MISSING-FIELD-INITIALIZERS_SUPPORTED - Success
-- Performing Test IS_WSTRICT-ALIASING=2_SUPPORTED
-- Performing Test IS_WSTRICT-ALIASING=2_SUPPORTED - Success
-- Performing Test IS_WSTRICT-PROTOTYPES_SUPPORTED
-- Performing Test IS_WSTRICT-PROTOTYPES_SUPPORTED - Success
-- Performing Test IS_WDECLARATION-AFTER-STATEMENT_SUPPORTED
-- Performing Test IS_WDECLARATION-AFTER-STATEMENT_SUPPORTED - Success
-- Performing Test IS_WNO-UNUSED-CONST-VARIABLE_SUPPORTED
-- Performing Test IS_WNO-UNUSED-CONST-VARIABLE_SUPPORTED - Success
-- Performing Test IS_WNO-UNUSED-FUNCTION_SUPPORTED
-- Performing Test IS_WNO-UNUSED-FUNCTION_SUPPORTED - Success
-- Performing Test IS_WNO-DEPRECATED-DECLARATIONS_SUPPORTED
-- Performing Test IS_WNO-DEPRECATED-DECLARATIONS_SUPPORTED - Success
-- Looking for regcomp_l
-- Looking for regcomp_l - found
-- Looking for futimens
-- Looking for futimens - found
-- Looking for qsort_r
-- Looking for qsort_r - found
-- Looking for qsort_s
-- Looking for qsort_s - not found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/build
running: "cmake" "--build" "." "--target" "install" "--config" "Debug" "--" "-j8"
Scanning dependencies of target git2
[  0%] Building C object CMakeFiles/git2.dir/src/annotated_commit.c.o
[  1%] Building C object CMakeFiles/git2.dir/src/attr.c.o
[  1%] Building C object CMakeFiles/git2.dir/src/attr_file.c.o
[  2%] Building C object CMakeFiles/git2.dir/src/apply.c.o
[  3%] Building C object CMakeFiles/git2.dir/src/attrcache.c.o
[  4%] Building C object CMakeFiles/git2.dir/src/blame.c.o
[  4%] Building C object CMakeFiles/git2.dir/src/blame_git.c.o
[  5%] Building C object CMakeFiles/git2.dir/src/blob.c.o
[  6%] Building C object CMakeFiles/git2.dir/src/branch.c.o
[  7%] Building C object CMakeFiles/git2.dir/src/buf_text.c.o
[  7%] Building C object CMakeFiles/git2.dir/src/buffer.c.o
[  8%] Building C object CMakeFiles/git2.dir/src/cache.c.o
[  9%] Building C object CMakeFiles/git2.dir/src/checkout.c.o
[  9%] Building C object CMakeFiles/git2.dir/src/cherrypick.c.o
[ 11%] Building C object CMakeFiles/git2.dir/src/commit.c.o
[ 11%] Building C object CMakeFiles/git2.dir/src/clone.c.o
[ 12%] Building C object CMakeFiles/git2.dir/src/commit_list.c.o
[ 12%] Building C object CMakeFiles/git2.dir/src/config.c.o
[ 13%] Building C object CMakeFiles/git2.dir/src/config_cache.c.o
[ 14%] Building C object CMakeFiles/git2.dir/src/config_file.c.o
[ 14%] Building C object CMakeFiles/git2.dir/src/crlf.c.o
[ 15%] Building C object CMakeFiles/git2.dir/src/curl_stream.c.o
[ 16%] Building C object CMakeFiles/git2.dir/src/date.c.o
[ 17%] Building C object CMakeFiles/git2.dir/src/delta.c.o
[ 17%] Building C object CMakeFiles/git2.dir/src/describe.c.o
[ 19%] Building C object CMakeFiles/git2.dir/src/diff.c.o
[ 19%] Building C object CMakeFiles/git2.dir/src/diff_driver.c.o
[ 19%] Building C object CMakeFiles/git2.dir/src/diff_file.c.o
[ 19%] Building C object CMakeFiles/git2.dir/src/diff_print.c.o
[ 20%] Building C object CMakeFiles/git2.dir/src/diff_generate.c.o
[ 21%] Building C object CMakeFiles/git2.dir/src/diff_parse.c.o
[ 22%] Building C object CMakeFiles/git2.dir/src/diff_stats.c.o
[ 23%] Building C object CMakeFiles/git2.dir/src/diff_tform.c.o
[ 24%] Building C object CMakeFiles/git2.dir/src/diff_xdiff.c.o
[ 24%] Building C object CMakeFiles/git2.dir/src/errors.c.o
[ 25%] Building C object CMakeFiles/git2.dir/src/fetch.c.o
[ 26%] Building C object CMakeFiles/git2.dir/src/fetchhead.c.o
[ 26%] Building C object CMakeFiles/git2.dir/src/filebuf.c.o
[ 27%] Building C object CMakeFiles/git2.dir/src/filter.c.o
[ 28%] Building C object CMakeFiles/git2.dir/src/fnmatch.c.o
[ 28%] Building C object CMakeFiles/git2.dir/src/global.c.o
[ 30%] Building C object CMakeFiles/git2.dir/src/graph.c.o
[ 30%] Building C object CMakeFiles/git2.dir/src/fileops.c.o
[ 30%] Building C object CMakeFiles/git2.dir/src/hashsig.c.o
[ 31%] Building C object CMakeFiles/git2.dir/src/hash.c.o
[ 32%] Building C object CMakeFiles/git2.dir/src/ident.c.o
[ 33%] Building C object CMakeFiles/git2.dir/src/idxmap.c.o
[ 34%] Building C object CMakeFiles/git2.dir/src/ignore.c.o
[ 34%] Building C object CMakeFiles/git2.dir/src/index.c.o
[ 35%] Building C object CMakeFiles/git2.dir/src/indexer.c.o
[ 36%] Building C object CMakeFiles/git2.dir/src/iterator.c.o
[ 36%] Building C object CMakeFiles/git2.dir/src/merge.c.o
[ 37%] Building C object CMakeFiles/git2.dir/src/merge_driver.c.o
[ 38%] Building C object CMakeFiles/git2.dir/src/merge_file.c.o
[ 39%] Building C object CMakeFiles/git2.dir/src/message.c.o
[ 39%] Building C object CMakeFiles/git2.dir/src/mwindow.c.o
[ 40%] Building C object CMakeFiles/git2.dir/src/netops.c.o
[ 41%] Building C object CMakeFiles/git2.dir/src/notes.c.o
[ 41%] Building C object CMakeFiles/git2.dir/src/object.c.o
[ 42%] Building C object CMakeFiles/git2.dir/src/object_api.c.o
[ 43%] Building C object CMakeFiles/git2.dir/src/odb.c.o
[ 43%] Building C object CMakeFiles/git2.dir/src/odb_loose.c.o
[ 44%] Building C object CMakeFiles/git2.dir/src/odb_mempack.c.o
[ 45%] Building C object CMakeFiles/git2.dir/src/odb_pack.c.o
[ 46%] Building C object CMakeFiles/git2.dir/src/offmap.c.o
[ 46%] Building C object CMakeFiles/git2.dir/src/oid.c.o
[ 47%] Building C object CMakeFiles/git2.dir/src/oidarray.c.o
[ 48%] Building C object CMakeFiles/git2.dir/src/oidmap.c.o
[ 48%] Building C object CMakeFiles/git2.dir/src/openssl_stream.c.o
[ 49%] Building C object CMakeFiles/git2.dir/src/pack-objects.c.o
[ 50%] Building C object CMakeFiles/git2.dir/src/pack.c.o
[ 51%] Building C object CMakeFiles/git2.dir/src/patch.c.o
[ 51%] Building C object CMakeFiles/git2.dir/src/patch_generate.c.o
[ 51%] Building C object CMakeFiles/git2.dir/src/pathspec.c.o
[ 53%] Building C object CMakeFiles/git2.dir/src/path.c.o
[ 53%] Building C object CMakeFiles/git2.dir/src/patch_parse.c.o
[ 54%] Building C object CMakeFiles/git2.dir/src/pool.c.o
[ 55%] Building C object CMakeFiles/git2.dir/src/posix.c.o
[ 56%] Building C object CMakeFiles/git2.dir/src/pqueue.c.o
[ 56%] Building C object CMakeFiles/git2.dir/src/proxy.c.o
[ 57%] Building C object CMakeFiles/git2.dir/src/push.c.o
[ 57%] Building C object CMakeFiles/git2.dir/src/refdb.c.o
[ 58%] Building C object CMakeFiles/git2.dir/src/rebase.c.o
[ 59%] Building C object CMakeFiles/git2.dir/src/refdb_fs.c.o
[ 61%] Building C object CMakeFiles/git2.dir/src/reflog.c.o
[ 61%] Building C object CMakeFiles/git2.dir/src/refs.c.o
[ 61%] Building C object CMakeFiles/git2.dir/src/refspec.c.o
[ 62%] Building C object CMakeFiles/git2.dir/src/remote.c.o
[ 63%] Building C object CMakeFiles/git2.dir/src/repository.c.o
[ 63%] Building C object CMakeFiles/git2.dir/src/reset.c.o
[ 64%] Building C object CMakeFiles/git2.dir/src/revert.c.o
[ 65%] Building C object CMakeFiles/git2.dir/src/revparse.c.o
[ 65%] Building C object CMakeFiles/git2.dir/src/revwalk.c.o
[ 66%] Building C object CMakeFiles/git2.dir/src/settings.c.o
[ 67%] Building C object CMakeFiles/git2.dir/src/sha1_lookup.c.o
[ 68%] Building C object CMakeFiles/git2.dir/src/signature.c.o
[ 68%] Building C object CMakeFiles/git2.dir/src/socket_stream.c.o
[ 69%] Building C object CMakeFiles/git2.dir/src/sortedcache.c.o
[ 70%] Building C object CMakeFiles/git2.dir/src/stash.c.o
[ 70%] Building C object CMakeFiles/git2.dir/src/status.c.o
[ 71%] Building C object CMakeFiles/git2.dir/src/stransport_stream.c.o
[ 72%] Building C object CMakeFiles/git2.dir/src/strmap.c.o
[ 73%] Building C object CMakeFiles/git2.dir/src/submodule.c.o
[ 73%] Building C object CMakeFiles/git2.dir/src/sysdir.c.o
[ 74%] Building C object CMakeFiles/git2.dir/src/tag.c.o
[ 75%] Building C object CMakeFiles/git2.dir/src/thread-utils.c.o
[ 75%] Building C object CMakeFiles/git2.dir/src/tls_stream.c.o
[ 76%] Building C object CMakeFiles/git2.dir/src/trace.c.o
[ 77%] Building C object CMakeFiles/git2.dir/src/transaction.c.o
[ 78%] Building C object CMakeFiles/git2.dir/src/transport.c.o
[ 78%] Building C object CMakeFiles/git2.dir/src/tree-cache.c.o
[ 79%] Building C object CMakeFiles/git2.dir/src/tree.c.o
[ 80%] Building C object CMakeFiles/git2.dir/src/tsort.c.o
[ 80%] Building C object CMakeFiles/git2.dir/src/util.c.o
[ 81%] Building C object CMakeFiles/git2.dir/src/varint.c.o
[ 82%] Building C object CMakeFiles/git2.dir/src/vector.c.o
[ 82%] Building C object CMakeFiles/git2.dir/src/worktree.c.o
[ 83%] Building C object CMakeFiles/git2.dir/src/zstream.c.o
[ 84%] Building C object CMakeFiles/git2.dir/src/transports/auth.c.o
[ 85%] Building C object CMakeFiles/git2.dir/src/transports/auth_negotiate.c.o
[ 85%] Building C object CMakeFiles/git2.dir/src/transports/cred.c.o
[ 86%] Building C object CMakeFiles/git2.dir/src/transports/cred_helpers.c.o
[ 87%] Building C object CMakeFiles/git2.dir/src/transports/git.c.o
[ 87%] Building C object CMakeFiles/git2.dir/src/transports/http.c.o
[ 88%] Building C object CMakeFiles/git2.dir/src/transports/local.c.o
[ 89%] Building C object CMakeFiles/git2.dir/src/transports/smart.c.o
[ 90%] Building C object CMakeFiles/git2.dir/src/transports/smart_pkt.c.o
[ 90%] Building C object CMakeFiles/git2.dir/src/transports/smart_protocol.c.o
[ 91%] Building C object CMakeFiles/git2.dir/src/transports/ssh.c.o
[ 92%] Building C object CMakeFiles/git2.dir/src/transports/winhttp.c.o
[ 92%] Building C object CMakeFiles/git2.dir/src/xdiff/xdiffi.c.o
[ 93%] Building C object CMakeFiles/git2.dir/src/xdiff/xemit.c.o
[ 94%] Building C object CMakeFiles/git2.dir/src/xdiff/xhistogram.c.o
[ 95%] Building C object CMakeFiles/git2.dir/src/xdiff/xmerge.c.o
[ 95%] Building C object CMakeFiles/git2.dir/src/xdiff/xpatience.c.o
[ 96%] Building C object CMakeFiles/git2.dir/src/xdiff/xprepare.c.o
[ 97%] Building C object CMakeFiles/git2.dir/src/xdiff/xutils.c.o
[ 97%] Building C object CMakeFiles/git2.dir/src/unix/map.c.o
[ 98%] Building C object CMakeFiles/git2.dir/src/unix/realpath.c.o
[ 99%] Building C object CMakeFiles/git2.dir/deps/http-parser/http_parser.c.o
[100%] Linking C static library libgit2.a
[100%] Built target git2
Install the project...
-- Install configuration: "Debug"
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/lib/libgit2.a
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/lib/pkgconfig/libgit2.pc
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/signature.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/oid.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/index.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/ignore.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/inttypes.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/attr.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/blame.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/oidarray.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/pack.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/revert.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/version.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/odb.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/status.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/net.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/tag.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/annotated_commit.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/config.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/branch.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/types.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/repository.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/clone.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/global.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/blob.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/cherrypick.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/submodule.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/errors.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/message.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/merge.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/pathspec.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/tree.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/odb_backend.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/graph.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/describe.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/rebase.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/worktree.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/stash.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/remote.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/strarray.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/reflog.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/cred_helpers.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/buffer.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/diff.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/time.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/index.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/config.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/repository.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/openssl.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/merge.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/stream.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/odb_backend.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/remote.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/reflog.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/diff.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/transport.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/hashsig.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/refs.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/filter.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/mempack.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/commit.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/sys/refdb_backend.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/trace.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/common.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/proxy.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/indexer.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/refspec.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/notes.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/transport.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/revwalk.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/patch.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/object.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/checkout.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/revparse.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/refs.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/reset.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/filter.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/transaction.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/stdint.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/commit.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2/refdb.h
-- Installing: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/include/git2.h
cargo:root=/private/tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out

--- stderr
-- Found Security /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/Security.framework
-- Found CoreFoundation /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk/System/Library/Frameworks/CoreFoundation.framework
CMake Warning:
Manually-specified variables were not used by the project:

CMAKE_CXX_COMPILER
CMAKE_CXX_FLAGS

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libgit2.a(winhttp.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: libgit2.a(winhttp.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/lib/libgit2.a(auth_negotiate.c.o) has no symbols
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /tmp/git2-rs/target/debug/build/libgit2-sys-d2a29e51a55d63e3/out/lib/libgit2.a(winhttp.c.o) has no symbols
thread 'main' panicked at 'libgit2 failed to find libssh2, and SSH support is required', libgit2-sys/build.rs:137:12
note: Run with RUST_BACKTRACE=1 for a backtrace.

warning: build failed, waiting for other jobs to finish...
error: build failed

@kornelski
Copy link
Contributor Author

Dupe of alexcrichton/ssh2-rs#28

@justgerd
Copy link

How is that a dupe?

@kornelski
Copy link
Contributor Author

kornelski commented Aug 29, 2017

The cause and fix is the same. Needs OPENSSL_ROOT_DIR set, because Homebrew intentionally made openssl unusable by default.

@talios
Copy link

talios commented Sep 27, 2017

My usage of git2-rs was working fine last week (without setting OPENSSL_ROOT_DIR or anything, following updating to installing High Sierra, I'm now hitting this issue ( both libgit2 and libssh installed via homebrew ).

Has this problem come back again?

@alexcrichton
Copy link
Member

@talios what's the error message you're seeing?

@talios
Copy link

talios commented Sep 28, 2017

@alexcrichton Ewps, should have posted that in first: https://gist.github.com/talios/06a27998000bee4197fe37e6f38903c7

-- Found ZLIB: /usr/lib/libz.dylib (found version "1.2.11")
-- Checking for module 'libssh2'
-- Package 'libssl', required by 'libssh2', not found

$ brew install openssl
Warning: openssl 1.0.2l is already installed

Not exactly sure what I should be looking for here in the C++ stuff.

@kornelski
Copy link
Contributor Author

@talios Yes, this is this bug. Homebrew deliberately breaks detection of openssl to push everyone to migrate away from it.

It could have worked on your older system either because it was old enough to have Apple's openssl, or you've had older version of Homebrew that linked openssl globally.

@cardoe
Copy link

cardoe commented Sep 28, 2017

Something is still up...

$ brew install libssh2 openssl
Warning: libssh2 1.8.0 is already installed
Warning: openssl 1.0.2l is already installed
$ env | grep SYS
LIBGIT2_SYS_USE_PKG_CONFIG=1
$ env | grep openssl
OPENSSL_INCLUDE_DIR=/usr/local/opt/openssl/include
OPENSSL_LIB_DIR=/usr/local/opt/openssl/lib
OPENSSL_ROOT_DIR=/usr/local/opt/openssl
$ cargo install cargo-bitbake
....
thread 'main' panicked at 'libgit2 failed to find libssh2, and SSH support is required', /Users/cardoe/.cargo/registry/src/jiasu.xzqcsaa.nyc.mn-1ecc6299db9ec823/libgit2-sys-0.6.15/build.rs:137:12

@jcreekmore
Copy link

Try sourcing this to get pkgconfig to find openssl:

export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/opt/openssl/lib/pkgconfig"

@kornelski kornelski changed the title Fails to build on macOS unless pkg-config is enabled Fails to build on macOS unless OPENSSL_ROOT_DIR is set Sep 28, 2017
@wavded
Copy link

wavded commented Sep 29, 2017

@jcreekmore that worked for me, had the same issue surface when migrating to High Sierra a couple days ago.

@talios
Copy link

talios commented Oct 1, 2017

@jcreekmore Doing set -x PKG_CONFIG_PATH "$PKG_CONFIG_PATH:/usr/local/opt/openssl/lib/pkgconfig" did the trick for me ( using fish-shell ).

@alexcrichton
Copy link
Member

Recent errors are most likely https://github.com/alexcrichton/git2-rs/issues/257

@sfackler
Copy link
Member

sfackler commented Oct 4, 2017

@pornel what Homebrew change caused this? AFAIK nothing on Homebrew's side has changed in a long time, and Homebrew isn't trying to move people away from OpenSSL.

Apple replaced their old copy of OpenSSL with LibreSSL in High Sierra which may be what confused libgit2.

@kornelski
Copy link
Contributor Author

@sfackler Indeed it hasn't changed for a while. My guess is that it's not fault of High Sierra, but just the person reporting the problem had done brew link openssl --force on the old OS and the upgrade had undone this.

As for OpenSSL being deprecated, I'm referring to being "keg-only", and brew info openssl prints:

This formula is keg-only, which means it was not symlinked into /usr/local,
because Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries.

For compilers to find this software you may need to set:
LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
For pkg-config to find this software you may need to set:
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

arxanas added a commit to arxanas/git-branchless that referenced this issue Apr 15, 2021
Using the `ssh` feature induces a dependency on `openssl`. On my Macbook, this produced the following linking error:

```
  = note: Undefined symbols for architecture x86_64:
            "_OPENSSL_init_ssl", referenced from:
                std::sync::once::Once::call_once::_$u7b$$u7b$closure$u7d$$u7d$::he73245cadb6fb5f7 (.llvm.1763620816825828942) in libopenssl_sys-e129a1c9f9682ba1.rlib(openssl_sys-e129a1c9f9682ba1.openssl_sys.dn7psuzk-cgu.6.rcgu.o)
                core::ops::function::FnOnce::call_once$u7b$$u7b$vtable.shim$u7d$$u7d$::h2d3710fadd6753f9 (.llvm.1763620816825828942) in libopenssl_sys-e129a1c9f9682ba1.rlib(openssl_sys-e129a1c9f9682ba1.openssl_sys.dn7psuzk-cgu.6.rcgu.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
```

I tried the following:

* Running `brew install [email protected]` as per the instructions at https://docs.rs/openssl/0.10.33/openssl/
* Setting the environment variables mentioned in `brew info openssl`
* Setting `LIBGIT2_SYS_USE_PKG_CONFIG=1` as mentioned in rust-lang/git2-rs#229

None of these worked. So I'm disabling the `ssh` feature for now. If `git-branchless` needs the `ssh` feature in the future (for example, if we add a Github integration and want it to pull/push directly), then we'll have to resolve the issue properly.

It's possible my particular issue is due to running Homebrew on a too-old version of macOS, and that it might be resolved by an OS upgrade and re-installing my Homebrew packages.
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

8 participants