
Livello di emulazione Darwin/macOS per Linux

Darling è un ambiente di runtime per applicazioni macOS.
Si prega di notare che la maggior parte delle applicazioni GUI al momento non funzionerà.
I pacchetti per alcune distribuzioni sono disponibili per il download nella sezione releases.
Per le istruzioni di compilazione, visita Darling Docs.
Darling supporta i DPREFIX, molto simili ai WINEPREFIX. Sono ambienti virtuali “chroot” con una struttura di filesystem simile a macOS, dove puoi installare software in sicurezza. La posizione predefinita del DPREFIX è ~/.darling, ma può essere cambiata esportando una variabile d'ambiente con lo stesso nome. Un prefisso viene creato e inizializzato automaticamente al primo utilizzo.
Si prega di notare che usiamo overlayfs per creare i prefissi, quindi non possiamo supportare il posizionamento del prefisso su filesystem come NFS o eCryptfs. In particolare, la posizione predefinita del prefisso non funzionerà se hai una home directory crittografata.
Iniziamo con un Hello world:
$ darling shell echo Hello world
Hello world
Congratulazioni, hai stampato Hello world attraverso l'emulazione delle chiamate di sistema OS X e le librerie runtime di Darling.
Puoi installare pacchetti .pkg con lo strumento installer disponibile all'interno della shell. È un cugino un po' limitato dell'installer di OS X:
$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /
Il pacchetto Midnight Commander dell'esempio sopra è disponibile per il download.
Puoi disinstallare e elencare i pacchetti con il comando uninstaller.
Le immagini DMG possono essere montate e smontate da dentro darling shell con hdiutil. Ecco come puoi installare Xcode insieme alla sua toolchain e agli SDK (nota che Xcode stesso non funziona ancora):
Darling [~]$ hdiutil attach Xcode_7.2.dmg
/Volumes/Xcode_7.2
Darling [~]$ cp -r /Volumes/Xcode_7.2/Xcode.app /Applications
Darling [~]$ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
Darling [~]$ echo 'void main() { puts("Hello world"); }' > helloworld.c
Darling [~]$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld
Darling [~]$ ./helloworld
Hello world
Congratulazioni, hai appena compilato ed eseguito la tua applicazione Hello world con la toolchain di Apple.
Xcode è ora distribuito in file .xip. Questi possono essere installati usando unxip:
cd /Applications
unxip Xcode_11.3.xip