dear core developers at BioC, as you might have seen in a message at BioC, the package GSVA (which i collaborate maintaining it) requires GSL version >= 1.6, however current GSL version is 1.15 (see http://www.gnu.org/s/gsl) and in fact the original version of the package we submitted required version >= 1.12 according to the svn log, the core development of BioC decided to replace the configure.ac file by other one more appropriate for building the package in windows and apple machines, so i guess that this 1.6 version requirement change might have been introduced at that point. i must confess i'm not an expert with configure scripts, so i'd like to double check with you whether i could solve this issue by simple replacing all the 1.6 values by 1.12 values. i currently cannot verify whether that works because in fact the configure script seems to by pass that requirement, but the message pops up when GSL is not available and confuses the user about what GSL should be installed in the system. additionally, our former configure script had the options --with-gsl-lib --with-gsl-include in order to allow the user to have a non-system-wide installation of GSL. i understand that this should be now handled differently to ensure across-platform compatibility and it depends whether the gsl-config script is on the PATH variable. would it be possible to add some option to the configure script to tell where exactly the gsl-config script is?? (in case the user cannot or does not want to have a system-wide installation of GSL). thanks!!!! robert.
[Bioc-devel] GSVA/configure.ac problem
5 messages · Robert Castelo, Hervé Pagès, Dan Tenenbaum
2 days later
Hi Robert,
On 11-11-07 10:30 AM, Robert Castelo wrote:
dear core developers at BioC, as you might have seen in a message at BioC, the package GSVA (which i collaborate maintaining it) requires GSL version>= 1.6, however current GSL version is 1.15 (see http://www.gnu.org/s/gsl) and in fact the original version of the package we submitted required version>= 1.12 according to the svn log, the core development of BioC decided to replace the configure.ac file by other one more appropriate for building the package in windows and apple machines, so i guess that this 1.6 version requirement change might have been introduced at that point.
Yes "the core development of BioC" (and in that case it was me) fixed the configure script a couple of days before the release because it was not working properly on our Mac OS X build machine. I must confess I'm not an expert with configure scripts either so what I did was copy the configure.ac file from another package that links to the GSL, and did very minor modifications to it (if you do diff GSVA/configure.ac flowClust/configure.ac you'll be surprised how little different those files are). I forgot to replace >= 1.6 by >= 1.12 though, sorry.
i must confess i'm not an expert with configure scripts, so i'd like to double check with you whether i could solve this issue by simple replacing all the 1.6 values by 1.12 values.
That seems to work (I just tested this on my Linux laptop). Don't forget to rerun autoconf.
i currently cannot verify whether that works because in fact the configure script seems to by pass that requirement, but the message pops up when GSL is not available and confuses the user about what GSL should be installed in the system.
The configure script will fail when GSL is not found on the system OR when it is found but has an inappropriate version. In the latter case, you'll get something like: hpages at latitude:~/svn/Rpacks_2_9$ R-2.14 CMD INSTALL GSVA * installing to library ?/home/hpages/R-2.14.0/library? * installing *source* package ?GSVA? ... checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking for GSL... no checking for gcc... gcc -std=gnu99 checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc -std=gnu99 accepts -g... yes checking for gcc -std=gnu99 option to accept ISO C89... none needed checking for gsl-config... /usr/bin/gsl-config checking for GSL - version >= 1.12... *** 'gsl-config --version' returned 1.9.0, but the minimum version *** of GSL required is 1.12.0. If gsl-config is correct, then it is *** best to upgrade to the required version. *** If gsl-config was wrong, set the environment variable GSL_CONFIG *** to point to the correct copy of gsl-config, and remove the file *** config.cache before re-running configure no configure: error: Cannot find the Gnu Scientific Library >= 1.12 ERROR: configuration failed for package ?GSVA? * removing ?/home/hpages/R-2.14.0/library/GSVA? * restoring previous ?/home/hpages/R-2.14.0/library/GSVA?
additionally, our former configure script had the options --with-gsl-lib --with-gsl-include in order to allow the user to have a non-system-wide installation of GSL. i understand that this should be now handled differently to ensure across-platform compatibility and it depends whether the gsl-config script is on the PATH variable. would it be possible to add some option to the configure script to tell where exactly the gsl-config script is?? (in case the user cannot or does not want to have a system-wide installation of GSL).
Even for a non system-wide installation of GSL, the user can always (and should) have the gsl-config script in his/her PATH. It's reasonable to assume that if s/he was able to install his/her own private GSL, s/he also knows how to modify his/her PATH to point to it. Alternatively, as displayed by the error message above, s/he can set the environment variable GSL_CONFIG to point to his/her private copy of gsl-config. Does that make sense? Cheers, H.
thanks!!!! robert.
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319
1 day later
hi Herv?,
Yes "the core development of BioC" (and in that case it was me) fixed the configure script a couple of days before the release because it was not working properly on our Mac OS X build machine. I must confess I'm not an expert with configure scripts either so what I did was copy the configure.ac file from another package that links to the GSL, and did very minor modifications to it (if you do diff GSVA/configure.ac flowClust/configure.ac you'll be surprised how little different those files are). I forgot to replace >= 1.6 by >= 1.12 though, sorry.
thanks a lot for fixing the configure script. I have found out in the last days that in fact this "1.6" version might have to do with the versioning standard of GSL for windows which according to this url: http://gnuwin32.sourceforge.net/packages/gsl.htm seems to follow an independent scale since it says that right now the latest version is "1.8". so i've made the change in the devel-version of GSVA but i'm afraid that it may not build anymore in windows. In such a case I guess I would have to address that by updating the configure.ac script such that if the system is unix then requires version >= 1.12 and if it's windows then it requires version >= 1.6. I hope I don't have to because at the moment I have no clue how I would do that. next to this, in a recent post at BioC https://stat.ethz.ch/pipermail/bioconductor/2011-November/042033.html it was described an additional step that should be done to have a successful windows installation of the GLAD package, which also requires GSL, and which consists of duplicating the file libgsl.dll into a file called libgsl-0.dll i have verified in the windows xp partition of my mac, that this latter step is absolutely necessary to have an installation of GSVA, and GLAD too, without problems. so i wonder whether you had to do the same with the GSL installation of your windows machines in Seattle, or you install GSL in windows in some other way.
That seems to work (I just tested this on my Linux laptop). Don't forget to rerun autoconf.
thanks, i've done just that and submitted the changes to devel. if i see that the package builds and installs correctly i'll push them to release.
Even for a non system-wide installation of GSL, the user can always (and should) have the gsl-config script in his/her PATH. It's reasonable to assume that if s/he was able to install his/her own private GSL, s/he also knows how to modify his/her PATH to point to it. Alternatively, as displayed by the error message above, s/he can set the environment variable GSL_CONFIG to point to his/her private copy of gsl-config. Does that make sense?
yes, you're right, thanks for clearing this up. I've also updated accordingly the README file of the package. cheers, robert.
Hi all, 2011/11/11 Robert Castelo <robert.castelo at upf.edu>:
hi Herv?,
Yes "the core development of BioC" (and in that case it was me) fixed the configure script a couple of days before the release because it was not working properly on our Mac OS X build machine. I must confess I'm not an expert with configure scripts either so what I did was copy the configure.ac file from another package that links to the GSL, and did very minor modifications to it (if you do diff GSVA/configure.ac flowClust/configure.ac you'll be surprised how little different those files are). I forgot to replace >= 1.6 by >= 1.12 though, sorry.
thanks a lot for fixing the configure script. I have found out in the last days that in fact this "1.6" version might have to do with the versioning standard of GSL for windows which according to this url: http://gnuwin32.sourceforge.net/packages/gsl.htm seems to follow an independent scale since it says that right now the latest version is "1.8". so i've made the change in the devel-version of GSVA but i'm afraid that it may not build anymore in windows. In such a case I guess I would have to address that by updating the configure.ac script such that if the system is unix then requires version >= 1.12 and if it's windows then it requires version >= 1.6. I hope I don't have to because at the moment I have no clue how I would do that. next to this, in a recent post at BioC https://stat.ethz.ch/pipermail/bioconductor/2011-November/042033.html it was described an additional step that should be done to have a successful windows installation of the GLAD package, which also requires GSL, and which consists of duplicating the file libgsl.dll into a file called libgsl-0.dll i have verified in the windows xp partition of my mac, that this latter step is absolutely necessary to have an installation of GSVA, and GLAD too, without problems. so i wonder whether you had to do the same with the GSL installation of your windows machines in Seattle, or you install GSL in windows in some other way.
I can't say exactly where we got the GSL on our build machines. We must have downloaded it at some point and I'm trying to find that download, but so far without luck. I believe that we downloaded a pre-compiled version of GSL for windows. I can tell you that the version of GSL we are running on our windows build machines is 1.13. I don't think we copied libgsl.dll to libgsl-0.dll. In fact, in our distribution of the GSL there is no libgsl.dll, only libgsl-0.dll, and you can see by looking at the build reports that GSVA, GLAD, and other packages using the GSL are building fine. There are a couple of other things you need to do: 1) Set an environment variable called LIB_GSL that points to the root of your GSL installation (on our build machines, C:/GSL (note forward slash). 2) Make sure c:\GSL\i386\bin and c:\GSL\x64\bin are in your PATH. Hope this helps, Dan
That seems to work (I just tested this on my Linux laptop). Don't forget to rerun autoconf.
thanks, i've done just that and submitted the changes to devel. if i see that the package builds and installs correctly i'll push them to release.
Even for a non system-wide installation of GSL, the user can always (and should) have the gsl-config script in his/her PATH. It's reasonable to assume that if s/he was able to install his/her own private GSL, s/he also knows how to modify his/her PATH to point to it. Alternatively, as displayed by the error message above, s/he can set the environment variable GSL_CONFIG to point to his/her private copy of gsl-config. Does that make sense?
yes, you're right, thanks for clearing this up. I've also updated accordingly the README file of the package. cheers, robert.
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
2 days later
Hi Dan,
I can't say exactly where we got the GSL on our build machines. We must have downloaded it at some point and I'm trying to find that download, but so far without luck. I believe that we downloaded a pre-compiled version of GSL for windows. I can tell you that the version of GSL we are running on our windows build machines is 1.13. I don't think we copied libgsl.dll to libgsl-0.dll. In fact, in our distribution of the GSL there is no libgsl.dll, only libgsl-0.dll, and you can see by looking at the build reports that GSVA, GLAD, and other packages using the GSL are building fine. There are a couple of other things you need to do: 1) Set an environment variable called LIB_GSL that points to the root of your GSL installation (on our build machines, C:/GSL (note forward slash). 2) Make sure c:\GSL\i386\bin and c:\GSL\x64\bin are in your PATH. Hope this helps, Dan
from what you say here about the directory structure and the LIB_GSL environment variable i think you probably do not have the GSL installation from http://gnuwin32.sourceforge.net/packages/gsl.htm but from Cygwin at http://cygwin.com which does preserve the GSL versioning scale from the unix platform. i've observed that after the small change at the configure.ac file (replacing the version requirement of 1.6 by 1.12) the devel version compiles and builds in the windows machine in Seattle without problems, so i'll push this change to the release and update the README file to point out that under windows if the user has Cygwin, he/she needs to set LIB_GSL to the root of the GSL installation and add the corresponding C:/GSL/architecture/bin to the PATH, while if the user has gnuwin32.sourceforge.net installation needs to do the above trick of duplicating the file. thanks!! robert.