return to table of content

Darling: Run macOS Software on Linux

vinniepukh
16 replies
22h39m

Seems like GUI application support is not there yet. In that case, what command-line software for MacOS is actually useful for?

fuzzy2
6 replies
21h49m

Last I tried Darling, my goal was to make a proprietary printer driver run on Linux. It was available for Windows and macOS (CUPS). So that’s one use case.

notRobot
1 replies
21h7m

Did it work?

fuzzy2
0 replies
19h0m

No, unfortunately I could not get Darling to compile back then and gave up. (I don't have that printer anymore either.)

hiatus
1 replies
20h49m

Why this over Wine with the Windows executable?

fuzzy2
0 replies
19h1m

The Windows driver wouldn't work with CUPS. Or is there something like ndiswrapper for printer drivers?

lathiat
0 replies
15h56m

Similarly I was hoping to run the Bonjour Conformance Test on Linux in CI for Avahi. Which is CLI as well.

j45
0 replies
20h6m

Depending on your printer

You may be able to print directly to port 9100 of the printer using netcat

LoganDark
6 replies
22h33m

Xcode build tools. Right now you practically need a macOS machine to compile applications for macOS or iOS.

IshKebab
4 replies
22h30m

For command line apps you can cross-compile from Linux. IIRC it does require building Clang from source, and obtaining a Mac SDK (which is probably against their T&C's) but there are pre-made scripts to do it (there's a good GitHub Actions one).

That said, I only do that for free projects. For commercial stuff I'd just buy a Mac Mini.

maxloh
2 replies
21h54m

Any links?

roblabla
0 replies
21h44m
IshKebab
0 replies
21h36m
LoganDark
0 replies
21h44m

For command line apps you can cross-compile from Linux.

You technically can, but this has various issues. The lack of UI frameworks is one. I don't remember the others since I have a real Mac, but it's only an Intel Mac.

ptspts
0 replies
19h25m

On a Linux host, use pts-osxcross (https://github.com/pts/pts-osxcross) to target macOS, it contains Clang and other build tools precompiled for Linux amd64.

whalesalad
0 replies
19h16m

Honestly my feelings exactly. Any cli software that’s available for Mac is also available for any other Unix. Seems entirely pointless to me.

fevangelou
0 replies
21h42m

Spot on ;)

jaxr
13 replies
23h3m

As a long time Linux user, it's always felt kind of unjust that all good Linux software is ported to other os, but there is no reciprocity. I do understand all the nuances, but Apple and especially MS seem to get a lot out of the GNU/Linux ecosystem and give very little in return.I would appreciate using some open source software released for Mac in my Linux desktop. Thanks to the developers of this project! Will give it a spin...

frutiger
4 replies
22h53m

Apple and especially MS seem to get a lot out of the GNU/Linux ecosystem and give very little in return

LLVM/Clang has been a huge boon to the GNU/Linux ecosystem, and dragged gcc into the modern era, and was largely funded Apple for many years.

headhasthoughts
1 replies
22h9m

How has it been a huge boon to the GNU ecosystem? Clang is slow, the code generated is not consistently better than GCC for most of the software I personally run benchmarks for, and it's not like GCC has ever been worse for feature support than a Microsoft compiler.

It's better to point out WebKit.

95014_refugee
0 replies
20h58m

How has it been a huge boon to the GNU ecosystem?

It would seem that you never used GCC in the pre-llvm era. The GCC project has had a couple of notable periods of stagnation, in each case being "rescued" by the emergence of meaningful competition. First EGCS, and then later llvm.

Clang brought new developers to the space, it disproved the assertion that error messages had to be cryptic and unhelpful, and it has been a peer competitor for an extended period of time now. The two projects compete and cross-pollinate to their mutual benefit.

pasc1878
0 replies
22h32m

Not really now.

If you use Windows or macOS then you can open all your time using the OS suppliers tools or tools bought from third parties.

In macOS you can use UNIX but it is the FreeBSD world so no GNU or Linux there.

In windows if you want Unix then WSL which is GNU/Linux but you can easily work in plain Windows.

deaddodo
0 replies
22h44m

People seem to forget that GCC was flopping around on C++11 for a long while until clang started pushing things along.

Not to say they've fallen behind, just that a competitor clearly kicked things back into gear. Same as Firefox and Webkit-based browsers did for the many years of IE6's monopoly.

dorfsmay
3 replies
22h34m

As another long time Linux user, I've just started to worry how Microssoft is invading my work life:

GitHub, TypeScript, Vscode (when I have to interact with people who cannot think outside an IDE), and I've just started to use Playwright.

wsintra2022
0 replies
21h8m

Typescript and vscode are both good tools so can’t really hate on them, there is codium which removes the MS telemetry from vs code.

pjmlp
0 replies
20h2m

The goal of any corporation, some are more successful than others.

adhamsalama
0 replies
21h27m

Same. I exported all my GitHub repos to GitLab, and I'm thinking about using Neovim (not because it's better, but because I hate Microsoft).

