Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upIsolate UWP builds from external gstreamers #24343
Conversation
This new package contains a hacky gstreamer-webrtc-1.0.pc file so that we can still do self-contained builds without relying on external PKG_CONFIG_PATH.
highfive
commented
Oct 2, 2019
|
Heads up! This PR modifies the following files:
|
|
@paulrouget given that this is about fixing a "works on my machine" bug it would
be good if you could verify if this works on *your* machine as well.
…On Tue, Oct 1, 2019, 7:05 PM Josh Matthews ***@***.***> wrote:
***@***.**** approved this pull request.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#24343?email_source=notifications&email_token=AAMK6SEXND3HNTIZUSO6WGLQMP6YDA5CNFSM4I4QNT22YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCGSFKFI#pullrequestreview-295982357>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAMK6SAAK4TFJA2CKE2MVV3QMP6YDANCNFSM4I4QNT2Q>
.
|
fae4c94
to
c716d46
|
Could we generate the fake |
|
I'd rather document this since this is temporary: is there a place where we document how this package is generated? |
|
Ok. |
|
Builds and runs well here. |
|
This can merge when you're happy with it. |
|
@bors r=jdm |
|
@bors-servo r=jdm |
|
|
Isolate UWP builds from external gstreamers Fixes #24327 This further seals the UWP build from the non-cross regular environment and makes pkg-config look at the UWP package. This makes sure external gstreamer stuff doesn't sneak in. We already kinda do this by setting the LIB environment variable, but PKG_CONFIG_PATH also sneaks in and causes problems. Thing is, it turns out that the pkgconfig in gstreamer-uwp isn't enough for a full servo build, since we don't package gstreamer-webrtc, and the gstreamer-webrtc crate requires it to be around, even if we won't end up loading the library at runtime. Stuff has succeeded so far because people have gstreamer installations whose PKG_CONFIG_PATH is pulled in, despite us using a different set of DLLs, which somehow works but sometimes doesn't (I still don't know why). I've added a fake gstreamer-webrtc-1.0.pc file to both targets in the gstreamer-uwp package with the following contents. It doesn't do anything the other pc files don't, so it doesn't end up pulling in additional libraries, it just exists to convince pkgconfig that we *have* this library (even though we don't), so that the build may succeed (we'll fail at runtime when we try to open WebRTC connections, but those are disabled anyway). <details> ```pkgconfig prefix=c:/gstreamer/1.0/arm64.uwp-release exec_prefix=${prefix} libdir=${prefix}/lib includedir=${prefix}/include/gstreamer-1.0 datarootdir=${prefix}/share datadir=${datarootdir} girdir=${datadir}/gir-1.0 typelibdir=${libdir}/girepository-1.0 Name: Fake GStreamer WebRTC library Description: Hacky stand-in for gstreamer-webrtc, does nothing but stops the Rust gstreamer-webrtc crate from failing during build Requires: gstreamer-1.0 gstreamer-base-1.0 Version: 1.16.0 Libs: -L${libdir} Cflags: -I${includedir} ``` </details> r? @jdm Perhaps don't merge yet, I can't test this until tomorrow (and ideally would like to test this from scratch tomorrow evening) <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/24343) <!-- Reviewable:end -->
|
|
Manishearth commentedOct 2, 2019
•
edited by SimonSapin
Fixes #24327
This further seals the UWP build from the non-cross regular environment and makes pkg-config look at the UWP package.
This makes sure external gstreamer stuff doesn't sneak in. We already kinda do this by setting the LIB environment variable, but PKG_CONFIG_PATH also sneaks in and causes problems. Thing is, it turns out that the pkgconfig in gstreamer-uwp isn't enough for a full servo build, since we don't package gstreamer-webrtc, and the gstreamer-webrtc crate requires it to be around, even if we won't end up loading the library at runtime. Stuff has succeeded so far because people have gstreamer installations whose PKG_CONFIG_PATH is pulled in, despite us using a different set of DLLs, which somehow works but sometimes doesn't (I still don't know why).
I've added a fake gstreamer-webrtc-1.0.pc file to both targets in the gstreamer-uwp package with the following contents. It doesn't do anything the other pc files don't, so it doesn't end up pulling in additional libraries, it just exists to convince pkgconfig that we have this library (even though we don't), so that the build may succeed (we'll fail at runtime when we try to open WebRTC connections, but those are disabled anyway).
r? @jdm
Perhaps don't merge yet, I can't test this until tomorrow (and ideally would like to test this from scratch tomorrow evening)
This change is