I first saw this a few years back and was immediately captivated by the idea of doing this. Darling is really quite similar to WINE in concept, except it allows you to run macOS apps on Linux instead of Windows apps.
Ah. This again. Okay, so this should have been easier than it was. It took me three attempts to get this to compile XD. The first time, I just tried building on Linux Mint, except I use ecryptfs to encrypt my home directory, which means that overlayfs, used by Darling, doesn’t work, so I couldn’t use Darling once it had built. Note that ecryptfs has been nothing but stable for me – I would recommend it apart from it causing issues in strange situations like this one.
Not to worry: I next used a virtual machine. Figuring that new distributions are probably best, I tried building on Ubuntu 19.04, which almost immediately encountered an error and failed the build -_-.
So for my last try, I had a look at the Darling wiki to see which exact distributions they mention, and try building on one of those. Debian 10 (which is what my Disk Verifier live disk uses) seemed like a good choice, so I installed that with a basic LXDE desktop environment to try and keep it lightweight and make the build faster.
Finally, after a pretty long build time, I was met with success, and I managed to get into the Darling shell (still image from video here). Now on to using it.
The Basics in Darling
I thought I’d start with the basics to be absolutely sure that my build worked before I started doing anything too ambitious. Running
uname -a gives some interesting information about the the environment, and returns “darwin” as well, as you would expect on macOS. Darling comes with Python 2.7 and hdiutil to attack DMG images, as well as an installer to install standard macOS .pkg files – it has all you need to begin installing macOS software.
So after running uname and checking that Python 2.7 worked, I thought I would install Python 3 from python.org to see if that would work. It worked just fine, but unfortunately pip didn’t install on either Python 2 or Python 3, even when I tried to use the get-pip.py script – my plans of running GetDevInfo in Darling were scuppered at this point, but I was having fun so I thought I’d try some other more complicated things.
Ambitious things to try in Darling
Next I’d thought I’d try installing a package manage – Redux is recommended, but some others are mentioned to not work well. I’m not experienced with this, but it seems that Redux’s website doesn’t exist any more, so I don’t know how to install it XD. At any rate, I thought I’d next try running DDRescue-GUI and GNU ddrescue to see if either of those worked. GUI applications are known to not always work in Darling unless they’re very simple, so it wasn’t surprising that DDRescue-GUI didn’t. However, Darling did run and complete a test recovery using my ddrescue binary compiled on Mac OS X 10.9 (Mavericks) so I’m pretty happy with its ability to run macOS programs given the project seems to be in its infancy.
If I return to this later, I might try something like homebrew to see if that works, but I imagine downloading programs might be an issue – HTTPS didn’t seem to work for me, but it’s meant to, so I think this was about my particular situation/build configuration.
Darling is an ambitious project that I find very exciting. It might be that some of these things are working by the time you read this, so it’s worth checking Darling’s homepage and blog to see the status of the project.
That’s it for now, but I have many things I would like to post about over the summer, and I should have more time soon – this year I have a summer break from university study – so stay tuned for more posts!