
Camada de emulação Darwin/macOS para Linux

Darling é um ambiente de execução para aplicativos macOS.
Observe que a maioria dos aplicativos GUI não funcionará no momento.
Pacotes para algumas distribuições estão disponíveis para download em releases.
Para instruções de compilação, visite Darling Docs.
Darling tem suporte para DPREFIXes, que são muito semelhantes aos WINEPREFIXes. São ambientes virtuais “chroot” com uma estrutura de sistema de arquivos semelhante ao macOS, onde você pode instalar software com segurança. A localização padrão do DPREFIX é ~/.darling, mas isso pode ser alterado exportando uma variável de ambiente com o mesmo nome. Um prefixo é criado e inicializado automaticamente no primeiro uso.
Observe que usamos overlayfs para criar prefixos e, portanto, não podemos suportar a colocação de prefixo em um sistema de arquivos como NFS ou eCryptfs. Em particular, a localização padrão do prefixo não funcionará se você tiver um diretório inicial criptografado.
Vamos começar com um Olá mundo:
$ darling shell echo Hello world
Hello world
Parabéns, você imprimiu Olá mundo através da emulação de chamadas de sistema e bibliotecas de tempo de execução do Darling.
Você pode instalar pacotes .pkg com a ferramenta installer disponível dentro do shell. É um primo um tanto limitado do instalador do OS X:
$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /
O pacote Midnight Commander do exemplo acima está disponível para download.
Você pode desinstalar e listar pacotes com o comando uninstaller.
Imagens DMG podem ser montadas e desmontadas de dentro do darling shell com hdiutil. É assim que você pode instalar o Xcode junto com suas toolchain e SDKs (observe que o próprio Xcode ainda não funciona):
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
Parabéns, você acabou de compilar e executar seu próprio aplicativo Olá mundo com a toolchain da Apple.
O Xcode agora é distribuído em arquivos .xip. Eles podem ser instalados usando unxip:
cd /Applications
unxip Xcode_11.3.xip