arvidn / libtorrent

an efficient feature complete C++ bittorrent implementation
http://libtorrent.org
Other
5.19k stars 994 forks source link

failing to build on Opensuse Tumbleweed #5109

Closed mgaulton closed 4 years ago

mgaulton commented 4 years ago

Please provide the following information

libtorrent version (or branch): master branch

platform/architecture: OpenSuse Tumbleweed x64

compiler and compiler version: gcc version 10.2.1 20200825 [revision c0746a1beb1ba073c7981eb09f55b3d993b32e5c] (SUSE Linux)

please describe what symptom you see, what you would expect to see instead and how to reproduce it.

b2 -v

B2 Version 4.4. OS=LINUX. Copyright 1993-2002 Christopher Seiwald and Perforce Software, Inc. Copyright 2001 David Turner. Copyright 2001-2004 David Abrahams. Copyright 2002-2019 Rene Rivera. Copyright 2003-2015 Vladimir Prus.

DEFAULTS: jobs = 2

server6:/home/testing/libtorrent # ./configure

Checking for boost libraries: checking for boostlib >= 1.58 (105800)... yes checking whether g++ supports C++11 features with -std=c++11... yes checking whether the Boost::System library is available... yes configure: error: Could not find a version of the Boost::System library!

server6:/home/testing/libtorrent/build # cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -G Ninja .. CMake Error at /usr/lib64/cmake/Boost-1.74.0/BoostConfig.cmake:141 (find_package): Could not find a package configuration file provided by "boost_system" (requested version 1.74.0) with any of the following names:

boost_systemConfig.cmake
boost_system-config.cmake

Add the installation prefix of "boost_system" to CMAKE_PREFIX_PATH or set "boost_system_DIR" to a directory containing one of the above files. If "boost_system" provides a separate development package or SDK, be sure it has been installed. Call Stack (most recent call first): /usr/lib64/cmake/Boost-1.74.0/BoostConfig.cmake:258 (boost_find_component) /usr/share/cmake/Modules/FindBoost.cmake:448 (find_package) cmake/Modules/LibtorrentMacros.cmake:43 (find_package) CMakeLists.txt:722 (find_public_dependency)

-- Configuring incomplete, errors occurred! See also "/home/testing/libtorrent/build/CMakeFiles/CMakeOutput.log". See also "/home/testing/libtorrent/build/CMakeFiles/CMakeError.log".

arvidn commented 4 years ago

which version of libtorrent are you building? I imagine it's either 1.2.10 or 2.0

arvidn commented 4 years ago

it seems the fundamental error is that you don't seem to have the boost system library installed.

configure: error: Could not find a version of the Boost::System library!
mgaulton commented 4 years ago

most recent github pull is the build

boost is installed as well as boost-jam. I'll have to see fi i can figure out what other module is required.

On Mon, Sep 7, 2020 at 7:16 PM Arvid Norberg notifications@github.com wrote:

it seems the fundamental error is that you don't seem to have the boost system library installed.

configure: error: Could not find a version of the Boost::System library!

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/arvidn/libtorrent/issues/5109#issuecomment-688537085, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEJRXVGNCXEMWJNKWQKWTLSEVSUDANCNFSM4Q434MLA .

mgaulton commented 4 years ago

I discovered that while boost-devel was install, libboost_system1_74_0 was not. Testing now.

mgaulton commented 4 years ago

Which only got me one step further. I'll keep poking. Thanks.

mgaulton commented 4 years ago

Its compiling now after the following list was verified to be installed, for anyone else who might run into this on Opensuse.

zypper in cmake ninja boost-devel libboost_system1_74_0 libboost_system-devel libboost_system1_74_0-devel

On Tue, Sep 8, 2020 at 2:32 PM mgaulton notifications@github.com wrote:

Closed #5109 https://github.com/arvidn/libtorrent/issues/5109.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/arvidn/libtorrent/issues/5109#event-3742288719, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEJRXTO3CK4HD6ENOL4CIDSEZ2DDANCNFSM4Q434MLA .

mgaulton commented 4 years ago

Apologies, i'im getting a build but i'm still getting symbol errors. Wondering if I'm missing something in terms of options?

These are the steps following.

zypper in cmake ninja boost-devel libboost_system1_74_0 libboost_system-devel libboost_system1_74_0-devel

rm -rf libtorrent

git clone --recurse-submodules https://github.com/arvidn/libtorrent.git cd libtorrent ./configure CXXFLAGS="-std=c++14" mkdir -p build cd build

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14 -G Ninja .. cd .. cmake --build build cmake --install build

/usr/bin/qbittorrent-nox --webui-port=8112 /usr/bin/qbittorrent-nox: symbol lookup error: /usr/bin/qbittorrent-nox: undefined symbol: _ZNK10libtorrent5entry4dictB5cxx11Ev

On Tue, Sep 8, 2020 at 2:32 PM mgaulton notifications@github.com wrote:

Closed #5109 https://github.com/arvidn/libtorrent/issues/5109.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/arvidn/libtorrent/issues/5109#event-3742288719, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEJRXTO3CK4HD6ENOL4CIDSEZ2DDANCNFSM4Q434MLA .

arvidn commented 4 years ago

that's an unfortunate ABI issue when you build libtorrent with C++11 and qBitTorrent with C++14. If you can build libtorrent with C++14, I believe that will fix it.

mgaulton commented 4 years ago

I used the std directives and such. Is there something else I need to do? I've been reading your posts about the issue but based on what I found, the command lines don't seem to be pushing it to 14. Are my commands correct?

On Tue, Sep 8, 2020 at 4:37 PM Arvid Norberg notifications@github.com wrote:

that's an unfortunate ABI issue when you build libtorrent with C++11 and qBitTorrent with C++14. If you can build libtorrent with C++14, I believe that will fix it.

— You are receiving this because you modified the open/close state. Reply to this email directly, view it on GitHub https://github.com/arvidn/libtorrent/issues/5109#issuecomment-689122207, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABEJRXXG56TLP3YQKFSXY23SE2IZDANCNFSM4Q434MLA .

arvidn commented 4 years ago

oh, actually, are you sure qbittorrent is being built as C++14? I assumed it was because that's normally the cause if this issue. I didn't realize you got this error when you launched qbt, at run-time. That suggests qbt is looking for the C++11 version of that function. So it seems qbt is being built as C++11 for you, so you should build libtorrent as C++11 as well

FranciscoPombal commented 4 years ago

qBittorrent >= 4.2.0 requires >= C++14.

mgaulton commented 4 years ago

oh, actually, are you sure qbittorrent is being built as C++14? I assumed it was because that's normally the cause if this issue. I didn't realize you got this error when you launched qbt, at run-time. That suggests qbt is looking for the C++11 version of that function. So it seems qbt is being built as C++11 for you, so you should build libtorrent as C++11 as well

I'm using the Rpm from opensuse, so not sure how that was compiled.

mgaulton commented 4 years ago

qBittorrent >= 4.2.0 requires >= C++14.

I've gathered that from my reading, I'm just puzzled on how to accomplish that I guess. I thought gcc10 + -std-14 would do it but seems that its not.

mgaulton commented 4 years ago

hmm, i walked through the steps again and it worked! I dind't change anything. I'll keep an eye and I very much appreciate the assitance, you guys are awesome. Keep up the epic work!

a43mrk commented 3 years ago

Hi! Which package contains b2 command for opensuse Tumbleweed? I coudnt find any source that points to this answer :(