Diff
Modified: trunk/Source/WebKit/Configurations/Base.xcconfig (295564 => 295565)
--- trunk/Source/WebKit/Configurations/Base.xcconfig 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/Configurations/Base.xcconfig 2022-06-15 17:51:15 UTC (rev 295565)
@@ -36,6 +36,9 @@
COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH_SDK_VARIANT_ = NO
COPY_STAGED_FRAMEWORKS_TO_SECONDARY_PATH_SDK_VARIANT_iosmac = NO
+ENABLE_DAEMON_SYMLINKS = $(WK_NOT_$(USE_STAGING_INSTALL_PATH))
+ENABLE_DAEMON_SYMLINKS[sdk=embedded*] = NO
+
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_CXX_LANGUAGE_STANDARD = c++2a;
Modified: trunk/Source/WebKit/Configurations/adattributiond.xcconfig (295564 => 295565)
--- trunk/Source/WebKit/Configurations/adattributiond.xcconfig 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/Configurations/adattributiond.xcconfig 2022-06-15 17:51:15 UTC (rev 295565)
@@ -41,3 +41,12 @@
FRAMEWORK_SEARCH_PATHS = $(inherited) $(WK_QUOTED_OVERRIDE_FRAMEWORKS_DIR)
INSTALL_PATH = $(INSTALL_PATH_PREFIX)$(WEBKIT_FRAMEWORKS_DIR)/WebKit.framework/$(WK_FRAMEWORK_VERSION_PREFIX)Daemons;
+
+SKIP_INSTALL = NO;
+SKIP_INSTALL[sdk=macos*] = YES;
+
+LAUNCHD_PLIST_FILE_NAME = com.apple.webkit.adattributiond.plist
+
+LAUNCHD_PLIST_INPUT_FILE[sdk=iphoneos*] = Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist
+
+LAUNCHD_PLIST_INSTALL_PATH = /System/Library/LaunchDaemons
Modified: trunk/Source/WebKit/Configurations/webpushd.xcconfig (295564 => 295565)
--- trunk/Source/WebKit/Configurations/webpushd.xcconfig 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/Configurations/webpushd.xcconfig 2022-06-15 17:51:15 UTC (rev 295565)
@@ -42,6 +42,22 @@
OTHER_CODE_SIGN_FLAGS[sdk=macos*] = $(OTHER_CODE_SIGN_FLAGS_$(USE_INTERNAL_SDK));
OTHER_CODE_SIGN_FLAGS_YES = --entitlements $(WK_PROCESSED_XCENT_FILE);
-INSTALL_PATH = $(INSTALL_PATH_PREFIX)$(WEBKIT_FRAMEWORKS_DIR)/WebKit.framework/$(WK_FRAMEWORK_VERSION_PREFIX)Daemons;
+INSTALL_PATH = $(INSTALL_PATH_$(USE_SYSTEM_CONTENT_PATH));
+INSTALL_PATH_YES = $(SYSTEM_SECONDARY_CONTENT_PATH)/usr/libexec;
+INSTALL_PATH_NO = $(WEBKIT_FRAMEWORKS_DIR)/WebKit.framework/$(WK_FRAMEWORK_VERSION_PREFIX)Daemons;
SKIP_INSTALL = $(WK_SKIP_INSTALL_WEBPUSHD)
+
+LAUNCHD_PLIST_FILE_NAME = com.apple.webkit.webpushd.plist
+
+LAUNCHD_PLIST_INPUT_FILE[sdk=iphoneos*] = webpushd/com.apple.webkit.webpushd.ios.plist
+LAUNCHD_PLIST_INPUT_FILE[sdk=macos*] = webpushd/com.apple.webkit.webpushd.mac.plist
+
+LAUNCHD_PLIST_INSTALL_PATH = $(LAUNCHD_PLIST_INSTALL_PATH_$(USE_SYSTEM_CONTENT_PATH))
+LAUNCHD_PLIST_INSTALL_PATH_YES = /System/Library/LaunchDaemons
+LAUNCHD_PLIST_INSTALL_PATH_YES[sdk=macos*] = $(SYSTEM_SECONDARY_CONTENT_PATH)/System/Library/LaunchAgents
+
+LAUNCHD_PLIST_INSTALL_PATH_NO[sdk=macosx*] = /System/Library/LaunchAgents
+LAUNCHD_PLIST_INSTALL_PATH_NO = /System/Library/LaunchDaemons
+
+LAUNCHD_PLIST_SYMLINK_PATH[sdk=macos*] = /System/Library/LaunchAgents
Added: trunk/Source/WebKit/Scripts/copy-launchd-plist-and-create-symlink.sh (0 => 295565)
--- trunk/Source/WebKit/Scripts/copy-launchd-plist-and-create-symlink.sh (rev 0)
+++ trunk/Source/WebKit/Scripts/copy-launchd-plist-and-create-symlink.sh 2022-06-15 17:51:15 UTC (rev 295565)
@@ -0,0 +1,75 @@
+#!/bin/sh
+
+if [[ "${SKIP_INSTALL}" == "YES" ]]; then
+ exit 0;
+fi
+
+if [[ -z "${LAUNCHD_PLIST_INSTALL_PATH}" ]]; then
+ exit 0;
+fi
+
+if [[ -z "${LAUNCHD_PLIST_FILE_NAME}" ]]; then
+ echo "Missing definition for LAUNCHD_PLIST_FILE_NAME. e.g. 'com.apple.webkit.thedaemon.plist'"
+ exit 1
+fi
+
+if [[ -z "${LAUNCHD_PLIST_INPUT_FILE}" ]]; then
+ echo "Missing definition for LAUNCHD_PLIST_INPUT_FILE. e.g. 'TheDaemon/Resources/com.apple.webkit.thedaemon.plist'"
+ exit 1
+fi
+
+# Update the launchd plist to point to the install location of the binary in its actual
+# location. When using the system content path, we need to install there and create a
+# symlink if required. Since the location can change based on the build configuration,
+# the launchd plists should contain placeholders for build settings INSTALL_PATH and
+# PRODUCT_NAME which we replace with the actual values from the current build configuration.
+
+GENERATED_LAUNCHD_PLIST_DIR="${TEMP_DIR}"
+mkdir -p "${GENERATED_LAUNCHD_PLIST_DIR}"
+
+GENERATED_LAUNCHD_PLIST_PATH="${GENERATED_LAUNCHD_PLIST_DIR}/${LAUNCHD_PLIST_FILE_NAME}"
+
+echo "Replacing placeholders in ${SRCROOT}/${LAUNCHD_PLIST_INPUT_FILE} and saving to ${GENERATED_LAUNCHD_PLIST_PATH}"
+
+sed \
+ -e "s|\${INSTALL_PATH}|${INSTALL_PATH}|" \
+ -e "s|\${PRODUCT_NAME}|${PRODUCT_NAME}|" \
+ "${SRCROOT}/${LAUNCHD_PLIST_INPUT_FILE}" > "${GENERATED_LAUNCHD_PLIST_PATH}"
+
+# Install the plist.
+
+LAUNCHD_PLIST_OUTPUT_FILE="${LAUNCHD_PLIST_INSTALL_PATH}/${LAUNCHD_PLIST_FILE_NAME}"
+DSTROOT_LAUNCHD_PLIST_OUTPUT_FILE="${DSTROOT}${LAUNCHD_PLIST_OUTPUT_FILE}"
+
+mkdir -p "${DSTROOT}${LAUNCHD_PLIST_INSTALL_PATH}"
+
+echo "Converting ${GENERATED_LAUNCHD_PLIST_PATH} to binary plist at ${DSTROOT_LAUNCHD_PLIST_OUTPUT_FILE}"
+plutil -convert binary1 -o "${DSTROOT_LAUNCHD_PLIST_OUTPUT_FILE}" "${GENERATED_LAUNCHD_PLIST_PATH}"
+
+# Evaluate whether a symlink to the plist is needed, returning early if not.
+
+if [[ "${USE_SYSTEM_CONTENT_PATH}" == "YES" ]]; then
+ if [[ "${ENABLE_DAEMON_SYMLINKS}" != "YES" ]]; then
+ echo "Not creating symlink to plist because build enables USE_SYSTEM_CONTENT_PATH but ENABLE_DAEMON_SYMLINKS is disabled."
+ exit 0;
+ fi
+else
+ if [[ ${PLATFORM_NAME} != "macosx" || "${USE_STAGING_INSTALL_PATH}" == "YES" ]]; then
+ echo "Not creating symlink because current platform is not macOS or this isn't a standard install."
+ exit 0;
+ fi
+fi
+
+# If we've gotten this far, install a symlink in the standard LaunchDaemon/Agent directory
+# pointing to the real install location of the plist.
+
+DSTROOT_LAUNCHD_PLIST_SYMLINK_DIR="${DSTROOT}${LAUNCHD_PLIST_SYMLINK_PATH}"
+
+# Convert eg. `/System/Library/LaunchAgents` to `../../..`
+RELATIVE_PATH_FROM_SYMLINK_TO_ROOT=$(echo "${LAUNCHD_PLIST_SYMLINK_PATH}" | sed -E -e "s/\/[a-zA-Z0-9_]+/..\//g" -e "s/\/$//")
+
+echo "Creating a symlink at ${DSTROOT_LAUNCHD_PLIST_SYMLINK_DIR} pointing to ${RELATIVE_PATH_FROM_SYMLINK_TO_ROOT}${LAUNCHD_PLIST_OUTPUT_FILE}"
+
+mkdir -p "${DSTROOT_LAUNCHD_PLIST_SYMLINK_DIR}"
+ln -sf "${RELATIVE_PATH_FROM_SYMLINK_TO_ROOT}${LAUNCHD_PLIST_OUTPUT_FILE}" "${DSTROOT_LAUNCHD_PLIST_SYMLINK_DIR}"
+
Property changes on: trunk/Source/WebKit/Scripts/copy-launchd-plist-and-create-symlink.sh
___________________________________________________________________
Added: svn:executable
+*
\ No newline at end of property
Modified: trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist (295564 => 295565)
--- trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist 2022-06-15 17:51:15 UTC (rev 295565)
@@ -40,7 +40,7 @@
<string>Adaptive</string>
<key>ProgramArguments</key>
<array>
- <string>/System/Library/Frameworks/WebKit.framework/Daemons/adattributiond</string>
+ <string>${INSTALL_PATH}/${PRODUCT_NAME}</string>
<string>--machServiceName</string>
<string>com.apple.webkit.adattributiond.service</string>
<string>--storageLocation</string>
Modified: trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj (295564 => 295565)
--- trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/WebKit.xcodeproj/project.pbxproj 2022-06-15 17:51:15 UTC (rev 295565)
@@ -15470,6 +15470,7 @@
5C1579D227165B2F00ED5280 /* Sources */,
5C1579D427165B2F00ED5280 /* Frameworks */,
5C1579D527165B2F00ED5280 /* Process webpushd Entitlements */,
+ 6508960F28482C6A00A91844 /* Copy launchd plist and create symlink */,
);
buildRules = (
);
@@ -15490,6 +15491,7 @@
5CAF7A9D26F93A750003F19E /* Sources */,
5CAF7A9F26F93A750003F19E /* Frameworks */,
5C1578E6270E129400ED5280 /* Process adattributiond Entitlements */,
+ 6508961028482D0900A91844 /* Copy launchd plist and create symlink */,
);
buildRules = (
);
@@ -15553,7 +15555,6 @@
933170072234674500B32554 /* Create symlinks to XPC services for engineering builds */,
512B81CA273CAFBE00D87D49 /* Create symlinks to Daemons for engineering builds */,
0FB94836239F31B700926A8F /* Copy Testing Headers */,
- DFD03A29270D5F57001A996E /* Copy Daemon Plists */,
6577FFB92769C1460011AEC8 /* Create Symlink to Alt Root Path */,
6517571927C9B43A00D9FE40 /* Copy Frameworks to Secondary Path */,
);
@@ -15997,7 +15998,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [[ \"${DEPLOYMENT_LOCATION}\" == \"YES\" ]]; then\n exit\nfi\n\n# If we move the Mac Daemons path to WebKit.framework/Versions/A/Daemons,\n# in addition to a Mac-specific plists, the Mac paths below have to be updated as well.\nif [[ ${WK_PLATFORM_NAME} != \"macosx\" ]]; then\n DAEMONS_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Daemons\"\n BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS=\"../..\"\nelse\n DAEMONS_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Daemons\"\n BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS=\"../..\"\nfi\n\nmkdir -p \"${DAEMONS_PATH}\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS}/webpushd\" \"${DAEMONS_PATH}/webpushd\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS}/adattributiond\" \"${DAEMONS_PATH}/adattributiond\"\n";
+ shellScript = "# &&&& This script probably needs to change or be removed.\n\nif [[ \"${DEPLOYMENT_LOCATION}\" == \"YES\" ]]; then\n exit\nfi\n\n# If we move the Mac Daemons path to WebKit.framework/Versions/A/Daemons,\n# in addition to a Mac-specific plists, the Mac paths below have to be updated as well.\nif [[ ${WK_PLATFORM_NAME} != \"macosx\" ]]; then\n DAEMONS_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Daemons\"\n BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS=\"../..\"\nelse\n DAEMONS_PATH=\"${BUILT_PRODUCTS_DIR}/WebKit.framework/Daemons\"\n BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS=\"../..\"\nfi\n\nmkdir -p \"${DAEMONS_PATH}\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS}/webpushd\" \"${DAEMONS_PATH}/webpushd\"\nln -sFh \"${BUILT_PRODUCTS_DIR_RELATIVE_PATH_FROM_DAEMONS}/adattributiond\" \"${DAE
MONS_PATH}/adattributiond\"\n";
};
5325BDD221DFF47C00A0DEE1 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
@@ -16120,6 +16121,48 @@
shellPath = /bin/sh;
shellScript = "if [ \"${ACTION}\" = \"installhdrs\" ] || [ \"${ACTION}\" = \"installapi\" ]; then\n exit 0;\nfi\n\nif [ -f ../../Tools/Scripts/check-for-inappropriate-files-in-framework ]; then\n ../../Tools/Scripts/check-for-inappropriate-files-in-framework || exit $?\nfi\n";
};
+ 6508960F28482C6A00A91844 /* Copy launchd plist and create symlink */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/Scripts/copy-launchd-plist-and-create-symlink.sh",
+ "$(SRCROOT)/$(LAUNCHD_PLIST_INPUT_FILE)",
+ );
+ name = "Copy launchd plist and create symlink";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DSTROOT)$(LAUNCHD_PLIST_INSTALL_PATH)/$(LAUNCHD_PLIST_FILE_NAME)",
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "Scripts/copy-launchd-plist-and-create-symlink.sh\n";
+ };
+ 6508961028482D0900A91844 /* Copy launchd plist and create symlink */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 8;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "$(SRCROOT)/Scripts/copy-launchd-plist-and-create-symlink.sh",
+ "$(SRCROOT)/$(LAUNCHD_PLIST_INPUT_FILE)",
+ );
+ name = "Copy launchd plist and create symlink";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ "$(DSTROOT)$(LAUNCHD_PLIST_INSTALL_PATH)/$(LAUNCHD_PLIST_FILE_NAME)",
+ );
+ runOnlyForDeploymentPostprocessing = 1;
+ shellPath = /bin/sh;
+ shellScript = "Scripts/copy-launchd-plist-and-create-symlink.sh\n";
+ };
6517571527C9AB4C00D9FE40 /* Copy Frameworks to Secondary Path */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 8;
@@ -16526,27 +16569,6 @@
shellPath = /bin/sh;
shellScript = "[ \"${WK_USE_NEW_BUILD_SYSTEM}\" = YES ] && exit 0\nxcodebuild -project \"${PROJECT_FILE_PATH}\" -target \"${TARGET_NAME}\" -configuration ${CONFIGURATION} installhdrs SYMROOT=\"${TARGET_TEMP_DIR}/LegacyInstallHeaders-build\" DSTROOT=\"${BUILT_PRODUCTS_DIR}\" SDKROOT=\"${SDKROOT}\" SDK_VARIANT=\"${SDK_VARIANT}\" ARCHS=\"${ARCHS}\" INSTALLHDRS_SCRIPT_PHASE=NO WK_OVERRIDE_FRAMEWORKS_DIR=/ -UseNewBuildSystem=YES\n\n";
};
- DFD03A29270D5F57001A996E /* Copy Daemon Plists */ = {
- isa = PBXShellScriptBuildPhase;
- buildActionMask = 8;
- files = (
- );
- inputFileListPaths = (
- );
- inputPaths = (
- "$(SRCROOT)/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist",
- "$(SRCROOT)/webpushd/com.apple.webkit.webpushd.ios.plist",
- "$(SRCROOT)/webpushd/com.apple.webkit.webpushd.mac.plist",
- );
- name = "Copy Daemon Plists";
- outputFileListPaths = (
- );
- outputPaths = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- shellPath = /bin/sh;
- shellScript = "if [[ \"${WK_PLATFORM_NAME}\" == iphoneos ]]; then\n ADATTRIBUTIOND_PLIST_SOURCE=\"${SRCROOT}/Shared/EntryPointUtilities/Cocoa/Daemon/com.apple.webkit.adattributiond.plist\"\n ADATTRIBUTIOND_PLIST_DESTINATION=\"${DSTROOT}/System/Library/LaunchDaemons/com.apple.webkit.adattributiond.plist\"\n echo \"copying adattributiond plist\"\n mkdir -p \"$(dirname \"${ADATTRIBUTIOND_PLIST_DESTINATION}\")\"\n echo plutil -convert binary1 -o \"${ADATTRIBUTIOND_PLIST_DESTINATION}\" \"${ADATTRIBUTIOND_PLIST_SOURCE}\"\n plutil -convert binary1 -o \"${ADATTRIBUTIOND_PLIST_DESTINATION}\" \"${ADATTRIBUTIOND_PLIST_SOURCE}\"\nelse\n echo \"not copying adattributiond plist\"\nfi\n\nif [[ \"${WK_SKIP_INSTALL_WEBPUSHD}\" != \"YES\" && \n ( \"${WK_PLATFORM_NAME}\" == iphoneos || \"${WK_PLATFORM_NAME}\" =
= macosx ) ]]; then\n if [[ \"${WK_PLATFORM_NAME}\" == iphoneos ]]; then\n WEBPUSHD_PLIST_SOURCE=\"${SRCROOT}/webpushd/com.apple.webkit.webpushd.ios.plist\"\n WEBPUSHD_PLIST_DESTINATION=\"${DSTROOT}/System/Library/LaunchDaemons/com.apple.webkit.webpushd.plist\"\n else\n WEBPUSHD_PLIST_SOURCE=\"${SRCROOT}/webpushd/com.apple.webkit.webpushd.mac.plist\"\n WEBPUSHD_PLIST_DESTINATION=\"${DSTROOT}/System/Library/LaunchAgents/com.apple.webkit.webpushd.plist\"\n fi\n\n echo \"copying webpushd plist\"\n mkdir -p \"$(dirname \"${WEBPUSHD_PLIST_DESTINATION}\")\"\n echo plutil -convert binary1 -o \"${WEBPUSHD_PLIST_DESTINATION}\" \"${WEBPUSHD_PLIST_SOURCE}\"\n plutil -convert binary1 -o \"${WEBPUSHD_PLIST_DESTINATION}\" \"${WEBPUSHD_PLIST_SOURCE}\"\nelse\n echo \"not copying webpushd plist\"\nfi\n";
- };
E1AC2E2C20F7B95800B0897D /* Unlock Keychain */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
Modified: trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.ios.plist (295564 => 295565)
--- trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.ios.plist 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.ios.plist 2022-06-15 17:51:15 UTC (rev 295565)
@@ -19,7 +19,7 @@
<string>Adaptive</string>
<key>ProgramArguments</key>
<array>
- <string>/System/Library/Frameworks/WebKit.framework/Daemons/webpushd</string>
+ <string>${INSTALL_PATH}/${PRODUCT_NAME}</string>
<string>--machServiceName</string>
<string>com.apple.webkit.webpushd.service</string>
</array>
Modified: trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.mac.plist (295564 => 295565)
--- trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.mac.plist 2022-06-15 17:06:12 UTC (rev 295564)
+++ trunk/Source/WebKit/webpushd/com.apple.webkit.webpushd.mac.plist 2022-06-15 17:51:15 UTC (rev 295565)
@@ -19,7 +19,7 @@
<string>Adaptive</string>
<key>ProgramArguments</key>
<array>
- <string>/System/Library/Frameworks/WebKit.framework/Versions/A/Daemons/webpushd</string>
+ <string>${INSTALL_PATH}/${PRODUCT_NAME}</string>
<string>--machServiceName</string>
<string>com.apple.webkit.webpushd.service</string>
</array>