Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 516006 - app-emulation/wine[gstreamer] should not depend on media-sound/pulseaudio
Summary: app-emulation/wine[gstreamer] should not depend on media-sound/pulseaudio
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal with 1 vote (vote)
Assignee: Wine Maintainers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-07-01 15:45 UTC by Chiitoo
Modified: 2014-10-06 08:19 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
wine-1.7.20-r1.ebuild.diff (wine-1.7.20-r1.ebuild.diff,3.38 KB, patch)
2014-10-04 23:13 UTC, Andreas Sturmlechner
Details | Diff
wine-1.7.19-r2.ebuild.diff (wine-1.7.19-r2.ebuild.diff,1.39 KB, patch)
2014-10-04 23:21 UTC, Andreas Sturmlechner
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Chiitoo gentoo-dev 2014-07-01 15:45:54 UTC
Perhaps I'm missing the obvious here (apologies if so!).


Aside from a certain gstreamer-patch being included, I can't see what the winepulse-patches have to do with the upstream Wine bug mentioned in the ebuild (http://bugs.winehq.org/show_bug.cgi?id=30557), nor can I see why media-sound/pulseaudio is needed.

That said, the build does fail when the gstreamer-0.10 base plugins development files are not found, but that seems like a different issue (nearly identical(?) with bug 472038).

For my git-builds, using the following seemingly gets me past that:

PKG_CONFIG_PATH=/usr/lib32/pkgconfig


Again, sorry if I missed something (be it obvious or not).

Thanks!
Comment 1 Alexandre Rostovtsev (RETIRED) gentoo-dev 2014-07-01 18:31:06 UTC
The gstreamer patch is the last one in a long series of patches by Maarten Lankhorst for pulseaudio support, which extensively change many parts of wine's audio system. I thought it would be unsafe to apply just that last patch without all the previous ones. So USE=gstreamer results in all pulseaudio patches being applied.

And I've had bug reports that the pulseaudio patches really require linking to pulseaudio, and cause problems if configuring --without-pulse (which the patches theoretically support). So USE=gstreamer pulls in the pulseaudio dependency.

If you can verify that gstreamer support really works without pulseaudio and the whole patchset, I could lift the restriction. I can't test that configuration myself because I use pulseaudio on all of my systems.
Comment 2 Chiitoo gentoo-dev 2014-07-02 00:57:06 UTC
I see.  That does seem to make sense indeed!


It came as a bit of a surprise to me, as I thought PulseAudio was still not officially supported by the project, and this seemed to pull it much closer towards something like that.  I haven't been following things too closely as of late.

In any case, I'll definitely try to test this out soon (although, I guess one could just ask the author of the patches about it, but where's the fun in that!?).  I did build the current git version today, with, and without the single gstreamer-patch, but I need something to use the winegstreamer on now...

I tried System Shock 2, and 'echoes', which are both mentioned in that Wine bug, but (wine)gstreamer isn't used for them here (something I'll need to figure out; I'm not sure Wine /ever/ used it here, for anything).

That is to say, I wish I could just say 'it works' already, but since I never experienced the problem myself, I'll need some time to dig around.


Also, changing hardware (back) to 'All'.  I bet I was thinking of the PKG_CONFIG issue while setting that option...  This isn't AMD64-specific, as far as I can tell.  ^^;

Thanks!
Comment 3 jospezial 2014-07-30 01:37:50 UTC
!!! Problem resolving dependencies for app-emulation/wine
... done!

!!! The ebuild selected to satisfy "wine" has unmet requirements.
- app-emulation/wine-9999::gentoo USE="X alsa cups dos fontconfig gecko gphoto2 gsm gstreamer jpeg lcms ldap mono mp3 ncurses nls openal opengl perl png prelink realtime run-exes samba scanner ssl threads truetype udisks v4l xcomposite xinerama xml -capi -custom-cflags -netapi -odbc -opencl -osmesa -oss -pipelight (-pulseaudio) (-selinux) -test" ABI_X86="32 64 -x32" LINGUAS="de -ar -bg -ca -cs -da -el -en -en_US -eo -es -fa -fi -fr -he -hi -hr -hu -it -ja -ko -lt -ml -nb_NO -nl -or -pa -pl -pt_BR -pt_PT -rm -ro -ru -sk -sl -sr_RS@cyrillic -sr_RS@latin -sv -te -th -tr -uk -wa -zh_CN -zh_TW"

  The following REQUIRED_USE flag constraints are unsatisfied:
    gstreamer? ( pulseaudio )

  The above constraints are a subset of the following complete expression:
    any-of ( abi_x86_32 abi_x86_64 ) test? ( abi_x86_32 ) elibc_glibc? ( threads ) gstreamer? ( pulseaudio ) mono? ( abi_x86_32 ) osmesa? ( opengl )

