Opened 6 years ago

Closed 4 years ago

#56809 closed defect (fixed)

webkit2-gtk +gtk2 +x11 won't build; fatal error: 'gst/gl/x11/gstgldisplay_x11.h' file not found

Reported by: posita (Matt Bogosian) Owned by: dbevans (David B. Evans)
Priority: Normal Milestone:
Component: ports Version: 2.5.2
Keywords: Cc: Ionic (Mihai Moldovan), hapaguy (Brian Kurt Fujikawa), yan12125 (Chih-Hsuan Yen)
Port: webkit2-gtk

Description

I don't think this has been filed yet. I'm trying to build gnucash and it's failing on webkit2-gtk. I can't find the missing file anywhere in any of the gstreamer packages, but I've been known to miss things. main.log attached. Here's the relevant part:

…
:info:build /{{PREFIX}}/var/macports/build/_{{PREFIX}}_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_www_webkit2-gtk/webkit2-gtk/work/webkitgtk-2.20.3/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:92:10: fatal error: 'gst/gl/x11/gstgldisplay_x11.h' file not found
:info:build #include <gst/gl/x11/gstgldisplay_x11.h>
:info:build          ^
:info:build 1 error generated.
…

My install commands:

port install gdk-pixbuf2 +x11
port unsetrequested gdk-pixbuf2
port install gnucash

Attachments (1)

main.log.bz2 (92.0 KB) - added by posita (Matt Bogosian) 6 years ago.
main.log

Download all attachments as: .zip

Change History (15)

Changed 6 years ago by posita (Matt Bogosian)

Attachment: main.log.bz2 added

main.log

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

there have been a lot of changes in the gstreamer* ports lately...perhaps that has changed something with the build. I'll see if it still builds on 10.12 for me.

what's with all the {{PREFIX}} stuff?

comment:2 in reply to:  1 Changed 6 years ago by posita (Matt Bogosian)

Replying to kencu:

what's with all the {{PREFIX}} stuff?

I install into a non-standard prefix (e.g., /Users/foo/macports/… from ./configure --prefix="${HOME}/macports" …), but filter that out (via sed -E -e 's%Users.foo.macports%{{PREFIX}}%g') on my main.log submissions.

Apologies for any confusion.

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

