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

Can't add libp2p to project using hunter( libp2p versions available: [] [hunter ** INTERNAL **] Unexpected empty string) #138

Open
Kintawesar opened this issue Apr 25, 2021 · 4 comments

Comments

@Kintawesar
Copy link

  • In manjaro Linux kernel 4.19.187-1-MANJARO
  • cmake 3.20.1
  • gcc 10.2

download HunterGate.cmake,

in main CMakeLists.txt

include("cmake/HunterGate.cmake")

HunterGate(
    URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"
    SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3"
)
    
project(sync_db_cpp LANGUAGES CXX)
hunter_add_package(libp2p)
find_package(libp2p REQUIRED)

then I try to make project using command

cmake -H. -B_builds -DHUNTER_STATUS_DEBUG=ON -DCMAKE_BUILD_TYPE=Release

-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HUNTER_ROOT set using HOME environment variable
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HUNTER_ROOT: /home/dev/.hunter
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Settings (initialize):
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HunterGate done (NO)
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Cache init (YES)
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Single-configuration generator
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Using default cache server
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] List of cache servers:
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] * https://github.com/cpp-pm/hunter-cache
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Settings (finalize):
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HunterGate done (NO)
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Cache init (YES)
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] Variables from HunterGate:
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HUNTER_GATE_ROOT: /home/dev/.hunter
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HUNTER_GATE_VERSION: 0.23.297
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] HUNTER_GATE_SHA1: 3319fe6a3b08090df7df98dee75134d68e2ef5a3
-- [hunter] Calculating Toolchain-SHA1
-- [hunter *** DEBUG *** 2021-04-25T17:05:02] [/home/dev/Projects/sync_db_cpp/_builds/_3rdParty/Hunter/toolchain] > "/usr/bin/cmake" "-DTOOLCHAIN_INFO_FILE=/home/dev/Projects/sync_db_cpp/_builds/_3rdParty/Hunter/toolchain/toolchain.info.NOLF" "-DHUNTER_SELF=/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked" "-GUnix Makefiles" "-H/home/dev/Projects/sync_db_cpp/_builds/_3rdParty/Hunter/toolchain" "-B/home/dev/Projects/sync_db_cpp/_builds/_3rdParty/Hunter/toolchain/_builds" "-DCMAKE_MAKE_PROGRAM=/usr/bin/make" "-DCMAKE_RELEASE_POSTFIX=" "-DCMAKE_DEBUG_POSTFIX=d"
-- The C compiler identification is GNU 10.2.0
-- The CXX compiler identification is GNU 10.2.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /home/dev/Projects/sync_db_cpp/_builds/_3rdParty/Hunter/toolchain/_builds
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] Already exists: /home/dev/.hunter/_Base/3319fe6/020aca2/toolchain.info
-- [hunter] Calculating Config-SHA1
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] Cache data is up-to-date
-- [hunter] HUNTER_ROOT: /home/dev/.hunter
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] HUNTER_TOOLCHAIN_ID_PATH: /home/dev/.hunter/_Base/3319fe6/020aca2
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] HUNTER_CONFIGURATION_TYPES: Release;Debug
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] HUNTER_BUILD_SHARED_LIBS:
-- [hunter] [ Hunter-ID: 3319fe6 | Toolchain-ID: 020aca2 | Config-ID: 65f8faa ]
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] File not found (injected package): /home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/projects/libp2p/hunter.cmake
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] Injected package 'libp2p'
-- [hunter *** DEBUG *** 2021-04-25T17:05:03] libp2p versions available: []

[hunter ** INTERNAL **] Unexpected empty string
[hunter ** INTERNAL **] [Directory:/home/dev/Projects/sync_db_cpp]

------------------------------ ERROR -----------------------------
https://hunter.readthedocs.io/en/latest/reference/errors/error.internal.html

