| |
Compyx
Registered: Jan 2005 Posts: 631 |
Last call for VICE MacOS devs
For the last time I'll be asking if anyone with any MacOS knowledge can step up and help with VICE development.
Right now the whole MacOS mess is in danger of being completely ignored from now on, or even deleted.
What we require are (obviously) devs with knowledge of MacOS; knowledge of either SDL2 or Gtk3 is nice, but not required, we can help with that.
Basically, my VICE mailing list post says it all:
***
Hello fellow devs, and hopefully people who know something about MacOS,
After constantly running into horseshit when it comes to Gtk3 on MacOS (and MacOS in general), I'm once again asking for people with knowledge of MacOS (ie not me) to step up and help out with the Gtk3 MacOS port.
There are a lot of issues to fix with Gtk3 on MacOS, and my knowledge is very lacking when it comes to MacOS. So as it stands now, Gtk3 on MacOS is stillborn and will remain so. I'm already working on Gtk3 on Linux and Windows (another system I despise and which we also don't have any active devs for), so I'm personally done with MacOS.
So in short: unless we get some devs who actually want to put in some work (complaining on IRC about how shitty this or that is, and then doing nothing about it, doesn't count), MacOS users can use SDL2 and like it, though apparently make bindist for MacOS SDL doesn't work either :)
Most likely having completely wasted my time and bandwidth, sincerely,
Compyx
*** |
|
| |
ChristopherJam
Registered: Aug 2004 Posts: 1382 |
I've already responded over on #vice-dev, but yes, will see what I can do. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Just to be clear even though the text says it all. This is a gtk3 problem, not VICE. So be ready to dig into horse shit of layers. |
| |
ChristopherJam
Registered: Aug 2004 Posts: 1382 |
Yes, I'm well aware of that :-/
Still, I'd quite like to use gtk3 for a few other projects myself, so it'd be nice to get to the bottom of whatever's fucking up. |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Thanks for the replies. I know you guys already spent some time on the VICE MacOS stuff.
A lot of issues are indeed Gtk3 related, or rather Gtk3-on-Mac related. But without people with some actual Mac knowledge we won't be able to track/fix the issues properly.
My frustrations with my lack of knowledge of MacOS (and it's weird UI) led to a somewhat negative post.
I do wish to have a proper UI on MacOS, just like on Windows and Linux (and even *BSD). So any help would be appreciated. Do keep in mind that although we always appreciate anyone helping with even a single patch, we really need people that are willing to invest some time to also add code/fix bugs in the future, to keep the MacOS UI up-to-date and running properly. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: Yes, I'm well aware of that :-/
Still, I'd quite like to use gtk3 for a few other projects myself, so it'd be nice to get to the bottom of whatever's fucking up.
The best, but of course hardest approach, would be to actually implement GLSurface for Gtk3 on mac os, then VICE could use the same render strategy for all platforms. But it seems far away to have that kind of support in Gtk3 (on macos) unfortunatly. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11149 |
right now the rendering isnt even the biggest problem. that is "just" slow - but at least it works :) |
| |
Mirage
Registered: Jan 2003 Posts: 113 |
I'm curious, is Gtk3 a GL abstraction layer that's going to keep on working? As far as I know Apple are trying their best to move osX over to Metal/2 completely?
Like I said, I'm just curious. If the answer is too long or noone replies I'll google it myself. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: I'm curious, is Gtk3 a GL abstraction layer that's going to keep on working? As far as I know Apple are trying their best to move osX over to Metal/2 completely?
Like I said, I'm just curious. If the answer is too long or noone replies I'll google it myself.
Gtk3 has nothing to do with GL per se. GTK is a UI-framework including toolkit that is platform independent and handles input, widgets, timers and all sorts of thing you need when creating desktop applications.
It's an extremely well chosen library to use to minimise the work of maintaining several UIs and instead just focus on one, that runs on all major targets. Imo it was either GTK3 or QT that were viable. VICE team chose GTK3.
Gtk3 unfortunately is a bit so so on mac OS and really needs a helping hand. |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
Gtk is indeed the best choice for VICE, since VICE is written in C (ignoring resid) and most of the devs either don't know C++ well enough or plain dislike it.
Personally, if VICE had been a C++ project, I would have gone for Qt, I've used it lot from Python. If there's any codebase that can actually use OOP, it is UI code. Gtk is also very much OOP-ish, but actually inheriting from any Gtk "class" is an unholy mess.
So my code uses composition and a whole bunch of "methods" and "properties" implemented in C to provide some useful "classes" to build the UI on top of.
Still, using Gtk isn't always smooth, it gets progressively worse from Linux/BSD to Windows to MacOs :) |
| |
oziphantom
Registered: Oct 2014 Posts: 480 |
Yeah OpenGL is now flagged as depreciated on macOS/iOS/tvOS/watchOS so at some point OpenGL will just fail to init and programs will just crash. |
| |
Mirage
Registered: Jan 2003 Posts: 113 |
Woops, sorry - I know gtk is a UI toolkit, just didn't know the connection with GL, if any.
Just thought it was curious to ask for a GL implementation when GL is deprecated and going to be removed.
Maybe CoreGL is still going to be supported on macOS, which is what I was uncertain of? |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: right now the rendering isnt even the biggest problem. that is "just" slow - but at least it works :)
I just checked the bug tracker and the bugs related to Mac OS X were few actually. What are the major problems in your opinion other than sluggish rendering and non-deterministic build system? |
| |
chatGPZ
Registered: Dec 2001 Posts: 11149 |
for example the file-open dialog just crashes :) and indeed, the build system. and the binary packaging. etc
(no bugs reported? LOOOOOOOL. yeah that means a lot. especially for macOS, where we have all those people testing things =D)
regarding GL - there will be wrappers that map GL to metal, i am pretty sure. without them macOS will just fade away, or at least will become largely irrelevant for everyone developing software that isnt macOS exclusive. (you already noted autodesk pulled the trigger, i guess. others will follow) |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: for example the file-open dialog just crashes :) and indeed, the build system. and the binary packaging. etc
(no bugs reported? LOOOOOOOL. yeah that means a lot. especially for macOS, where we have all those people testing things =D)
regarding GL - there will be wrappers that map GL to metal, i am pretty sure. without them macOS will just fade away, or at least will become largely irrelevant for everyone developing software that isnt macOS exclusive. (you already noted autodesk pulled the trigger, i guess. others will follow)
Right ok. Thanks for the insights. Regarding GL you’re absolutly right and bothing to worry about (and as you said the slowness today in not even a show stopper) |
| |
oziphantom
Registered: Oct 2014 Posts: 480 |
when they move to the ARM based Macs will be the point they did most of the old stuff and kill most of the translation layers etc. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11149 |
lol, wont happen in the near future :) |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: when they move to the ARM based Macs will be the point they did most of the old stuff and kill most of the translation layers etc.
Stop derailing the thread plz |
| |
Frantic
Registered: Mar 2003 Posts: 1631 |
I don't have the time required to participate in actual coding, and I don't really have much knowledge about macOS coding in general, but since I am a Mac owner I could possibly help with some minor testing every now and then. |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
We can also use testers, definitely.
Unfortunately right now the bindist script is at a point where it's still incomplete, a few things such as Gtk3 themes/icons aren't copied properly, nor is the vice.gresource file copied anywhere, leading to failure to load logos, icons and custom fonts. And also causing things using/based on GtkFileChooser to fail due to missing schema files, ie: Attach Disk will fail :) |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: We can also use testers, definitely.
Unfortunately right now the bindist script is at a point where it's still incomplete, a few things such as Gtk3 themes/icons aren't copied properly, nor is the vice.gresource file copied anywhere, leading to failure to load logos, icons and custom fonts. And also causing things using/based on GtkFileChooser to fail due to missing schema files, ie: Attach Disk will fail :)
First of all, as I've said before, I'll take a look in creating a stable build environment. Right now I'm looking into vagrant and setting up a virtual mac os that contains a clear build system with gtk3+ build from scratch etc.
I had this up and running on my work computer but then after tainting it with "something" nothing builds anymore. So it's critical to get this up and running first before fixing the rest.
The bindist script is just a matter of putting some hours into it. I can't image it will be hard to get the correct files to be copied to their respective places. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11149 |
i think you will learn that its quite a hazzle actually =P |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: i think you will learn that its quite a hazzle actually =P
:D |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
I have now messed with Vagrant + VirtualBox and I'm convinced this is the way forward to create a easily replicatable build environment for VICE on MacOS.
I'll try to create my own "box" and upload it to Vargant, then it will be a simple manner of a few commands to get an environment up and running.
But then again, shit usually hits the fan... :/ |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
So we now have VM set up by building Gtk/Glib etc from source using jhbuild, a Vagrant thing and people using macports?
This cannot go wrong at all. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: So we now have VM set up by building Gtk/Glib etc from source using jhbuild, a Vagrant thing and people using macports?
This cannot go wrong at all.
Well my experience building gtk3 on my host machine is that it’s extremly sensitive to the environment. So having it contained is a must if I want to proceed. A simple chroot-env would ofc suffice but setting that up takes way longer. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: So we now have VM set up by building Gtk/Glib etc from source using jhbuild, a Vagrant thing and people using macports?
This cannot go wrong at all.
Also GTK-folks are recommending people to uninstall every trace of macports before building GTK. Another reason to have this build-environment contained. Yes, it sucks, it sucks big time, but I really don't see many other ways to do it. Do you have any suggestions and insights? |
| |
Compyx
Registered: Jan 2005 Posts: 631 |
I don't. If the Gtk devs say you need to avoid macports and build Gtk3/GLib yourself, they might be right. Thought sometimes info I get from them seems to contradict other info I get from them. But that's Gtk3, works fine on their (and my dev) platform, a little flaky on other platforms.
Personally I just want to be able to test the Gtk3 UI on MacOS and perhaps even add some MacOS-specific stuff. Using some env vars I managed to get the Gtk3 UI to actually work on MacOS. Getting a proper bindist out is something I'll gladly leave to people with actual MacOS experience. |
| |
JackAsser
Registered: Jun 2002 Posts: 1995 |
Quote: I don't. If the Gtk devs say you need to avoid macports and build Gtk3/GLib yourself, they might be right. Thought sometimes info I get from them seems to contradict other info I get from them. But that's Gtk3, works fine on their (and my dev) platform, a little flaky on other platforms.
Personally I just want to be able to test the Gtk3 UI on MacOS and perhaps even add some MacOS-specific stuff. Using some env vars I managed to get the Gtk3 UI to actually work on MacOS. Getting a proper bindist out is something I'll gladly leave to people with actual MacOS experience.
I’ll do my best. I managed do get the GTk UI up an running before (with the bindist faults mentioned). This ended up in a crippled build env for me and now I can’t even build GTK3 anylonger. Hence this new approach with a separate environment. |
| |
Raistlin
Registered: Mar 2007 Posts: 575 |
<offtopic> Also these UI problems remind me why Epic decided to write their own UI, Slate, for Unreal Engine 4 :-) ... after years of dealing with shit from wxWidgets and the 3-4 other UI's that ended up in Unreal Engine 3! </offtopic> |