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)

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

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.

#31471

comment:6 Changed 12 years ago by jmroot (Joshua Root)

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.