Instructions for installing a SafariBeta as a self-contained .app . Licensing terms (aka: covering my ***) are at the bottom. 1. Get WebKitLauncher as a binary, or build it (see below). You can just unzip WebKitLauncher.zip here. 2. Get the Safari Beta parts for WebKitLauncher to use: A. Download the beta, mount the disk image. B. Open a terminal, cd to wherever you like. C. Make sure WebKitLauncher.app is in your terminal's current dir, and copy the .pkg installer there too. D. Extract the .pkg into a 'BetaFiles' directory mkdir BetaFiles; cd BetaFiles xar -xf ../Safari4.0BetaLeo.pkg pax -rz -pp -f Safari4.0BetaLeo.pkg/Payload cd .. E. Extract the bits we need into WKL.app, these are all the frameworks and Safari.app. You can just run this at the terminal: cp -R BetaFiles/Applications/* WebKitLauncher.app/Contents/Resources/ find BetaFiles -name \*.framework \ | /usr/bin/xargs -J% cp -R % WebKitLauncher.app/Contents/Resources/ find WebKitLauncher.app/Contents/Resources/ -name Frameworks \ | /usr/bin/xargs rm -r F. Fix the version in the Info.plist (replace '4.0 beta' with the whatever version you like): perl -i -pe 's/r?VERSION/4.0 beta/g' \ WebKitLauncher.app/Contents/Info.plist touch WebKitLauncher.app 3. Clean up: A. Unmount and trash the Safari beta disk image, and move WebKitLauncher.app wherever you like: "/Applications/Safari beta.app" works for me. B. Get rid of the BetaFiles directory and the .pkg you copied. C. Optionally, give Safari Beta a distinctive icon. See compass.psd for a sample. 4. (optional) Make sure your plugins won't interfere with the beta. My patch to WebKitLauncher allows it to use an auxiliary prefs file that regular Safari won't see. A. Make a plist (Property List Editor is the easiest way), and add to it one of the following two items: i. NSUseCocoaInputServers (Boolean) If set to 'NO', disables all plugins (InputManagers) while running Safari beta. ii. NSDisabledInputManagers (Array of strings) A list of plugins to disable while running Safari beta, for example 'Saft', 'Sogudi', etc. B. Save as ~/Library/Preferences/SafariBeta.plist Appendix A - Building WebKitLauncher yourself A. If you're still on 10.4, install SVN (from fink, MacPorts, http://homepage.mac.com/hiirem/svkbuilds.html, ...) B. Checkout WKL source svn co http://svn.webkit.org/repository/webkit/trunk/WebKitTools/WebKitLauncher cd WebKitLauncher C. Patch it for location of Safari.app. By default WebKitLauncher will use /Applications/Safari.app, but we want it to use the Safari.app inside its resources dir. Assuming my patches dir is nearby: patch -p1 < ../patches/app-location.patch D. Optionally, apply two more patches: One to build as a universal binary, the second my hack to allow an auxiliary preferences file for Safari beta: patch -p1 < ../patches/universal.patch patch -p1 < ../patches/custom-prefs.patch E. Build it xcodebuild -target WebKit -configuration Release F. Now WebKit.app is in ./build/Release/WebKit.app, you can rename it to WebKitLauncher.app and get rid of everything else. Appendix B - Creating a standalone Safari from your system You might want to create a Safari based on what's on your system, for example if you're about to upgrade to a new Safari. Just replace stages 2D and 2E with: DE. cp -R /Applications/Safari.app WebKitLauncher.app/Contents/Resources/ /usr/bin/find -E /System/Library/{Frameworks,PrivateFrameworks} -regex \ '.*/(JavaScript(Core|Glue)|PubSub|Symbolication|SyndicationUI|Web(Core|Kit)).framework' \ | /usr/bin/xargs -J% cp -R % WebKitLauncher.app/Contents/Resources/ find WebKitLauncher.app/Contents/Resources/ -name Frameworks \ | /usr/bin/xargs rm -r COPYING: * WebKitLauncher is part of the WebKit project, licensed under the LGPL. * Safari and its frameworks are mostly (C) Apple, but I'm not distributing them. * The icon compass.icns is taken from Safari and is thereforce (C) Apple, compass-4.0b.icns is derived from it. They're small, and I'm only using them to label Apple's own app, so I'm claiming fair use--but I'll remove them if asked. * All other files in this distribution are hereby placed in the public domain: HOWTO.txt, SafariBeta.plist, and the patches.