-
-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Syntax error in autotools C++ HEALPix install #461
Comments
No idea. Things work fine on my laptop, and the only difference I see at the moment is that I have pkg-config 0.29 installed. @lpsinger, have you seen this before? |
Maybe something like stlink-org/stlink#83 ? |
Thanks, I gave it a try using the path to aclocal at NERSC but didn't work. @tskisner would you have any suggestion? |
Autotools usually works under the model where "developers" have (recent) autotools versions installed. Developers build a distribution tarball (make dist). This distribution tarball can be installed by "users" who only have a Bourne shell and Make installed. This way the installation does not depend on the age / version of autotools on the user system. Recall my comment on the other issue: I believe that healpy should be installing healpix C++ from a distribution tarball and NOT calling autoreconf on a user system. Doing this makes the build dependent on the autotools versions that may or may not be installed on the user system. When I install healpix / healpy at NERSC, I first create a distribution tarball like this: https://github.com/tskisner/healpix-autotools/releases/tag/v3.31.4 and I build this tarball on my laptop with all the latest autotools. Then I go install it on the NERSC machines. That tarball includes a copy of healpy with a modified setup.py that forces it to use the healpix C++ that is built as part of the package. (I did not yet update that repo to that recently releases healpix versions). Obviously a "unified healpix installation" is challenging because the upstream packages are completely different source trees created by different people. If you really want to bundle the healpix C++ source tree (rather than a distribution tarball), have you considered other build solutions? For example, you could explicitly build a shared library directly with setup.py and just ignore the autotools files. Or you could use pybind11 and cmake to build the extension (this would require a conda / pip dependency on the cmake package). Currently your package has an implicit dependency on autotools... |
Yes. You're normally expected to distribute all of the required autoconf macros in your package. This is a defect in the healpix-cxx package. I'll provide you with a patch. |
Autotools is only a dependency for building a distribution tarball (e.g. I agree that the autotools dependency for development is weird for a Python package. But it is this way for a good reason: the C++ package is very sensitive to correct GCC versions and compiler flags; the autoconf-generated configure script does all of these checks and it was going to be a lot of work to duplicate these checks in a pure Python build system. |
@tskisner, are you aware that there are vanilla autotools build systems for healpix-cxx and chealpix? @mreineck and I maintain them and I build the Debian and MacPorts packages from them. The autotools packages are distributed on HEALPix's SourceForge project page (e.g. healpix_cxx-3.40.0.tar.gz), but unfortunately they are less well advertised than the unorthodox, monolithic, multi-language tarball with its interactive configure script (e.g. Healpix_3.40_2018Jun22.tar.gz). From a Debian and MacPorts maintainer and a HEALPix user, I would really like to see the monolithic tarball go away. In an ideal world, I would like to see the HEALPix project make the following changes:
|
Hi @lpsinger, thanks for pointing out some of the details of which I was not aware. I agree with your goals above, and appreciate all the work you and @mreineck have done. @zonca, was the build above that you tried on cori using a healpy git checkout or installing from a release tarball? If it was from a git checkout and you just want a newer version of autotools, you can get that from the toast-deps module (or obviously can install yourself). |
@tskisner, I was already using toast-deps |
Yes it worked, thanks! Do you think this is worth a release? |
No, I don't think that is necessary, because it only affects building from git. |
@mreineck not sure if the autotools installation is officially supported in HEALPix so I opened an issue here instead of the HEALPix bug-tracker.
HEALPix C++ fails to install with autotools (on Cori at NERSC). I am trying to install the version bundled with healpy, which is https://github.com/healpy/healpixmirror/tree/bd2ddf629d2d75d65205b2bc38f3940a3f9eeefb
I run:
do you know what might be the problem?
The text was updated successfully, but these errors were encountered: