Re: Backporting zlib 1.2.11 to Stretch
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);
and
357 uint64_t read_bytes = gzfread(this->buffer_.data(), sizeof(char),
358 this->buffer_.size(), input_file);
Unfortunately I have no idea about zlib neither from C++. Any kind help
would be welcome.
Kind regards
Andreas.
--
http://fam-tille.de
Reply to: