Source: proteinortho
Version: 6.3.1+dfsg-1
Severity: minor
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-shuffle

Hi,

GNU Make now has a --shuffle option that simulates non-deterministic ordering
of target prerequisites. See
https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous
work in Debian by Santiago Vila:
https://people.debian.org/~sanvila/make-shuffle/

This package fails to build with make --shuffle=reverse.
This is likely to be caused by a missing dependency in
debian/rules or an upstream Makefile.

More information about this mass bug filing is available at
https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

Relevant part (hopefully):
> make[2]: Entering directory '/build/reproducible-path/proteinortho-6.3.1+dfsg'
> Makefile:436: update target 'test_integrity_2' due to: target is .PHONY
> ./proteinortho6.pl -silent -force -singles -project=test_singles_diamond 
> -p=diamond test/*.faa 2>/dev/null; 
> echo -n "testing if all proteins are in the output (using -singles): ";
> testing if all proteins are in the output (using -singles): grep -E '^>' 
> test/C.faa test/C2.faa test/E.faa test/L.faa test/M.faa | wc -l | sed -E 's/[ 
> \t]//g' > test_singles_diamond.true; 
> perl -le 'my %d; 
> while(<>){if(/^#/){next;}$_=~s/^[^\t]+\t[^\t]+\t[^\t]+//g;chomp;my $j=0;my 
> $l=join ",", map {$j+=1;"$j:$_"} split /\t/,$_;foreach my $i (split 
> /,/,$l){if($i !~ /:[*]/ && $i ne ""){$d{$i}=1;}}}print scalar keys %d' 
> test_singles_diamond.proteinortho.tsv | sed -E 's/[ \t]//g' > 
> test_singles_diamond.test; 
> set -e ; diff test_singles_diamond.true test_singles_diamond.test;
> echo "passed"
> passed
> Makefile:429: update target 'test_integrity' due to: target is .PHONY
> ./proteinortho6.pl -silent -force -project=test_diamond -p=diamond test/*.faa 
> 2>/dev/null;
> echo -n "testing if there is a protein that occurs twice in the output: ";
> testing if there is a protein that occurs twice in the output: perl -e 'my 
> %d; while(<>){$_=~s/^[^\t]+\t[^\t]+\t[^\t]+//g;chomp;foreach my $i (split 
> /[,\t]/,$_){if($i ne "*" && $i ne "" && exists $d{$i}){die "error found a 
> protein that occurs in the output twice <${i}>\n"}$d{$i}=1;}}' 
> test_diamond.proteinortho.tsv; 
> echo "passed"
> passed
> Makefile:469: update target 'test_step3_K5' due to: target is .PHONY
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> test/K5.blast-graph >test_lapack_K5.proteinortho.tsv 2>/dev/null ; \
> set -e ; ./src/chk_test.pl test_lapack_K5.proteinortho.tsv "K5"; 
> echo "passed"
> passed
> Makefile:463: update target 'test_step3_P4' due to: target is .PHONY
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> test/P4.blast-graph >test_lapack_P4.proteinortho.tsv 2>/dev/null ; \
> set -e ; ./src/chk_test.pl test_lapack_P4.proteinortho.tsv "P4"; 
> echo "passed"
> passed
> Makefile:457: update target 'test_step3_P3_K5' due to: target is .PHONY
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> test/P3_K5.blast-graph >test_lapack_P3_K5.proteinortho.tsv 2>/dev/null ; \
> set -e ; ./src/chk_test.pl test_lapack_P3_K5.proteinortho.tsv "P3_K5"; 
> echo "passed"
> passed
> Makefile:451: update target 'test_step3_ring4_K5_lapack' due to: target is 
> .PHONY
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> test/ring4_K5.blast-graph >test_lapack_ring4_K5.proteinortho.tsv 2>/dev/null 
> ; \
> set -e ; ./src/chk_test.pl test_lapack_ring4_K5.proteinortho.tsv "ring4_K5"; 
> echo "passed"
> passed
> Makefile:445: update target 'test_step3_ring4_K5_power' due to: target is 
> .PHONY
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 0 
> test/ring4_K5.blast-graph >test_power_ring4_K5.proteinortho.tsv 2>/dev/null ; 
> \
> set -e ; ./src/chk_test.pl test_power_ring4_K5.proteinortho.tsv "ring4_K5"; 
> echo "passed"
> passed
> Makefile:399: update target 'test_step3' due to: target is .PHONY
> ./proteinortho6.pl -silent -force -project=test_blastp -p=blastp test/*.faa;
> echo "[TEST] 2. -step=3 tests (proteinortho_clustering) "
> [TEST] 2. -step=3 tests (proteinortho_clustering) 
> echo -n " [1/6] various test functions of proteinortho_clustering (if this 
> fails, try make clean first): "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -test> 
> /dev/null 2>&1
>  [1/6] various test functions of proteinortho_clustering (if this fails, try 
> make clean first): echo "passed"
> passed
> echo -n " [2/6] Test proteinortho_clustering using lapack: "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> -weighted 2 -double 0 -debug 1 test_blastp.blast-graph 2>test_lapack.err | 
> sort | awk -F'\t' '{$3="";print $0}' >test_lapack.proteinortho.tsv ; \
> set -e ; ./src/chk_test.pl test_lapack.proteinortho.tsv; 
>  [2/6] Test proteinortho_clustering using lapack: echo "passed"
> passed
> perl -lne 'print join "\t", sort split("\t",$_)' remove.graph | sort | uniq > 
> remove.graph.lapack; 
> echo -n " [3/6] Test proteinortho_clustering using power: "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 0 
> -weighted 2 -double 0 -debug 1 test_blastp.blast-graph 2>test_power.err | 
> sort | awk -F'\t' '{$3="";print $0}' >test_power.proteinortho.tsv; \
> set -e ; ./src/chk_test.pl test_power.proteinortho.tsv;
>  [3/6] Test proteinortho_clustering using power: echo "passed"
> passed
> perl -lne 'print join "\t", sort split("\t",$_)' remove.graph | sort | uniq > 
> remove.graph.power; 
> echo -n " [4/6] Test proteinortho_clustering using lapack and no weights: "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -lapack 2 
> -weighted 0 -double 0 -debug 1 test_blastp.blast-graph 2>test_power.err | 
> sort | awk -F'\t' '{$3="";print $0}' >test_power.proteinortho.tsv; \
> set -e ; ./src/chk_test.pl test_power.proteinortho.tsv;
>  [4/6] Test proteinortho_clustering using lapack and no weights: echo "passed"
> passed
> echo -n " [5/6] Test proteinortho_clustering using maxnodes/flooding: "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -maxnodes 2 
> -conn 0 -debug 1 test_blastp.blast-graph 2>test_power.err | sort | awk -F'\t' 
> '{$3="";print $0}' >test_power.proteinortho.tsv; \
> set -e ; ./src/chk_test.pl test_power.proteinortho.tsv;
>  [5/6] Test proteinortho_clustering using maxnodes/flooding: echo "passed"
> passed
> echo -n " [6/6] Test proteinortho_clustering using no clustering at all: "; \
> OMP_NUM_THREADS=1 src/BUILD/Linux_x86_64/proteinortho_clustering -conn -1 
> -debug 1 test_blastp.blast-graph 2>test_power.err | sort | awk -F'\t' 
> '{$3="";print $0}' >test_power.proteinortho.tsv; \
> set -e ; ./src/chk_test.pl test_power.proteinortho.tsv;
>  [6/6] Test proteinortho_clustering using no clustering at all: echo "passed"
> passed
> Makefile:480: update target 'test_clean2' due to: target is .PHONY
> echo "[TEST] Clean up all test files..."; \
> rm -rf remove.graph* proteinortho_cache_test_* test.* test_* test/C.faa.* 
> test/E.faa.* test/C2.faa.* test/L.faa.* test/M.faa.*> /dev/null 2>&1;
> [TEST] Clean up all test files...
> Makefile:287: update target 'test_step2' due to: target is .PHONY
> echo "[TEST] 1. basic proteinortho6.pl -step=2 test. (algorithms that are not 
> present are skipped)"
> [TEST] 1. basic proteinortho6.pl -step=2 test. (algorithms that are not 
> present are skipped)
> echo -n " [1/12] -p=blastp test: "
>  [1/12] -p=blastp test: if [ "/usr/bin/blastp" = "" ]; then\
>       echo "blastp missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_blastp -p=blastp 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_blastp.proteinortho.tsv; \
>       echo "passed"; \
> fi
> passed
> echo -n " [2/12] -p=blastp+ synteny (PoFF) test: "
>  [2/12] -p=blastp+ synteny (PoFF) test: if [ "/usr/bin/blastp" = "" ]; then\
>       echo "blastp missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_synteny -synteny 
> -singles -p=blastp+ test/*.faa; \
>       set -e ; ./src/chk_test.pl test_synteny.proteinortho.tsv; \
>       set -e ; ./src/chk_test.pl test_synteny.poff.tsv; \
>       echo "passed"; \
> fi
> tput: No value for $TERM and no -T specified
> tput: No value for $TERM and no -T specified
> tput: No value for $TERM and no -T specified
> tput: No value for $TERM and no -T specified
> passed
> echo -n " [3/12] -p=diamond test: "
>  [3/12] -p=diamond test: if [ "/usr/bin/diamond-aligner" = "" ]; then\
>       echo "diamond missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_diamond -p=diamond 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_diamond.proteinortho.tsv; \
>       echo "passed"; \
> fi
> passed
> echo -n " [4/12] -p=diamond (--moresensitive) test (subparaBlast): "
>  [4/12] -p=diamond (--moresensitive) test (subparaBlast): if [ 
> "/usr/bin/diamond-aligner" = "" ]; then\
>       echo "diamond missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_diamondmoresensitive 
> -p=diamond -subparaBlast="--more-sensitive" test/*.faa; \
>       set -e ; ./src/chk_test.pl test_diamondmoresensitive.proteinortho.tsv; \
>       echo "passed"; \
> fi
> passed
> echo -n " [5/12] -p=lastp (lastal) test: "
>  [5/12] -p=lastp (lastal) test: if [ "" = "" ]; then\
>       echo "lastal missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_lastp -p=lastp 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_lastp.proteinortho.tsv ; \
>       echo "passed"; \
> fi
> lastal missing, skipping...
> echo -n " [6/12] -p=topaz test: "
>  [6/12] -p=topaz test: if [ "" = "" ]; then\
>       echo "topaz missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_topaz -p=topaz 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_topaz.proteinortho.tsv; \
>       echo "passed"; \
> fi
> topaz missing, skipping...
> echo -n " [7/12] -p=usearch test: "
>  [7/12] -p=usearch test: if [ "" = "" ]; then\
>       echo "usearch missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_usearch -p=usearch 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_usearch.proteinortho.tsv; \
>       echo "passed"; \
> fi
> usearch missing, skipping...
> echo -n " [8/12] -p=ublast test: "
>  [8/12] -p=ublast test: if [ "" = "" ]; then\
>       echo "usearch missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_ublast -p=ublast 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_ublast.proteinortho.tsv; \
>       echo "passed"; \
> fi
> usearch missing, skipping...
> echo -n " [9/12] -p=rapsearch test: "
>  [9/12] -p=rapsearch test: if [ "" = "" ]; then\
>       echo "rapsearch missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_rapsearch -p=rapsearch 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_rapsearch.proteinortho.tsv; \
>       echo "passed"; \
> fi
> rapsearch missing, skipping...
> echo -n " [10/12] -p=blatp (blat) test: "
>  [10/12] -p=blatp (blat) test: if [ "" = "" ]; then\
>       echo "blat missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_blatp -p=blatp 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_blatp.proteinortho.tsv; \
>       echo "passed"; \
> fi
> blat missing, skipping...
> echo -n " [11/12] -p=mmseqsp (mmseqs) test: "
>  [11/12] -p=mmseqsp (mmseqs) test: if [ "" = "" ]; then\
>       echo "mmseqs missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_mmseqsp -p=mmseqsp 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_blatp.proteinortho.tsv; \
>       echo "passed"; \
> fi
> mmseqs missing, skipping...
> echo -n " [12/12] -p=autoblast (automatically detect blastp,blastn,...) test: 
> "
>  [12/12] -p=autoblast (automatically detect blastp,blastn,...) test: if [ 
> "/usr/bin/blastp" = "" ]; then\
>       echo "ncbi-blast missing, skipping..."; \
> else \
>       ./proteinortho6.pl -silent -force -project=test_autoblast -p=autoblast 
> test/*.faa; \
>       set -e ; ./src/chk_test.pl test_autoblast.proteinortho.tsv; \
>       echo "passed"; \
> fi
> passed
> Makefile:475: update target 'test_clean' due to: target is .PHONY
> echo "[TEST] Clean up all test files..."; \
> rm -rf remove.graph* proteinortho_cache_test_* test.* test_* test/C.faa.* 
> test/E.faa.* test/C2.faa.* test/L.faa.* test/M.faa.*> /dev/null 2>&1;
> [TEST] Clean up all test files...
> Makefile:283: update target 'test' due to: target is .PHONY
> echo "[TEST] All tests passed"
> [TEST] All tests passed
> make[2]: Leaving directory '/build/reproducible-path/proteinortho-6.3.1+dfsg'
> rm test_* remove.* test/C_clean.faa
> rm: cannot remove 'test_*': No such file or directory
> rm: cannot remove 'remove.*': No such file or directory
> make[1]: *** [debian/rules:15: override_dh_auto_test] Error 1 shuffle=reverse


The full build log is available from:
http://qa-logs.debian.net/2025/05/05/shuffle/reverse/proteinortho_6.3.1+dfsg-1_unstable_reverse.log

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

Reply via email to