Mac OS X port [$20] #92

Open
dodikk opened this Issue Jul 8, 2013 · 37 comments

Projects

None yet
@dodikk
dodikk commented Jul 8, 2013
  1. Is it possible to build the project for Mac OS X ?
  2. Are there any instructions or binary downloads available?

There is a $20 open bounty on this issue. Add to the bounty at Bountysource.

@esamek
esamek commented Jul 8, 2013

+1

@kokarn
kokarn commented Jul 8, 2013

+1

@datiecher

+1

@klappy
klappy commented Jul 8, 2013

+1

@inlanger
inlanger commented Jul 8, 2013

+1 :)

@Igor-Khomich

+1

@reugene
reugene commented Jul 8, 2013

+1

@jeremyharris

I think the author knows this is a desired request. Just watch the thread for updates instead of adding to the +1 noise :)

@p-e-w
Owner
p-e-w commented Jul 8, 2013

I don't have a Mac myself, but if you buy me one, I might consider it :)

Joking aside though: I haven't considered that possibility at all yet, mainly because Mac OS is the only platform that has a modern terminal emulator already (iTerm2), albeit without the "semantic" part. Final Term is highly unstable still; I'll consider ports to other platforms once the dust settles and an initial release has been made (probably later this year).

If you want to have a shot at it yourself, feel free though... ;)

@simonmd
simonmd commented Jul 8, 2013

+1

@tbergeron

+1000

@Trevoke
Trevoke commented Jul 9, 2013

iTerm2 is really not nearly as awesome as finalterm seems to be.

@Tyilo
Tyilo commented Jul 9, 2013

this ^

@orefalo
orefalo commented Jul 9, 2013

+1

@Trevoke
Trevoke commented Jul 9, 2013

Alright -- Seriously, can we please stop the +1 and stick to constructive comments on the issue? I'd like to be able to keep watching this thread, but the spam is somewhat annoying.

Given the current requirements, unless someone takes it upon themselves to start building the required components on OSX and add them to Homebrew, this will not happen for a while. And I, for one, am much more interested in seeing a complete finalterm ported to OSX than I am in a half-assed finalterm that has to be maintained over multiple platforms.

@p-e-w
Owner
p-e-w commented Jul 10, 2013

I'd really love to keep this dangling, because it attracts so much hope and thus attention to the project, but I don't want people to hope in vain so I'll just be frank here:

I'm not familiar with Mac OS application development, don't own a Mac, and have probably a year's worth of planned features for Final Term that I want to implement first. I have a day job and write Final Term in my free time only, so the project proceeds at an uneven pace. Overall, a Mac OS port is unlikely to happen in the foreseeable future, unless of course someone else wants to try.

Trust me, I know how frustrating this can be! I'm in the same position regularly, when I see stuff like the GitHub client, iTerm2, TextMate, Brackets etc. that is only available for Mac and not for Linux :(

@keithlayne

The good news is that I can build and install finalterm on OS X. I just spent a few evenings getting to that point after coming across this thread. However, I can't run it yet, so I will need some help to finish this.

The best news IMO is that I did not have to alter a single line of the source to get this far. Hopefully, instead of a Mac port of finalterm, all we will need is a reliable build process. I'm using homebrew to do all this, and here's what I've done so far:

  1. Create a homebrew formula for mx and keybinder-3.0. These build and compile, and seem pretty straightforward, but they are definitely not tested by me. Any ideas on how to do so easily and reliably are welcome.
  2. Use gnulib to wrap the only portability problem I found -- valac creates a C file that includes pty.h, which doesn't exist on Mac. This would need to go in the repo. Gnulib is intimately tied to autotools, so I created an external project in cmake that will be built only on Mac, and installs the generated pty.h into an include directory in the build dir. I verified that this doesn't effect the Linux build at all.
  3. Just figured out what I think was the last thing keeping it from running--the schema was symlinked, and cmake reports 'Compiling GSettings schemas', but I just needed to actually do the compile step. I will add that to the homebrew formula I guess.

So, the status has changed since I started writing all this. Now it actually runs and opens a window. 2, actually. There's clearly some work to be done, but it's a start:

screen shot 2013-07-14 at 6 17 13 pm

More to come.

@Trevoke
Trevoke commented Jul 15, 2013

I think:

-- you can fork homebrew ( https://github.com/mxcl/homebrew/tree/master/Library/Formula ) and add the recipes, make a pull request.
-- you can fork this project to make a pull request for the gnulib portion of it.

And then we can all promise you a beer, and continue. It's awesome that you got this far, very nice!

@Trevoke
Trevoke commented Jul 16, 2013

@keithlayne Here is Homebrew's wiki entry on adding formulas: https://github.com/mxcl/homebrew/wiki/Formula-Cookbook

If you don't have time / don't want to try to submit them, I can take a crack at it.

@keithlayne

Getting these libs to build and install in homebrew is trivial. The problem is that I don't think they are properly configured, and we need some decent test programs for mx and keybinder to make sure they are actually working. Judging from what finalterm looks like after a homebrew install, I'm not too encouraged that I've built them right. I'm also on vacation with my family this week, so I don't have a lot of time right now to look into it. I may have time this evening to fork homebrew and at least give you guys access to what I've done so far.

A better solution (for homebrew) would be to get gnulib working properly and then integrated into the build so the finalterm source tree doesn't have to include all that cruft. There may be other packages out there that depend on patches to fix similar issues. A patch isn't really viable in this case because the offending code is part of the C generated from the Vala sources, and I think patching the cmake file to patch a generated source file in the middle of the build on Mac sounds plain crazy.

Another issue is how good an idea building finalterm with homebrew is to begin with. It created something tangible in this thread quickly, but I don't know that it's the right answer. The native Gtk-OSX stuff might be better for hacking. If the homebrew build actually worked (and it may yet) it would be a good means for Mac users to test, but unless I'm missing something, there's a lot of environment magic that happens while building a homebrew formula. Actually recreating that environment for hacking is at least a pain in the butt.

@Trevoke - thanks for the offer and enthusiasm. I think maybe when I fork we can all collaborate over the crappy stuff I wrote, and then someone can submit the pull requests upstream. However, they are not ready for prime time, and certainly don't meet the acceptance criteria at this point.

And to all you Gtk/mx/keybinder/Vala gurus, some simple tests/apps/whatever using these libs would be a great contribution to this effort. I'm also not all that confident in the gtk3, clutter, Vala tooling, etc. on Mac. I know pretty much nothing, and haven't had time to look into this stuff, but I'm kind of a badass, so I'm willing to give it a shot, time permitting :)

