Remix.run Logo
devkit1 9 hours ago

If I understand the issue correctly, it appears that this change primarily impacts casks on macOS. In fact it looks like it may only impact casks. Casks are used to install binary packaged software, often in the form of a dmg or pkg file on macOS. Most people I know are not installing too many casks, and most of the ones I've seen install signed binaries anyway. The important thing for me with this is that it doesnt appear to impact homebrew's ability to download, compile, and install open source software. And that is the main thing I use homebrew for. I believe that is true for most people too, but I fully expect to learn very quickly if there are a bunch of taps in use by people that distribute unsigned binary installers of software for macOS. :-)

pxc 8 hours ago | parent | next [-]

> Most people I know are not installing too many casks

Casks are the only things Homebrew does that some other package manager available on macOS doesn't reliably do better. Nix, Pkgsrc, MacPorts, and (and now Spack) all have better fundamental designs; sane, multi-user-friendly permissions; and enough isolation from the base system that they break neither each other nor manually-installed software.

I use Homebrew exclusively tucked away in isolated prefixes, only to install casks, and without ever putting any binaries it installs along the way on my PATH. I don't remember which programs it is, exactly, but I do use a few that are unsigned.

It also doesn't seem to me that the signing process is as vital in determining actual risk as the curation and moderation processes involved in maintaining "third-party" software distributions like Homebrew or Debian or whatever.

`--no-quarantine` in particular is one of the conveniences that makes Homebrew casks useful. If I have to give my consent anew for each app update, I might as well install the apps manually and live in the usual auto-update pop-up hell.

alwillis 7 hours ago | parent | next [-]

> Most people I know are not installing too many casks

I did a wipe and install of Tahoe like 2–3 weeks ago and used a Brewfile [1] I've had for years to install ~30 casks via Homebrew, including from the App Store, not to mention 50-60 formulas.

As of today, I have 44 casks.

[1]: https://docs.brew.sh/Brew-Bundle-and-Brewfile

fastily 2 hours ago | parent [-]

I do something similar. I bootstrap all my new installs with brew cask https://github.com/fastily/autobots/tree/master/macOS/setup

lilyball 7 hours ago | parent | prev | next [-]

I haven't used Homebrew in a long time, but if I ever did it would be in the way that you describe (so far I've always found reasonable alternatives for the software I want). What I'm wondering is if this is entirely to support unsigned casks, why does Homebrew not simply resign the software itself at install time with an adhoc signature as though it had just built it?

SOLAR_FIELDS 7 hours ago | parent | prev | next [-]

Yeah, my nix-darwin config is pretty nice and perfectly hermetic and reproducible, save for a now-growing list of casks in my brew.nix that looks like this:

> 1password # breaks in nix, must go in /Applications folder

> softwareB # not available in nixpkgs

> softwareC # available in nixpkgs, but because nixpkgs maintainers are hardline purists it takes 15 minutes to compile from source and ain't nobody got time for that

> softwareD # ostensibly available in nixpkgs, but the package is completely broken (more general case of 1password)

Why not wrap the binaries yourself in flake.nix you say? Well, sure, would love to, if it wasn't such a pain in the ass to do so for each one and keep them up to date.

viraptor 4 hours ago | parent | next [-]

> softwareC # available in nixpkgs, but because nixpkgs maintainers are hardline purists it takes 15 minutes to compile

What actually happened is that non free software may not be legal to distribute from nixpkgs caches, so you're on your own with building those. That's not really a purist approach.

eviks an hour ago | parent [-]

Why can't you distribute it from the developer's website?

pxc 5 hours ago | parent | prev [-]

Brew-Nix might be able to cover some of those gaps, but probably not all of them. But almost certainly SoftwareC, at least!

https://github.com/BatteredBunny/brew-nix

zbentley 7 hours ago | parent | prev [-]

> If I have to give my consent anew for each app update, I might as well install the apps manually and live in the usual auto-update pop-up hell.

Really? That's a whole lot of UI actions/clicks (and a variable number per .app) versus ... I think two always-the-same UI actions at most. Not like, a huge hassle either way, but I have trouble seeing how Homebrew's not still the winner here even without quarantine bypassing.

saghm 8 hours ago | parent | prev | next [-]

> The important thing for me with this is that it doesnt appear to impact homebrew's ability to download, compile, and install open source software. And that is the main thing I use homebrew for. I believe that is true for most people too

FWIW I don't think brew has been compiling on installation even open source things by default for a while now[1]:

> Homebrew provides pre-built binary packages for many formulae. These are referred to as bottles and are available at https://github.com/Homebrew/homebrew-core/packages.

The link shows close to 300 pages of precompiled packages available, and that section ends with the sentence "We aim to bottle everything".

I don't think this necessarily changes anything you've stated with regards to the flag being removed as described in the Github issue linked by OP, but I think it's still worth noting because this is markedly different than how homebrew distributed things in the past, so others might not be aware of this change either.

[1]: I assume the heading title for this docs section predates this change, but the docs section I'm referencing is https://docs.brew.sh/FAQ#why-do-you-compile-everything

frizlab 8 hours ago | parent | next [-]

> FWIW I don't think brew has been compiling on installation even open source things by default for a while now

For built in formulas, no. For custom ones very much more so. I know I have a bunch I’ll never have bottles for and would thus always be compiled if used.

rzzzt 6 hours ago | parent [-]

Also if you have an older version of macOS. It will try to take the compiled route for packages but also prints a stern warning that your setup is unsupported.

dylan604 7 hours ago | parent | prev [-]

You can tell this in how fast things "pour". There's no way things are compiling from source that fast.

rezonant 7 hours ago | parent [-]

Sigh, I'm so over homebrew's hipster rubyist brewery analogy

dylan604 7 hours ago | parent [-]

[flagged]

shantara 7 hours ago | parent | prev | next [-]

Two popular apps mentioned in the earlier discussion in Homebrew repo are Librewolf and Freetube.

https://github.com/orgs/Homebrew/discussions/6334

theoldgreybeard 5 hours ago | parent [-]

I actually tried to install Librewolf today and it wouldn’t go because of gatekeeper. Ended up on Waterfox instead.

Would’ve preferred Librewolf because that’s what I run on my other desktop running Linux but what can you do…

dktalks 6 hours ago | parent | prev | next [-]

Not exactly, I have automated stuff which uses python and does rar and unrar and it's installed through brew, it is not a cask, but every time I do brew update, my code will fail to run because it was updated.

This is like buying a machine and not having the ability to do whatever you want with it.

Oh who are we kidding, that's what is happening anyways.

bloppe 6 hours ago | parent | prev | next [-]

This is a silly distinction. You can always include pre-built object files in your "source code" formula, then the build step is just linking it into an executable locally. That would bypass the quarantine attribute and effectively retain the ability to distribute pre-built binaries without gatekeeper getting involved.

Seems like only a matter of time before someone at Apple realizes this and takes the necessary measures to protect you from yourself.

CGamesPlay 6 hours ago | parent [-]

The linking step isn't even required. You can download any existing binary and codesign it yourself with your local developer certificate. You can even overwrite the existing signature.

I assume brew could even automate this, but are choosing not to for whatever reason.

guelo 8 hours ago | parent | prev [-]

casks are mostly for GUI or other apps that need special installation like setting up background services. I've seen it used for IT laptop provisioning to automate the installation of things like Chrome, Slack, Visual Studio, from the command line.

alwillis 7 hours ago | parent [-]

Casks save so much time compared to the normal way of installing Mac apps regardless of any background services.