<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Ah, then that requires a windows native
build. That cannot currently be cross-compiled from linux.<br>
<br>
Cheers<br>
-Matt<br>
<br>
On 21/7/20 1:47 pm, Ben Rush wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CANV0r97i32eN_1uv6F9tLWF97v+UoFuwuXgMn_O4tgePaR-y7Q@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">At the moment I'd like to generate the Visual
Studio binaries. But, thanks for the docker link. </div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Mon, Jul 20, 2020 at 9:33
PM 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>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
href="https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/docker/cerbero/Dockerfile-fedora"
target="_blank" moz-do-not-send="true">https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/docker/cerbero/Dockerfile-fedora</a>
and <a
href="https://gitlab.freedesktop.org/gstreamer/gst-ci/-/blob/master/gitlab/ci_template.yml#L896"
target="_blank" moz-do-not-send="true">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">
<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" 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>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>
</div>
</blockquote>
</div>
</blockquote>
<br>
</body>
</html>