Mac OS X 10.6.8
Snow Leopard PowerPC Development thread
‘The home of the community effort to develop, test and reconstruct Apple’s Mac OS X 10.6.8 Snow Leopard, for PowerPC G4 and G5 vintage Macs’
Post #3 — Xcode & Developer Tools
INTRODUCTION
This thread serves as the central hub for the technical development, testing and documentation required to reconstruct later releases of Mac OS X 10.6 Snow Leopard for PowerPC Macs.
The current practical development environment is the 10.6.8-derived Alpha 5 (A5) image.
[Alternative Mirror]
This is not an untouched retail copy of Mac OS X 10.6.8, with PowerPC switched back on, it is an experimental community reconstruction combining:
- Mac OS X 10.6.8 system components;
- PowerPC-compatible components retained from earlier Snow Leopard Developer Previews, particularly 10A190;
- Selected Mac OS X 10.5.8 components where a suitable later PowerPC implementation is not currently available;
- Components rebuilt from Apple-released open source;
- Targeted wrappers, compatibility components and other modifications required where interfaces changed between development version numbers
The long-term goal is to reduce substitutions wherever technically justified and reconstruct as much of the later official Snow Leopard software stack as possible from the appropriate Apple source generations while retaining PowerPC compatibility.
⚠️
This is an experimental development project, it is not a finished operating system release.
Results can vary according to:
- Mac model;
- CPU;
- GPU;
- storage/controller hardware;
- network hardware;
- image revision;
- KEXT/framework versions;
- local modifications;
- installation and maintenance history.
A result demonstrated on one system should therefore not automatically be treated as universal.
For the Developer Preview work and the mature 10A096 compatibility branch, see:
THREAD MAP
| Post | Purpose |
|---|---|
| Post #1 | Current project state, A5 downloads, installation, compatibility status, testing and contribution guidance. |
| Post #2 | Project history and engineering lineage from the early Developer Previews through 10A190, 10A222, 10A432 and the later 10.6.8 (A5) build. |
| Post #3 | Xcode, native PowerPC developer tools, SDKs, DarwinBuild, Mach-O inspection and reproducible source-build methodology. |
PROJECT BRANCHES
The principal Snow Leopard builds used by the project are related, but not interchangeable.
| Build / branch | Role | Current value |
|---|---|---|
10A096 Client .iso Apple_Mac_OS_X_10.6_10A96_Client.cdr (7.11 GB)MD5: bedfab4a6bad12651e084fef496db0b9 10.6_snowleopard_DP_10A96_serverdvd.dmg (7.11 GB) MD5: 85bcc81ca4f1faca36750e20cb9a853f | Early Developer Preview / mature compatibility branch | Comparatively Leopard-proximate and extensively tested. The original thread contains a detailed component-by-component compatibility record. |
| Restore Image: 10A190 .dmg @Larsvonhier PPC_SL_10A190.dmg (3.18 GB) MD5: d951ddc7e07abab23e460fcb7d5dc0fa 10A190 Client .iso 10.6_snowleopard_10a190_clientdvd.iso (7.36 GB) MD5: dae12c2f7b87b545cede6f517a66c10e | Transitional reconstruction branch | Considerably more Snow-Leopard-proximate while remaining demonstrably bootable on PowerPC. Valuable working reference, donor environment and early Apple Open Source reconstruction platform. |
| 10A222 Client .iso 10.6_snowleopard_10a222_clientdvd.iso (6.98 GB) MD5: b3cbedebf921de1f4e9bfea7d3fb8953 10A222 Server .iso 10.6_snow_leopard_10a222_server_dvd.iso (7.06 GB) MD5: 0929662caf447e3ee34b505aa01caf84 *Other intermediate builds; 10A261 Client / Server .iso 10A286 Client .iso 10A314 Client .iso 10A354 Client .iso 10A380 Client .iso 10A380 Server .iso, | Comparative / experimental bridge | Useful for identifying approximately when APIs, binaries and PowerPC implementation paths changed during Apple’s Snow Leopard development. |
| Golden Master 10A432 Client .iso Mac_OS_X_10.6_Internal_Edition.zip (6.11 GB) MD5: 66dd247e771e1ecfc1310159fa217e05 Internal Edition Software Internal_Use_Software.iso (4.38 GB) MD5: 3fea4c5c93f988f8d4e1aaa648b925ab | Retail Mac OS X 10.6.0 GM control point | Critical reference for determining what Apple actually shipped before comparing later reconstructed PowerPC components. |
| 10.6.8_PPC Alpha Base image @educovas Replaced Files: SL_PPC_replacedFiles.tar_.gz 10.6.8_PPC (A2) 10.6.8_PPC (A3) 10.6.8_PPC (A4) 10.6.8_PPC_ALPHA4_Jan21.dmg (3.52 GB) MD5: fab398758526aa48ac179286556b695b 10.6.8 (A5)Mirror #2 (3610.37 MiB / 3785.75 MB) Md5:131ee805d0a9fae7d9707335235d52f5e7bc39f8 10.6.8 (A5) Mirror #2 10.6.8_PPC_A5.dmg (3.53 GB) MD5: 271e7ce657b741b7f9130e7a4d2fefce | Current later-Snow-Leopard development branch | Primary public testing and reconstruction environment. |
- Macintosh Repository archive
- Macintosh Garden archive
For the full history and relationship between these branches, see Post #2.
Important: labels such as “A5” identify a development lineage. They do not guarantee that every A5 installation circulating online or locally modified by a tester is byte-identical.
When reporting results, state the exact image source and any changes made after installation.
Important: labels such as “A5” identify a development lineage. They do not guarantee that every A5 installation circulating online or locally modified by a tester is byte-identical.
When reporting results, state the exact image source and any changes made after installation.
DOWNLOADS
| Download | Purpose | Notes |
|---|---|---|
| Mac OS X 10.6.8 PowerPC — Alpha 5 | Current public testing image | 10.6.8-derived SLPPC development environment. Preserve the exact image/source used when reporting results. |
| Earlier A-series images | Historical / regression testing | Useful when determining when a behaviour changed. Always identify the exact revision. |
| Xcode & PowerPC Developer Tools | Native development environment | See Post #3 for the current documented Xcode/toolchain state rather than relying on older developer-tool packages linked elsewhere in the thread. |
IMAGE INTEGRITY
10.6 PowerPC images has been mirrored and modified in several places over time.
10.6 PowerPC images has been mirrored and modified in several places over time.
When possible, record:
Code:
filename
source/mirror
file size
hash
date obtained
local modifications
Do not redistribute a locally modified image under the same filename while presenting it as an untouched copy of the public testing image.
INSTALLATION
Use a spare disk or partition and back up important data - before proceeding.
The established restore workflow is:
Use a spare disk or partition and back up important data - before proceeding.
The established restore workflow is:
- Prepare a PowerPC G4/G5 Mac with a working Leopard 10.5.8 installation.
- Create or attach a separate target disk/partition for Snow Leopard.
- Obtain the latest restore image.
- Boot into Leopard.
- Open Disk Utility.
- Select the image and use Scan Image for Restore.
- Restore the image to the target using Erase Destination / block-copy restoration.
- Select the restored Snow Leopard volume using Startup Disk or the appropriate boot picker.
- Boot the system and record the results
The deployment method itself is part of the test configuration.
If installation or boot fails, please report:
If installation or boot fails, please report:
- host OS used for the restore;
- Disk Utility or other restore tool/version;
- partition scheme;
- target storage hardware/controller;
- whether the image passed Scan Image for Restore;
- the exact point at which boot failed.
Do not blindly run Apple Software Update on PowerPC Snow Leopard!
Snow Leopard updates can replace working PowerPC-compatible components with Intel-only or otherwise incompatible versions.
Update packages should instead be evaluated component-by-component.
Snow Leopard updates can replace working PowerPC-compatible components with Intel-only or otherwise incompatible versions.
Update packages should instead be evaluated component-by-component.
Use caution with cache cleaners and invasive maintenance utilities.
Some cache rebuild/maintenance procedures have rendered experimental hybrid installations unbootable. Perform such experiments only on a clone or disposable installation.
CURRENT TECHNICAL STATE
The following table is a current snapshot of evidence, not a universal compatibility guarantee.
Status terminology
The following table is a current snapshot of evidence, not a universal compatibility guarantee.
Status terminology
| Status | Meaning |
|---|---|
| WORKING | Demonstrated working within the stated configuration. |
| PARTIAL | Some parts of the capability work while other parts remain defective or unverified. |
| REPRODUCED ISSUE | Failure has been reported repeatedly or directly observed. |
| LOCALISED | Evidence has narrowed the problem to a subsystem or interface, but the root cause is not necessarily closed. |
| WORKAROUND | A practical bypass exists while the underlying problem remains. |
| FIX CANDIDATE | A proposed repair has supporting evidence but still requires controlled validation/regression testing. |
| NEEDS TESTING | Evidence remains insufficient, conflicting, image-dependent or hardware-specific. |
10.6.8_ppc “A5” subsystem status
| Subsystem | State | Current evidence / useful testing |
|---|---|---|
| Boot / Aqua desktop | WORKING — development state | A5 boots to the graphical desktop on demonstrated G4 and G5 configurations. Exact hardware coverage remains incomplete. |
| Kernel / XNU | WORKING PPC RECONSTRUCTION | Project runtime evidence records Darwin 10.8.0 / xnu-1504.15.3~1/RELEASE_PPC. The corresponding Apple XNU source retains extensive PPC machine-dependent implementation. Exact image/kernel binding should still be recorded when testing. |
| Graphics / QE / CI | PARTIAL — hardware/framework dependent | Acceleration has been demonstrated on multiple configurations using PPC-compatible graphics components and compatibility work. Results depend upon GPU, bus, machine and effective framework set. Report QE and CI separately where possible. |
| Ethernet / AirPort | PARTIAL | Physical interfaces and bounded network connectivity work. AirPort association/link activity has been directly observed, but association does not prove DHCP, DNS, routing or discovery. |
| DHCP | REPRODUCED / IMAGE-CONFIGURATION DEPENDENT | Repeated reports remain. Static addressing is presently the better controlled baseline. Test DHCP separately from DNS and other networking layers. |
| DNS / UDP | REVISION / CONFIGURATION DEPENDENT | Earlier external-interface UDP failures are not a valid universal description of current A5. Record raw IP connectivity, DNS lookup and UDP behaviour independently. |
| Application Firewall / incoming services | LOCALISED / FIX CANDIDATE | Runtime logs show ALF socket-filter errors. Disabling/unloading ALF has restored incoming connectivity in at least one controlled configuration. This does not establish a general networking fix. A/B testing is requested. |
| AFP / SMB / Finder network discovery | REPRODUCED ISSUE / MULTI-LAYER | A concrete PPC file-sharing remediation bundle exists, but full provenance and runtime sufficiency remain unresolved. Test Finder discovery, direct mount, AFP/SMB and client/server direction independently. |
| NFS | WORKING ALTERNATIVE / WORKAROUND | NFS has worked in configurations where Finder/SMB paths remain problematic. Useful as both a practical alternative and network-stack positive control. |
| Removable media / Finder eject state | PARTIAL / LOCALISED | Media can successfully unmount at the filesystem/device layer while Finder retains a stale volume icon. Do not report this simply as “the disk does not eject” without checking actual mount state. |
| Finder ↔ DiskImages | PARTIALLY LOCALISED | A5-associated runtime evidence shows a Finder/DiskImages symbol/API failure involving DIHLCopyImageForVolume. Exact binary/version binding remains part of the investigation. |
| Authorization / root-owned files | REPRODUCED REGRESSION | Permission/authorization failures have been observed in A5-associated runtime evidence. Test one exact privileged edit/install workflow and compare with 10A190 and Intel Snow Leopard controls. |
| Bluetooth | REPRODUCED / PARTIALLY LOCALISED | Device discovery remains problematic. blued can start while the service-registration/discovery path remains defective. Include controller identity and logs. |
| Spotlight | REPRODUCED / PARTIALLY LOCALISED | Query failures are present in A5-associated runtime evidence. Test indexing, mds/mdworker and Spotlight/SystemUIServer query behaviour separately. |
| Quick Look / Finder Cover Flow | UNRESOLVED | Known graphical/UI defects remain. These should not automatically be merged with Spotlight, Finder eject or general graphics failures. |
| Sleep / thermal / shutdown | HARDWARE DEPENDENT / NEEDS TESTING | Reports differ by PowerBook/Power Mac model. Test sleep, wake, shutdown, fan behaviour and temperature monitoring separately and conservatively. |
| USB | PARTIAL / DEVICE-SCOPED ISSUES | A5 runtime evidence includes USB enumeration failure on a specific hub/device path. Do not generalise this to all USB hardware. Report exact topology/device. |
| AHCI / SATA / PCIe storage | HARDWARE-SPECIFIC / NEEDS TESTING | Some controller/KEXT combinations cause panics or non-boot conditions. Report exact Mac, controller and KEXT versions rather than treating AHCI as universally broken. |
| Printing / CUPS | PARTIAL | CUPS/open-source reconstruction has progressed, but residual architecture coverage and complete end-to-end printing remain insufficiently validated. |
| Java | SYSTEM CONTRACT UNRESOLVED | Availability of OpenJDK or another JVM is not equivalent to restoring Apple’s Snow Leopard Java system-framework contract. Test against the exact application/API requirement. |
| Professional applications | APPLICATION-SPECIFIC | Final Cut Pro, Compressor, Color, Avid, Adobe and other applications have different dependencies and must be tracked individually rather than through one “Pro Apps” status. |
XNU / POWERPC SOURCE RETENTION
One of the clearer technical findings of the project is that:
Snow Leopard withdrawing PowerPC product support did not mean that all PowerPC machine-dependent implementation was immediately removed from Apple’s source tree.
The 10.6.8 XNU generation retains substantial explicit PPC code and build machinery.
Useful source references:
One of the clearer technical findings of the project is that:
Snow Leopard withdrawing PowerPC product support did not mean that all PowerPC machine-dependent implementation was immediately removed from Apple’s source tree.
The 10.6.8 XNU generation retains substantial explicit PPC code and build machinery.
Useful source references:
For development purposes, however:
Code:
PPC source exists
→ PPC object builds
→ final binary links
→ correct PPC Mach-O is produced
→ correct artefact is installed
→ intended consumer actually loads it
→ required functionality works
Each step represents a different level of evidence.
A PowerPC implementation existing in the source is important, but does not by itself prove that the complete runtime path works.
Detailed developer/source-build methodology is maintained in Post #3.
A PowerPC implementation existing in the source is important, but does not by itself prove that the complete runtime path works.
Detailed developer/source-build methodology is maintained in Post #3.
NATIVE POWERPC DEVELOPMENT
A usable native development environment is now available on Snow Leopard PowerPC.
A historically demonstrated configuration based upon Xcode 3.2.6 plus targeted PowerPC developer-tool replacements made the fundamental:
A usable native development environment is now available on Snow Leopard PowerPC.
A historically demonstrated configuration based upon Xcode 3.2.6 plus targeted PowerPC developer-tool replacements made the fundamental:
Code:
gcc
as
ld
make
tool path usable for real software builds.
This should not be interpreted as proof that every executable installed by Xcode 3.2.6 is PowerPC-native.
The complete maintained developer-tool documentation, historical package state, DarwinBuild guidance and reproducible build workflow now live in:
The complete maintained developer-tool documentation, historical package state, DarwinBuild guidance and reproducible build workflow now live in:
Post #3 — Xcode & Developer Tools for Snow Leopard PowerPC
Related external projects:
PowerPC Ports/PPCPorts is a separate project, but its native Snow Leopard PowerPC software builds provide extremely useful real-world validation of the operating system and development environment.
HOW YOU CAN HELP
You do not need to be a kernel developer to contribute useful evidence.
You do not need to be a kernel developer to contribute useful evidence.
| What you have / can do | Useful contribution |
|---|---|
| A PowerPC G4 or G5 | Install A5 on a spare disk and submit exact hardware-specific results. |
| An untouched retail 10A432 installation | Provide a read-only inventory of Apple’s original 10.6.0 shipping state: binaries, slices, hashes, dependencies, KEXT metadata, service definitions and package receipts/BOMs. |
| Software-development experience | Rebuild Apple Open Source components, investigate dependencies and interfaces, analyse Mach-O binaries, audit PPC-specific code and validate proposed fixes. |
| Networking experience | Help separate DHCP, DNS, UDP, routing, firewall, discovery, AFP, SMB and NFS behaviour through controlled packet/log testing. |
| PowerPC graphics hardware | Submit exact GPU/bus/Mac/framework results for QE, CI, OpenGL and application-level rendering. |
| Historical Apple material | Developer Previews, Kernel Debug Kits, DarwinBuild Roots, historical Xcode packages, build roots, old patches, attachments and intermediate Snow Leopard builds can all contain unique evidence. |
| Application testing time | Test individual Apple/professional/third-party applications with exact version and dependency information. |
HIGHEST-VALUE REFERENCE REQUEST — UNTOUCHED 10A432
One of the most valuable contributions currently possible is access to an untouched retail Mac OS X 10.6.0 / build 10A432 installation.
This allows the project to distinguish:
One of the most valuable contributions currently possible is access to an untouched retail Mac OS X 10.6.0 / build 10A432 installation.
This allows the project to distinguish:
Code:
what Apple published as source
≠
what Apple built
≠
what Apple shipped
≠
what later reconstructed A5 systems contain
Useful read-only evidence includes:
- file paths and versions;
fileandlipoarchitecture results;- SHA hashes;
otooldependencies/load commands;- KEXT versions and architecture;
- launchd/service plists;
- framework identities;
- package receipts and BOM data;
- selected system/developer-tool inventories.
Please preserve an untouched reference system as a control.
Once modified, the system may still contain useful evidence, but it can no longer serve as an unquestioned pristine shipping-state reference for altered paths.
Once modified, the system may still contain useful evidence, but it can no longer serve as an unquestioned pristine shipping-state reference for altered paths.
CURRENT HIGH-VALUE TESTING AREAS
| Area | Useful next test |
|---|---|
| Canonical A5 state | Record exact image source/hash, kernel identity, restore procedure and modifications before further testing. |
| 10A432 reference | Untouched retail/GM binary, architecture and dependency inventory. |
| DHCP | Capture DHCP DISCOVER/OFFER/REQUEST/ACK plus configd/IPConfiguration logs on a clean known A5 state. |
| ALF / incoming services | Controlled ALF-loaded versus ALF-unloaded comparison using the same static network configuration; test SSH/VNC/file sharing independently. |
| AFP / SMB / Finder discovery | Separate automatic discovery, direct mounting, protocol and client/server direction. |
| Finder eject / DiskImages | Compare mount table/device state, Disk Arbitration notifications and Finder presentation for one controlled eject event. |
| Authorization | Reproduce one root-owned file edit or privileged installer operation and capture SecurityAgent/authorization logs. |
| Graphics | Exact Mac + GPU + bus + framework state; test QE/CI/OpenGL and specific APIs/applications independently. |
| Bluetooth | Controller-specific discovery test with KEXT/framework identity and blued/service logs. |
| Spotlight | Separate metadata indexing from Spotlight/SystemUIServer query/UI behaviour. |
| Sleep / thermal | Per-model sleep/wake/shutdown/fan/temperature testing with conservative safety limits. |
| Storage / USB | Exact controller/device/KEXT A/B testing; avoid generalising one hardware failure to the entire subsystem. |
| Printing | Inventory PPC architecture coverage and complete a real printer add → submit → finish-job test. |
This is not an exclusive task list.
It highlights areas where an additional controlled test can presently resolve a meaningful uncertainty.
It highlights areas where an additional controlled test can presently resolve a meaningful uncertainty.
SUBMITTING A TEST RESULT
Please provide enough information for somebody else to reproduce your result.
Please provide enough information for somebody else to reproduce your result.
Code:
SLPPC TEST REPORT
IMAGE
Build / image:
Revision:
Source / mirror:
Hash if known:
Modifications since restore:
HARDWARE
Mac model:
Machine identifier:
CPU:
RAM:
GPU:
Storage/controller:
Network hardware:
Other relevant PCI/AGP/CardBus/USB hardware:
SYSTEM
Kernel:
Boot arguments:
Relevant KEXT/framework replacements:
TEST
Subsystem/application:
Application version if relevant:
Expected:
Actual:
Exact reproduction steps:
CONTROL / COMPARISON
Leopard 10.5.8 / 10A096 / 10A190 /
clean A5 / alternate hardware / other:
Relevant logs/errors:
RESULT
Working /
Partial /
Failed /
Regression /
Needs Retest
Successful controls are as useful as failures.
For example:
Code:
raw IP works but DNS fails
NFS works but SMB fails
device unmounted but Finder still displays it
Wi-Fi associates but DHCP fails
These observations isolate the failing layer much more effectively than reporting only:
Code:
networking is broken
Finder is broken
Wi-Fi is broken
DEVELOPMENT / SOURCE-BUILD REPORTS
Detailed build methodology and the full reproducible development-report template are maintained in:
Post #3 — Xcode & Developer Tools
For system-level development, please distinguish:
Code:
source support
→ compilation
→ linking
→ PPC artefact verification
→ installation
→ runtime loading
→ semantic/function validation
A successful compilation is useful evidence. It is not, by itself, proof that an operating-system component has been successfully ported or that a subsystem is fixed.
SOURCE CODE & TECHNICAL REFERENCES
| Resource | Use |
|---|---|
| Apple OSS Distributions | Preserved Apple open-source repositories and release tags. |
| XNU 1504.15.3 | Final Snow Leopard 10.6.8 XNU source generation. |
| Apple Developer Documentation Archive | Historical Mac OS X developer and system documentation. |
| Snow Leopard on Unsupported PowerPC Macs | Original Developer Preview project, historical testing and mature 10A096 compatibility Wiki. |
| Post #2 — Project History | Development chronology and engineering lineage. |
| Post #3 — Xcode & Developer Tools | Native PPC toolchain, SDKs, DarwinBuild and source-build methodology. |
| PowerPC Ports | Separate maintained software-porting ecosystem providing extensive real-world Snow Leopard PPC build evidence. |
| macos-powerpc.org | PowerPC macOS development and historical toolchain resources. |
When rebuilding an operating-system component, use the source generation appropriate to the target component/build wherever that can be established.
A newer source release is not automatically a better replacement.
Likewise:
Apple publishing a source project does not by itself establish the exact binary Apple shipped in a particular OS build.
Shipping-state questions should be checked against actual binaries, packages, manifests, receipts or untouched systems where possible.
THREAD SCOPE
This development thread covers:
This development thread covers:
- Mac OS X 10.6.x PowerPC reconstruction;
- XNU and IOKit;
- System frameworks and libraries;
- Apple Open Source reconstruction;
- System applications and services;
- Hardware compatibility;
- Bugs and diagnostics;
- Controlled fixes and workarounds;
- 10.6.8/A5 integration and testing;
- Xcode/CLI/Darwin development environment required to support that work.
Third-party software ports, MacPorts and PowerPC Ports/PPCPorts are highly relevant sources of evidence but remain separate projects. Please link relevant findings rather than treating those projects as part of SLPPC itself.
PROJECT HISTORY
For the full history of the modern Snow Leopard PowerPC effort—from the rediscovery of the Developer Previews through 10A096, 10A190, 10A222, retail-generation XNU reconstruction and A5—see:
Post #2 — Project History & Engineering Lineage
For Xcode, native PowerPC development tools, SDKs, DarwinBuild and source-build methodology:
The most useful contribution is a reproducible result—working or broken—with enough information for somebody else to test it again.
⚠ WARNING ⚠️
This software is experimental and it is known to contain defects.
Do not rely upon experimental disk images for important data or services.
Use a spare disk or partition and preserve backups.
Community-created images, patches, rebuilt binaries and instructions are provided for development, testing, research and preservation without warranty.
By participating in testing you accept responsibility for protecting your own hardware and data.
…
Last edited: