Opened 6 years ago

Closed 6 years ago

Last modified 6 years ago

#56724 closed defect (fixed)

webkit2-gtk @2.20.3+quartz fails to build on OS X 10.11

Reported by: EdHarry Owned by: jeremyhu (Jeremy Huddleston Sequoia)
Priority: Normal Milestone:
Component: ports Version: 2.5.2
Keywords: elcapitan Cc: dbevans (David B. Evans), yan12125 (Chih-Hsuan Yen)
Port: webkit2-gtk

Description

Errors in compiling MediaPlayerPrivateGStreamerBase.cpp

Attachments (1)

main.log.zip (278.6 KB) - added by EdHarry 6 years ago.

Download all attachments as: .zip

Change History (7)

Changed 6 years ago by EdHarry

Attachment: main.log.zip added

comment:1 Changed 6 years ago by yan12125 (Chih-Hsuan Yen)

Cc: yan12125 added

comment:2 Changed 6 years ago by jmroot (Joshua Root)

Cc: dbevans added; jeremyhu@… devans@… removed
Owner: set to jeremyhu
Status: newassigned

comment:3 Changed 6 years ago by kencu (Ken)

So the trick with webkit2-gtk is that it is very actively developed, and tends to use the latest features on macOS.

There are, thankfully, lots of toggle switches to turn things off, at least for a while. Over time these toggle switches tend to be deleted as features are more-or-less defaulted as the floor.

It would be most effective to start with webkit2-gtk +quartz on 10.13, see if that builds, and then work backwards.

It is highly likely that the +quartz variant won't build back as far as the +x11 variant, however, due to newer macOS SDK requirements.

comment:4 Changed 6 years ago by kencu (Ken)

+quartz build fails on 10.13 as well:

/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:232:5: error: use of undeclared identifier 'TextureMapperGL'
    TextureMapperGL::Flags m_flags;
    ^
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:206:67: error: use of undeclared identifier 'TextureMapperGL'
        m_flags = flags | (GST_VIDEO_INFO_HAS_ALPHA(&videoInfo) ? TextureMapperGL::ShouldBlend : 0) | TEXTURE_MAPPER_COLOR_CONVERT_FLAG;
                                                                  ^
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:206:103: error: use of undeclared identifier 'TextureMapperGL'
        m_flags = flags | (GST_VIDEO_INFO_HAS_ALPHA(&videoInfo) ? TextureMapperGL::ShouldBlend : 0) | TEXTURE_MAPPER_COLOR_CONVERT_FLAG;
                                                                                                      ^
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:60:43: note: expanded from macro 'TEXTURE_MAPPER_COLOR_CONVERT_FLAG'
#define TEXTURE_MAPPER_COLOR_CONVERT_FLAG TextureMapperGL::ShouldConvertTextureBGRAToRGBA
                                          ^
/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:498:46: error: no member named 'sharingGLContext' in 'WebCore::PlatformDisplay'
    GLContext* webkitContext = sharedDisplay.sharingGLContext();

Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:5 Changed 6 years ago by kencu (Ken)

exposing this in the Portfile

configure.args-append -DUSE_GSTREAMER_GL=OFF

does allow webkit2-gtk +quartz to build through to completion on 10.13 and I suspect will also work for the other builds. I'm not certain if there is a more elegant mechanism to accomplish the build, but for now that will work. Unless something more narrow shows up, we can just have that set for all the +quartz builds.

Something like the following should do it:

if {[variant_isset quartz]} {
    configure.args-append -DUSE_GSTREAMER_GL=OFF
}

I would like to have a somewhat better understanding of exactly why this is needed. The webkit2-gtk code base is quite detailed and extensive.

Last edited 6 years ago by kencu (Ken) (previous) (diff)

comment:6 Changed 6 years ago by Ken <21211439+kencu@…>

Resolution: fixed
Status: assignedclosed

In 19599a3ddd6b9f788fe2efa66b5cb13c2a6642db/macports-ports (master):

webkit2-gtk: fix +quartz variant

closes: #56724

Note: See TracTickets for help on using tickets.