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.
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.
Did it work?
No, unfortunately I could not get Darling to compile back then and gave up. (I don't have that printer anymore either.)
Why this over Wine with the Windows executable?
The Windows driver wouldn't work with CUPS. Or is there something like ndiswrapper for printer drivers?
Similarly I was hoping to run the Bonjour Conformance Test on Linux in CI for Avahi. Which is CLI as well.
Depending on your printer
You may be able to print directly to port 9100 of the printer using netcat
Xcode build tools. Right now you practically need a macOS machine to compile applications for macOS or iOS.
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.
Any links?
Here you go: https://github.com/tpoechtrager/osxcross
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.
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.
Honestly my feelings exactly. Any cli software that’s available for Mac is also available for any other Unix. Seems entirely pointless to me.
Spot on ;)
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...
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.
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.
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.
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.
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.
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.
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.
The goal of any corporation, some are more successful than others.
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.
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.
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.
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.
Well, for Mac OS X there is GnuStep which has made Cenon possible.
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.
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.
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.
That was more than 11 years ago!
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.
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.
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.)
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.
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.
Not just their main range but actually none of their current computers do.
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).
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.
Yes, it doesn’t do any emulation.
This is awesome. Now, what mac soft do I want to run on Linux? I am neither a gamer nor a designer
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.
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.
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.
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)
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.
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
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.
Doubt it will continue to work once Apple completely stops supporting Intel.
Safari for testing
The real thing is better, but you can probably get most of the way with any WebKit browser native to Linux.
Really depends on what you are testing. Media format support is going to differ.
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
I know this only works for cli tools right now, but I’d love to be able to run iMessage and Notes on linux.
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!
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
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)
Very very unlikely - as far as i know iMessage requires a Mac or iPhone serial number to authenticate :(
I have an iphone, so I hope the serial number won’t be an issue.
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?
It has long changed and became much more reliable in the process.
Check out my note-taking app on Flathub: https://flathub.org/apps/io.github.nuttyartist.notes
From your lips to God's ears with iMessage.
Being able to run iMessage with this would be enough to let me (and I'm sure others) finally ditch my iPhone
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.
Only the command-line tools. https://docs.darlinghq.org/known-working-software.html
Nice, but all those already run on Linux.
Since when?
Everything on that list except XCode has a Linux version.
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).
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.
I think it still could be useful to build ios apps and upload them if that's possible in the command line.
How to get banned from apple store in 1 easy step!
I've done enough app uploads to know it's also half broken on a real Mac, so I would not worry about that.
Oh wow, it actually works.. That's awesome for a CI runner
The problem is that it means porting all of Cocoa etc., which is as big if not bigger than Wine porting the win32 api.
If a ChatGPT assisted port can be seen as a cleanroom implementation, this can be done a lot faster than Wine.
it is most definitely not cleanroom
ChatGPT probably wasn't trained on any proprietary Apple source code.
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?
Yes, but can it be done with a blockchain?
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.
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.
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.
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.
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.
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.
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...
No it wasn't it was osmeta https://techcrunch.com/2013/04/10/has-facebook-quietly-acqui...
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!
There are no plans to support any recent version of iOS
Isn’t this one very explicit about only aiming to cover old lost games…?
Onenote is normally available on Android, isn't it?
It’s lacking many features on android: https://support.microsoft.com/en-us/topic/comparing-educatio...
But there's a OneNote app for Android...
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
Actually I think they would send an army of recruiters.
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.
Because getting FCP to run on Linux shows that you have mad skills.
This ^
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.
Hmmmm ok... but what if it becomes stable enough that one day it's comparable to using a Mac?
Then they still won't care as long as you pay for it
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.
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.
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.
Cocotron used to have pretty good AppKit API coverage:
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.
Is it only me or is that background color of the FAQ with the black font totally unreadable?
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
Would be great to get Maccy & Rectangle working on Ubuntu!
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)
With some smart dynamic binary translation it would be able to run Arm64 OSX binaries. Just 5 times slower.
Wonder if it does mdsearch/mdutil which is the macOS killer indexing process…?
Would be nice to have support for fancy terminals like Warp or iTerm2 in Linux
Too bad the Go compiler doesn’t work. Been checking in once every month to see if that has been fixed
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.
Seems like GUI application support is not there yet. In that case, what command-line software for MacOS is actually useful for?