Print

Print


Here is my detailed journal from building Latest heimdal version with xCode at MacOS 12.4 with the same version of SDK.

1. Download the latest heimdal source Heimdal-498.50.8.tar.gz from https://opensource.apple.com/tarballs/Heimdal/ 
2. Run in xcode.
3. Autogenerate all missing targets.
4. Build Heimdal target -> Error. Issues with wind library headers. 
5. Remove the wind library because it is windows only.
6. Build Heimdal target -> Error. heimdal-asn1_compile and heimdal-compile_et not in path. 
7. Build heimdal-asn1_compile and heimdal-compile_et manually and add them to $PATH.
8. Build Heimdal target -> Error. 'CoreFoundation/CFRuntime.h' file not found
9. Download CFRuntime.h from https://opensource.apple.com/source/CF/CF-855.17/CFRuntime.h
10. Include it on various needed places.
11. Build Heimdal target -> Error. CommonRandomSPI.h missing
12. Inlcude CommonRandomSPI.h from https://opensource.apple.com/source/CommonCrypto/CommonCrypto-60092.50.5/include/
13. Build Heimdal target -> Error. corecrypto/ccrng_system.h missing.
14. Include ccrng_system.h from https://opensource.apple.com/source/xnu/xnu-3248.60.10/EXTERNAL_HEADERS/corecrypto/ccrng_system.h.auto.html.
15. Build Heimdal target -> Error xpc/private.h missing.
16. Inlcude xpc/private.h from https://raw.githubusercontent.com/samdmarshall/OSXPrivateSDK/master/PrivateSDK10.10.sparse.sdk/usr/include/xpc/private.h
17. Build Heimdal target -> Error #include <corecrypto/ccrng.h> is missing.
18.  Inlude ccrng.h from https://opensource.apple.com/source/xnu/xnu-3248.60.10/EXTERNAL_HEADERS/corecrypto/ccrng.h.auto.html
19.  Build Heimdal target -> Error <dispatch/private.h> is missing.
20. Inlude <dispatch/private.h> from https://opensource.apple.com/source/libdispatch/libdispatch-84.5/src/private.h.auto.html
21.  Inlude various dispatch headers from https://opensource.apple.com/source/libdispatch/libdispatch-84.5
22. Build Heimdal target -> bootstrap_priv.h is missing.
23. Include from bootstrap_priv.h https://opensource.apple.com/source/launchd/launchd-328/launchd/src/bootstrap_priv.h
24. Build Heimdal target -> #include <CommonCrypto/CommonDigestSPI.h> is missing.
25. Include CommonDigestSPI.h from https://opensource.apple.com/source/CommonCrypto/CommonCrypto-55010/Source/CommonCryptoSPI/CommonDigestSPI.h
26. Build Heimdal target -> SecKeyPriv.h is missing. 
27. Include SecKeyPriv.h from https://opensource.apple.com/source/libsecurity_keychain/libsecurity_keychain-55035/lib/SecKeyPriv.h
28. Build Heimdal target -> There are various errors and incompatibilities between types and expected method declarations. 



Here i stopped because even if i find way around to fool the compiler with fiddled header file, the binary will be incompatible with the method calls and expectations in the code that uses SecKeyPriv.h. So, any suggestions are welcome.



Meanwhile, i tried different approach, with downloading the installer package from http://www.h5l.org/dist/src/ that inside have the framework headers and binaries. I extracted them and linked meach_eap against these and tried to build but without luck. But i am not sure if the issues were directly related to heimdal framework or because i did something else wrong. I will go once again down the road with this approach, document every step and post it here, so you guys can give me your opinion.