Fixing a broken formula #5563
Replies: 2 comments 2 replies
-
Looking forward to the pull request
https://docs.brew.sh/Acceptable-Formulae#we-dont-like-binary-formulae
It'll just update the URL, but then someone else can help fix it further. |
Beta Was this translation helpful? Give feedback.
-
@SMillerDev thanks, that's very clear and helpful. The usage of the term 'binary formula' here is a little fuzzy for this project. Many rubygems are interpreted ruby code with bindings to C code. For example, many of the gems enumerated in If it's deemed that this is actually a binary formula, to bring it into compliance with https://docs.brew.sh/Acceptable-Formulae#we-dont-like-binary-formulae would require quite a large effort, since every dependency with compiled code would have to be converted to a formula as well. This seems kind of silly since rubygems already handles fetching and installing for the entire universe of supported ruby platforms. It seems like this formula might be better suited to a cask, but I did a quick search through the cask repository and didn't see anything like it in there. This bullet on the Rejected Cask FAQ seems to suggest it might be rejected:
The binary does, in fact, have a UI, but it's a web-based UI. Does that count? The package is almost entirely interacted with through the web-based UI. In spirit, If this is an acceptable candidate for a cask, what's the process for moving the package from core to cask? |
Beta Was this translation helpful? Give feedback.
-
Output of
brew config
Output of
brew doctor
Description of issue
This version bump broke the
mailcatcher
formula back in June:Homebrew/homebrew-core#173471
An attempt was made to fix the issue by the maintainer of the mailcatcher project (@sj26), but the pull request wasn't quite finished and was automatically closed:
Homebrew/homebrew-core#174319
I'm interested in helping to get this PR back up and running, and getting this formula fixed.
I'm wondering about the approach being used in this formula. It's building the package from source, but the whole thing could be drastically simplified by just pulling the pre-built gem(s) from rubygems. That should correctly support all platforms, and eliminate the need to download and install all of these build-only dependencies. Is there a philosophical reason why it must be built from source when all of the dependencies are just pulled from rubygems, too?
The meat of the formula could be reduced to:
Also, this formula is on the autobump list. I don't quite grok what all is needed for "autobump" to work, but since it looks like homebrew wants all the gem dependencies to be explicitly declared I'm not sure how you autobump without regenerating the formula by walking the new dependency graph. Seems likely that more is needed than just updating the source tar url.
I primarily use homebrew for this package since it installs the gems into a private directory, and it creates a service to start/stop/keepalive the daemon.
Beta Was this translation helpful? Give feedback.
All reactions