Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 550144 - sci-biology/bamtools-2.3.0: bamtools_filter.cpp: undefined reference to `Json::Value::operator=(Json::Value const&)'
Summary: sci-biology/bamtools-2.3.0: bamtools_filter.cpp: undefined reference to `Json...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Martin Mokrejš
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-22 09:05 UTC by Martin Mokrejš
Modified: 2016-12-15 08:09 UTC (History)
3 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,104.03 KB, text/x-log)
2015-05-22 09:06 UTC, Martin Mokrejš
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Mokrejš 2015-05-22 09:05:44 UTC
cd /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0_build/src/toolkit && /usr/bin/x86_64-pc-linux-gnu-g++  -D_FILE_OFFSET_BITS=64  -DNDEBUG -O2 -pipe -maes -mpclmul -mpopcnt -mavx -march=native  -I/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/src -I/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/src/api -I/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/src/utils -I/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/src/third_party    -Wall -o CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o -c /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/src/toolkit/bamtools.cpp
Linking CXX executable /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools
cd /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0_build/src/toolkit && /usr/bin/cmake -E cmake_link_script CMakeFiles/bamtools_cmd.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-g++   -O2 -pipe -maes -mpclmul -mpopcnt -mavx -march=native    -Wl,-O1 -Wl,--as-needed CMakeFiles/bamtools_cmd.dir/bamtools_convert.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_count.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_coverage.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_header.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_index.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_merge.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_random.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_revert.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_sort.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_split.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_stats.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o  -o /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools-2.3.0 -rdynamic /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib/libbamtools-utils.a -ljsoncpp /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib/libbamtools.so.2.3.0 -lz -Wl,-rpath,/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib: 
CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o: In function `BamTools::FilterTool::FilterToolPrivate::ParseFilterObject(std::string const&, Json::Value const&)':
bamtools_filter.cpp:(.text+0x5466): undefined reference to `Json::Value::operator=(Json::Value const&)'
collect2: error: ld returned 1 exit status
src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make:412: recipe for target '/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools-2.3.0' failed
make[2]: *** [/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools-2.3.0] Error 1
make[2]: Leaving directory '/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0_build'
CMakeFiles/Makefile2:399: recipe for target 'src/toolkit/CMakeFiles/bamtools_cmd.dir/all' failed
make[1]: *** [src/toolkit/CMakeFiles/bamtools_cmd.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0_build'
Makefile:116: recipe for target 'all' failed
make: *** [all] Error 2
 * ERROR: sci-biology/bamtools-2.3.0::gentoo failed (compile phase):
 *   emake failed
 *
Comment 1 Martin Mokrejš 2015-05-22 09:06:29 UTC
Created attachment 403750 [details]
build.log
Comment 2 Ian Delaney (RETIRED) gentoo-dev 2015-06-02 09:52:51 UTC
Replicated this build failure with the dev-libs/jsoncpp-1.6.2
It built fine with 0.10.1 & 0.10.2

Plan: file upstream to inform build fails with proof of replication using dep dev-libs/jsoncpp-1.6.2. You can add to  URL: if you have permissions otherwise add it in a Comment and I can add it there.
For now prepare a unified diff setting 
>=dev-libs/jsoncpp-0.5.0-r1
<~dev-libs/jsoncpp-1.0

*bamtools-2.3.0 (17 Sep 2013) it needs a new release to keep up with the advance in dev-libs/jsoncpp-1.6.2
Comment 3 Martin Mokrejš 2015-06-04 15:09:10 UTC
Hi Ian,
  I do not understand whether you are going to do the work or not. ;-) Please note there is also bamtools-9999.ebuild in science overlay. Would be great if you could adjust the ebuild DEPs.
Martin
Comment 4 Ian Delaney (RETIRED) gentoo-dev 2015-06-06 14:05:21 UTC
(In reply to Martin Mokrejš from comment #3)
> Hi Ian,
>   I do not understand whether you are going to do the work or not. ;-)

I can only conclude I didn't make myself clear. I am always prepared to do the 'work' to make a commit on behalf of a user.  I asked you to follow / execute the steps of Plan: It appears upstream have used <=dev-libs/jsoncpp-1.0 and either have not indicated that jsoncpp-1.6.2 breaks the build, or it is mentioned in notes and you haven't noticed or found it. It is not normal or acceptable for the most recent version of a dep present in portage to be incompatible with build system of the package.
The fix for now is to simply make a unified diff with the lines I have listed in Plan:  Although it's a formality I'm simply adhering to the style roughly set by proxy-maint. Put it this way. If I fix it with that version bordering, my commit msg has to say something like;

"fix to broken build by setting version bordering to jsoncpp, ascertained by me wrt bug #550144, upstream not notified re version incompatibility"

It SHOULD read something like
"fix to broken build by setting version bordering, patch provided by proxy maintainer in bug #550144, issue filed upstream, fixes said bug"
  
Currently I have no such patch. Attaching the patch is a 2 minute job but yes I can simply commit what I have already determined.  Filing upstream is a task commonly done by most keen informed users however I have no prior dealings with you and don't know what you do and don't know. Feel free to inform me. A a user it's 'reasonable' that you've not covered these things yet. I simply don't know.

