Opened 13 years ago
Closed 12 years ago
#31447 closed defect (fixed)
root uses software it doesn't declare dependencies on
Reported by: | ryandesign (Ryan Carsten Schmidt) | Owned by: | mattiafrancescomoro@… |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.0.3 |
Keywords: | Cc: | cjones051073 (Chris Jones) | |
Port: | root |
Description
root builds on the buildbot but not on my system. While the buildbot builds in a more or less clean environment, I have hundreds of other ports installed, and the output from the configure phase on both systems shows us what's going on: root is finding software I have on my system and trying to use it, even though no dependency on those ports is declared, and at least one of those isn't working.
root must be modified to either declare dependencies on the other ports it uses, or not use those other ports, even if they are already installed.
opengl
Buildbot:
Checking for GL/gl.h ... no Checking for libGL, or libMesaGL ... no Checking for libGLU, or libMesaGLU ... no
Mine:
Checking for GL/gl.h ... /opt/local/include Checking for libGL, or libMesaGL ... /opt/local/lib Checking for libGLU, or libMesaGLU ... /opt/local/lib Checking for GL/glew.h ... /opt/local/include Checking for libGLEW ... /opt/local/lib Checking whether to build included GLEW ... no Checking whether to build included libftgl ... yes
(I have mesa installed)
sql
Buildbot:
Checking for sql.h ... no
Mine:
Checking for sql.h ... /opt/local/include
(I have libiodbc installed)
fitsio
Buildbot:
Checking for fitsio.h ... no Checking for libcfitsio, or cfitsio ... no
Mine:
Checking for fitsio.h ... /opt/local/include Checking for libcfitsio, or cfitsio ... /opt/local/lib
(I have cfitsio installed)
giflib
Buildbot:
Checking for gif_lib.h ... no
Mine:
Checking for gif_lib.h ... /opt/local/include
(I have giflib installed)
gmp
Buildbot:
Checking for libgmp ... no
Mine:
Checking for libgmp ... /opt/local/lib
(I have gmp installed)
gsl
Buildbot:
Checking for gsl/gsl_version.h ... /opt/local/include Checking for GSL version >= 1.8 ... ok Checking for libgsl, gslML, or gsl ... no Checking for gsl-config ... /opt/local/bin/gsl-config Checking for GSL version >= 1.8 ... ok
Mine:
Checking for gsl/gsl_version.h ... /opt/local/include Checking for GSL version >= 1.8 ... ok Checking for libgsl, gslML, or gsl ... /opt/local/lib Checking for libgslcblas, gslcblasML, gslcblas, or cblas ... /opt/local/lib
(not sure why this difference since gsl is a dependency of root so both systems have gsl installed)
clarens, peac
Buildbot:
Checking for Clarens support ... no Checking for PEAC support ... no
Mine:
Checking for Clarens support ... yes Checking for PEAC support ... yes
(I don't know what these are)
Summary
Buildbot:
Enabled support for asimage, astiff, bonjour, builtin_afterimage, builtin_ftgl, cintex, exceptions, gviz, genvector, mathmore, memstat, reflex, roofit, shared, ssl, tmva, x11, xft, xml, xrootd.
Mine:
Enabled support for asimage, astiff, bonjour, builtin_afterimage, builtin_ftgl, cintex, clarens, exceptions, fitsio, gviz, genvector, mathmore, memstat, opengl, peac, reflex, roofit, shared, ssl, tmva, x11, xft, xml, xrootd.
Change History (6)
comment:1 Changed 13 years ago by cjones051073 (Chris Jones)
comment:2 Changed 13 years ago by cjones051073 (Chris Jones)
regarding the opengl dependencies, the pot has the variant (enabled by default)
variant opengl description {Builds port with opengl support} { configure.args-delete --disable-opengl configure.args-append --enable-opengl \ --with-opengl-incdir="${prefix}/include" \ --with-opengl-libdir="${prefix}/lib" \ --with-glew-incdir="${prefix}/include" \ --with-glew-libdir="${prefix}/lib" depends_lib-append port:glew }
I guess the dependency on glew is not enough. What would be the best to use here ?
comment:3 Changed 13 years ago by cjones051073 (Chris Jones)
regarding fitsio support. I've disabled it by default, and enable it via the variant
variant fitsio description {Builds port with fitsio support} { configure.args-delete --disable-fitsio configure.args-append --enable-fitsio \ --with-cfitsio-incdir="${prefix}/include" \ --with-cfitsio-libdir="${prefix}/lib" depends_lib-append port:cfitsio }
This doesn't work though out the box. the include is found but not the library.
I can only get this to work if I explicitly install the universal variant for cfitsio ? Any ideas why ?
Chris
comment:4 Changed 13 years ago by cjones051073 (Chris Jones)
to answer my own question about mesa.
I think it should be a dependency when opengl support is included, so will add it.
comment:5 Changed 13 years ago by cjones051073 (Chris Jones)
I've committed an update to try and address the issues outlined here. No 100% guarantee everything is fixed, but should be better.
comment:6 Changed 12 years ago by jmroot (Joshua Root)
Resolution: | → fixed |
---|---|
Status: | new → closed |
Thanks for the report.
Its true the configure script checks for the presences of a lot of libaries and I am not too surprised there might be some things it will find if installed and use, but the Portfile doesn't currently declare a dependency on.
The ROOT configure script does provide options to disable support for various things, where that is possible. Some of these options are used, but maybe some are missing. I'll take a more careful look.
If there are dependencies are are not manditory (i.e. the script doesn't fail if they are present) but there is no way to disable their use if they are, I will try and follow this up with the ROOT team. but for the moment the best solution would be just to declare a dependency in the Portfile, so the results are at least predictable...
Chris