Sadly there isn't much I can do about TypeScript and NPM.

Microsoft wants to control everything in our lives.

paulddraper
0 replies
22h35m

I do understand all the nuances

The reasons, in decreasing significance: (1) demand and (2) OS interfaces.

1. Linux desktop has a small user base; there's simply less interest and value in porting to Linux.

2. The POSIX interface is basic (well, more basic than Windows); it's easier to emulate/replace/shim Linux interfaces than Windows ones.

mfer
0 replies
22h51m

I think this has less to do with "justness" and more to do with cost effectiveness. A majority of people use Windows. That's followed by macOS (or ChromeOS but you can't easily directly port software over there). Then you have GNU/Linux desktop users.

If you're building software you're often going to target your audiences where they are.

In the developer world, there are many desktop Linux users. So, we have more tools available to us related to our jobs. I use desktop Linux and appreciate that.

But, most people across industries and in their personal lives are not in the same situation.

jwells89
0 replies
22h40m

It’s too bad that community interest/investment in efforts like GNUStep, Étoilé, and Cocotron have been low, because a major yet consistently underestimated component of why macOS has long had a thriving quality indieware scene is the depth, breadth, and quality of its frameworks. Cocoa/AppKit enables solo devs and small teams to punch well beyond their weight and I’m sure those devs would be happy to sell their programs to Linux users too if they could cross-compile.

WillAdams
0 replies
22h36m

Well, for Mac OS X there is GnuStep which has made Cenon possible.

dave4420
12 replies
23h11m

Only runs on x64 chips.

Presumably only runs macOS binaries built for intel? (i.e. not apple silicon.) I can’t find if it says anywhere.

gwbas1c
10 replies
19h9m

FWIW:

All Macs have been 64-bit for at least 11 years, if not longer. (My MBP from 2012 was 64-bit.)

Apple dropped 32-bit support a long time ago. Not sure of the exact date, but sometime around 2015-2017 I had to port a Mac application to 64-bit because the upcoming release of MacOS was going to drop all 32-bit support.

windowsrookie
1 replies
17h50m