@ctash
ctash commented Oct 8, 2013

+1

@aaronlifton

+1

@brennebeck

@keithlayne were you able to revisit this after your vacation or progress any further in general?

@indolering

STOP with the +1's and status update requests: it generates spam for everyone!

If you want to express your support for an OS X port put your money where your mouth is and pledge some money to the bounty for this bug. I'm a poor college student who is making -$30K per year right now; if I can afford $10 you (software developer making $70K/year) can pledge $100!

@p-e-w could you delete all the +1 posts and add the bounty to the ticket?

@p-e-w
Owner
p-e-w commented Nov 10, 2013

While I certainly appreciate your support and enthusiasm, please note that the bounty was not started by me, nor do I endorse (or criticize) it in any way. I would like to ask you to explicitly mention that on the bounty page, especially since the project title contains my name.

@indolering

@p-e-w sorry, that whole site thing is auto-generated and there is no obvious way for me to alter anything. I don't think I can even withdraw my bounty. If you like, I can contact the site admins and request that they delete it...

Given how hostile Apple is to free software, I was irritated with all the +1 comments and a lack of commits. I figured this would channel that energy better and that it might entice @keithlayne to finish off the port.

@Globegitter

Seems like this issues has fallen asleep a bit. Just found out about finalterm recently and it looks really impressive, would love to see this happening on the mac.
@keithlayne Did you ever get around to put up that repo?
@Trevoke Did you ever get around to do anything on this?

@keithlayne

@Globegitter - I just pulled master from upstream and rebased my branch off of it (which really did nothing, my branch is I think disjoint from the rest of the code base). I don't have the time or interest to work on this right now. The little bit that I did however could serve as the starting point for some motivated person to get this done.

@indolering

A better solution (for homebrew) would be to get gnulib working properly and then integrated into the build so the finalterm source tree doesn't have to include all that cruft.
...
And to all you Gtk/mx/keybinder/Vala gurus, some simple tests/apps/whatever using these libs would be a great contribution to this effort.

@keithlayne – Maybe a better use of your time would be to create some tickets outlining what needs to be done?

@Globegitter

@keithlayne Thank you so much for that. Yeah if you could provide some tickets with what you think would still be missing that would really help for on of us to get started.

@keithlayne

Yeah, that's pretty much not going to happen.

The sum of my work was probably a few hours about a year ago. I came into it cold with no real knowledge of anything I was working with, and got it to build. I left some notes here and left my fork up for somebody to work off of, but I can't commit any more time to this.

Bottom line, if you read my comments above, I'm pretty sure you'll be more qualified than me at that point to put in some tickets or start some work. I'm completely useless on this topic right now, but I wish you all the best of luck with it.

@dodikk dodikk changed the title from Mac OS X port to Mac OS X port [$10] Jun 28, 2014
@p-e-w p-e-w removed the bounty label Jun 28, 2014
@Trevoke
Trevoke commented Jun 28, 2014

I got no work done on this whatsoever. Much like Keith, this has unfortunately been fairly far from my thoughts... And I started using emacs.

@petems
petems commented Jul 2, 2014

I'm going to give some of this stuff a shot, I've been working with some custom Homebrew formula's for some work stuff so I think I know enough to get into trouble 👍

Looking over @keithlayne's older posts, I think I have some rough tasks I can get written up as seperate issues/features and link them into this more epic task.

I'll get some stuff written up, no promises anytime super soon though! 😄

@petems
petems commented Jul 7, 2014

If anyone wants to help or see my progress, I made quick repo: https://github.com/petems/finalterm-OSX

@Trevoke
Trevoke commented Jul 8, 2014

Nice, thanks for the dedication :)

@cstrahan

I would suggest looking at the Nix package manager for getting Finalterm on Mac OS X (Nix is cross-platform, so the same package definitions would work across Linux, Mac, BSD, Mingw, etc). I've already packaged up a couple dependencies to get Finalterm on Nix, and I'm tracking my progress in #269.

@petems
petems commented Jul 29, 2014

@cstrahan Looks cool! I'd like to get finalterm building in brew, as it's the most popular package manager for OSX, but it's no picnic to do. I'lll give the NixOS package a go in the mean time! 👍

@p-e-w p-e-w changed the title from Mac OS X port [$10] to Mac OS X port [$20] Sep 29, 2014
@p-e-w p-e-w added the Bounty label Sep 29, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment