[Debian-med-packaging] Bug#813438: Iqtree accepted in Debian

Andreas Tille tille at debian.org
Tue Feb 2 08:37:20 UTC 2016


Hi,

since you helped a lot getting iqtree into Debian I now have the good
news that it was accepted yesterday in Debian[1] (finally - I would have
loved if this would have taken less time).  For the moment the package
resides in Debian unstable.  Once it might have migrated to Debian
testing (which is the case if it stays in unstable for five days without
any known release critical bug) I will also create a backport for the
current stable release Jessie.

Unfortunately the package received three bug reports over night which is
basically connected to gcc command line options and one name change.  I
have created patches for all three bugs which you can find in the
packaging Git[2].  Please inspect the patches after reading below.  Each
patch has a header pointing with description and a link to the according
bug report if you need some more verbose explanation.

Since I noticed that meanwhile new versions are released and I intend to
upload the latest version with bug fixes.  So I downloaded 1.3.13 and
tried to build this.  When trying to do so I was running into


...
/usr/bin/c++   -DIQ_TREE -D_USE_PTHREADS -D__SSE3 -I/build/iqtree-1.3.13+dfsg -I/build/iqtree-1.3.13+dfsg/obj-x86_64-linux-gnu -I/usr/include/eigen3  -g -O2 -fstack-protector-strong -Wformat -Werror=format-    security -Wdate-time -D_FORTIFY_SOURCE=2  -fopenmp    -D__AVX  -o CMakeFiles/avxkernel.dir/phylotreeavx.cpp.o -c /build/iqtree-1.3.13+dfsg/phylotreeavx.cpp
In file included from /build/iqtree-1.3.13+dfsg/phylotreeavx.cpp:9:0:
/build/iqtree-1.3.13+dfsg/phylokernel.h:19:2: error: #error "You must compile with SSE3 enabled!"
 #error "You must compile with SSE3 enabled!"
  ^
/build/iqtree-1.3.13+dfsg/phylotreeavx.cpp:15:2: error: #error "You must compile this file with AVX enabled!"
 #error "You must compile this file with AVX enabled!"
  ^
In file included from /build/iqtree-1.3.13+dfsg/phylotreeavx.cpp:11:0:
/build/iqtree-1.3.13+dfsg/phylokernelmixrate.h: In instantiation of 'double PhyloTree::computeMixrateLikelihoodBranchEigenSIMD(PhyloNeighbor*, PhyloNode*) [with VectorClass = Vec4d; int VCSIZE = 4; int nstates = 4]':
/build/iqtree-1.3.13+dfsg/phylotreeavx.cpp:38:36:   required from here
/build/iqtree-1.3.13+dfsg/phylokernelmixrate.h:802:27: error: no matching function for call to 'horizontal_add(Vec4d [4])'
    lh_ptn = horizontal_add(vc_ptn) + VectorClass().load_a(&ptn_invar[ptn]);
                           ^
...

/build/iqtree-1.3.13+dfsg/phylokernelmixrate.h:802:27: error: invalid conversion from 'Vec4d*' to 'int' [-fpermissive]
In file included from /build/iqtree-1.3.13+dfsg/vectorclass/vectorclass.h:41:0,
                 from /build/iqtree-1.3.13+dfsg/phylokernel.h:12,
                 from /build/iqtree-1.3.13+dfsg/phylotreeavx.cpp:9:
/build/iqtree-1.3.13+dfsg/vectorclass/vectori128.h:1085:5: note:   initializing argument 1 of 'Vec8s::Vec8s(int)'
     Vec8s(int i) {^M
     ^

and a lot of similar errors.  From the preprocessor error message above
it seems obvious that dropping sse3 and avx options is not intended and
will break the build.  Does this mean that you intend to support intel
processors exclusively?  This can be specified in the package metadata
and will prevent other architectures from trying to build the package.
However, in the long run this might not be a good idea since
architectures like arm64, ppc64 or others might play some rule in the
future.  If you confirm for the moment my Intel-only assumption I will
rewert the patches removing sse3 and avx and will close the bugs with
the Intel-only restriction but please keep the hint in mind to rethink
this decision from time to time.

In any case I will keep the patch that adds the string "32" to the
executable name[3] which IMHO makes no sense on Linux.

Finally I would like to let you know that we now have packaged ncl
library.  I remember that we discussed this in the past but as far as my
weak mind kept it you intended to drop the differences to upstream
ncl[4].  When doing a quick diff I can see some differences in the code
but I have no idea in how far this is relevant and whether you possibly
could forward your patches to ncl upstream to stay in sync with current
development.

Kind regards

        Andreas.

[1] https://tracker.debian.org/pkg/iqtree
[2] https://anonscm.debian.org/cgit/debian-med/iqtree.git/tree/debian/patches
[3] https://anonscm.debian.org/cgit/debian-med/iqtree.git/tree/debian/patches/32bit_name.patch
[4] http://sourceforge.net/projects/ncl/

-- 
http://fam-tille.de



More information about the Debian-med-packaging mailing list