seqan / lambda

LAMBDA – the Local Aligner for Massive Biological DatA
https://github.com/seqan/lambda
Other
77 stars 20 forks source link

Build failure trying to build 1.0.2 release with SeqAn 2.4 #114

Closed satta closed 6 years ago

satta commented 6 years ago

In Debian, we ship the current stable release 1.0.2 of Lambda. This version recently stopped to build from source with the following error:

/usr/include/seqan/align_extend/align_extend.h:203:33: error: no matching function for call to '_setUpAndRunAlignment(seqan::DPContext<int, seqan::Tag<seqan::AffineGaps_>, seqan::String<int>, seqan::String<seqan::Tag<seqan::AffineGaps_>, seqan::Alloc<> > >&, seqan::String<seqan::TraceSegment_<long int, long unsigned int>, seqan::Alloc<> >&, seqan::DPScoutState_<seqan::Terminator_<seqan::XDrop_<int> > >&, const seqan::ModifiedString<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5_>, seqan::Alloc<> >, seqan::InfixSegment>, seqan::Tag<seqan::ModReverse_> >&, const seqan::ModifiedString<seqan::Segment<seqan::String<seqan::SimpleType<unsigned char, seqan::Dna5_>, seqan::MMap<> >, seqan::InfixSegment>, seqan::Tag<seqan::ModReverse_> >&, const seqan::Score<int, seqan::Tag<seqan::Simple_> >&, TAlignConfig)'
     return _setUpAndRunAlignment(alignContext.dpContext, alignContext.traceSegment, scoutState, str0, str1, scoreScheme,
            ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                  TAlignConfig(lowerDiag, upperDiag));

Full build logs are available from the Reproducible Builds pages for Lambda: https://tests.reproducible-builds.org/debian/rb-pkg/unstable/arm64/lambda-align.html

We would be grateful for any hints or patches. Also if you can spot anything potentially Debian-specific, I would happy to hear it.

h-2 commented 6 years ago

Thanks for letting me know! I didn't try the stable release with new SeqAn, shame on me :open_mouth: I think it's actually a regression in SeqAn, and apparently not all of align_extend is unit tested.

This will either be fixed with lambda-1.0.3 or seqan-2.4.1.

Has seqan-2.4.0 already migrated to testing or is this planned in the near future? Because if not, we could keep lambda-stable in debian stable+testing and have Debian unstable start tracking lambda-unstable (1.9.4). The latter is very usable now and the interface is also stabilising. lambda-1.9.4 is also compatible with seqan-2.4.0.

satta commented 6 years ago

Thanks for your quick reply! SeqAn 2.4 is fairly new and not in testing yet. However, I suggest that we should by all means make sure that the current stable version of Lambda also works with SeqAn 2.4, be it via a quick Debian-side patch (depending on how small/large that would be), a new release of Lambda-stable, or of SeqAn. I'd prefer not to switch to the pre-release version just to fix a regression.

h-2 commented 6 years ago

However, I suggest that we should by all means make sure that the current stable version of Lambda also works with SeqAn 2.4, be it via a quick Debian-side patch (depending on how small/large that would be), a new release of Lambda-stable, or of SeqAn.

I agree! If the issue is Lambda, I will push a new stable release in the next two days. If it is in SeqAn, it will come with 2.4.1. From experience I can say that 2.4.1 will be released not within the next week, 2-3 weeks would be more realistic.

I'd prefer not to switch to the pre-release version just to fix a regression.

Yes, on the one hand – on the other hand, I would have suggested the change anyway, soon :)

satta commented 6 years ago

Cool, thanks! Will keep an eye on the releases.

h-2 commented 6 years ago

@satta I have just pushed a release of the stable branch that should build with old and new releases of SeqAn.

h-2 commented 6 years ago

Please re-open if it doesn't work on Debian!

mr-c commented 6 years ago

@h-2 It worked, thanks! I also got the tests running :-)

satta commented 6 years ago

Hmm, tests are failing on 32-bit now: https://buildd.debian.org/status/package.php?p=lambda-align&suite=unstable

mr-c commented 6 years ago

@satta Shall we upload a build to experimental with verbose testing turned on?

satta commented 6 years ago

I think it would be better to debug this in a i386 VM/chroot or one of the ARM porterboxes rather than bothering the buildds. See Adrian Glaubitz's mail on the debian-med-packaging ML a couple of days ago.

satta commented 6 years ago

This is now https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=890851

h-2 commented 6 years ago

The tests perform checksum tests on binary index files which are incompatible between different integer models and CPU endianess so they are expected to fail almost everywhere other than amd64. It's not an ideal check, but it saves me from including the actual reference files in the repo.

I would suggest to only perform the runtime tests on amd64 right now.

mr-c commented 6 years ago

@h-2 Okay, we can disable them elsewhere and document that in README.Debian

h-2 commented 6 years ago

Thanks!

P.S: They could run on other 64bit + LE platforms like ppc64el and mips64el where they seem to pass now, too, but I don't know if you want to hardcode multiple platforms or if you have checks for these features in you build system.

mr-c commented 6 years ago

Yeah, I set it to only run the tests on platforms that already pass them.

https://salsa.debian.org/med-team/lambda-align/commit/3592460ec23c27d0d5f047255d6f8cbbf2b73f87#8756c63497c8dc39f7773438edf53b220c773f67_30_31