-
Notifications
You must be signed in to change notification settings - Fork 176
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
Build Failure on MacOSX 10.15 - PCL #4656
Comments
It appears this issue is caused by the hard pin on boost=1.68.0 in the ISIS environment.yml. Boost is also a dependency of PCL. USGS-Astrogeology has a version of the PCL for the Mac at pcl=1.8.1-1. Here is its dependency list for pcl=1.8.1-1:
This essentially eliminates this version from a Mac install since boost-cpp is pinned at 1.68.0. So conda looks for any version of PCL > 1.8.1, which it settles upon pcl=1.9.1. pcl=1.12.0 was released two days ago; the first version of pcl=1.11.1 was released nearly one year ago. From the conda list above, we see that pcl=1.9.1, build hdd77166_1002 was selected/installed. The dependencies for this PCL version is:
This pcl=1.9.1 version, released on May 29, 2019, satisfies the Boost version pinned to boost=1.68.0. The next available PCL package is pcl=1.9.1, build h146d302_1003, released on Oct 21, 2019. Its dependencies are:
So any PCL version > 1.9.1, build hdd77166_1002, will not satisfy the ISIS boost version pin limitation and conda will not install any subsequent version of PCL until boost is unpinned or repinned to a higher version. This is significant because of the timeline of the PCL fix for this reported problem. It was merged on July 18, 2019 which specifically fixes this compile issue. That timeline is right after boost=1.9.1, build hdd77166_1002 and before build h146d302_1003, which appears to mean that the fix is contained in the latter build h146d302_1003, which will not be installed on the Mac. So I tried to pin boost=1.70.0 and conda failed. Then I tried mamba, which failed also with a brief, much more informative, error message:
So, can boost's hard pin be changed to accommodate this fix? |
I did attempt to build with boost unpinned. Conda built the environment rather easily, installing the lower version of boost=1.67.0 and USGS version of pcl=1.8.1-1. That resulted in the following compilation error:
|
Upgrading PCL is a part of #4634 which finishing will be a high priority for the upcoming support work. In the meantime, you will need to manually patch your PCL install. This is the change you want: Attached is a tarball with both a patch file and a copy of the patched 1.9.1 header. You can either copy the header into your install with
or patch your install with
|
Unfortunately, neither fix worked. The file convolution.h in your tarball is no different from the installed version and results in the same error. The patch produces a different convolution.h but the error is also exactly the same. This shows the differences in convolution.h after the patch with the copy contained in the tarball, so it appears to have taken:
Here is the full error after the patch:
It appears there are more files involved that just convolution.h. |
It looks like this particular commit is the one that will resolve these compilation problems. If you add a .patch to the end of the commit SHA-1 hash url, you can get a git patch sequence and update the files in the installation in the following way:
Unfortunately, this also fails:
I tried quite a few options but none succeeded. However, I think this is due to a previous commit to upgrade to pcl-1.10.0 that also impacted these files. That commit was merged on or about June 5, 2019, and the above commit was on July 18, 2019, which is ~one month after the upgrade commit. This seems really risky. Perhaps I am not doing it right. I don't know what else to try other than changing files by hand (also risky). Suggestions? Any idea on the timeline of #4634? |
@KrisBecker We have an upcoming support sprint set to begin 11/01/21. Although we haven't had our prioritization meeting yet, discussions have indicated that this set of issues is a high priority both inside and outside the organization, so it's very likely that this will be finished as part of this sprint. |
Ok, thanks for the info and help. I am prepared/willing to assist in testing this update on my platform if y'all are still stuck on MacOSX 10.13. |
It looks like I put the incorrect convolution.h file in the tarball but the patch is correct and will fix that header. The PCL PR that I linked previously has fixes for the other files in it too. Previously all I've needed to patch was the convolution.h file. Attached is a set of patches to apply that mirrors the PCL PR and should fix these issues |
@jessemapel this set of patches worked in my environment. Here is the result of the patches:
I repeated this procedure in a new conda environment with the most recent version of ISIS that was freshly fetch/merged from dev, which was also successful. Here is the full set of instructions updated with the patch commands:
While this workaround appears to result in a successful build (I will continue testing), I would like to keep this issue open until the PCL/Boost pinning issue is resolved and tested. Thanks for your help. |
You can also replace |
Agreed. I updated my post. Thanks... |
I pulled the ISIS test data following the new instructions in the README.md (which are excellent, BTW) and I am getting 325 errors reported running the |
@KrisBecker This needs to be a new issue. @Kelvinrr @acpaquette @AustinSanders @scsides @jessemapel Can you confirm that the test data is properly synced on S3? That is now the source of record. Please respond on the new issue that @KrisBecker opens about this. |
@KrisBecker The quick fix I used for this was to make sure to use Eigen 3.3.9 as there is some kind of issue with Eigen 3.4. have you tried downgrading a version tick? |
@Kelvinrr Ok, I will give this a try. I'd imagine its OK to hard pin eigen=3.3.9 in the environment.yml? Thanks... |
@KrisBecker yeah, that worked for 2 people in the building so far so I think that's the thing to get this closed. |
After this error is cleared, you're likely to run into #4667 which I am still working on trying to fix. |
ISIS version(s) affected: 6.0.0
I am unable to build ISIS on a MacOSX 10.15.3 due to an apparent problem with the PCL package. This one appears to be the same problem mentioned in #4469 where an include file in the PCL package is producing a compile error.
Here is my current dev environment:
Description
Partway into the build, this error is generated when compiling the Embree unit test:
How to reproduce
Build instructions applied per the ISIS build web page:
Possible Solution
Unknown
Additional context
Here is the package contents of my Conda build environment:
The text was updated successfully, but these errors were encountered: