Instruções actualizadas!
O darling é um programa que exige uma dose de aventura para instalar, porque está em desenvolvimento activo, e por vezes pode mudar do nada as dependências para a instalação!
Por agora, a única forma realista para instalar este programa é através da compilação e instalação à unha, como nos bons e velhos tempos do Linux...
Para instalar como pelo menos o suporte alpha às aplicações com interface gráfica do Mac OS X (Ainda não pensem algo mais complicado que uma simples janela de pop-up!), e suporte áudio, deve ter a versão de 64-bit do Ubuntu.
Por vezes, usar uma versão LTS ajuda, mas se usar o 16.10, terá que aplicar alguns hacks, porque os autores ainda não actualizaram os scripts de compilação.
Antes de tudo, instale os pacotes:
$ sudo apt-get install cmake clang bison flex xz-utils libfuse-dev libxml2-dev libicu-dev libssl-dev libbz2-dev zlib1g-dev libudev-dev linux-headers-generic libaspell-dev libpulse-dev libasound2-dev libavresample-dev libavformat-dev libavcodec-dev libpng-dev libjpg-dev libcairo-dev
Pois o projecto Darling utiliza o compilador Clang em vez do GCC.
Agora clone o branch Appkit, usando o git:
git clone -b appkit --recursive
https://github.com/darlinghq/darling.git(Vai demorar um bom bocado!)
Depois aplique os seguintes comandos no Terminal
cd darling
mkdir -p build/x86-64
cd build/x86-64
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86_64.cmake -DFRAMEWORK_COREAUDIO=ON -DFRAMEWORK_APPKIT=1
make
sudo make install
A compilação vai demorar um bom bocado, e mesmo que tenha o computador saído do forno, aguarde alguns minutos...
Ainda assim, como no meu caso, pode necessitar de corrigir os seguintes symlinks no código-fonte.
ln -s /usr/include/pngconf.h pngconf.h
ln -s /usr/include/pnglibconf.h pnglibconf.h
Nos directórios: ./darling/src/external/AppKit/Headers/Native e ./darling/src/external/CoreGraphics/Headers/Native
Por fim edite os ficheiros CMake.txt em ./darling/src/external/AppKit e ./darling/src/external/CoreGraphics
para trocar a linha:
target_link_libraries(AppKit CFF system ApplicationServices png12 aspell gif tiff jpeg X11 Xext Xrender fontconfig cairo)
por...
target_link_libraries(AppKit CFF system ApplicationServices png16 aspell gif tiff jpeg X11 Xext Xrender fontconfig cairo)
(Que é trocar a biblioteca png1.2 por png1.6, que não afecta o funcionamento do programa...)
Feito a compilação, e instalado o programa, falta compilar o módulo de kernel que emula o Mach:
cd ../../src/lkm
sudo ./dkms.sh
Por fim, instale o módulo, que deve ser feito cada vez que inicie sessão:
$ sudo modprobe darling-mach
$ sudo chmod a+rw /dev/mach
Agora, só falta iniciar o Mac OS X "virtual":
$ darling shell
Darling [/]$
Que é não é mais que um port do bash para Mac OS X a correr sobre o Ubuntu !!!
A instalação base cria um DPREFIX em ~/.darling, que contêm os ficheiros de sistema, incluindo vários ports de programas conhecidos no Ubuntu como o python, man, cp, ...
E também versões simplificadas do installer e hdiutil.
Podemos conferir a versão emulada pelo Darling
$ uname -a
Darwin hellsing 12.0.0 Darwin Kernel Version 12.0.0 x86_64
Os comandos internos são programas Linux nativos, pois por exemplo, o python:
$ file /usr/bin/python
/usr/bin/python: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped
Indo ao site rudix, e transferindo a versão 10.12 do p7zip, podemos correr este compressor sem problemas.
E podemos ver que é um executável OS X nativo, pois:
$ file `which 7z`
Darling [~/Transferências]$ file `which 7z`
/usr/local/bin/7z: Mach-O 64-bit executable x86_64
E por agora termino aqui...