1.3.15-r1
This is wine ebuild with additional patch to prevent, a known OSS PCM muting device bug which was introduced in wine version 1.1.6. If you want to know more about this bug you can read full bug info here
The patch is removing two lines of code which are cosing the problem.
--- wine/a/wine-1.1.6/dlls/dsound/primary.c 2008-10-10 16:57:22.000000000 +0200 +++ wine/b/wine-1.1.6/dlls/dsound/primary.c 2009-05-18 19:37:01.000000000 +0200 @@ -169,8 +169,6 @@ return err; } } - if (device->hwbuf) - IDsDriverBuffer_SetVolumePan(device->hwbuf, &device->volpan); DSOUND_RecalcPrimary(device); device->prebuf = ds_snd_queue_max;
You can access the patch file on my svn server by following this link.
The OSS PCM muting device bug is not noticeable to most of the wine users because they are using alsa sound system. Unfortunately I'm using some applications like Ventrilo voice communication software which forced me to run them in OSS. I couldn't make my input sound device work with alsa under wine. This way mentioned above bug was very annoying for me. I did not noticed any problem with this patch, but as this bug is not being fixed by upstream wine developers, and they may have some reason not to fix it this way, I'm keeping the ebuild hard mask in my overlay.
Additionally for this ebuild I filtered out the "-fomit-frame-pointer" compilation CFLAG. Compiling wine with this flag was preventing many Windows games from running because of started debugger error.
To jest ebuld wine z dodatkowym paczem zapobiegającym, znanemu błędowi wyciszania urządzenia PCM dla OSS, który pojawił się w wersji wine 1.1.6. Jeśli chcesz dowiedzieć się więcej na temat tego błędu przeczytaj pełną informację tutaj
Wspomniany patch usuwa dwie linie kodu powodujące problem.
--- wine/a/wine-1.1.6/dlls/dsound/primary.c 2008-10-10 16:57:22.000000000 +0200 +++ wine/b/wine-1.1.6/dlls/dsound/primary.c 2009-05-18 19:37:01.000000000 +0200 @@ -169,8 +169,6 @@ return err; } } - if (device->hwbuf) - IDsDriverBuffer_SetVolumePan(device->hwbuf, &device->volpan); DSOUND_RecalcPrimary(device); device->prebuf = ds_snd_queue_max;
Możesz uzyskać dostęp do pliku z patchem na moim serwerze svn podążając za tym linkiem.
Błąd zapobiegający wyciszeniu urządzenia PCM dla OSS jest niezauważalny dla większości użytkowników wine, gdyż używają oni systemu dźwiękowego alsa. Niestety osobiście wykorzystuję kilka aplikacji takich jak na przykład komunikator Ventrilo, które zmuszają mnie do uruchamiania ich w oparciu o standard OSS. Nie mogłem zmusić moich urządzeń wejściowych do poprawnej pracy w standardzie alsa pod wine. Tym sposobem wspomniany powyżej bug był dla mnie wyjątkowo denerwujący. Nie dostrzegam, żadnych poważnych problemów z tym patchem ale, ponieważ błąd nie jest poprawiony przez deweloperów wine, i obawiam się, że mogą mieć powód aby nie poprawiać go w ten sposób, postanowiłem trzymać ten ebuild w moim overlayu z twardą maską.
Dodatkowo dla tego ebuilda odfiltrowałem flagę kompilacyjną "-fomit-frame-pointer". Kompilacja wine z tą flagą uniemożliwiała uruchomienia wielu gier Windowsowych z powodu błędu uruchomionego debuggera.
# Copyright 1999-2011 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.3.15.ebuild,v 1.1 2011/03/06 03:46:04 vapier Exp $ EAPI="2" inherit eutils flag-o-matic multilib if [[ ${PV} == "9999" ]] ; then EGIT_REPO_URI="git://source.winehq.org/git/wine.git" inherit git autotools SRC_URI="" #KEYWORDS="" else AUTOTOOLS_AUTO_DEPEND="no" inherit autotools MY_P="${PN}-${PV/_/-}" SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2" KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" S=${WORKDIR}/${MY_P} fi pulse_patches() { echo "$1"/winepulse-{0.39,configure.ac-1.3.10,winecfg-1.3.11}.patch ; } GV="1.1.0" DESCRIPTION="free implementation of Windows(tm) on Unix" HOMEPAGE="http://www.winehq.org/" SRC_URI="${SRC_URI} gecko? ( mirror://sourceforge/wine/wine_gecko-${GV}-x86.cab win64? ( mirror://sourceforge/wine/wine_gecko-${GV}-x86_64.cab ) ) pulseaudio? ( `pulse_patches http://art.ified.ca/downloads/winepulse` )" LICENSE="LGPL-2.1" SLOT="0" IUSE="alsa capi cups custom-cflags dbus esd fontconfig +gecko gnutls gphoto2 gsm gstreamer hal jack jpeg lcms ldap mousewarp mp3 nas ncurses nls openal +opengl +oss +perl png pulseaudio samba scanner ssl test +threads +truetype +win32 +win64 +X xcomposite xinerama xml" RESTRICT="test" #72375 MLIB_DEPS="amd64? ( truetype? ( >=app-emulation/emul-linux-x86-xlibs-2.1 ) X? ( >=app-emulation/emul-linux-x86-xlibs-2.1 >=app-emulation/emul-linux-x86-soundlibs-2.1[pulseaudio?] ) openal? ( app-emulation/emul-linux-x86-sdl ) opengl? ( app-emulation/emul-linux-x86-opengl ) app-emulation/emul-linux-x86-baselibs >=sys-kernel/linux-headers-2.6 )" RDEPEND="truetype? ( >=media-libs/freetype-2.0.0 media-fonts/corefonts ) perl? ( dev-lang/perl dev-perl/XML-Simple ) capi? ( net-dialup/capi4k-utils ) ncurses? ( >=sys-libs/ncurses-5.2 ) fontconfig? ( media-libs/fontconfig ) gphoto2? ( media-libs/libgphoto2 ) jack? ( media-sound/jack-audio-connection-kit ) openal? ( media-libs/openal ) dbus? ( sys-apps/dbus ) gnutls? ( net-libs/gnutls ) gstreamer? ( media-libs/gstreamer media-libs/gst-plugins-base ) hal? ( sys-apps/hal ) X? ( x11-libs/libXcursor x11-libs/libXrandr x11-libs/libXi x11-libs/libXmu x11-libs/libXxf86vm x11-apps/xmessage ) xinerama? ( x11-libs/libXinerama ) alsa? ( media-libs/alsa-lib ) esd? ( media-sound/esound ) nas? ( media-libs/nas ) cups? ( net-print/cups ) opengl? ( virtual/opengl ) pulseaudio? ( media-sound/pulseaudio ) gsm? ( media-sound/gsm ) jpeg? ( virtual/jpeg ) ldap? ( net-nds/openldap ) lcms? ( =media-libs/lcms-1* ) mp3? ( >=media-sound/mpg123-1.5.0 ) nls? ( sys-devel/gettext ) samba? ( >=net-fs/samba-3.0.25 ) xml? ( dev-libs/libxml2 dev-libs/libxslt ) scanner? ( media-gfx/sane-backends ) ssl? ( dev-libs/openssl ) png? ( media-libs/libpng ) !win64? ( ${MLIB_DEPS} ) win32? ( ${MLIB_DEPS} ) xcomposite? ( x11-libs/libXcomposite ) " DEPEND="${RDEPEND} pulseaudio? ( ${AUTOTOOLS_DEPEND} ) X? ( x11-proto/inputproto x11-proto/xextproto x11-proto/xf86vidmodeproto ) xinerama? ( x11-proto/xineramaproto ) sys-devel/bison sys-devel/flex" pkg_setup() { filter-flags -fomit-frame-pointer } src_unpack() { if use win64 ; then [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]] \ && die "you need gcc-4.4+ to build 64bit wine" fi if [[ ${PV} == "9999" ]] ; then git_src_unpack else unpack ${MY_P}.tar.bz2 fi } src_prepare() { use mousewarp && epatch "${FILESDIR}"/${PN}-1.3.14-mouse-warp.patch if use pulseaudio ; then EPATCH_OPTS=-p1 epatch `pulse_patches "${DISTDIR}"` eautoreconf fi epatch "${FILESDIR}"/${PN}-1.1.15-winegcc.patch #260726 epatch "${FILESDIR}"/prevent_oss_muting.patch #http://bugs.winehq.org/show_bug.cgi?id=15710 epatch_user #282735 sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die sed -i '/^MimeType/d' tools/wine.desktop || die #117785 } do_configure() { local builddir="${WORKDIR}/wine$1" mkdir -p "${builddir}" pushd "${builddir}" >/dev/null ECONF_SOURCE=${S} \ econf \ --sysconfdir=/etc/wine \ $(use_with alsa) \ $(use_with capi) \ $(use_with lcms cms) \ $(use_with cups) \ $(use_with ncurses curses) \ $(use_with esd) \ $(use_with fontconfig) \ $(use_with gnutls) \ $(use_with gphoto2 gphoto) \ $(use_with gsm) \ $(use_with gstreamer) \ $(! use dbus && echo --without-hal || use_with hal) \ $(use_with jack) \ $(use_with jpeg) \ $(use_with ldap) \ $(use_with mp3 mpg123) \ $(use_with nas) \ $(use_with nls gettextpo) \ $(use_with openal) \ $(use_with opengl) \ $(use_with ssl openssl) \ $(use_with oss) \ $(use_with png) \ $(use_with threads pthread) \ $(use pulseaudio && use_with pulseaudio pulse) \ $(use_with scanner sane) \ $(use_enable test tests) \ $(use_with truetype freetype) \ $(use_with X x) \ $(use_with xcomposite) \ $(use_with xinerama) \ $(use_with xml) \ $(use_with xml xslt) \ $2 emake -j1 depend || die "depend" popd >/dev/null } src_configure() { export LDCONFIG=/bin/true use custom-cflags || strip-flags if use win64 ; then do_configure 64 --enable-win64 use win32 && ABI=x86 do_configure 32 --with-wine64=../wine64 else ABI=x86 do_configure 32 --disable-win64 fi } src_compile() { local b for b in 64 32 ; do local builddir="${WORKDIR}/wine${b}" [[ -d ${builddir} ]] || continue emake -C "${builddir}" all || die done } src_install() { local b for b in 64 32 ; do local builddir="${WORKDIR}/wine${b}" [[ -d ${builddir} ]] || continue emake -C "${builddir}" install DESTDIR="${D}" || die done dodoc ANNOUNCE AUTHORS README if use gecko ; then insinto /usr/share/wine/gecko doins "${DISTDIR}"/wine_gecko-${GV}-x86.cab || die use win64 && { doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.cab || die ; } fi if ! use perl ; then rm "${D}"/usr/bin/{wine{dump,maker},function_grep.pl} "${D}"/usr/share/man/man1/wine{dump,maker}.1 || die fi } pkg_postinst() { paxctl -psmr "${ROOT}"/usr/bin/wine{,-preloader} 2>/dev/null #255055 }