Date : 25/09/2012
Author : rafirafi
About this build :
platform : leopard 9L30
only i386 architecture
How to use:
There is an user created "puredarwin" with passworg "darwin", "root" have password "rootroot"
Network is tested as
working in virtualbox and linux with kvm modules patch available on
puredarwin.org site, from here you can connect with ssh.
Example of a complete command line :
kvm -m 512 -cpu host,family=6,model=15 -device VGA,bus=pci.0,addr=0x02 -device rtl8139,mac=54:52:03:04:05:02,vlan=0,bus=pci.0,addr=0x04 -net users,vlan=0 -machine pc,accel=kvm -name ***PD-XMAS-9L30pd1*** -hda /opt/PD-Xmas-9L30pd1.qcow2
What it is :
This is an attempt to have a puredarwin without binaries.
made with the information publicly available about the puredarwin project with the maximum of features and developer tools I have been abble to include.
What news / puredarwin Xmas :
- based on 10.5.8
source
- use the last opensource platform expert, only i386
Shipped but not built :
openjdk and antlr : here in case someone want to built openjdk
Packages not coming from 9L30 apple source with puredarwin patches:
From rafirafi :
ClockRTC.kext : Read the date from rtc and provide it to the platform expert
VMQemuVGA.kext : a framebuffer for the qemu default vga, should be compatible with any card supporting the VBE standard.
PCNet : an
experimental driver for the pcnet32 network card, only version Am79C970A supported.
From darwin 8:
IOATABlockStorage.kext
IOSCSIArchitectureModelFamily.kext
AppleAPIC.kext with 8259 support : made standalone in Apple8259PIC.kext
AppleI386GenericPlatform.kext : hook to ClockRTC added. Add the kernel boot option "platform=PCx86" for compatibility or Apple ACPI platform will be loaded.
AppleI386PCI.kext
DarwinTools : provide sw_vers and SystemVersion.plist
CFNetwork : not so much tested
From BSD:
logger
From Zenith432 / VMware:
VMMouse.kext
From Stuart Crook:
purefoundation
From opencflite:
CF : missing function, essentially Stuart Crook code.
From voodooprojects :
chameleon : last version building with darwin 9, svn version 2045, need 400M of memory min. to boot.
From macports :
a macports fresh install of the last version is here (compiled zithout objc and foundation support)
a keep a Xorg installed for convenience, if you dont zant it erase /usr/X* directory and modify .profile file.
From cauldrondevelopement:
osxbom : for now just lsbom, a reimplementation of the utility of the same name. Here for using with macport binary package.
From hnak:
Others:
subversion-1.3.2 is in /Users/puredarwin.
A part of jre from openjdk is here with antlr 2.7.3.
Components not working / lacking :
PureFoundation : there are (...) features not implemented, tested.
Security framework : there is no free CSP, so a lot of features are not ok.
CFNetwork : not really tested, perhaps it's ok.
CF: the patches are mainly stubs, but it should be possible to implement the features without too much difficulties.
ddistnoted: not here. you can get the binary from puredarwin site or ask the author for the
source.
Kerberos : depends on plutil. A python module for plist exist so somebody can make a plutil substitute.
Features with less problems:
Login throught pam:
this is achieve by creating/recreating the pam_sessioncreate.so module foolowing the Stuart mail from:
Multi-users : you can use the script from puredarwin site
DTrace:
The dtrace patch interfers which dyld buily, so I patched ld64 but dtrace functionnalities were not tested after this patch.
Features with less problem:
Network:
You can see a message at
boot:
"InterfaceNamer: no network interfaces"
=> it just means the interface is not built-in, so not used to generqte uuid platform.
Graphics :
Only a framebuffer for qemu/virtualbox is here, it's based on VBE features only iirc, so nothing hardware specific.
There is a driver made by zenith432 VMWare Svga II which should provide support for vmware.
What's been done :
A lot of patches.
But there is a lot of patch to build only i386.
What I think could be solve :
CF - purefoundation :
The patch available for CF pf6 is not ok, and some feature were backported from CF-550 or opencflite.
There is no reconstructed
headers/headers based on the doc, so they couldn't be included. But compilation against purefoundation in puredarwin is fine and show you immediatly what symbols are lacking...
The purefoundation r30 needs minor corrections to built in darwinbuild and have all the symbol defined (link to libffi...), notably the Foundation headers can be self-contained easily.
Python and Tcl needs additionnal patches to build completly in darwinbuild.
X : re-enable XDarwin feature.
What will be very difficult to solve :
Security :
there is no opensource CSP, perhaps it's possible to use openssl...
XCode dependency :
It means porting every project to use a Makefile...
Porting to a more modern base (darwin
10, 11...).