Opened 3 years ago

Closed 2 years ago

#62752 closed request (fixed)

gtk4 should be packaged

Reported by: pmetzger (Perry E. Metzger) Owned by: mascguy (Christopher Nielsen)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: barracuda156
Port: gtk4

Description

gtk4 (both x11 and native) ought to be packaged

Change History (11)

comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: dbevans added
Port: gtk4 added

comment:2 Changed 3 years ago by mascguy (Christopher Nielsen)

Owner: set to mascguy
Status: newassigned

comment:3 Changed 3 years ago by mascguy (Christopher Nielsen)

Cc: dbevans removed

I've made some initial progress on this effort. Since upstream has switched to Meson and Ninja for newer projects, that may complicate things a bit. Though perhaps it may also simplify some things, as well. We'll see.

Regardless, I'm hoping to provide an initial release over the next month or two. Stay tuned!

comment:4 Changed 2 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: barracuda156 added

Has duplicate #65026.

comment:5 in reply to:  4 Changed 2 years ago by barracuda156

Replying to ryandesign:

Has duplicate #65026.

Thank you!

comment:6 Changed 2 years ago by pclayton (Phil Clayton)

What is the current status of the gtk4 port? Is there any ongoing work that can be tested?

comment:7 in reply to:  6 Changed 2 years ago by mascguy (Christopher Nielsen)

Replying to pclayton:

What is the current status of the gtk4 port? Is there any ongoing work that can be tested?

There is some early work on this - albeit, nowhere near working yet - on the following branch:

https://github.com/macports/macports-ports/compare/master...mascguy:mascguy-gtk4

It's still on my long-term to-do list, just need to carve out some time. Collaboration welcome though!

comment:8 Changed 2 years ago by kencu (Ken)

https://github.com/macports/macports-ports/pull/15800

works well as quartz. x11 needs some tweaks to mesa and libepoxy for EGL, and even with those, the performance doesn't really compare. Perhaps the x11 can be improved further.

comment:9 Changed 2 years ago by mascguy (Christopher Nielsen)

Ken has wrapped up his initial additions, and builds are successful for 10.12 and later. So that's a great first step!

We'll leave this open for now though, to track further short-term tweaks and issues.

comment:10 Changed 2 years ago by kencu (Ken)

gtk4 is building and working down to 10.12 (quartz only, as that is what upstream currently supports).

On 10.11 the AppKit hack worked, and the gtk4-demo seems to work OK.

On 10.10 and less, the AppKit hack is not working. Building instead against the MacOS10.13.sdk does work, 10.10 at least, but there is a segfault when running the application, likely to be some unhandled fallback code -- in pasteboard. So that avenue doesn't work out, but may be fixable.

There are a couple of errors in the AppKit hack I need to push the fixes for.

Then I think we might have taken this as far as it can go for the near term. We have achieved parity with upstream and other package managers, and gtk4 will work as planned and expected for MacOS systems 10.11 through current, when building as +quartz.

To fix quartz on < 10.11, or to fix x11, is going to take some further work. I would say, though, that the vast majority of users who want gtk4 from MacPorts will be on >= 10.11 and will want the quartz variant, so that covers off the major use case.

I think we can shortly default back to x11 (as per macports defaults), mark the x11 build as broken (which is will be for now at least), and install a message to redirect folks to the quartz build.

For the quartz build, we change to require glib2 +quartz, we set the fail level at < 10.11, and we are done until something happens to fix x11 or quartz on older systems someday.

Finally we revbump to clean everything up, and come back at some future date.

Version 0, edited 2 years ago by kencu (Ken) (next)

comment:11 Changed 2 years ago by mascguy (Christopher Nielsen)

Resolution: fixed
Status: assignedclosed

Ken has made great progress on this, enough so that this can be closed.

Note: See TracTickets for help on using tickets.