perlPackages.BioExtAlign: bug fix and add test

Bug: with perl > 5.36, the compiler is more
restrictive with errors. This package has implicit
function definitions. The fix is to ignore the
errors as vep, the main package for that, runs
without issue. Also this package is no longer
maintained

We also add test that were missing from the package.
Not all test can be run as they depends on
other Perl modules in Bioper.

Changed files
+118 -6
pkgs
+20 -5
pkgs/development/perl-modules/Bio-Ext-Align/default.nix
···
pname = "BioExtAlign";
version = "1.5.1";
-
outputs = [
-
"out"
-
"dev"
-
];
+
outputs = [ "out" ];
src = fetchFromGitHub {
owner = "bioperl";
···
sha256 = "sha256-+0tZ6q3PFem8DWa2vq+njOLmjDvMB0JhD0FGk00lVMA=";
};
-
patches = [ ./fprintf.patch ];
+
patches = [
+
# Starting for Perl 5.6, implicit function declaration are treated as errors
+
# There may be an error but ensembl-vep (the main package for this dependency)
+
# runs
+
./no-implicit-function.patch
+
# Tests need other parts of BioExt, disabling them
+
./disable-other-tests.patch
+
./fprintf.patch
+
];
# Do not install other Bio-ext packages
preConfigure = ''
···
# Disable tests as it requires Bio::Tools::Align which is in a different directory
buildPhase = ''
make
+
+
'';
+
+
checkPhase = ''
+
runHook preCheck
+
+
make test
+
+
runHook postCheck
'';
meta = {
···
Part of BioPerl Extensions (BioPerl-Ext) distribution, a collection of Bioperl C-compiled extensions.
'';
license = with lib.licenses; [ artistic1 ];
+
maintainers = with lib.maintainers; [ apraga ];
};
}
+84
pkgs/development/perl-modules/Bio-Ext-Align/disable-other-tests.patch
···
+
diff --git a/Bio/Ext/Align/test.pl b/Bio/Ext/Align/test.pl
+
index 72411f3..1deb77b 100755
+
--- a/Bio/Ext/Align/test.pl
+
+++ b/Bio/Ext/Align/test.pl
+
@@ -8,13 +8,10 @@ my $DEBUG = $ENV{'BIOPERLDEBUG'} || 0;
+
BEGIN {
+
eval { require Test; };
+
use Test;
+
- plan tests => 9;
+
+ plan tests => 4;
+
}
+
+
use Bio::Ext::Align;
+
-use Bio::Tools::dpAlign;
+
-use Bio::Seq;
+
-use Bio::AlignIO;
+
+
$loaded = 1;
+
ok(1); # modules loaded
+
@@ -34,64 +31,3 @@ $alb = &Bio::Ext::Align::Align_Sequences_ProteinSmithWaterman($seq1,$seq2,
+
$seq2->seq,15,50,STDERR) if $DEBUG;
+
+
+
-warn( "Testing Local Alignment case...\n") if $DEBUg;
+
-
+
-$alnout = new Bio::AlignIO(-format => 'pfam', -fh => \*STDERR);
+
-$aln = &Bio::Ext::Align::Align_DNA_Sequences("AATGCCATTGACGG",
+
- "CAGCCTCGCTTAG",3,-1,3,1,
+
- Bio::Tools::dpAlign::DPALIGN_LOCAL_MILLER_MYERS);
+
-
+
-$out = Bio::SimpleAlign->new();
+
-
+
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln1,
+
- -start => $aln->start1,
+
- -end => $aln->end1,
+
- -id => "one"));
+
-
+
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln2,
+
- -start => $aln->start2,
+
- -end => $aln->end2,
+
- -id => "two"));
+
-$alnout->write_aln($out) if $DEBUG;
+
-
+
-$aln = &Bio::Ext::Align::Align_Protein_Sequences("WLGQRNLVSSTGGNLLNVWLKDW","WMGNRNVVNLLNVWFRDW",0,
+
- Bio::Tools::dpAlign::DPALIGN_LOCAL_MILLER_MYERS);
+
-$out = Bio::SimpleAlign->new();
+
-ok($aln);
+
-
+
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln1,
+
- -start => $aln->start1,
+
- -end => $aln->end1,
+
- -id => "one"));
+
-
+
-$out->add_seq(Bio::LocatableSeq->new(-seq => $aln->aln2,
+
- -start => $aln->start2,
+
- -end => $aln->end2,
+
- -id => "two"));
+
-$alnout->write_aln($out) if $DEBUG;
+
-ok(1);
+
-
+
-warn( "Testing Global Alignment case...\n") if $DEBUG;
+
-
+
-$factory = new Bio::Tools::dpAlign('-alg' => Bio::Tools::dpAlign::DPALIGN_GLOBAL_MILLER_MYERS);
+
-$s1 = new Bio::Seq(-id => "one", -seq => "AATGCCATTGACGG", -alphabet => 'dna');
+
-$s2 = new Bio::Seq(-id => "two", -seq => "CAGCCTCGCTTAG", -alphabet => 'dna');
+
-$aln = $factory->pairwise_alignment($s1, $s2);
+
-$alnout->write_aln($aln) if $DEBUG;
+
-$factory->align_and_show($s1, $s2) if $DEBUG;
+
-
+
-ok(1);
+
-
+
-$s1 = new Bio::Seq(-id => "one", -seq => "WLGQRNLVSSTGGNLLNVWLKDW",
+
- -alphabet => 'protein');
+
-$s2 = new Bio::Seq(-id => "two", -seq => "WMGNRNVVNLLNVWFRDW",
+
- -alphabet => 'protein');
+
-$aln = $factory->pairwise_alignment($s1, $s2);
+
-$alnout->write_aln($aln) if $DEBUG;
+
-$factory->align_and_show($s1, $s2) if $DEBUG;
+
-ok(1);
+
-
+
-$prof = $factory->sequence_profile($s1);
+
-warn( "Optimal Alignment Score = %d\n", $factory->pairwise_alignment_score($prof, $s2)) if $DEBUG;
+
-
+
-ok($factory->pairwise_alignment_score($prof,$s2),77);
+1 -1
pkgs/development/perl-modules/Bio-Ext-Align/fprintf.patch
···
dpAlign_fatal(char * s)
{
- fprintf(stderr, s);
-
+ fputs(stderr, s);
+
+ fputs(s, stderr);
exit(-1);
}
+13
pkgs/development/perl-modules/Bio-Ext-Align/no-implicit-function.patch
···
+
diff --git a/Bio/Ext/Align/Makefile.PL b/Bio/Ext/Align/Makefile.PL
+
index cc6c343..ea5cffa 100755
+
--- a/Bio/Ext/Align/Makefile.PL
+
+++ b/Bio/Ext/Align/Makefile.PL
+
@@ -5,7 +5,7 @@ WriteMakefile(
+
'NAME' => 'Bio::Ext::Align',
+
'VERSION' => '1.5.1',
+
'LIBS' => ['-lm'], # e.g., '-lm'
+
- 'DEFINE' => '-DPOSIX -DNOERROR', # e.g., '-DHAVE_SOMETHING'
+
+ 'DEFINE' => '-DPOSIX -DNOERROR -Wno-implicit-function-declaration', # e.g., '-DHAVE_SOMETHING'
+
'INC' => '-I./libs', # e.g., '-I/usr/include/other'
+
'MYEXTLIB' => 'libs/libsw$(LIB_EXT)',
+
'clean' => { 'FILES' => 'libs/*.o libs/*.a' }