2016-02-10 21:51:27 +00:00
# Darling
2015-12-18 16:13:15 +00:00
2021-01-04 00:56:37 +00:00
![Darling logo ](https://darlinghq.org/img/darling250.png )
2016-11-24 18:17:52 +00:00
2020-02-22 11:29:44 +00:00
Darling is a runtime environment for macOS applications.
2015-12-18 16:13:15 +00:00
2020-02-22 11:29:44 +00:00
Please note that most GUI applications will not run at the moment.
2016-02-10 21:47:38 +00:00
2016-02-10 21:51:27 +00:00
## Download
2016-02-10 21:47:38 +00:00
2020-01-04 01:04:08 +00:00
Packages for some distributions are available for download
under [releases ](https://github.com/darlinghq/darling/releases ).
2016-02-10 21:47:38 +00:00
2016-02-10 21:51:27 +00:00
## Build Instructions
2015-12-18 16:13:15 +00:00
2021-01-04 00:56:37 +00:00
For build instructions, visit [Darling Docs ](https://docs.darlinghq.org/build-instructions.html ).
2015-12-18 16:13:15 +00:00
2017-01-19 07:28:02 +00:00
### 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.
2016-02-10 21:51:27 +00:00
### Hello world
2016-02-10 21:47:38 +00:00
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.
2016-02-10 21:51:27 +00:00
### Installing software
2016-02-10 21:47:38 +00:00
2016-02-26 22:07:56 +00:00
You can install `.pkg` packages with the installer tool available inside shell. It is a somewhat limited cousin of OS X's installer:
2016-02-10 21:47:38 +00:00
````
$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /
````
2020-04-13 10:58:42 +00:00
The Midnight Commander package from the above example is [available for download ](https://darling-misc.s3.eu-central-1.amazonaws.com/mc-4.8.7-0.pkg ).
2020-02-26 22:21:39 +00:00
2016-02-26 22:07:56 +00:00
You can uninstall and list packages with the `uninstaller` command.
2016-02-10 21:47:38 +00:00
2016-02-10 21:51:27 +00:00
### Working with DMG images
2016-02-10 21:47:38 +00:00
2016-02-26 22:07:56 +00:00
DMG images can be attached and deattached 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):
2016-02-10 21:47:38 +00:00
````
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.
2020-02-26 22:21:39 +00:00
### Working with XIP archives
Xcode is now distributed in `.xip` files. These can be installed using `unxip` :
```
cd /Applications
unxip Xcode_11.3.xip
```