CMake Error at /home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_error_page.cmake:12 (message):
Call Stack (most recent call first):
/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_internal_error.cmake:13 (hunter_error_page)
/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_assert_not_empty_string.cmake:9 (hunter_internal_error)
/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_get_package_sha1.cmake:26 (hunter_assert_not_empty_string)
/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_download.cmake:83 (hunter_get_package_sha1)
/home/dev/.hunter/_Base/Download/Hunter/0.23.297/3319fe6/Unpacked/cmake/modules/hunter_add_package.cmake:53 (hunter_download)
CMakeLists.txt:15 (hunter_add_package)

@akash-siv
Copy link

same here.
do you find a solution?

@Ben3World
Copy link

so do I.
what is the solution?

@zach-r-hughes
Copy link

zach-r-hughes commented Oct 18, 2023

Okay, I think I (might) know what's going wrong here:

"FindOpenSSL.cmake" line ~303

Here, a regex match attempts to extract the version number from "openssl/opensslv.h".
Inside the header, it seraches for:

#define OPEN_SSL_VERSION <value>

Investigating, it appears some versions of OpenSSL (perhaps newer ones), this fails.
In my header, the "OPEN_SSL_VERSION" is defined as a combination of macros.

The regex expects something like this:
#define OPEN_SSL_VERSION 12345

However, it instead encounters this:

# define OPENSSL_VERSION_NUMBER          \
    ( (OPENSSL_VERSION_MAJOR<<28)        \
      |(OPENSSL_VERSION_MINOR<<20)       \
      |(OPENSSL_VERSION_PATCH<<4)        \
      |_OPENSSL_VERSION_PRE_RELEASE )

Consequently, the extracted version number ends up being empty.

(Note: I am using OPENSSL_VERSION_STR "3.1.3")

PS:
I've hack-fixed this locally by modifying the "opensslv.h" header via:

# define OPENSSL_VERSION_NUMBER 0x30100030L // version, in hex value
/*# define OPENSSL_VERSION_NUMBER          \
    ( (OPENSSL_VERSION_MAJOR<<28)        \
      |(OPENSSL_VERSION_MINOR<<20)       \
      |(OPENSSL_VERSION_PATCH<<4)        \
      |_OPENSSL_VERSION_PRE_RELEASE )
*/

... not the best, but it looks like things are building now.

@NikolayBlagoev
Copy link

NikolayBlagoev commented Feb 7, 2024

You need to specify where it can get the version from:

Change your cmake to this:

include("cmake/HunterGate.cmake")

HunterGate(
    URL "https://github.com/cpp-pm/hunter/archive/v0.23.297.tar.gz"
    SHA1 "3319fe6a3b08090df7df98dee75134d68e2ef5a3"
    LOCAL
)
    
project(sync_db_cpp LANGUAGES CXX)
hunter_add_package(libp2p)
find_package(libp2p REQUIRED)

(add the local keyword in HunterGate to specify locally where huntergate can get the packages).

Then add a config.cmake in a Hunter folder, which should be in the same folder as your HunterGate.cmake (so cmake/Hunter/config.cmake for you) and write:

message("Loading CMAKE\n\n\n\n\n\n\n")


hunter_config(
    GTest
    VERSION 1.8.0-hunter-p11
)

hunter_config(sr25519
    URL https://github.com/Warchant/sr25519-crust/archive/1.0.1.tar.gz
    SHA1 3005d79b23b92ff27848c24a7751543a03a2dd13
    )

hunter_config(
    spdlog
    URL https://github.com/gabime/spdlog/archive/v1.4.2.zip
    SHA1 4b10e9aa17f7d568e24f464b48358ab46cb6f39c
)

hunter_config(libp2p
    URL https://github.com/libp2p/cpp-libp2p/archive/dad84a03a9651c7c2bb8a8f17d0e5ea67bd10b4f.zip
    SHA1 022162226f350942f3a4dac599058382b02ab4ef
)

This fixed it for me (might have to play with the hashes a bit, as in the SHA1 value). Also this for me fixed the issue above BUT lead me into another list of issues, which I can't even fix.

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