-
-
Notifications
You must be signed in to change notification settings - Fork 12.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
emacs migrated to cask #3330
emacs migrated to cask #3330
Conversation
Crossposting myself here: #3333 (comment) |
I think in this case we could consider removing X11 and/or Cocoa options in favour of the Cask for them as we still build a CLI by default (I believe?) |
To differentiate these we could consider renaming formulae like this to |
Again I find this unacceptable. To reiterate (on Homebrew/homebrew-cask#15603 (comment)),
I think renaming the cask to |
Or |
I'm a pretty big 👎 on removing at least cocoa, to be honest. Care less about X11 because X11 is generally painful for everyone involved. I really want to avoid the situation where we make people We don't really handle that sort of divorce well. We remove the options, the next time people rebuild they get an unexpected vanilla CLI |
Sorry for not keeping my comments as one...
That of course comes with the (big) catch that people can no longer install devel and HEAD versions of Emacs.app, because cask only provides Also, expect friction as many people are probably used to Does |
I'm confused about "official build option" considering the GNU Emacs site links to both |
The GUI options are used by at least half of the install base, right? If we're dead-set on removing GUI apps from core, I'd rather the entire formula be migrated to the Emacs tap. |
Yes, we may need some DSL that expresses than an option has gone away and tells people what to do instead.
If the goal of bringing Homebrew and Cask closer together is to reduce or remove the number of .apps we have in Homebrew: isn't this somewhat inevitable? What would you propose instead? I think https://github.com/Homebrew/brew-evolution/pull/3 helps highlight some of the various problems we have with the status quo. |
Another option we could consider is migrating only users of particular options to the casks. I think the (my) long-goal is to have basically everything that builds or handles an app be a Cask rather than a Formula so we can remove all code like e.g. |
In case I wasn't clear, emacsforosx.com and However, downloading the source tarball from ftp.gnu.org and run |
I see 👍
I partially agree here but I do think there's a difference when we're running this for people and distributing binaries (not for this option, I'll admit). |
This tosses out our policy of not accepting cross-tap dependencies in
I think this is too black-and-white, at least right out of the gate. I think primarily CLI applications with an optional GUI element are reasonable, and I think it's reasonable to say Homebrew isn't the place for pure I think, generally speaking, expecting users to install both CLI & GUI separately is really crappy UX where we already offer a formula option to install that GUI. If you want to go down that route particularly I'd like to see us implement a mechanism where Although in this case that's not even a good example because the Cask |
Sorry, to be clear: let's try and figure out what perfect looks like and then work our way back and figure out how to get there.
If the existing GUI doesn't provide some sort of CLI: I'd be surprised if the same users are using both. |
To be clear on my comments though: more contentious formulae like this will be the last to be migrated. I'm in no rush, here. |
Ah, right. |
I think it's fine to bar .app/GUI options from ever being the default in core, but categorically ruling out non-default .app/GUI options seems like a rather obvious mistake. |
That would be acceptable if Cask gets a build-from-source/build-bottle feature, which doesn't seem insane to me if there's truly going to be more integration. |
Another thought about
EDIT: Scrap this, it doesn't work for |
You should be aware that another one of the Laws of Robotics is that we're trying to kill off as many caveats as possible, but that could arguably be treated as one of the "valid" uses. I think that leads naturally to being replaced with an automated version of the same thing, but that was already proposed and rejected in https://github.com/Homebrew/brew-evolution/pull/3, so I'm really not sure where that leaves us logically other than launching apps from the Cellar, which I'm fairly sure no one will be OK with. |
The resolution of Homebrew/brew-evolution#3 was
(Parenthesized part by me.) And out of all these /^\w+ migrated to cask$/ PRs, only the Emacs thread has (rightfully) generated this much attention, so I think it's fair to not replace with an automated version (hard to do satisfactorily anyway) and leave a caveat for this special case. |
@zmwangx I think for the sake of fairness we might have to include macvim too :D |
I suspect it's quite likely that if we bar Before it was CLI only executing a vanilla Ultimately if we shoot down |
@ilovezfs Well, vim is going nowhere, so I don't think the Church of Emacs owe the Cult of vi anything here... But free feel to appeal #3337, I'm always happy to see people's wished granted, even if people refer to vi users 😃
Ah, I forgot that. Yes, that's quite annoying. |
@zmwangx The reason that it's probably fine that MacVim has been moved is that the upstream build has nearly every option enabled. Is there no analogue for emacs that isn't awful? |
Not that I know of. emacsforosx.com (built from https://github.com/caldwell/build-emacs) is sort of semi-official, but it doesn't come close to having every option enabled (caldwell/build-emacs#1 might be the reason; see also caldwell/build-emacs#25 and caldwell/build-emacs#37). I don't know any other trusted binary distribution. There are probably Emacs experts around here who can tell you more. |
I know it can be any target volume (with caveats of course), but I didn't know
But you just violated the "relocatable" principle 😉 And emacsforosx.com is supposed to be a "To install, drag this icon (to anywhere)..." app. |
Using the user directory has to specifically be enabled in the plist file embedded in the pkg. You can't just do it with anything. As for relocatibility, I believe that can work with upgrades and delta upgrades if properly configured with rpath, etc. and relocatibility is toggled on in the pkg plist. I've just not played around with that feature personally. I don't even think it would be totally crazy to hard code the paths for an app bundle that only works if located in /Applications or go a step further and have hard-coded internal paths pointing into /usr/local/Cellar assuming it worked well. From an ease of upgrade perspective I think being able to use Homebrew bottles including non-relocatable ones would be nice. It would be interesting to know how many of the full set of optional and recommended formula deps for emacs have relocatable bottles vs non-relocatable bottles. |
I believe from macOS 10.12 applications aren't actually going to live in |
I see.
Which session is it, security? (Now that you mention it, I realized I haven't watched the security session yet.) |
Yeah, "Gatekeeper Path Randomization". From 30:22 in this video. There's a blog post here. |
The video possibly raises more questions than it answers about this security feature (true to form from Apple) but "If the user explicitly moves the single app by itself, possibly to applications, this mechanism will be turned off" is the big line probably interesting to us. I hope by that they mean there doesn't have to be user involvement in physically moving the |
While this GPR is interesting and confusing, I doubt it will affect any of our command line workflows. Gatekeeper relies on As an example, I just tried to unzip And just for fun, I also tarred up EDIT. I'll add that the experiments were done on 10.11.6. |
Potentially worth tying into this discussion is the Cask discussion on setting Gatekeeper on downloads to close a potential security hole: Homebrew/homebrew-cask#22388
I've got a 10.12 VM. I'll try duplicating your experiments later there, but I agree with your summary that if nothing changes with us or Cask it should be alright, at least for now; Apple could well expand or pull back on the changes before 10.12 goes stable. |
I find manually enabling Gatekeeper (which from my experience isn't so helpful to begin with) rather paranoid, but I'll read the Cask discussion later to see where people are coming from. I removed my 10.12 VM yesterday to save some ~30G of space so I can't test anything now... Okay, I think we're way off-topic now so I'll stop right here. |
I sympathise with the Cask team, although they haven't set out their argument as far as I can see, in that users are likely to invest a certain amount of trust in them & may presume they offer no less protection* than Apple, and consequently may adopt less cautious behaviour assuming that protection is there. It's not entirely fair, but I wouldn't be surprised if that's how they've been left feeling at times. The weight of knowing so many people trust you isn't something that is particularly easy to carry. *Protection is subjective. |
Let's just collectively agree that whenever a Homebrew user uses Cask in a way that requires |
Since no one has mentioned it, I'd like to point out that Believe me, I wouldn't build the gui if it wasn't worth it, I have to go to great lengths to make sure I don't accidentally launch the gui by mistake. But the improvements that come with it aren't something I'm willing to give up. Also to those whinging about quitting Emacs: |
That alone sounds like a sufficient reason to make it the default. |
If GUI should not be default, it sounds like we should make the |
@ilovezfs What's |
Yes,
We could teach the wrapper script to accept |
Both sound wrong to me, because I don't think we are in the position to offer additional binaries or otherwise non-existent options. Also, the situation is a tad more complicated for Overall I don't think defaulting |
I'll leave that between you and @CamJN, then ;) |
If we leave GUIs in here: we're defaulting to non-GUI options where possible. |
It seems like this is one where we're going to end up with both the formula and the cask in perpetuity, which may be fine, I guess. |
I think not defaulting to a GUI is sane, personally. I think we should keep the GUI option for
Oh, how intuitive 😈 😉 |
@DomT4 do you agree that the Cask should continue to exist as well in this case? |
Cask does provide a better macOS app experience for people who don't need the optional deps (ignoring the upgrade issue, which isn't much of a problem for stable users since the stable channel is seldom updated, just like how Apple updates Macs these days). |
I don't have major beef with the Cask continuing to live. I think it & our |
Passing on this for now as per discussion. Thanks again for opening @AnastasiaSulyagina. Have opened a PR with various tweaks discussed here in #3531. |
If anyone is missing the X11 formula, here it is. |
Deleting emacs from homebrew-core as part of deduplication process . See context here.
Please note that this PR is created to continue case-by-case discussions from thread linked above and if decision is made not to remove the formula, PR will be closed.