I can’t overstate how much I hate GitHub Actions. I don’t even remember hating any other piece of technology I used. Sure, I still make fun of PHP that I remember from times of PHP41, but even then I didn’t hate it. Merely I found it subpar technology to other emerging at the time (like Ruby on Rails or Django). And yet I hate GitHub Actions.
With Passion2.

Road to Hell
Day before writing these words I was implementing build.rs for my tmplr project. To save you a click - it is a file/project scaffold tool with human readable (and craftable) template files. I (personally) use it very often, given how easy it is to craft new templates, by hand or with aid of the tool, so check it out if you need a similar tool.

  • setsubyou@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    16 hours ago

    You could also just only use Macs. In theory ARM Macs let you build and test for macOS (host or vm), Linux (containers or vm), Windows (vm), iOS (simulator or connected device), and Android (multiple options), both ARM and x86-64.

    At least in theory. I think in practice I’d go mad. Not from the Linux part though. That part just works because podman on ARM Macs will transparently use emulation for x86 containers by default. (You can get the same thing on Linux too with qemu-user-static btw., for a lot more architectures too.)

    • tal@lemmy.today
      link
      fedilink
      English
      arrow-up
      2
      ·
      edit-2
      16 hours ago

      You could also just only use Macs.

      I actually don’t know what the current requirement is. Back in the day, Apple used to build some of the OS — like QuickDraw — into the ROMs, so unless you had a physical Mac, not just a purchased copy of MacOS, you couldn’t legally run MacOS, since the ROM contents were copyrighted, and doing so would require infringing on the ROM copyright. Apple obviously doesn’t care about this most of the time, but I imagine that if it becomes institutionalized at places that make real money, they might.

      But I don’t know if that’s still the case today. I’m vaguely recalling that there was some period where part of Apple’s EULA for MacOS prohibited running MacOS on non-Apple hardware, which would have been a different method of trying to tie it to the hardware.

      searches

      This is from 2019, and it sounds like at that point, Apple was leveraging the EULAs.

      https://discussions.apple.com/thread/250646417?sortBy=rank

      Posted on Sep 20, 2019 5:05 AM

      The widely held consensus is that it is only legal to run virtual copies of macOS on a genuine Apple made Apple Mac computer.

      There are numerous packages to do this but as above they all have to be done on a genuine Apple Mac.

      • VMware Fusion - this allows creating VMs that run as windows within a normal Mac environment. You can therefore have a virtual Mac running inside a Mac. This is useful to either run simultaneously different versions of macOS or to run a test environment inside your production environment. A lot of people are going to use this approach to run an older version of macOS which supports 32bit apps as macOS Catalina will not support old 32bit apps.
      • VMware ESXi aka vSphere - this is a different approach known as a ‘bare metal’ approach. With this you use a special VMware environment and then inside that create and run virtual machines. So on a Mac you could create one or more virtual Mac but these would run inside ESXi and not inside a Mac environment. It is more commonly used in enterprise situations and hence less applicable to Mac users.
      • Parallels Desktop - this works in the same way as VMware Fusion but is written by Parallels instead.
      • VirtualBox - this works in the same way as VMware Fusion and Parallels Desktop. Unlike those it is free of charge. Ostensible it is ‘owned’ by Oracle. It works but at least with regards to running virtual copies of macOS is still vastly inferior to VMware Fusion and Parallels Desktop. (You get what you pay for.)

      Last time I checked Apple’s terms you could do the following.

      • Run a virtualised copy of macOS on a genuine Apple made Mac for the purposes of doing software development
      • Run a virtualised copy of macOS on a genuine Apple made Mac for the purposes of testing
      • Run a virtualised copy of macOS on a genuine Apple made Mac for the purposes of being a server
      • Run a virtualised copy of macOS on a genuine Apple made Mac for personal non-commercial use

      No. Apple spells this out very clearly in the License Agreement for macOS. Must be installed on Apple branded hardware.

      They switched to ARM in 2020, so unless their legal position changed around ARM, I’d guess that they’re probably still relying on the EULA restrictions. That being said, EULAs have also been thrown out for various reasons, so…shrugs

      goes looking for the actual license text.

      Yeah, this is Tahoe’s EULA, the most-recent release:

      https://www.apple.com/legal/sla/docs/macOSTahoe.pdf

      Page 2 (of 895 pages):

      They allow only on Apple-branded hardware for individual purchases unless you buy from the Mac Store. For Mac Store purchases, they allow up to two virtual instances of MacOS to be executed on Apple-branded hardware that is also running the OS, and only under certain conditions (like for software development). And for volume purchase contracts, they say that the terms are whatever the purchaser negotiated. I’m assuming that there’s no chance that Apple is going to grant some “go use it as much as you want whenever you want to do CI tests or builds for open-source projects targeting MacOS” license.

      So for the general case, the EULA prohibits you from running MacOS wherever on non-Apple hardware.

      • setsubyou@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        15 hours ago

        Yeah, it’s a major pain at my work because our cloud doesn’t support Macs (like e.g. AWS would), so we run a server room with a bunch of Macs that we wouldn’t otherwise need.