So I got the same error when I tried to install webkit2-gtk. Looking into the gstreamer* ports shows an upgrade error in one of them, gtreamer1-gst-plugins-base (notice +x11 is upgraded somehow to +cocoa-x11:

$ port -v installed | grep gstream
  gstreamer1 @1.12.3_0 platform='darwin 16' archs='x86_64' date='2017-11-10T23:27:59-0800'
  gstreamer1 @1.14.1_0 (active) platform='darwin 16' archs='x86_64' date='2018-07-13T17:05:31-0700'
  gstreamer1-gst-plugins-bad @1.12.3_1 platform='darwin 16' archs='x86_64' date='2017-11-10T23:53:41-0800'
  gstreamer1-gst-plugins-bad @1.14.1_1 (active) platform='darwin 16' archs='x86_64' date='2018-07-13T17:27:29-0700'
  gstreamer1-gst-plugins-base @1.12.3_0+ogg+x11 platform='darwin 16' archs='x86_64' date='2017-11-10T23:40:37-0800'
  gstreamer1-gst-plugins-base @1.14.1_5+cocoa+ogg-x11 (active) platform='darwin 16' archs='x86_64' date='2018-07-13T17:06:15-0700'
  gstreamer1-gst-plugins-good @1.12.3_0+pulseaudio platform='darwin 16' archs='x86_64' date='2017-11-10T23:54:03-0800'
  gstreamer1-gst-plugins-good @1.14.1_1+pulseaudio+x11 (active) platform='darwin 16' archs='x86_64' date='2018-07-13T17:27:42-0700'

fixing that up

$ port -v installed gstreamer1-gst-plugins-base
The following ports are currently installed:
  gstreamer1-gst-plugins-base @1.12.3_0+ogg+x11 platform='darwin 16' archs='x86_64' date='2017-11-10T23:40:37-0800'
  gstreamer1-gst-plugins-base @1.14.1_5+ogg+x11-cocoa (active) platform='darwin 16' archs='x86_64' date='2018-07-13T18:08:44-0700'

brings back the missing header:

x ./opt/local/include/gstreamer-1.0/gst/gl/x11/
x ./opt/local/include/gstreamer-1.0/gst/gl/x11/gstgldisplay_x11.h

and all is well.

So the error is in the gstreamer1-gst-plugins-base upgrade, it appears.

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

Cc: jeremyhu dbevans removed
Port: gstreamer1-gst-plugins-base added; webkit2-gtk removed
Summary: webkit2-gtk +gtk2 +x11 won't build; fatal error: 'gst/gl/x11/gstgldisplay_x11.h' file not foundgstreamer1-gst-plugins-base upgrade error: +ogg+x11 upgrades to +cocoa+ogg-x11

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

this code does not seem to recognize that the previous installation was installed with +x11

# base has variant_set, but no variant_unset, so emulate it.
global variations
# Prefer x11 variant, only enable cocoa by default if supported.
# We disable the other conflicting variant explicitly for a smooth upgrade path.
if {${os.major} >= 13 && ![variant_isset universal] && ![variant_isset x11] && ${build_arch} eq "x86_64"} {
    default_variants +cocoa

    default_variants -x11
    set variations(x11) -
} else {
    default_variants +x11

    default_variants -cocoa
    set variations(cocoa) -
}

but I suppose that's not all. webkit2-gtk is probably now going to specifically have to require that the gstreamer ports are installed with +x11.

comment:6 Changed 6 years ago by posita (Matt Bogosian)

It looks like this is messed up too:

port install gstreamer1-gst-plugins-base +x11 gstreamer1-gst-plugins-bad

gstreamer1-gst-plugins-bad won't build against gstreamer1-gst-plugins-base+x11 (compile time error). I can post more details here if helpful, but just run the above and you'll likely see what I mean.

Version 1, edited 6 years ago by posita (Matt Bogosian) (previous) (next) (diff)

comment:7 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Cc: Ionic added

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

You know, I thought that was an upgrade error in gstreamer1...base, but I had best go back and check a few times to be 100% certain of that. It's possible I had it deactivated or something, and just installed webkit2-gtk which pulled in the wrong variant due to the defaults....

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

I tried this upgrade again this morning, rolling back to an older version of gstreamer1-gst-plugins-base+ogg+x11, and then letting the upgrade take care of itself. It worked correctly:

$ port -v installed gstreamer1-gst-plugins-base
The following ports are currently installed:
  gstreamer1-gst-plugins-base @1.14.1_0+ogg+x11 platform='darwin 17' archs='x86_64' date='2018-06-22T19:36:59-0700'
  gstreamer1-gst-plugins-base @1.14.1_5+ogg+x11-cocoa (active) platform='darwin 17' archs='x86_64' date='2018-07-14T08:29:55-0700'

So my initial impression of a faulty upgrade was incorrect. I must have deactivated gstreamer1-gst-plugins-base above at some time, and then when I asked for an install of webkit2-gtk it pulled in a fresh copy of gstreamer1-gst-plugins-base.

However, as gstreamer1-gst-plugins-base now defaults to +cocoa+ogg on newer systems, it is not the right version to build webkit2-gtk any longer, and the build fails.

If I'm reading this correctly, the default install of gstreamer1-gst-plugins-base has changed from +x11 to +cocoa on these newer systems and so ports that assumed the +x11 install will have to be adjusted to force it now (or the default can be changed back to +x11 if that is the more sensible thing to do, depending on how many ports are affected).

I think there is another ticket 56781 somewhere with the gstreamer1-gst-plugins-bad issue you mentioned.

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

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

Port: webkit2-gtk added; gstreamer1-gst-plugins-base removed
Summary: gstreamer1-gst-plugins-base upgrade error: +ogg+x11 upgrades to +cocoa+ogg-x11webkit2-gtk +gtk2 +x11 won't build; fatal error: 'gst/gl/x11/gstgldisplay_x11.h' file not found

my apologies for getting this wrong for a bit -- have restore the original error message.

comment:11 Changed 6 years ago by hapaguy (Brian Kurt Fujikawa)

Cc: hapaguy added

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

Cc: yan12125 added

comment:13 Changed 5 years ago by mf2k (Frank Schima)

Owner: set to dbevans
Status: newassigned

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

Resolution: fixed
Status: assignedclosed

i believe this is fixed by the update to 2.26.1; please reopen if I am mistaken.

Note: See TracTickets for help on using tickets.