The PowerMac G5 and iMac G5 all the way back to 2003 are 64-bit. Apple actually had to drop 64-bit for one year during the intel transition in 2005-2006. (The original Intel Core Duo chips were 32-bit.

gwbas1c
0 replies
14h5m

That was more than 11 years ago!

iAMkenough
1 replies
14h22m

That's fine if you want to run the software on an 11 year old Mac, but irrelevant to anyone who has purchased a Mac during the Apple Silicon era.

account42
0 replies
5h50m

Darling is not for running anythig on a Mac but for running OS X software on other computers. That means not supporting Apple-ARM only becomes a problem once software you want to run is no longer available for x86.

dave4420
1 replies
18h40m

Yeah… I wasn’t really getting at it not working on 32bit, more getting at it not working on arm.

If it doesn’t acquire the ability to run arm binaries, it will be a retro computing platform in a couple of years. (And it would have to emulate apple’s cpu extensions, even when running on arm chips, yes.)

gwbas1c
0 replies
14h2m

Perhaps the assumption is that ARM will be more common on Windows and Linux? Or that ARM will become a requirement at some point in the future?

I'm kinda surprised that ARM isn't common yet in Windows and Linux.

cdogl
1 replies
17h40m

FWIW: I suspect when GP said “x64 chips” the reference point was that Apple’s main range of devices in 2023 (Apple Silicon) do not run x64 chips.

avarun
0 replies
15h58m

Not just their main range but actually none of their current computers do.

lukevp
0 replies
14h2m

x64 means x86-64 in common parlance. Apple silicon would be an arm64 platform in comparison. Lots of software is compiled for both right now, but Apple is abandoning x86-64 so at some point in the future, software will stop being built for that platform (just like ppc before x86).

heavyset_go
0 replies
15h43m

I think there was like one or two generations max of 32-bit Mac Minis and MacBooks before they shipped with 64-bit Core 2 Duo and Quad processors.

I have a 2008 MBP that's 64-bit, and a 2006 Mini that's 32-bit.

saagarjha
0 replies
22h5m

Yes, it doesn’t do any emulation.

AzzieElbab
12 replies
22h39m

This is awesome. Now, what mac soft do I want to run on Linux? I am neither a gamer nor a designer

gumballindie
4 replies
22h13m

Dont worry, gaming on mac is not a thing so that’s out of the question anyway - apple products are too low spec for it.

There is some gui software that would be nice to run on linux, but none mase by apple.

input_sh
3 replies
21h41m

There's been some recent big budget games compiled for Apple Silicon; Lies of P and Baldur's Gate 3 come to mind. Of course, that's just a tiny fraction of big budget games and I haven't actually played any of them to know how good the experience is.

yjftsjthsd-h
0 replies
20h42m

I would natively expect those to mostly have Windows versions that work with WINE already.

Edit: Oh, it might be better if you want an ARM native binary.

dgacmu
0 replies
19h48m

I've been playing BG3 on an m1 Mac mini and it's surprisingly good. I haven't bothered loading it on my big-GPU gaming PC to compare, but that alone says something.

(I'm in no way a serious gamer, so there may be plenty of things I overlook)

a_vanderbilt
0 replies
20h53m

It's nice when it works, but papercuts still degrade the experience. The M-series chips are really impressive when they get a chance to stretch their legs. It feels like we're still in the chicken-and-egg phase though. I don't foresee that changing unless Apple dumps a ton of money to incentivize publishers to port to Mac, or they do what Valve did and make their own equivalent of Proton - aimed at developers. The licensing on GPTK kinda kills that though.

mseidl
2 replies
19h29m

I'm a 30 year linux veteran and windows free for over 22. I di d have a windows vm for some time because I have some music stuff that doesn't work with linux, like a nord keyboard and some guitar stuff.

But i burnt the vm with fire when I found https://github.com/foxlet/macOS-Simple-KVM

ptspts
0 replies
19h6m

It didn't work for me for the macOS version I tried (not the latest one). Probably because the installer is not available from Applr's servers anymore.

jzombie
0 replies
19h7m

Doubt it will continue to work once Apple completely stops supporting Intel.

idonotknowwhy
2 replies
21h31m

Safari for testing

yjftsjthsd-h
1 replies
20h41m

The real thing is better, but you can probably get most of the way with any WebKit browser native to Linux.

account42
0 replies
5h26m

Really depends on what you are testing. Media format support is going to differ.

asow92
0 replies
20h33m

xcodebuild CLI to compile iOS apps without a Mac. Seems possible in theory, although there's an ongoing issue some are seeing apparently: https://github.com/darlinghq/darling/issues/488

smasher164
10 replies
20h50m

I know this only works for cli tools right now, but I’d love to be able to run iMessage and Notes on linux.

rtpg
2 replies
15h49m

As an iOS + Linux user, icloud.com has been helpful. Access to reminders, notes, in theory messages (I don't use it so can't vouch for it).

The thing to do is to use Chrome (yes...), and open the page. In the hamburger, go to "Create a Desktop shortcut". Choose "open in a new window". This gives you a desktop shortcut to open the page in a standalone way. Visible to your launcher, distinct ctrl+tab... it's janky but I've found this works well.

Firefox please add the Chrome standalone desktop shortcut feature!

smasher164
1 replies
14h49m

Yeah, I also tend to bring up iCloud Notes in a browser tab. It’s still far from perfect, since Notes is usually an offline-first app, which you miss out on here.

I’ve been looking for a replacement, but nothing really gives you

- Offline-first usage

- Sync changes via CRDT

- Fast startup time

- Rich text support

- iOS and desktop linux support

rtpg
0 replies
14h41m

I have been using Joplin for longer notes, which provides good sync, offline-first, and good platform support. It's Janky but for writing out post drafts the sync has been super good for me. It lets me finish typing out a thing on my phone in a pinch, no futzing around with roam necessary.

For tiny notes I've been using.... facebook messenger chat to myself. Say what you will about Meta, at least their stuff mostly works.

I still feel for you. I really want to commission some software that feels good to use on Linux ("feels good" in the real sense, not in the GNOME sense)

kennydude
1 replies
19h13m

Very very unlikely - as far as i know iMessage requires a Mac or iPhone serial number to authenticate :(

smasher164
0 replies
13h35m

I have an iphone, so I hope the serial number won’t be an issue.

__jonas
1 replies
19h9m

I thought notes was just a client that syncs via IMAP so you would be able to use any notes app that supports IMAP sync?

Or has this changed?

tambourine_man
0 replies
15h43m

It has long changed and became much more reliable in the process.

rubymamis
0 replies
19h56m

Check out my note-taking app on Flathub: https://flathub.org/apps/io.github.nuttyartist.notes

cplusplusfellow
0 replies
20h15m

From your lips to God's ears with iMessage.

acheam
0 replies
19h39m

Being able to run iMessage with this would be enough to let me (and I'm sure others) finally ditch my iPhone

archero
10 replies
22h49m

Is it able to run Xcode? I’ve been trying to do some iOS development on Linux and so far my solution has been to use DockerOSX… but this sounds much more convenient.

notpushkin
8 replies
22h43m
Animats
7 replies
22h38m

Nice, but all those already run on Linux.

glitchc
3 replies
22h30m

Since when?

Animats
2 replies
22h28m

Everything on that list except XCode has a Linux version.

saurik
1 replies
22h18m

So the big thing is that you can use the command line xcbuild and also often need access to the asset bundlers (which are not open source).

Animats
0 replies
20h43m

That's actually useful. I need the asset bundlers so I can build for MacOS without having a Mac. I already build Rust programs for Linux and Windows on Linux.

realusername
2 replies
22h28m

I think it still could be useful to build ios apps and upload them if that's possible in the command line.

LtWorf
1 replies
20h27m

How to get banned from apple store in 1 easy step!

realusername
0 replies
20h22m

I've done enough app uploads to know it's also half broken on a real Mac, so I would not worry about that.

jbverschoor
0 replies
21h34m

Oh wow, it actually works.. That's awesome for a CI runner

mgaunard
9 replies
22h43m

The problem is that it means porting all of Cocoa etc., which is as big if not bigger than Wine porting the win32 api.

lodovic
4 replies
21h45m

If a ChatGPT assisted port can be seen as a cleanroom implementation, this can be done a lot faster than Wine.

jdmg94
2 replies
21h29m

it is most definitely not cleanroom

wtallis
0 replies
19h24m

ChatGPT probably wasn't trained on any proprietary Apple source code.

lloeki
0 replies
20h34m

Clean room has two steps:

- Team A: reverse engineer and document

- Team B (with no intersection with A): implement from document

Allow me to indulge in a thought experiment:

What if one tells ChatGPT to generate the documentation, then implementation is done from that?

What if Copilot (which has no visibility into the original code) lays out a huge chunk of the implementation from the documentation?

account42
0 replies
5h36m

Yes, but can it be done with a blockchain?

userbinator
1 replies
20h0m

Win32 has been Win32 since Win95 (if you don't count Win32s). Additions have occurred, but much of the base has remained the same.

In that time, Macs already changed processor architectures several times.

lproven
0 replies
5h56m

Win32 has been Win32 since Win95

You are 2 years too late.

NT 3.1 was the first OS with Win32 as its standard API, in 1993.

OnlyMortal
0 replies
20h0m

Foundation Kit was “ok” with GNUStep. I’d expect that would be a good place to start.

As for AppKit and now all the other frameworks that have been added, it’ll be an uphill struggle.

LoganDark
0 replies
22h31m

At least Unix and Linux are similar families of operating systems. Porting over Win32 is probably bigger, especially since Windows 11 still has to run binaries from the 90s. macOS cares much less, and you either do dynamic linking or recompile.

gamesbrainiac
9 replies
23h6m

I wonder if there is a way to run iOS applications on Android. I'd kill to be able to use the OneNote app on my Samsung galaxy tab S8. Samsung Notes are great, but not very portable.

vitorgrs
2 replies
22h0m

Fun fact, Meta (FB) actually had a tech to "emulate" iOS apps. Facebook and Instagram for Windows/WP once upon a time was an iOS emulated app.

smileybarry
1 replies
21h44m

IIRC it was actually Microsoft’s Windows 10 Bridge for iOS that enabled this: (and sadly it’s dead now)

https://web.archive.org/web/20170707092302/https://developer...

LegNeato
0 replies
21h22m
speps
2 replies
22h57m

This project is the most promising and it does what you say, except they're starting with iOS 1.0 so you'll have to be patient!

https://touchhle.org/

saagarjha
0 replies
22h7m

There are no plans to support any recent version of iOS

Klonoar
0 replies
22h7m

Isn’t this one very explicit about only aiming to cover old lost games…?

tomaskafka
1 replies
23h0m

Onenote is normally available on Android, isn't it?

supermatt
0 replies
22h49m
ClassyJacket
0 replies
19h36m

But there's a OneNote app for Android...

xyst
7 replies
22h5m

Apple would probably send their army of lawyers after GH if you were able to run Final Cut Pro without using Apple hardware or macOS

lisper
3 replies
21h57m

Actually I think they would send an army of recruiters.

freedomben
1 replies
16h59m

Why would they do that? They could easily make this possible with their current expertise. They clearly don't want that, and that's how they've been their entire existence.

lisper
0 replies
15h53m

Because getting FCP to run on Linux shows that you have mad skills.

95014_refugee
0 replies
21h4m

This ^

iAMkenough
2 replies
14h19m

Final Cut Pro has been running on hackintoshes without the army of lawyers showing up for a decade or more. As long as they get their $300 per license, they don't care how unstable it runs on your unsupported hardware.

mikeweiss
1 replies
13h4m

Hmmmm ok... but what if it becomes stable enough that one day it's comparable to using a Mac?

gitaarik
0 replies
10h24m

Then they still won't care as long as you pay for it

petabytes
3 replies
20h43m

I've been using this the past few weeks to try and cross compile my software. Clang works, but a lot of the core libraries are missing. pkgbuild for instance won't work. And even native Cocoa apps I've tried won't work. That being said, this has a ton of potential. I really wish the devs had more time to work on it.

heavyset_go
1 replies
15h47m

Have you tried using the headers and sources from Xcode SDKs and linking them against Clang on Darling? Should be enough if cross compiling is the goal and not porting apps to run on other platforms.

Something similar can be done with Wine as well as MinGW and other similar toolchains and platforms that target Windows.

account42
0 replies
5h54m

You don't even need Darling or Wine if you just want to cross-compile since Clang can target any platform irrespective of the platform you are running it on (as long as your Clang is not built with support for that target disabled). All you need is the system libraries/headers and a linker (Apple's ld64 is open source, no idea if lld is usable for Mach-O yet). See e.g. OpenTTD's old how-to: http://web.archive.org/web/20200917010945/http://devs.opentt...

The only thing making this hard for targeting OS X is that a) too few people care for ready-made cross-compilers to be available so you have to piece this together yourself and b) there is no open-source reimplementation of the OS X system headers and stub libraries to link against so you have to extract the official ones from Xcode but that again is only a matter of people not caring.

For MinGW that is all there because Windows is a much more popular target - many Linux distros have MinGW packages that you can simply install and start cross-compiling. The same could be done for OS X.

robterrell
0 replies
20h16m

Cocotron used to have pretty good AppKit API coverage:

https://www.cocotron.org

I was able to get a ported app running with it at one point. And I think Microsoft took a pass at it more recently: https://github.com/Microsoft/WinObjC

But it appears Darling uses Cocotron so maybe you've already seen how well it works for you.

doener
1 replies
23h20m
pvg
0 replies
22h32m
rspoerri
0 replies
19h52m

Is it only me or is that background color of the FAQ with the black font totally unreadable?

ncr100
0 replies
19h40m

We use The Cocotron as a basis for our Cocoa implementation, along with the Apportable Foundation and various bits of GNUstep.

My heart swells, I got to work at Apportable - super fond memories.

.. was a YCombinator 2011 thing https://www.ycombinator.com/companies/apportable

iAkashPaul
0 replies
21h39m

Would be great to get Maccy & Rectangle working on Ubuntu!

dang
0 replies
19h14m

Related:

Darling Progress Report Q2 2023 - https://news.ycombinator.com/item?id=37220023 - Aug 2023 (15 comments)

Darling: The macOS virtual emulation layer for Linux - https://news.ycombinator.com/item?id=33157857 - Oct 2022 (1 comment)

Darling – Run Mac apps on Linux - https://news.ycombinator.com/item?id=29813679 - Jan 2022 (200 comments)

Darling: macOS Translation Layer for Linux - https://news.ycombinator.com/item?id=24683669 - Oct 2020 (199 comments)

Darling – Run macOS software on Linux - https://news.ycombinator.com/item?id=22700365 - March 2020 (128 comments)

Darling – macOS Translation Layer for Linux - https://news.ycombinator.com/item?id=19772322 - April 2019 (174 comments)

Darwin/macOS emulation layer for Linux - https://news.ycombinator.com/item?id=17718906 - Aug 2018 (7 comments)

The Mach-O Transition: Darling in the Past 5 Years - https://news.ycombinator.com/item?id=13581234 - Feb 2017 (1 comment)

Darling – MacOS translation layer for Linux - https://news.ycombinator.com/item?id=12854895 - Nov 2016 (265 comments)

da-x
0 replies
20h27m

With some smart dynamic binary translation it would be able to run Arm64 OSX binaries. Just 5 times slower.

bomewish
0 replies
20h41m

Wonder if it does mdsearch/mdutil which is the macOS killer indexing process…?

apatheticonion
0 replies
19h28m

Would be nice to have support for fancy terminals like Warp or iTerm2 in Linux

acheong08
0 replies
12h5m

Too bad the Go compiler doesn’t work. Been checking in once every month to see if that has been fixed

999900000999
0 replies
17h50m

I don't expect it to work anytime soon, but I'd love to see Logic on this.

I own a Mac and a copy of logic, but I really would love to be able to travel with a single laptop instead of carrying my Air just for recording.