-
Notifications
You must be signed in to change notification settings - Fork 881
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
Unable to build with boost 1.71 on Debian #3030
Comments
I've also encountered a similar issue and supplying
That fixes the issue? |
I have essentially the same problem. I'm compiling RDKit 2020_3 using Python 3.9a1, and Boost 1.72, all built today. cmake is version 3.15.5 . I configured the RDKit cmake step as:
I get the same messages when cmake finishes:
It's possible to build, but then I get an error part way through when it tries to link to
In particular, note the two lines:
|
@adalke can you please try adding |
but isn't that a workaround then trying to fix the issue as it is ? If I'm understanding that flag correctly, you are telling that try to build without the boost shared libraries which are on the system of the user. |
It is a workaround, but it has the chance to get Andrew a working build until the RDKit build system is updated (assuming that happens).
Actually I believe this particular flag is to allow cmake configurations that work with older boost distributions to continue to work with new boost distributions, which is exactly the situation here. Hopefully someone will have the time and inclination to look into how to change the RDKit's build configuration to simultaneously support both styles without the user needing to provide the cmake flag, but in the meantime we're using the system the way it was meant to be used. |
Adding
The output has a number of cmake warnings starting with:
The output ends with an error; the end of the cmake output is:
If I try to make:
|
Note: I build boost 1.72.0 from tarball on Debian Buster. I use CMake, GCC, and Python provided by apt.
Do you build boost.python? |
@adalke Hi Andrew, try adding |
Well, yes, I built boost.python. That's why the earlier builds (before I specified I modified CMakeLists.txt to force the system and iostreams components to be included:
That issues no warnings during 'cmake' and compilation goes to completion. However, I cannot
That's missing the dynamic link to libboost_python, which are in:
However, including that doesn't help:
Checking libRDKitRDBoost.1.dylib directly, I see it doesn't have a shared library dependency on libboost_python:
My guess is the brute-force addition of I don't know cmake, and don't know what to try next. I think I'll add "python" to that and rebuild, while others add ideas. |
I changed CMakeLists.txt to include "system iostreams" as part of the Python find_package(Boost) rather than on their own. That seems to have done the trick. Here's the unified diff:
Rebuild (wait, wait, wait), install, and it works! Here's the latest RDKit release working under a venv for Python 3.9a1:
|
My question to you is why are you using python3.9 when both in bullseye and in buster-backports you have python 3.8.2 . (edit - in buster we have 3.7.3.1) according to the tracker. https://tracker.debian.org/pkg/python3-defaults Is there something interesting/ground-breaking in python3.9 that we should know about ? FWIW, there is move to remove python2 entirely from the archive, although buster python2 builds should still work till their EOL . https://release.debian.org/transitions/html/python2-rm.html https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=931659 The DD's are trying get this done without disrupting much but for that to happen, everybody has to play their part, especially upstreams. |
Because I want to see if my code uses anything which will be deprecated/removed in the future. (I use PyObject_AsCharBuffer which is deprecated, but not yet removed in 3.9.) Because someone needs to do an early check for any problems with upcoming Python releases. Because I'm not a Debian user - I'm commenting on this thread because I have identical RDKit errors, not because I'm specifically trying to reproduce under Debian. Have you tried my patch to see if it fixes your problem?
I don't understand what this means. Who are the DD's? What part am I supposed to play? Why? How am I supposed to know this? Who are you to make any statements about my role in this? |
Ah check.
Not yet, but will pass on the message that there is a fix to the relevant people.
DD's are Debian Developers, by upstream I meant the rdkit developers, as shared by @greglandrum any potential fix needs to be upstreamed. The statement I shared was not directed at you but upstream i.e. upstream developers. https://wiki.debian.org/UpstreamGuide . What Debian likes to do is have a close relationship with upstream so that the delta between what upstream develops and what is within Debian is minimal to the fault, so people try as much to take from upstream the fixes rather than fixing something which may again need a patch because upstream went another way. I hope you understood what I meant. |
Ok, it seems like the temperature here is getting a bit high, which isn't particularly helpful and is certainly incompatible with the atmosphere of collegiality and helpfulness that is a general part of the RDKit community and that I think almost all of us really appreciate. I'm all for having the main RDKit repo as easily buildable as possible for downstream systems. That could help increase adoption, which is certainly not a bad thing. However, before we think about making any changes in the build system on the RDKit side, it would be nice to know whether or not the changes @adalke suggests, which seem to work for him on the Mac, also help on the debian side @shirishag75. |
A quick comment here: I think it's awesome that the debian folks are removing the unsupported python2 from their distribution, but I'm not sure what that has to do with the RDKit. The last RDKit release that supported Python2 was more than a year ago (the 2018.09 release series), so I don't think there's anything more for us to do on that front. Did I miss something? |
snipped -
This bit of info. was not known to me, otherwise perhaps I would not have commented on that part. Makes everybody life easier. My intention is and was never to hurt anybody intentionally or otherwise, and sorry if I caused any hurt during understanding things as they are. |
Same problem with boost 1.72 on Mac with brew. |
For the brew recipe, we already have '-DBoost_NO_BOOST_CMAKE=ON'; that doesn't fix the issue. |
|
@adalke did you try your fix on a mac? |
Yes, on a Mac. |
'-DBoost_NO_BOOST_CMAKE=ON' apparently fixes the build issue for: however, there are many "deprecated" messages: and many test failures from ctest: 66% tests passed, 61 tests failed out of 182 |
@ryszard314159 I can get an ubuntu 20 image and do a build, could you send me the explicit commands you used to build rdkit? |
I basically followed instructions from https://www.rdkit.org/docs/Install.html [How to build from source with Conda | Linux x86_64: Python 3 environment]. I had to add '-DBoost_NO_BOOST_CMAKE=ON' to make cmake work.
-- After I am getting this error: Python 3.6.10 |Anaconda, Inc.| (default, May 8 2020, 02:54:21)
find /home/ryszard/anaconda3/envs/my-rdkit-env -name libboost_python* gives me: |
If there were up to date binary rdkit packages for Ubuntu and Debian, less people would open such issues... |
Please see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=954351
During compilation it bugs out at -
This would be in a Debian sid/unstable chroot or shroot . Python used would be python 3.8.2-2 . Boost being used is
I did have a brief look at https://github.com/rdkit/rdkit/blob/master/Code/cmake/Modules/RDKitUtils.cmake
and saw that at line 153 this shows up -
line 153 starts from add_executable
and the other one -
https://github.com/rdkit/rdkit/blob/master/External/CoordGen/CMakeLists.txt
line 110 starts from -
${RDK_COORDGEN_LIBS} Depictor
Also sharing the compile log in case if that gives you any more clues.
rdkit.log.gz
The text was updated successfully, but these errors were encountered: