Menu

#96 Support for OS X 10.11+ SDK

closed-fixed
None
Adium
1
2017-06-25
2017-01-25
No

FYI...

Apple has decided to deprecate OpenSSL in MacOS 10.8 and above. As of 10.11, they completely removed it from their SDK, which means it's no longer available for sipe-adium... so building on 10.11 (or later) breaks.

A couple of suggestions on how to fix this...

1) Include a version of OpenSSL in the adium area of the source tree, and statically link it at build.
2) Change the build instructions to have builders pull a copy of OpenSSL from somewhere like macports, or homebrew, and statically link it at build.
3) Re-factor the security code in sipe-core to split between the OpenSSL implementation, and a MacOS native libraries (CommonCrypto/Secure Transport) implementation.

I would love to help out (I've been a proud supporter of the project in the past), but my current life doesn't provide a lot of time to fix code. :(

Discussion

  • Stefan Becker

    Stefan Becker - 2017-01-25

    Ticket moved from /p/sipe/bugs/319/

    Can't be converted:

    • _milestone: development_(git_HEAD)
     
  • Stefan Becker

    Stefan Becker - 2017-01-25

    This is not a bug but a feature request.

    • (1): no way, this was how it was done previously and was just a pain in the behind
    • (3): impossible, because the native MacOS crypto implementation is incomplete, e.g. it doesn't have code to create certificates

    You also forgot to mention option (4): install an older Xcode (6.3 or 7?) on with a SDK that supports OS X 10.9. That is what I have done on the Mac I have access to.

    Unless someone provides an easy way how option (2) can be implemented, option (4) will be the only option. As long as Adium supports OS X older than 10.9 I don't see this as a real issue.

     
  • Stefan Becker

    Stefan Becker - 2017-01-25
    • summary: Sipe-Adium doesn't build on MacOS 10.11 or later --> Build support for MacOS 10.11+
    • Priority: 5 --> 1
     
  • Stefan Becker

    Stefan Becker - 2017-01-25
    • Category: Compilation --> Adium
     
  • Stefan Becker

    Stefan Becker - 2017-01-26

    Option (5): download OpenSSL source and add (partial) OpenSSL subproject to SIPE-Adium Xcode project. This might less cumbersome than option (2).

     
  • Stefan Becker

    Stefan Becker - 2017-01-29
    • summary: Build support for MacOS 10.11+ --> Support for OS X 10.11+ SDK
     
  • Michael Lamb

    Michael Lamb - 2017-02-10

    When the project used NSS, I had essentially done Option (2) for it... so I could probably take some time and figure out how to do that for OpenSSL.

     
  • Stefan Becker

    Stefan Becker - 2017-02-10

    I would not recommend it. Option (2) made it almost impossible for a normal user to reproduce a working build.

    Option (5) should be much simpler to implement and much easier to use.

     
  • Stefan Becker

    Stefan Becker - 2017-05-26

    Boy, oh boy, why do developers accept the crap Apple piles onto them?

    • XCode 6.x no longer runs on OS X 10.12 :-(
    • XCode 7.x has severe issues when trying to build SIPEAdiumPlugin project. Documented and pushed my findings as commit d91cf9f

    I can only hope that I can still produce valid release Adium releases with XCode 7.x...

     
    • Stefan Becker

      Stefan Becker - 2017-05-28

      Test build of git HEAD using the new build environment (Xcode 8.x on macOS 10.12, targetting OS X 10.9) can be found in the development files area. It would be nice if someone could download and test it, as this will be the build environment for future releases.

      Yes, I know that adium 1.5.10.4 is the latest version, but that fails to build on Xcode 8.x.

       
  • Stefan Becker

    Stefan Becker - 2017-06-23

    I started to play around with option (5) and stumbled over a much much simpler solution.

    Thus option (6):

    • download openssl-0.9.8za release source code (why? Because that is the release the OpenSSL dynamic libraries included in Mac OS X are based on)
    • unpack the release archive in the same directory as adium & SIPE source code
    • copy opensslconf.h from Mac OS X SDK 10.9 to src/adium/openssl/ (this makes sure we get the correct flags)
    • add . (for openssl/opensslconf.h to override the one in the OpenSSL include directory) and ../../../openssl-0.9.8za/include (for all other openssl/xxx.h) to header search path
    • (fixes another build problem) remove references to libxml2.dylib and add -lxml2 to linker options instead

    Now the code compiles and links in Xcode 8.3.3 on macOS 10.12.5 without making any changes to the project. It seems that Xcode automatically links against the OpenSSL library from the SDK or generates code that automatically loads it. I.e. only the OpenSSL headers need to be provided and nothing else is required from the SDK.

    The generated SIPE binary works fine on my Mac.

     
  • Stefan Becker

    Stefan Becker - 2017-06-24
    • status: open --> closed-fixed
    • assigned_to: Stefan Becker
     
  • Stefan Becker

    Stefan Becker - 2017-06-24

    Implemented in git commit 8d6b615

    It seems that Adium 1.5.10.4 does not compile for SDKs older than OS X 10.11. Therefore future release builds will be for SDK OS X 10.11 and Adium 1.5.10.4.

     
  • Stefan Becker

    Stefan Becker - 2017-06-25

    Michael: I uploaded a build of git HEAD to the development directory. It would be nice if you could try it out.

     
  • Stefan Becker

    Stefan Becker - 2017-06-25

    sigh of course I got the name wrong. The build is for OS X 10.11.

     

Log in to post a comment.