-
Notifications
You must be signed in to change notification settings - Fork 68
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
Workaround for XCode7 and 10.11 SDK #1572
Conversation
@sankhesh your changes work, but of course SDK11 brings in new issues, let's use this branch to fix them
|
@doutriaux1 are we going to wait for RC1 for this? |
@doutriaux1 not that this will change things much (I'd imagine) but |
@aashish24 nope this will not even delay 2.4.0 final, if it makes it great otherwise it's ok |
@doutriaux1 @aashish24 The error is because of Apple's decision to remove OpenSSL headers from El Capitan SDK. We could either add it as a pre-requisite and as users to install OpenSSL beforehand or build it ourselves as part of the Superbuild. Which route do you prefer? |
build it ourselves if we determine the version of SDK is 10.11 |
We need to be a bit careful about this. It seems they only removed the headers not the shared library. The homebrew issue list is filled with bugs resulting from packages linking with the system https://langui.sh/2015/07/24/osx-clang-include-lib-search-paths/ |
I agree we need to fix it for the users. @jbeezley can we just install the headers? |
Assuming you install exactly the same version, yes. However, the version included is old, buggy, has many known exploits, and doesn't support TLS 1.1 or 1.2. The lack of support for TLS 1.2 will prevent connecting to many web sites including most of those hosted by kitware. |
I am inclining towards installing our own version and prefix the paths so that our version if found first. As referred in the blog post from @jbeezley this one is not free from issues but since we are building our own python, hopefully we should be alright. What you all think? |
I agree, let's install our own, we control the paths via the setup_runtime.[c]sh anyway. @sankhesh mind taking a stab at it? We are not allowed to use XCode7 at the lab. |
Yep Sure. |
@aashish24 any chance Kitware has a mac we can setup as a XCode7 bot. |
I am going to ask people around. @demarle do we have any Mac running XCode7? |
Mine is XCode 7, but it is also the one that I use daily. I don't what windows popping up all the time. If MESA worked on mac, I would consider using it. |
thanks @jbeezley but yes it has to be some computer that is always on and basically unused. |
I learned some additional information about ssl RE OS X >= 10.9, which is most likely relevant to #1337. Apple replaced openssl with their own implementation (SecureTransport) for certain system components including libcurl. The important difference in the implementation is that it doesn't support reading standard certificate files (including curl flags like The result of this is that the |
@doutriaux1 @aashish24 I should have support for Xcode 7 in a pull request today. |
Yes! Many thanks @sankhesh ! |
@doutriaux1 You test the OSX version and SDK version here. Why do they have to match? Why can't I build against a different Xcode version? The reason I'm asking is I want to verify my changes with an older Xcode and this code does not let me pass through. |
Guys, What we are going to do about the ssl? |
@jbeezley Is the build still running? |
@sankhesh ok.... I moved /usr/include/opensll out of the way. The build still goes through happily, but no openssl is being built! Do you know what
|
|
The test data downloads kept timing out, so I never got a complete build. |
@doutriaux1 Is Also, UV-CDAT CMake should give you a message from here pointing to where it found OpenSSL. |
@doutriaux1 Also, is that the complete list of packages you posted? It doesn't even have VTK. |
@sankhesh i turned off QUIET t osee what happens (I think we should leave it off) I see:
So it appears that all we need are libraries? Not the headers? I thought the issue was with headers being missing. |
@doutriaux1 The message is being printed by my code and QUIET does not have anything to do here. If we leave out QUIET, if OpenSSL is not found, it will stop the configuration process asking the user for OpenSSL. Please see CMake docs here. |
@sankhesh I see, but the point is, we do not need the headers then, is that right? Is XCode7 not distributing the ssl binaries? I have a hard time believing this. |
@jbeezley use: |
@doutriaux1 We need OpenSSL headers to build CRYPTOGRAPHY. In my stock OSX 10.11.2 and Xcode 7.2 I have the OpenSSL library but no headers. CMake figures out that it cannot find the headers and decides to build OpenSSL itself. |
@sankhesh not for me. I moved the headers that were in /usr/include/opensll away and it went on and happily built everything... That's why I looked at |
Added step that tests if OpenSSL headers exist at the root directory where library found.
Okay. I added an extra check for OpenSSL headers. Can you try the latest commit. |
@sankhesh I will. But in the mean time I'm running another build with the libs and not the headers. It seems to work on my system! Will wait for it to finsih and run ctest to be sure. Then i will test your commit again. |
@sankhesh ok I figured it out I moved the
|
yes that was it. Moving them out of my ${HOME} actually triggered the build of opensll (even before your commit). Trying with your commit now. |
ok I got:
|
@doutriaux1 looks like a LLNL issue? or may be temporary issue. Using the LLNL server is a good thing which you did now. |
@sankhesh all good for me both with or without opensll headers. see: https://open.cdash.org/index.php?project=UV-CDAT&date=2015-12-21&display=project if @jbeezley is ok with this feel free to merge into master. |
@sankhesh nice job! one thing is that checking for openssl_include_dir is not necessary as you had in the original code since this is what we have in the FindOpenSSL.cmake
|
Yeah that's what I figured. The last commit was just to make @doutriaux1 happy. |
@sankhesh yes I figured that as well I had put my includes in the ${HOME} directory. Somehow it looked there for the includes which is why I thought the original code wasn't looking for the headers. I still wonder if we should really look into ${HOME} though. Anyhow I'd say let's merge as soon as we hear from @jbeezley |
The cdms issue is probably unrelated. |
ok merging then. |
Workaround for XCode7 and 10.11 SDK
Let's use this branch for all SDK11 changes