As you can see -pulseaudio is in brackets so it is hard disabled in wine-9999.ebuild.
Now I have to disable gstreamer or should pulseaudio be enabled as in the other ebuilds?
Comment 4 Chiitoo gentoo-dev 2014-07-30 02:39:56 UTC
(In reply to jospezial from comment #3)
> As you can see -pulseaudio is in brackets so it is hard disabled in
> wine-9999.ebuild.
> Now I have to disable gstreamer or should pulseaudio be enabled as in the
> other ebuilds?


It seems the USE-flag is masked there because of the PulseAudio patch-set breaking the live build too often (according to /usr/portage/profiles/base/package.use.mask).  I imagine it would make sense to mask gstreamer as well then, if it is to stay linked to pulseaudio. 

Anyblue, you might even not notice a difference, unless you knowingly use it for something.  I, for example, had to manually register the winegstreamer.dll for it to be used even after building Wine with it.  Moreover, as the ebuild does mention, the patch may break things (which I now may have personal experiences of).


That said, I might as well mention my findings now; apologies for taking so long to get back to this!

I managed to finally re-produce the issues with winegstreamer, and which the patch is supposed to get around.  I can now confirm, that at least to some extent, it is possible to use the override pthreads-patch alone.

However, I also contacted Maarten Lankhorst, who wrote that “[...] this specific patch does not, but most of the other patched pulled in probably do [...]”, so I'm still a little bit unclear on if that means that the patch can or can not be used without the other patches (waiting on a reply).  The answer to that may or may not also explain the issue I have found the patch causing (FINAL FANTASY XI Online, which doesn't even make use of winegstreamer, freezes up after a time).

In the first reply, I also received a patch: TESTING -- override pthreads to fix gstreamer v3

The previous patch was pulled because of a bug that cropped up.


So, I probably have more testing to do, and things to confirm, but that is what I know for the time being.


As a side-note, the issue I mentioned with regards to actually building Wine with-gstreamer and having to manually set PKG_CONFIG_PATH, it might be an related to using the emul-linux-x86 packages (or it was an issue with my system).  I switched to building packages with ABI_X86="32 64" instead during this testing period, to see if that makes any difference, and indeed, now the development files are found when building with Portage.

That's probably for another bug, though, but I thought I'd mention it since I brought it up earlier.


That's all fer now, I maybe think!
Comment 5 alphageekster 2014-08-04 14:50:32 UTC
I was able to modify the ebuild for wine-1.7.21 on my system so that it can build with gstreamer without bringing in the pulseaudio patches.

My system has had a global -pulseaudio USE flag from the very beginning, so it never brought in any of those patches, not even when I installed earlier versions of Wine.  I haven't had any problems with earlier versions.

While this particular version of Wine was able to build and get install without errors, I have not yet tested a couple of games I have to see if I still get sound.  If sound is working, I can post the modified ebuild here as an attachment and let you all try it out.
Comment 6 Chiitoo gentoo-dev 2014-09-29 21:01:36 UTC
Hies!


I got some new versions of the patch again via e-mail while we were looking into a memory leak I discovered this patch introducing.  It looks like the latest one is also available here now:

http://repo.or.cz/w/wine/multimedia.git/commit/9e081cd4a04e3326d4927aa082695f15432590e2


I've been using it for some time without new issues creeping up (without the PulseAudio patches), although the gstreamer-using application (Echoes) I have been testing it with now fails with my git-builds (but not with the Portage build, even if building the same version).  Probably some local issue I'm not thinking of...
Comment 7 Chiitoo gentoo-dev 2014-10-04 02:35:21 UTC
Just to clear up the previous comment of mine a bit: I didn't mean there were build issues at all, but an issue at runtime.  An issue which is now gone, after I finally cleaned up the git tree(s) I tested it with (ccache was probably making things dirty-like).
Comment 8 Andreas Sturmlechner gentoo-dev 2014-10-04 23:13:18 UTC
Created attachment 386056 [details, diff]
wine-1.7.20-r1.ebuild.diff

OK, so the gstreamer patch first appeared with 1.7.20 in Gentoo where it is being applied together with winepulse-patches. In 1.7.21 it was made conditional on gstreamer use flag.

So, two new tarballs:
-winepulse-patches-1.7.20-r1.tar.bz2 (gstreamer patch removed)
-wine-gstreamer-patches-1.7.12.tar.xz (that one gstreamer patch)

The resulting ebuild works for both 1.7.20 and 1.7.21 (no other difference between both winepulse-patches tarballs except for the gstreamer subdir).

Someone just needs to replace those evil googledrive links.
Comment 9 Andreas Sturmlechner gentoo-dev 2014-10-04 23:21:12 UTC
Created attachment 386058 [details, diff]
wine-1.7.19-r2.ebuild.diff

Patch to retrofit wine-gstreamer-patches-1.7.12.tar.xz (should work for all ebuilds from 1.7.12 to 1.7.19-r1) if you so wish.
Comment 10 Richard Yao (RETIRED) gentoo-dev 2014-10-05 13:22:00 UTC
I have committed app-emulation/wine-1.7.28 due to maintainer timeout on bug #518792. This version bump required updating the tarball that included the gstreamer patch, so I have tackled this bug simultaneously with it. I am marking it as fixed.
Comment 11 Chiitoo gentoo-dev 2014-10-06 08:19:50 UTC
Looking good, many thanks!