On Tue, Jul 17, 2018 at 11:59:28AM +0100, Mark Brown wrote:
On Tue, Jul 17, 2018 at 10:43:58AM +0200, Michael Banck wrote:
On Tue, Jul 17, 2018 at 09:57:30AM +0200, Andreas Tille wrote:
I stumbled upon some software (spoa [1]) which obviously does not build
with zlib 1.2.8 (just tried building in stretch - works with a
backported zlib from testing).
That seems to be due to bioparser using the new zlib features from
1.2.11.
Maybe it is easier to adapt bioparse to the 1.2.8 zlib interface than
backporting this pretty central library?
It's a pretty stable library so there's not *huge* concerns with
backporting it, though obviously it'd still be a pretty big change to
pull onto people's systems which they might not be enthused about.
I take both responses as some kind of "please rather don't" if you can
avoid this. So if I try to backport spoa - or rather libbioparser-dev
to stretch I need to deal with:
...
/usr/include/bioparser/bioparser.hpp: In instantiation of ‘bool bioparser::FastqParser<T>::parse_objects(std::vector<std::unique_ptr<T> >&, uint64_t) [with T = spoa::Sequence; uint64_t = long unsigned int]’:
/home/RKID1/tillea-a/tmp/spoa-1.1.3/src/main.cpp:159:1: required from here
/usr/include/bioparser/bioparser.hpp:357:38: error: ‘gzfread’ was not declared in this scope
uint64_t read_bytes = gzfread(this->buffer_.data(), sizeof(char),
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
this->buffer_.size(), input_file);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/bioparser/bioparser.hpp: In instantiation of ‘bool bioparser::FastaParser<T>::parse_objects(std::vector<std::unique_ptr<T> >&, uint64_t) [with T = spoa::Sequence; uint64_t = long unsigned int]’:
/home/RKID1/tillea-a/tmp/spoa-1.1.3/src/main.cpp:159:1: required from here
/usr/include/bioparser/bioparser.hpp:248:38: error: ‘gzfread’ was not declared in this scope
uint64_t read_bytes = gzfread(this->buffer_.data(), sizeof(char),
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
this->buffer_.size(), input_file);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/spoa_bin.dir/build.make:89: recipe for target 'CMakeFiles/spoa_bin.dir/src/main.cpp.o' failed
make[3]: *** [CMakeFiles/spoa_bin.dir/src/main.cpp.o] Error 1
make[3]: Leaving directory '/home/RKID1/tillea-a/tmp/spoa-1.1.3/obj-x86_64-linux-gnu'
CMakeFiles/Makefile2:144: recipe for target 'CMakeFiles/spoa_bin.dir/all' failed
make[2]: *** [CMakeFiles/spoa_bin.dir/all] Error 2
make[2]: *** Waiting for unfinished jobs....
In file included from /home/RKID1/tillea-a/tmp/spoa-1.1.3/test/spoa_test.cpp:12:0:
/usr/include/bioparser/bioparser.hpp: In instantiation of ‘bool bioparser::FastqParser<T>::parse_objects(std::vector<std::unique_ptr<T> >&, uint64_t) [with T = spoa::Sequence; uint64_t = long unsigned int]’:
/home/RKID1/tillea-a/tmp/spoa-1.1.3/test/spoa_test.cpp:334:1: required from here
/usr/include/bioparser/bioparser.hpp:357:38: error: ‘gzfread’ was not declared in this scope
uint64_t read_bytes = gzfread(this->buffer_.data(), sizeof(char),
~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
this->buffer_.size(), input_file);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CMakeFiles/spoa_test.dir/build.make:89: recipe for target 'CMakeFiles/spoa_test.dir/test/spoa_test.cpp.o' failed
...
which means line 248 and 357 of this file
https://salsa.debian.org/med-team/libbioparser-dev/blob/master/include/bioparser/bioparser.hpp
need to be converted to the old zlib 1.2.8 interface. This would be
248 uint64_t read_bytes = gzfread(this->buffer_.data(), sizeof(char),
249 this->buffer_.size(), input_file);