Build PETSc with ssl only when a dependency#639
Conversation
|
That looks good. Or PETSc should be modified to link against the same ssl library as Python. |
|
How can we do that? Patching PETSc? |
|
Why does petsc need ssl in the first place? I know you can choose the ssl library for Python. |
|
@certik - They have some crappy web interface voodoo in a very small optional module. @jedbrown - shouldn't this be off in a default PETSc install? I agree with @johannesring - just disable it unless the user has indicated that SSL is a dependency. |
|
@BarrySmith does the SSL stuff. What is wrong with autodetecting SSL? We autodetect Valgrind, for example, even though it's not required. |
|
It's an implicit dependency for an optional and probably almost never-used module in PETSc. You don't auto-detect SuperLU, why should you auto-detect SSL? |
|
Numerical packages usually need to be compatible in terms of int sizes, scalar precision, Fortran and MPI ABI, etc. Normally there is no way to test this, so it's dangerous and often wrong to autodetect. SSL normally doesn't have that problem, but does in case of cross-compilation. Anyway, you have a point and I would support turning it off by default, though @BarrySmith can make the final call. |
|
Hmm, is there no way to comment on another comment? The default SSL is not actually used by the crappy web interface voodoo; it is used by something even more obscure, the ability to access Google Docs and Globus files from the application. One reason for making it auto is that it helps very quickly detect problems with the code since the ssl.py tests and the source code in PETSc related to it are always run. By making it off by default it gets pretty much no testing nor chance for finding the problems. And actually it has worked out pretty well. We've only had two issues reported related to the SSL stuff (one by Mark Adams and one here) which is much more stable than almost any of the "optional" packages we support. With regard to cross compilation, as with all our tests the tests are suppose to handle the cross compilation business properly, that is they do not just test the "thing" on the host and assume that that it works on the cross system, the test is suppose to be relevent for the true system it will be run on. Of course this doesn't help when some vendors put dummy stubs into their libraries so ./configure runs fine but then the "dummy stubs" fail at run time. Given that you guys have a solution to the problem and we've no other legitiment complaints I don't see any reason to not make it default. |
Build PETSc with ssl only when a dependency
When building
pythonwith HashDist it will be built withopenssland when buildingpetscit will by default be built withsslfrom the system. This leads to problems like the following when buildingdolfin:The problem is that
pythonandpetscis linked with differentssllibraries.This PR makes sure that
sslis only turned on forpetscwhenopensslis added as a dependency. Otherwise it is turned off.