wine-1.2_rc5-r1

Opublikowany: 28.06.2010

spatchowana wersja wolnej implementacji api Windowsa(tm) na Unixa

Strona projektu: Wine

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.

Wyświetl kod źródłowy patcha 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;

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.

Aby wykorzystać ten ebuild wykonaj następujące polecenia w terminalu:

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

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

Oto lista wszystkich wersji ebuilda wine jakie możesz znaleźć w moim overlay'u:



Komentarze

Jeśli znalazłeś jakieś błędy w powyższej informacji lub po prostu chcesz wypowiedzieć swoje zdanie na jej temat, będę wdzięczny za pozostawienie komentarza.
Wszystkie komentarze będą pokazywać się na stronie po tym jak zostaną zatwierdzone. Przepraszam za to ale chcę mieć pewność, że moja strona będzie wolna od obraźliwych lub wulgarnych treści. Nie mam nic przeciwko krytyce ale zrób to właściwie dobierając słowa.

Pozostaw komentarz