Source: slepc
Version: 3.6.1.dfsg1-1
Severity: serious
Justification: fails to build from source (but built successfully in the past)

Builds of slepc in minimal environments (such as on the autobuilders)
have been failing with errors of the form

  Checking environment... done
  Checking PETSc installation... 
  ERROR: Unable to link with PETSc
  ERROR: See "installed-i386-linux-gnu-real/lib/slepc/conf/configure.log" file 
for details
  debian/rules:149: recipe for target 'override_dh_auto_install' failed
  make[1]: *** [override_dh_auto_install] Error 1
  make[1]: Leaving directory '/«PKGBUILDDIR»'
  debian/rules:101: recipe for target 'binary-arch' failed
  make: *** [binary-arch] Error 2
  dpkg-buildpackage: error: fakeroot debian/rules binary-arch gave error exit 
status 2

I was able to reproduce the problem on a porterbox (amd64, as it
happens), and found the issue to be that it was explicitly linking
against libraries that were neither direct nor indirect build
dependencies:

  mpicxx -Wl,-z,relro -Wl,--no-as-needed -g -O2 -fstack-protector-strong 
-Wformat -Werror=format-security  -g -O2 -fstack-protector-strong -Wformat 
-Werror=format-security -o checklink checklink.o  
-L/usr/lib/petscdir/3.6.2/x86_64-linux-gnu-real/lib 
-L/usr/lib/petscdir/3.6.2/x86_64-linux-gnu-real/lib  -lpetsc_real -ldmumps 
-lzmumps -lsmumps -lcmumps -lmumps_common -lpord -lumfpack -lamd -lcholmod 
-lklu -L/usr/lib -lHYPRE_utilities -lHYPRE_struct_mv -lHYPRE_struct_ls 
-lHYPRE_sstruct_mv -lHYPRE_sstruct_ls -lHYPRE_IJ_mv -lHYPRE_parcsr_ls -lsuperlu 
-lscalapack-openmpi -llapack -lblas -lssl -lcrypto -lptesmumps -lptscotch 
-lptscotcherr -lfftw3 -lfftw3_mpi -lm -L/usr/lib/openmpi/lib 
-L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/x86_64-linux-gnu 
-L/lib/x86_64-linux-gnu -lmpi_f90 -lmpi_f77 -lgfortran -lm -lgfortran -lm 
-lquadmath -lm -lmpi_cxx -lstdc++ -L/usr/lib/openmpi/lib 
-L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/x86_64-linux-gnu 
-L/lib/x86_64-linux-gnu -L/usr/lib/x86_64-linux-gnu -ldl 
 -lmpi -lhwloc -lgcc_s -lpthread -ldl 
  /usr/bin/ld: cannot find -lssl
  /usr/bin/ld: cannot find -lcrypto
  /usr/bin/ld: cannot find -lgfortran

Could you please take a look?  Given that Debian builds PETSc as a
shared library, it shouldn't be necessary to list any other libraries
on the command line.  However, if the build system makes that hard to
avoid, please compensate by listing libgfortran-5-dev and libssl-dev
in Build-Depends.  (It's unfortunate that there's no generic
libgfortran-dev, though I suppose you could list gfortran.)

Either way, please confirm with pbuilder or the like that there aren't
any further errors in minimal environments.

Thanks!

Reply via email to