Darwin/macOS emulation layer for Linux
Go to file
CuriousTommy d210844795
Some checks failed
Darling CI / build-deb (push) Has been cancelled
Darling CI / build-dsc (push) Has been cancelled
Merge pull request #1554 from johnpanos/fix/cmake-3.31.0
Disable dependency file generation
2024-11-13 15:20:09 -08:00
.circleci Update CircleCI image 2021-05-03 22:15:55 -04:00
.github Fix Ci Errors 2024-01-14 01:10:55 +00:00
.vscode Add Configuration To Load Core Dumps In VSCode Debugger 2023-03-28 11:37:49 -07:00
basic-headers Remove architecture from Darling repo. Add symbol link to architecture submodule. 2023-01-25 11:26:10 -08:00
ci [ci/deb] Allow using an existing UID/GID for the CI user 2023-11-01 21:28:48 -04:00
cmake Set Fall Back Arch To The Primary Arch For MIG 2024-05-07 18:20:14 -07:00
debian fix: fixed iosurface and python2 debian package generation 2024-05-14 22:02:11 +02:00
Developer Use Darling reserved key definitions from libpthread 2023-10-04 23:32:09 -04:00
etc Remove obsolete files 2018-08-14 11:10:57 +03:00
framework-include Add stubs for some Quartz subframeworks 2023-09-25 16:32:27 -04:00
framework-private-include Add IconServices stubs 2023-09-25 16:31:35 -04:00
misc Cleanup benchmarks, misc and tools directories 2016-02-26 22:59:34 +01:00
rpm [deb,rpm] Remove python2 dep 2023-11-01 18:29:48 -04:00
src Add Explantion For Disabling Dependency File Support With The Linker 2024-11-13 13:43:05 -08:00
tests/src Remove unused stuff from tests/ 2016-02-26 23:03:00 +01:00
tools Updated uninstall script to remove darlingserver and darling-coredump. 2024-05-19 21:33:57 -07:00
.gdbinit Loads of work on dyld and BSD functions 2012-08-15 12:17:58 +02:00
.gitignore fix: fixed iosurface and python2 debian package generation 2024-05-14 22:02:11 +02:00
.gitmodules Add libressl Branch Information To ".gitmodules" 2024-02-03 12:53:34 -08:00
CMakeLists.txt Add Basic Checks For Clang Compiler 2023-09-03 16:59:09 -07:00
CONTRIBUTORS.md Add contributors file 2017-04-06 09:12:11 +02:00
LICENSE Loads of work, libmacarchive added, copyright headers... 2012-10-22 19:02:06 +02:00
README.md Fix various typos 2023-08-10 09:02:52 -04:00

Darling

Darling logo

Darling is a runtime environment for macOS applications.

Please note that most GUI applications will not run at the moment.

Download

Packages for some distributions are available for download under releases.

Build Instructions

For build instructions, visit Darling Docs.

Prefixes

Darling has support for DPREFIXes, which are very similar to WINEPREFIXes. They are virtual “chroot” environments with an macOS-like filesystem structure, where you can install software safely. The default DPREFIX location is ~/.darling, but this can be changed by exporting an identically named environment variable. A prefix is automatically created and initialized on first use.

Please note that we use overlayfs for creating prefixes, and so we cannot support putting prefix on a filesystem like NFS or eCryptfs. In particular, the default prefix location won't work if you have an encrypted home directory.

Hello world

Let's start with a Hello world:

$ darling shell echo Hello world
Hello world

Congratulations, you have printed Hello world through Darling's OS X system call emulation and runtime libraries.

Installing software

You can install .pkg packages with the installer tool available inside shell. It is a somewhat limited cousin of OS X's installer:

$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /

The Midnight Commander package from the above example is available for download.

You can uninstall and list packages with the uninstaller command.

Working with DMG images

DMG images can be attached and detached from inside darling shell with hdiutil. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):

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

Congratulations, you have just compiled and run your own Hello world application with Apple's toolchain.

Working with XIP archives

Xcode is now distributed in .xip files. These can be installed using unxip:

cd /Applications
unxip Xcode_11.3.xip