1. 23

  2. 4

    I have been eyeing this so I could easily run Nix builds on the machines on AWS, as part of our Hydra CI setup. Having machines in different network domains is so annoying.

    1. 1

      copumpkin has Nix building XNU. You should check with him what the next step is.

    2. 3

      Looks like it’s lagging a couple of years behind Apple’s releases. And they’ve dropped more and more functionality as Apple stopped releasing source for new versions of core services.

      1. 5

        I think they’re lagging behind because Apple is releasing less and less stuff. Back when I tried to boot Darwin from purely open bits in 2006, I got about as far as setting up the real-time clock before the bits that didn’t exist were beyond my expertise (specifically, the “Platform Expert” kexts which initialised hardware on PPC).

        If you look at Apple’s Open Source website, there’s nothing newer than version 10.14.5, and there are fewer projects there than there used to be (no XNU kernel, no launchd, no CF-Lite, for example). Not all of the projects have moved to their github organisation or their other one, so either they’re up somewhere I didn’t discover or no longer open.

      2. 1

        I think PureDarwin is really important, to give people a Free Software offramp for their Apple-platform dependency should they find problems with Apple’s products or practices, or find benefits in a FLOSS alternative. Unfortunately, at the time that I got really excited about it, I joined their forums (which are now down) and my posts were met with silence. I’m hoping that this boost of interest gets the community going again.

        Though I have to say, my track record for getting excited about Apple-adjacent FLOSS projects has not been great. I remember some annoying gatekeeping in the OpenDarwin community. NextBSD seemed to make a splash announcement then disappear (I’d be happy to hear news to the contrary), and MidnightBSD appeared to pivot from a GNUstep-based GUI to a custom ports system. GNUstep is “still going”, but their approach to new API support is to write do-nothing implementations, so you don’t find out that your project can’t be ported until it subtly does the wrong thing at runtime.

        1. 5

          The problem with OpenDarwin as an “offramp” is that once you take away Cocoa, the GUI, the apps, etc, you have nothing of the ecosystem left that you couldn’t get on say, Linux or a BSD.

          1. 1

            PureDarwin with GNUstep would at least provide a decent chunk of API compatibility. If you could port some apps you’d at least have a partially familiar home.

            1. 7

              Not a usable chunk, though. There’s nothing here that privileges this over Linux or BSD as an offramp. People like me who are perfectly comfortable with Unix but continue to use a Macintosh do so predominantly because of the software ecosystem, and the closest thing to an off-ramp for us is Windows.

              1. 2

                There’s nothing here that privileges this over Linux or BSD as an offramp.

                There’s one advantage, and I think it’s a sizeable advantage, in that porting effort would be lower. “You can do this on Linux if you want to port your XPC to dbus, your launchd to systemd, and the other things that we’re going to tell you we have feature parity on” is a less compelling story than “you build your project”.

                Now, I appreciate that PureDarwin with GNUstep or other Cocoa-like bits is incomplete as a port destination, but it’s a lot less incomplete than Linux with GNUstep or other Cocoa-like bits. And has closing the portability gap as a goal.

                1. 1

                  This is theoretically true, yes. But I wonder about the number of people doing work that a) does not use any of the Foundation or other Apple specific libraries and b) relies on the non-POSIX behaviour of Darwin. My best guess would be that this number is basically zero.

              2. 2

                I don’t think you realize how distantly far behind modern Cocoa GNUstep is.

                1. 1

                  Sadly, I do.

                2. 1

                  I don’t think any application written for macOS will be able to run with GNUstep.

                  The project looks more like a mixture of Stockholm and beaten house-partner syndrome to me.

                  1. 1

                    An application for macOS GUI might be out of reach, but POSIX or command line utility would be something that one could easily test and run. As I mentioned in another comment, the use case I see with PureDarwin is for virtualization and part of the CI, when I can easily test if, for example, rustc works correctly on macOS, without needing to invest a bunch of money for snowflakey macOS boxes.

            2. 1

              Can it be used to produce executables that will run on actual macOS?

              An open source CI solution for doing macOS builds, even if limited, would still be great.