Discussion:
[Wine] Attn Packagers: Dependency change from gstreamer-0.10 to gstreamer >= 1.0
Andrew Eikum
2016-01-15 17:04:38 UTC
Permalink
Hi all,

The next release of Wine will include a commit which changes our
winegstreamer dshow module to use the modern gstreamer 1.0 API instead
of the long-deprecated gstreamer 0.10 API. dshow is used by some games
and applications, including Microsoft Office, to display videos and
play audio. Wine's winegstreamer allows applications that use dshow to
support a wide variety of media through gstreamer.

winegstreamer has been broken for a long time (see Bug 30557), and
many distros disable the DLL when shipping Wine. If your distro
provides 32-bit gstreamer libraries, then you can now re-enable
winegstreamer and expect it to work.

Thanks,
Andrew
Andrew Eikum
2016-01-15 19:12:36 UTC
Permalink
The problem here is glib and gstreamer have different header files for
32- and 64-bit, but pkgconfig doesn't have a mechanism to specify
which you should get. In your setup, it is returning the 64-bit
headers, which are wrong for our 32-bit build.

You need to specify something like
"PKG_CONFIG_PATH=/usr/lib32/pkgconfig" before running configure. On my
Arch Linux machine:

[***@aeikum ~]$ pkg-config --cflags gstreamer-1.0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include

[***@aeikum ~]$ PKG_CONFIG_PATH=/usr/lib32/pkgconfig pkg-config --cflags gstreamer-1.0
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib32/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include

Andrew
Hi Andrew,
when I compile latest git Wine as 32bit on my Fedora 23 (x86_64
arch), I get gstreamer configure error ("checking whether gint64 defined
by gst/gst.h is indeed 64-bit: no"), and gstreamer gets disabled by auto
configuration. I can solve the problem (gstreamer gets configured and
GSTREAMER_CFLAGS='-pthread -I/usr/include/gstreamer-1.0
-I/usr/lib/gstreamer-1.0/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include'
With automated settings gstreamer includes are set up as following
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib64/gstreamer-1.0/include
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
Wine64 gets gstreamer configured and built just fine by default.
Is it some auto configuration bug?
Thanks,
Paul.
Post by Andrew Eikum
Hi all,
The next release of Wine will include a commit which changes our
winegstreamer dshow module to use the modern gstreamer 1.0 API instead
of the long-deprecated gstreamer 0.10 API. dshow is used by some games
and applications, including Microsoft Office, to display videos and
play audio. Wine's winegstreamer allows applications that use dshow to
support a wide variety of media through gstreamer.
winegstreamer has been broken for a long time (see Bug 30557), and
many distros disable the DLL when shipping Wine. If your distro
provides 32-bit gstreamer libraries, then you can now re-enable
winegstreamer and expect it to work.
Thanks,
Andrew
Andrew Eikum
2016-01-15 19:28:15 UTC
Permalink
Great. I can't think of any way we can work around this,
unfortunately. Maybe we should print a suggestion to check their
pkg-config settings or something if that check fails.

Andrew
Thank you for the hint.
Setting PKG_CONFIG_PATH=/usr/lib/pkgconfig before ./configure works for me.
Post by Andrew Eikum
The problem here is glib and gstreamer have different header files for
32- and 64-bit, but pkgconfig doesn't have a mechanism to specify
which you should get. In your setup, it is returning the 64-bit
headers, which are wrong for our 32-bit build.
You need to specify something like
"PKG_CONFIG_PATH=/usr/lib32/pkgconfig" before running configure. On my
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib32/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib32/glib-2.0/include
Andrew
Hi Andrew,
when I compile latest git Wine as 32bit on my Fedora 23 (x86_64
arch), I get gstreamer configure error ("checking whether gint64 defined
by gst/gst.h is indeed 64-bit: no"), and gstreamer gets disabled by auto
configuration. I can solve the problem (gstreamer gets configured and
GSTREAMER_CFLAGS='-pthread -I/usr/include/gstreamer-1.0
-I/usr/lib/gstreamer-1.0/include -I/usr/include/glib-2.0
-I/usr/lib/glib-2.0/include'
With automated settings gstreamer includes are set up as following
-pthread -I/usr/include/gstreamer-1.0 -I/usr/lib64/gstreamer-1.0/include
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include
Wine64 gets gstreamer configured and built just fine by default.
Is it some auto configuration bug?
Thanks,
Paul.
Post by Andrew Eikum
Hi all,
The next release of Wine will include a commit which changes our
winegstreamer dshow module to use the modern gstreamer 1.0 API instead
of the long-deprecated gstreamer 0.10 API. dshow is used by some games
and applications, including Microsoft Office, to display videos and
play audio. Wine's winegstreamer allows applications that use dshow to
support a wide variety of media through gstreamer.
winegstreamer has been broken for a long time (see Bug 30557), and
many distros disable the DLL when shipping Wine. If your distro
provides 32-bit gstreamer libraries, then you can now re-enable
winegstreamer and expect it to work.
Thanks,
Andrew
Loading...