wine-1.3.15-r1

Published: 12.03.2011

patched version of free implementation of Windows(tm) api on Unix

Project homepage: Wine

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.

View the source of prevent_oss_muting.patch
  1. --- wine/a/wine-1.1.6/dlls/dsound/primary.c 2008-10-10 16:57:22.000000000 +0200
  2. +++ wine/b/wine-1.1.6/dlls/dsound/primary.c 2009-05-18 19:37:01.000000000 +0200
  3. @@ -169,8 +169,6 @@
  4. return err;
  5. }
  6. }
  7. - if (device->hwbuf)
  8. - IDsDriverBuffer_SetVolumePan(device->hwbuf, &device->volpan);
  9.  
  10. DSOUND_RecalcPrimary(device);
  11. 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 use this ebuild run following commands in terminal:

echo "=app-emulation/wine-1.3.15-r1" >> /etc/portage/package.keywords
echo "=app-emulation/wine-1.3.15-r1" >> /etc/portage/package.unmask 
emerge -av =app-emulation/wine-1.3.15-r1

View the source of the ebuild
  1. # Copyright 1999-2011 Gentoo Foundation
  2. # Distributed under the terms of the GNU General Public License v2
  3. # $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.3.15.ebuild,v 1.1 2011/03/06 03:46:04 vapier Exp $
  4.  
  5. EAPI="2"
  6.  
  7. inherit eutils flag-o-matic multilib
  8.  
  9. if [[ ${PV} == "9999" ]] ; then
  10. EGIT_REPO_URI="git://source.winehq.org/git/wine.git"
  11. inherit git autotools
  12. SRC_URI=""
  13. #KEYWORDS=""
  14. else
  15. AUTOTOOLS_AUTO_DEPEND="no"
  16. inherit autotools
  17. MY_P="${PN}-${PV/_/-}"
  18. SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2"
  19. KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
  20. S=${WORKDIR}/${MY_P}
  21. fi
  22.  
  23. pulse_patches() { echo "$1"/winepulse-{0.39,configure.ac-1.3.10,winecfg-1.3.11}.patch ; }
  24. GV="1.1.0"
  25. DESCRIPTION="free implementation of Windows(tm) on Unix"
  26. HOMEPAGE="http://www.winehq.org/"
  27. SRC_URI="${SRC_URI}
  28. gecko? (
  29. mirror://sourceforge/wine/wine_gecko-${GV}-x86.cab
  30. win64? ( mirror://sourceforge/wine/wine_gecko-${GV}-x86_64.cab )
  31. )
  32. pulseaudio? ( `pulse_patches http://art.ified.ca/downloads/winepulse` )"
  33.  
  34. LICENSE="LGPL-2.1"
  35. SLOT="0"
  36. 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"
  37. RESTRICT="test" #72375
  38.  
  39. MLIB_DEPS="amd64? (
  40. truetype? ( >=app-emulation/emul-linux-x86-xlibs-2.1 )
  41. X? (
  42. >=app-emulation/emul-linux-x86-xlibs-2.1
  43. >=app-emulation/emul-linux-x86-soundlibs-2.1[pulseaudio?]
  44. )
  45. openal? ( app-emulation/emul-linux-x86-sdl )
  46. opengl? ( app-emulation/emul-linux-x86-opengl )
  47. app-emulation/emul-linux-x86-baselibs
  48. >=sys-kernel/linux-headers-2.6
  49. )"
  50. RDEPEND="truetype? ( >=media-libs/freetype-2.0.0 media-fonts/corefonts )
  51. perl? ( dev-lang/perl dev-perl/XML-Simple )
  52. capi? ( net-dialup/capi4k-utils )
  53. ncurses? ( >=sys-libs/ncurses-5.2 )
  54. fontconfig? ( media-libs/fontconfig )
  55. gphoto2? ( media-libs/libgphoto2 )
  56. jack? ( media-sound/jack-audio-connection-kit )
  57. openal? ( media-libs/openal )
  58. dbus? ( sys-apps/dbus )
  59. gnutls? ( net-libs/gnutls )
  60. gstreamer? ( media-libs/gstreamer media-libs/gst-plugins-base )
  61. hal? ( sys-apps/hal )
  62. X? (
  63. x11-libs/libXcursor
  64. x11-libs/libXrandr
  65. x11-libs/libXi
  66. x11-libs/libXmu
  67. x11-libs/libXxf86vm
  68. x11-apps/xmessage
  69. )
  70. xinerama? ( x11-libs/libXinerama )
  71. alsa? ( media-libs/alsa-lib )
  72. esd? ( media-sound/esound )
  73. nas? ( media-libs/nas )
  74. cups? ( net-print/cups )
  75. opengl? ( virtual/opengl )
  76. pulseaudio? ( media-sound/pulseaudio )
  77. gsm? ( media-sound/gsm )
  78. jpeg? ( virtual/jpeg )
  79. ldap? ( net-nds/openldap )
  80. lcms? ( =media-libs/lcms-1* )
  81. mp3? ( >=media-sound/mpg123-1.5.0 )
  82. nls? ( sys-devel/gettext )
  83. samba? ( >=net-fs/samba-3.0.25 )
  84. xml? ( dev-libs/libxml2 dev-libs/libxslt )
  85. scanner? ( media-gfx/sane-backends )
  86. ssl? ( dev-libs/openssl )
  87. png? ( media-libs/libpng )
  88. !win64? ( ${MLIB_DEPS} )
  89. win32? ( ${MLIB_DEPS} )
  90. xcomposite? ( x11-libs/libXcomposite ) "
  91. DEPEND="${RDEPEND}
  92. pulseaudio? ( ${AUTOTOOLS_DEPEND} )
  93. X? (
  94. x11-proto/inputproto
  95. x11-proto/xextproto
  96. x11-proto/xf86vidmodeproto
  97. )
  98. xinerama? ( x11-proto/xineramaproto )
  99. sys-devel/bison
  100. sys-devel/flex"
  101.  
  102. pkg_setup() {
  103. filter-flags -fomit-frame-pointer
  104. }
  105.  
  106. src_unpack() {
  107. if use win64 ; then
  108. [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]] \
  109. && die "you need gcc-4.4+ to build 64bit wine"
  110. fi
  111.  
  112. if [[ ${PV} == "9999" ]] ; then
  113. git_src_unpack
  114. else
  115. unpack ${MY_P}.tar.bz2
  116. fi
  117. }
  118.  
  119. src_prepare() {
  120. use mousewarp && epatch "${FILESDIR}"/${PN}-1.3.14-mouse-warp.patch
  121. if use pulseaudio ; then
  122. EPATCH_OPTS=-p1 epatch `pulse_patches "${DISTDIR}"`
  123. eautoreconf
  124. fi
  125. epatch "${FILESDIR}"/${PN}-1.1.15-winegcc.patch #260726
  126. epatch "${FILESDIR}"/prevent_oss_muting.patch #http://bugs.winehq.org/show_bug.cgi?id=15710
  127. epatch_user #282735
  128. sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
  129. sed -i '/^MimeType/d' tools/wine.desktop || die #117785
  130. }
  131.  
  132. do_configure() {
  133. local builddir="${WORKDIR}/wine$1"
  134. mkdir -p "${builddir}"
  135. pushd "${builddir}" >/dev/null
  136.  
  137. ECONF_SOURCE=${S} \
  138. econf \
  139. --sysconfdir=/etc/wine \
  140. $(use_with alsa) \
  141. $(use_with capi) \
  142. $(use_with lcms cms) \
  143. $(use_with cups) \
  144. $(use_with ncurses curses) \
  145. $(use_with esd) \
  146. $(use_with fontconfig) \
  147. $(use_with gnutls) \
  148. $(use_with gphoto2 gphoto) \
  149. $(use_with gsm) \
  150. $(use_with gstreamer) \
  151. $(! use dbus && echo --without-hal || use_with hal) \
  152. $(use_with jack) \
  153. $(use_with jpeg) \
  154. $(use_with ldap) \
  155. $(use_with mp3 mpg123) \
  156. $(use_with nas) \
  157. $(use_with nls gettextpo) \
  158. $(use_with openal) \
  159. $(use_with opengl) \
  160. $(use_with ssl openssl) \
  161. $(use_with oss) \
  162. $(use_with png) \
  163. $(use_with threads pthread) \
  164. $(use pulseaudio && use_with pulseaudio pulse) \
  165. $(use_with scanner sane) \
  166. $(use_enable test tests) \
  167. $(use_with truetype freetype) \
  168. $(use_with X x) \
  169. $(use_with xcomposite) \
  170. $(use_with xinerama) \
  171. $(use_with xml) \
  172. $(use_with xml xslt) \
  173. $2
  174.  
  175. emake -j1 depend || die "depend"
  176.  
  177. popd >/dev/null
  178. }
  179. src_configure() {
  180. export LDCONFIG=/bin/true
  181. use custom-cflags || strip-flags
  182.  
  183. if use win64 ; then
  184. do_configure 64 --enable-win64
  185. use win32 && ABI=x86 do_configure 32 --with-wine64=../wine64
  186. else
  187. ABI=x86 do_configure 32 --disable-win64
  188. fi
  189. }
  190.  
  191. src_compile() {
  192. local b
  193. for b in 64 32 ; do
  194. local builddir="${WORKDIR}/wine${b}"
  195. [[ -d ${builddir} ]] || continue
  196. emake -C "${builddir}" all || die
  197. done
  198. }
  199.  
  200. src_install() {
  201. local b
  202. for b in 64 32 ; do
  203. local builddir="${WORKDIR}/wine${b}"
  204. [[ -d ${builddir} ]] || continue
  205. emake -C "${builddir}" install DESTDIR="${D}" || die
  206. done
  207. dodoc ANNOUNCE AUTHORS README
  208. if use gecko ; then
  209. insinto /usr/share/wine/gecko
  210. doins "${DISTDIR}"/wine_gecko-${GV}-x86.cab || die
  211. use win64 && { doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.cab || die ; }
  212. fi
  213. if ! use perl ; then
  214. rm "${D}"/usr/bin/{wine{dump,maker},function_grep.pl} "${D}"/usr/share/man/man1/wine{dump,maker}.1 || die
  215. fi
  216. }
  217.  
  218. pkg_postinst() {
  219. paxctl -psmr "${ROOT}"/usr/bin/wine{,-preloader} 2>/dev/null #255055
  220. }

Here is the list of all the wine ebuild versions that are available in my overlay:



Comments

If you have found something wrong with the information provided above or maybe you just want to speak your mind about it, feel free to leave a comment.
All comments will show up on page after being approved. Sorry for such policy but I want to make sure that my site will be free of abusive or vulgar content. I don't mind being criticized just do it using right words.

Leave a comment