<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Yes, for non-linux platforms. It
doesn't mean that gst-build can't do it, just that gst-build
requires more setup and is not as regularly tested for this case
:).<br>
<br>
We do have a docker-based CI for the cross-mingw cases already
that you may want to borrow: <a moz-do-not-send="true"
href="https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/docker/cerbero/Dockerfile-fedora">https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/docker/cerbero/Dockerfile-fedora</a>
and <a moz-do-not-send="true"
href="https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/gitlab/ci_template.yml#L896">https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/gitlab/ci_template.yml#L896</a>.<br>
<br>
Cheers<br>
-Matt<br>
<br>
On 20/7/20 2:11 am, Ben Rush wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANV0r97sfBLa0kmmSBXOb-HeCE6MaeLfo0PHqvCR2A3vQTkw+Q@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">I see, so -- you technically do a lot of your dev
work using cerbero too? You're the expert, so I'll follow your
lead. <br>
<br>
FYI: once I get this working and am able to do a cross-compile
build of all the components (and in particular, webrtcbin), I'm
going to respond to this thread with my dockerfile so that it's
reproducible for posterity's sake. <br>
<br>
Cheers. </div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Jul 19, 2020 at 10:51
AM Matthew Waters <<a href="mailto:ystreet00@gmail.com"
moz-do-not-send="true">ystreet00@gmail.com</a>> wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<div>That's cool! We'd love to see those
improvements/suggestions.<br>
<br>
It is possible to develop with cerbero however the
required steps are a little bit more involved.<br>
<br>
For branches that track git (all GStreamer recipes and
some others), what I personally do is push a branch to the
cerbero local sources of the specific project (on linux by
default is at '$HOME/.cache/cerbero-sources/$project').
'./cerbero-uninstalled show-config' will tell you exactly
where.<br>
<br>
Then either, change the branch in the recipe, or add a
'$HOME/.cerbero/cerbero.cfg' file (python syntax) with
something like the following (where the values are a git
commit reference, branch names in this case).<br>
<br>
```<br>
recipes_commits = {<br>
# "libusrsctp" : "hang-fix",<br>
"gst-plugins-base-1.0" : "egl-display-debug-cat",<br>
# "gstreamer-1.0" : "fail",<br>
"gst-plugins-bad-1.0" : "amcvideodec-gl-sync-meta-copy",<br>
# "gst-validate" : "android",<br>
# "gst-editing-services-1.0" : "android",<br>
}<br>
```<br>
<br>
For tarball-based sources, creating a patch in the local
sources directory and then adding the patch to the recipe
is usually the goto move.<br>
<br>
Cheers<br>
-Matt<br>
<br>
On 20/7/20 1:33 am, Ben Rush wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Thanks. I will take a look at your
suggestions.
<div><br>
</div>
<div>On the Cerbero v. meson front: my company relies on
windows a lot, and so I'm doing a lot of use of
GStreamer on Windows. I've got a lot of suggestions /
tweaks / etc. that I'd love to be able to contribute
to the project to better help people such as myself
who are doing things exclusively on Windows. It's my
understanding that cerbero is best for building what's
in master, but that if I want to do any sort of rapid
iteration / testing, meson is the route to go. So,
that's my driving force. <br>
<br>
And thanks again, mate. Your work on everything is
appreciated by a lot of people. </div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Jul 19, 2020
at 10:21 AM Matthew Waters <<a
href="mailto:ystreet00@gmail.com" target="_blank"
moz-do-not-send="true">ystreet00@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px
0px 0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div>You also need to be careful with constructing
all of the necessary paths and environment
variables so that no system libraries are found
and that your custom build versions are found
instead. <a
href="https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/cerbero/config.py#L450"
target="_blank" moz-do-not-send="true">https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/cerbero/config.py#L450</a>
contains a non-exhaustive list. There are also
platform-specific configurations that may modify
some of those values: e.g. for windows: <a
href="https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/config/windows.config"
target="_blank" moz-do-not-send="true">https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/config/windows.config</a>
and then there may be recipe-specific workarounds,
e.g. for openssl: <a
href="https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/recipes/openssl.recipe#L150"
target="_blank" moz-do-not-send="true">https://gitlab.freedesktop.org/gstreamer/cerbero/-/blob/master/recipes/openssl.recipe#L150</a>.<br>
<br>
Generally we would recommend the cerbero route as
it tries takes care of all of this for you. If
something doesn't work, we can attempt to fix it.<br>
<br>
On 20/7/20 1:05 am, Ben Rush wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">I see, yes. That's a
distinct possibility given the fact my
docker container has libnice-dev, which made
it in on accident. However, what's odd is
that I did do a cross build of openssl as
part of the docker container. Is this not
enough? <br>
<br>
<div dir="ltr">RUN git clone <a
href="https://github.com/openssl/openssl.git"
target="_blank" moz-do-not-send="true">https://github.com/openssl/openssl.git</a>
&& \</div>
<div dir="ltr"><span style="white-space:pre-wrap"> </span>cd
openssl && \</div>
<div dir="ltr"><span style="white-space:pre-wrap"> </span>./Configure
--cross-compile-prefix=x86_64-w64-mingw32-
mingw64 && \</div>
<div dir="ltr"><span style="white-space:pre-wrap"> </span>make
&& \</div>
<div dir="ltr"><span style="white-space:pre-wrap"> </span>make
install</div>
<div dir="ltr"><br>
</div>
<div>All of this ran before any of the
output I mentioned above. </div>
</div>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sun, Jul
19, 2020 at 10:03 AM Matthew Waters <<a
href="mailto:ystreet00@gmail.com"
target="_blank" moz-do-not-send="true">ystreet00@gmail.com</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div>
<div>You need to have a cross-build of
openssl or gnutls to be able to build
libnice.<br>
<br>
I assume that the 'pkg-config --version
openssl' is only showing you the system
versions which would be built for linux,
not mingw.<br>
<br>
On 20/7/20 12:16 am, Ben Rush wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">In particular, I'm
having trouble getting the webrtc
library to build, and it appears as
though -- if I track it back far
enough -- the issue is with libnice.
The meson build output results in
the output at the end of this email
(I'll defer posting it now to make
the email reading easier). <br>
<br>
According to the error, the problem
is that pkg-config is unable to find
openssl. But running this at the
command prompt (after attaching to
the container), results in what
appears to be a positive for finding
openssl: <br>
<br>
<div dir="ltr">root@b5f46e708137:/gst-build#
pkg-config --version openssl</div>
<div dir="ltr">0.29.1</div>
<div dir="ltr"><br>
</div>
<div>Ultimately I'm curious if
someone has been able to build
webrtc and the like cross compiled
for Windows from Ubuntu, etc. I'd
love to have a nice, dockerized
system for building for Windows
but after about day of fighting,
I've yet to get it to work
completely. </div>
<div><br>
</div>
<div>Here is the output: </div>
<br>
<div>|Executing subproject libnice
method meson</div>
<div>|</div>
<div>|Project name: libnice</div>
<div>|Project version: 0.1.17.1</div>
<div>|C compiler for the build
machine: cc (gcc 7.5.0 "cc (Ubuntu
7.5.0-3ubuntu1~18.04) 7.5.0")</div>
<div>|C linker for the build
machine: cc ld.bfd 2.30</div>
<div>|C compiler for the host
machine: x86_64-w64-mingw32-gcc
(gcc 7.3.0 "x86_64-w64-mingw32-gcc
(GCC) 7.3-win32 20180312")</div>
<div>|C linker for the host machine:
x86_64-w64-mingw32-gcc ld.bfd 2.30</div>
<div>|Library iphlpapi found: YES</div>
<div>|Library ws2_32 found: YES</div>
<div>|Checking for function
"clock_gettime" : NO (cached)</div>
<div>|Library rt found: NO</div>
<div>|Checking for function
"clock_gettime" with dependency
-lrt: NO (cached)</div>
<div>|Has header "arpa/inet.h" : NO
(cached)</div>
<div>|Has header "net/in.h" : NO</div>
<div>|Has header "netdb.h" : NO
(cached)</div>
<div>|Has header "ifaddrs.h" : NO</div>
<div>|Has header "unistd.h" : YES
(cached)</div>
<div>|Checking for function "poll" :
NO (cached)</div>
<div>|Checking for function
"getifaddrs" : NO</div>
<div>|Compiler for C supports
arguments -fno-strict-aliasing:
YES</div>
<div>|Message: warning level: 1</div>
<div>|Message: werror enabled: false</div>
<div>|Dependency gio-2.0 found: YES
2.62.6 (cached)</div>
<div>|Dependency (anonymous) from
subproject subprojects/glib found:
YES 2.62.6</div>
<div>|Dependency (anonymous) from
subproject subprojects/glib found:
YES 2.62.6</div>
<div>|Dependency (anonymous) from
subproject subprojects/glib found:
YES 2.62.6</div>
<div>|Dependency gthread-2.0 from
subproject subprojects/glib found:
YES 2.62.6</div>
<div>|Message: Crypto library
requested: auto</div>
<div>|Run-time dependency gnutls
found: NO (tried pkgconfig and
cmake)</div>
<div>|Run-time dependency openssl
found: NO (tried pkgconfig and
cmake)</div>
<div>|Looking for a fallback
subproject for the dependency
openssl</div>
<div>|Subproject directory not found
and openssl.wrap file not found</div>
<div>|Subproject
subprojects/openssl is buildable:
NO (disabling)</div>
<div>|Dependency openssl from
subproject subprojects/openssl
found: NO</div>
<div>|Library crypto found: NO</div>
<div>|Library eay32 found: NO</div>
<div>|</div>
<div>|subprojects/libnice/meson.build:249:4:
Exception: Problem encountered:
Either GnuTLS or OpenSSL is
required as crypto library, but
neither was found</div>
</div>
</div>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
gstreamer-devel mailing list
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank" moz-do-not-send="true">gstreamer-devel@lists.freedesktop.org</a>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank" moz-do-not-send="true">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a>
</pre>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>