[webkit-changes] [WebKit/WebKit] aa721f: [iOS 17] Build on the public SDK

Elliott Williams noreply at github.com
Thu Aug 3 13:34:07 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: aa721f7998fcfe5bba32f0feb9b7217c7ba520da
      https://github.com/WebKit/WebKit/commit/aa721f7998fcfe5bba32f0feb9b7217c7ba520da
  Author: Elliott Williams <emw at apple.com>
  Date:   2023-08-03 (Thu, 03 Aug 2023)

  Changed paths:
    M Source/WTF/wtf/PlatformHave.h
    M Source/WebKit/NetworkProcess/cocoa/AppStoreDaemonSPI.h
    M Tools/Scripts/configure-xcode-for-embedded-development
    A Tools/Scripts/extract-tbds-from-internal-sdk
    A Tools/Scripts/strip-tbd
    M Tools/WebKitTestRunner/Configurations/Base.xcconfig
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/SDKSettings.plist
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd
    A WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/SDKSettings.plist
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/FontServices.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd
    A WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h

  Log Message:
  -----------
  [iOS 17] Build on the public SDK
https://bugs.webkit.org/show_bug.cgi?id=259513

Reviewed by Alexey Proskuryakov.

Adds iphoneos17.0-additions and iphonesimulator17.0-additions SDKs
containing stubs for private frameworks. Unlike past cycles, these have
been generated automatically from the internal SDK, using a `strip-tbd`
program (also added). The workflow I used was:

1. Using products from an internal build, `otool -L` relevant binaries
   (WebCore, WebKit, TestWebKitAPI) to find private frameworks linked
   against.

2. Copy those frameworks' tbd stubs from the internal SDK to the same
   locations in the sparse SDK.

3. Strip out all the symbols we aren't binding to:

    nm -gj WebKitBuild/Debug/WebCore.framework/WebCore > /tmp/WebKit.exp
    nm -gj WebKitBuild/Debug/WebKit.framework/WebKit >> /tmp/WebKit.exp
    # etc.
    strip-tbd -s /tmp/WebKit.exp WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/**/*.tbd

Additionally, this workflow has been automated into a script which generates the API stubs
for a sparse SDK in a single invocation. I generated iphonesimulator17.0
framework stubs by running:

    extract-tbds-from-internal-sdk -b $build `xcrun --show-sdk-path --sdk iphonesimulator.internal` WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk

The new linker included in Xcode 15 is stricter about validating targets
in TBDs (it uses LLVM's codepath for parsing TBDs, which treats unknown
platforms as an error). As a result,
configure-xcode-for-embedded-development needs to patch TBDs in the base
SDK with *target* strings, not just architectures. This also means that
the private framework stubs cannot be shared between device and
simulator variants, but since we can now auto-generate the stubs, I
think it's reasonable to check in separate TBDs for both SDKs.

Aside from the sparse SDK changes, make a few minor fixups.

* Source/WTF/wtf/PlatformHave.h: Lockdown mode was never supported in
  simulators, and a Core Graphics function we call in LDM was removed
  from the simulator SDK. Refine this platform macro.
* Source/WebKit/NetworkProcess/cocoa/AppStoreDaemonSPI.h: The public
  side was missing NONNULL markers.
* Tools/Scripts/configure-xcode-for-embedded-development: Patch TBDs
  with target strings, as mentioned above.
* Tools/Scripts/extract-tbds-from-internal-sdk: Added.
* Tools/Scripts/strip-tbd: Added.
* Tools/WebKitTestRunner/Configurations/Base.xcconfig:
  In non-macOS builds, /System/Library/PrivateFrameworks is being given
  as a framework search path, causing frameworks on the *host* machine
  to be preferred over system frameworks. Prefix it with $(SDK_DIR),
  which is probably what was originally intended.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/SDKSettings.plist: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/FontServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd: Added.
* WebKitLibraries/SDKs/iphonesimulator17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/SDKSettings.plist: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppServerSupport.framework/AppServerSupport.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppStoreDaemon.framework/AppStoreDaemon.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AppSupport.framework/AppSupport.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/ApplePushService.framework/ApplePushService.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/AuthKit.framework/AuthKit.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/BackBoardServices.framework/BackBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/CorePrediction.framework/CorePrediction.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FontServices.framework/libFontParser.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/IOSurfaceAccelerator.framework/IOSurfaceAccelerator.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/InstallCoordination.framework/InstallCoordination.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/PrototypeTools.framework/PrototypeTools.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/RunningBoardServices.framework/RunningBoardServices.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/SafariSafeBrowsing.framework/SafariSafeBrowsing.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/URLFormatting.framework/URLFormatting.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/System/Library/PrivateFrameworks/VisionKitCore.framework/VisionKitCore.tbd: Added.
* WebKitLibraries/SDKs/iphoneos17.0-additions.sdk/usr/local/include/AvailabilityProhibitedInternal.h: Copied from other SDK additions.

Canonical link: https://commits.webkit.org/266551@main




More information about the webkit-changes mailing list