> Please note there is also bamtools-9999.ebuild in science overlay. Would be
> great if you could adjust the ebuild DEPs.
> Martin

I have no dealings with the science overlay therefore cannot commit to it. That is the realm of the science or sci-biology herd. As luck would have it none of them have taken the slightest notice but I have.
Comment 5 Michael Schubert 2015-08-14 23:20:41 UTC
added a minimal bug report upstream: https://github.com/pezmaster31/bamtools/issues/108

(btw, 2.4.0 is out - should I file the patch here or on ::science?)
Comment 6 Justin Lecher (RETIRED) gentoo-dev 2015-08-16 11:18:42 UTC
* commit a1fa6d43da19c366f38412fc7760186e3b68e708
* Author: Justin Lecher <jlec@gentoo.org>
* Date:   Sun Aug 16 13:18:23 2015 +0200
*
*     sci-biology/bamtools: Restrict Version of dev-libs/jsoncpp in deps, bug #550144 https://github.com/pezmaster31/bamtools/issues/108
*
*     Package-Manager: portage-2.2.20.1
*     Signed-off-by: Justin Lecher <jlec@gentoo.org>
Comment 7 Martin Mokrejš 2016-03-31 23:06:24 UTC
REOPENing, I get this still with jsoncpp-0.10.1:

# emerge -pv jsoncpp

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U  ] dev-libs/jsoncpp-0.10.2-r1::gentoo [0.10.1::gentoo] USE="-doc {-test}" 193 KiB
#



[100%] Linking CXX executable /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools
cd /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0_build/src/toolkit && /usr/bin/cmake -E cmake_link_script CMakeFiles/bamtools_cmd.dir/link.txt --verbose=1
/usr/bin/x86_64-pc-linux-gnu-g++   -O2 -pipe -maes -mpclmul -mpopcnt -mavx -march=native    -Wl,-O1 -Wl,--as-needed CMakeFiles/bamtools_cmd.dir/bamtools_convert.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_count.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_coverage.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_header.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_index.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_merge.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_random.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_resolve.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_revert.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_sort.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_split.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools_stats.cpp.o CMakeFiles/bamtools_cmd.dir/bamtools.cpp.o  -o /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools-2.3.0 -rdynamic /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib/libbamtools-utils.a -ljsoncpp /var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib/libbamtools.so.2.3.0 -lz -Wl,-rpath,/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/lib: 
CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o: In function `BamTools::FilterTool::FilterToolPrivate::ParseFilterObject(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value const&)':
bamtools_filter.cpp:(.text+0x6ed6): undefined reference to `Json::Value::get(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value const&) const'
bamtools_filter.cpp:(.text+0x6f14): undefined reference to `Json::Value::asString[abi:cxx11]() const'
CMakeFiles/bamtools_cmd.dir/bamtools_filter.cpp.o: In function `BamTools::FilterTool::FilterToolPrivate::ParseScript()':
bamtools_filter.cpp:(.text+0x808d): undefined reference to `Json::Reader::parse(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, Json::Value&, bool)'
bamtools_filter.cpp:(.text+0x80ae): undefined reference to `Json::Reader::getFormatedErrorMessages[abi:cxx11]() const'
bamtools_filter.cpp:(.text+0x837c): undefined reference to `Json::Value::asString[abi:cxx11]() const'
bamtools_filter.cpp:(.text+0x8905): undefined reference to `Json::Value::asString[abi:cxx11]() const'
collect2: error: ld returned 1 exit status
src/toolkit/CMakeFiles/bamtools_cmd.dir/build.make:434: recipe for target '/var/tmp/portage/sci-biology/bamtools-2.3.0/work/bamtools-2.3.0/bin/bamtools-2.3.0' failed


Seems there is a typo, Justin, in the upstream https://github.com/pezmaster31/bamtools/issues/108 bug. Seems you wanted the following?

-0.5.0 < jsoncpp < 1.0 is required
-0.5.0 >= jsoncpp < 1.0 is required

Or version number sorting issue in Gentoo ebuilds? 0.10 not being higher than 0.5?
Comment 8 Martin Mokrejš 2016-03-31 23:13:45 UTC
(In reply to Michael Schubert from comment #5)
> added a minimal bug report upstream:
> https://github.com/pezmaster31/bamtools/issues/108
> 
> (btw, 2.4.0 is out - should I file the patch here or on ::science?)

commit 778b9cad7be047675ab8b1c8b0d54e5f4f2c7f4c
Author: Martin Mokrejš <mmokrejs@fold.natur.cuni.cz>
Date:   Fri Apr 1 01:10:46 2016 +0200

    sci-biology/bamtools: version bump; still suffers gentoo bug #550144
Comment 9 David Seifert gentoo-dev 2016-12-15 08:09:24 UTC
commit 72bcf8aa8b3c95da31c4ae6bf4ccec376a7ec3ea
Author: David Seifert <soap@gentoo.org>
Date:   Wed Dec 14 23:42:36 2016 +0100

    sci-biology/bamtools: Version bump to 2.4.1
    
    Gentoo-bug: 550144, 596208
    * Make C++ mode agnostic
    * Unbundle jsoncpp and use more modern versions