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

Mac OS X port [$20] #92

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

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

This comment has been minimized.

Show comment
Hide comment
@esamek

esamek commented Jul 8, 2013

+1

@kokarn

This comment has been minimized.

Show comment
Hide comment
@kokarn

kokarn commented Jul 8, 2013

+1

@datiecher

This comment has been minimized.

Show comment
Hide comment
@datiecher

datiecher commented Jul 8, 2013

+1

@klappy

This comment has been minimized.

Show comment
Hide comment
@klappy

klappy commented Jul 8, 2013

+1

@inlanger

This comment has been minimized.

Show comment
Hide comment
@inlanger

inlanger commented Jul 8, 2013

+1 :)

@Igor-Khomich

This comment has been minimized.

Show comment
Hide comment

Igor-Khomich commented Jul 8, 2013

+1

@reugene

This comment has been minimized.

Show comment
Hide comment
@reugene

reugene commented Jul 8, 2013

+1

@jeremyharris

This comment has been minimized.

Show comment
Hide comment
@jeremyharris

jeremyharris Jul 8, 2013

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

jeremyharris commented Jul 8, 2013

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

This comment has been minimized.

Show comment
Hide comment
@p-e-w

p-e-w Jul 8, 2013

Owner

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... ;)

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

This comment has been minimized.

Show comment
Hide comment
@simonmd

simonmd commented Jul 8, 2013

+1

@tbergeron

This comment has been minimized.

Show comment
Hide comment
@tbergeron

tbergeron commented Jul 8, 2013

+1000

@Trevoke

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke Jul 9, 2013

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

Trevoke commented Jul 9, 2013

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

@Tyilo

This comment has been minimized.

Show comment
Hide comment
@Tyilo

Tyilo commented Jul 9, 2013

this ^

@orefalo

This comment has been minimized.

Show comment
Hide comment
@orefalo

orefalo commented Jul 9, 2013

+1

@Trevoke

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke 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.

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

This comment has been minimized.

Show comment
Hide comment
@p-e-w

p-e-w Jul 10, 2013

Owner

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 :(

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

This comment has been minimized.

Show comment
Hide comment
@keithlayne

keithlayne Jul 14, 2013

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.

keithlayne commented Jul 14, 2013

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

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke 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 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

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke 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.

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

This comment has been minimized.

Show comment
Hide comment
@keithlayne

keithlayne Jul 16, 2013

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 :)

keithlayne commented Jul 16, 2013

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

This comment has been minimized.

Show comment
Hide comment
@ctash

ctash commented Oct 8, 2013

+1

@aaronlifton

This comment has been minimized.

Show comment
Hide comment

aaronlifton commented Oct 18, 2013

+1

@brennebeck

This comment has been minimized.

Show comment
Hide comment
@brennebeck

brennebeck Oct 19, 2013

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

brennebeck commented Oct 19, 2013

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

@indolering

This comment has been minimized.

Show comment
Hide comment
@indolering

indolering Nov 10, 2013

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?

indolering commented Nov 10, 2013

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

This comment has been minimized.

Show comment
Hide comment
@p-e-w

p-e-w Nov 10, 2013

Owner

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.

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

This comment has been minimized.

Show comment
Hide comment
@indolering

indolering Nov 11, 2013

@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.

indolering commented Nov 11, 2013

@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

This comment has been minimized.

Show comment
Hide comment
@Globegitter

Globegitter Jun 25, 2014

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?

Globegitter commented Jun 25, 2014

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

This comment has been minimized.

Show comment
Hide comment
@keithlayne

keithlayne Jun 25, 2014

@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.

keithlayne commented Jun 25, 2014

@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

This comment has been minimized.

Show comment
Hide comment
@indolering

indolering Jun 25, 2014

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?

indolering commented Jun 25, 2014

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

This comment has been minimized.

Show comment
Hide comment
@Globegitter

Globegitter Jun 27, 2014

@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.

Globegitter commented Jun 27, 2014

@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

This comment has been minimized.

Show comment
Hide comment
@keithlayne

keithlayne Jun 27, 2014

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.

keithlayne commented Jun 27, 2014

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

@dodikk dodikk added bounty labels Jun 28, 2014

@p-e-w p-e-w removed the bounty label Jun 28, 2014

@Trevoke

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke 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.

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

This comment has been minimized.

Show comment
Hide comment
@petems

petems 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 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

This comment has been minimized.

Show comment
Hide comment
@petems

petems Jul 7, 2014

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

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

This comment has been minimized.

Show comment
Hide comment
@Trevoke

Trevoke Jul 8, 2014

Nice, thanks for the dedication :)

Trevoke commented Jul 8, 2014

Nice, thanks for the dedication :)

@cstrahan

This comment has been minimized.

Show comment
Hide comment
@cstrahan

cstrahan Jul 13, 2014

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.

cstrahan commented Jul 13, 2014

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

This comment has been minimized.

Show comment
Hide comment
@petems

petems 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! 👍

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