From 1b2a80cabcb2dfa0423284d3ed4e7971435afc4c Mon Sep 17 00:00:00 2001 From: geos_one Date: Sat, 1 Aug 2009 09:01:12 +0000 Subject: [PATCH] add patched wine git-svn-id: https://svn.disconnected-by-peer.at/svn/linamh/trunk/linamh@1437 6952d904-891a-0410-993b-d76249ca496b --- app-emulation/wine/ChangeLog | 1366 +++++++++++++++++ app-emulation/wine/Manifest | 10 + app-emulation/wine/files/acceptex.patch | 1173 ++++++++++++++ app-emulation/wine/files/dinput.patch | 68 + app-emulation/wine/files/revert-ntdll.patch | 13 + app-emulation/wine/files/schannel.patch | 140 ++ .../wine/files/wine-1.1.15-winegcc.patch | 55 + app-emulation/wine/metadata.xml | 18 + app-emulation/wine/wine-1.1.26.ebuild | 145 ++ 9 files changed, 2988 insertions(+) create mode 100644 app-emulation/wine/ChangeLog create mode 100644 app-emulation/wine/Manifest create mode 100644 app-emulation/wine/files/acceptex.patch create mode 100644 app-emulation/wine/files/dinput.patch create mode 100644 app-emulation/wine/files/revert-ntdll.patch create mode 100644 app-emulation/wine/files/schannel.patch create mode 100644 app-emulation/wine/files/wine-1.1.15-winegcc.patch create mode 100644 app-emulation/wine/metadata.xml create mode 100644 app-emulation/wine/wine-1.1.26.ebuild diff --git a/app-emulation/wine/ChangeLog b/app-emulation/wine/ChangeLog new file mode 100644 index 00000000..593c57f3 --- /dev/null +++ b/app-emulation/wine/ChangeLog @@ -0,0 +1,1366 @@ +# ChangeLog for app-emulation/wine +# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/ChangeLog,v 1.268 2009/07/18 22:15:36 vapier Exp $ + +*wine-1.1.26 (18 Jul 2009) + + 18 Jul 2009; Mike Frysinger +wine-1.1.26.ebuild: + Version bump. + +*wine-1.1.25 (03 Jul 2009) + + 03 Jul 2009; Mike Frysinger +wine-1.1.25.ebuild: + Version bump. + +*wine-1.1.24 (19 Jun 2009) + + 19 Jun 2009; Mike Frysinger +wine-1.1.24.ebuild: + Version bump. + +*wine-1.1.23 (05 Jun 2009) + + 05 Jun 2009; Mike Frysinger +wine-1.1.23.ebuild: + Version bump. + +*wine-1.1.22 (24 May 2009) + + 24 May 2009; Mike Frysinger +wine-1.1.22.ebuild: + Version bump. + + 16 May 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-1.1.14.ebuild, wine-1.1.15.ebuild, wine-1.1.16.ebuild, + wine-1.1.17.ebuild, wine-1.1.18.ebuild, wine-1.1.19.ebuild, + wine-1.1.20.ebuild, wine-1.1.21.ebuild, wine-9999.ebuild: + Dont require multilib files when USE=win64 #269439 by Mikel Olasagasti. + +*wine-1.1.21 (08 May 2009) + + 08 May 2009; Mike Frysinger +wine-1.1.21.ebuild: + Version bump. + + 27 Apr 2009; Mike Frysinger wine-0.9.60, wine-0.9.61, + wine-1.0_rc1, wine-1.0_rc2, wine-1.0_rc3, wine-1.0_rc4, wine-1.0_rc5, + wine-1.0, wine-1.0.1, wine-1.1.0, wine-1.1.1, wine-1.1.2, wine-1.1.3, + wine-1.1.4, wine-1.1.5, wine-1.1.6, wine-1.1.7, wine-1.1.8, wine-1.1.9, + wine-1.1.10, wine-1.1.11, wine-1.1.12, wine-1.1.13, wine-1.1.14, + wine-1.1.15, wine-1.1.16, wine-1.1.17, wine-1.1.18, wine-1.1.19, + wine-1.1.20, wine-9999: + Require dev-perl/XML-Simple and dev-lang/perl #267411 by Sergey Kondakov. + +*wine-1.1.20 (27 Apr 2009) + + 27 Apr 2009; Mike Frysinger +wine-1.1.20.ebuild: + Version bump. + +*wine-1.1.19 (11 Apr 2009) + + 11 Apr 2009; Mike Frysinger +wine-1.1.19.ebuild: + Version bump. + +*wine-1.1.18 (27 Mar 2009) + + 27 Mar 2009; Mike Frysinger +wine-1.1.18.ebuild: + Version bump. + +*wine-1.1.17 (14 Mar 2009) + + 14 Mar 2009; Mike Frysinger +wine-1.1.17.ebuild: + Version bump. + + 06 Mar 2009; Mike Frysinger + +files/wine-1.1.15-configure-host.patch, +files/wine-1.1.15-winegcc.patch, + wine-1.1.15.ebuild, wine-1.1.16.ebuild: + Workaround multilib breakage in upstream wine tools #260726. + + 01 Mar 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-1.1.14.ebuild, wine-1.1.15.ebuild, wine-1.1.16.ebuild, + wine-9999.ebuild: + Restore call to multilib_toolchain_setup for 32bit builds on amd64 + #257038. + +*wine-1.1.16 (28 Feb 2009) + + 28 Feb 2009; Mike Frysinger +wine-1.1.16.ebuild: + Version bump. + +*wine-1.1.15 (13 Feb 2009) + + 13 Feb 2009; Mike Frysinger +wine-1.1.15.ebuild: + Version bump. + + 05 Feb 2009; Mike Frysinger wine-9999.ebuild: + Update gecko version. + + 31 Jan 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-1.1.14.ebuild, wine-9999.ebuild: + Tweak gcc-4.4 dep a bit #256274. + +*wine-1.1.14 (30 Jan 2009) + + 30 Jan 2009; Mike Frysinger +wine-1.1.14.ebuild: + Version bump. + + 28 Jan 2009; Mike Frysinger metadata.xml, + wine-1.1.13.ebuild, wine-9999.ebuild: + Force gcc-4.4 for USE=win64 #256274 by John W Eckhart. + + 24 Jan 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-9999.ebuild: + Split apart funcs according to EAPI-2 #256117 by Arfrever Frehtes + Taifersar Arahesis. + + 24 Jan 2009; Alexis Ballier wine-1.1.0.ebuild, + wine-1.1.1.ebuild, wine-1.1.2.ebuild: + there is no stable keyword for bsd... + + 21 Jan 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-9999.ebuild: + Make sure we pull in app-emulation/emul-linux-x86-baselibs for amd64 + systems. + + 20 Jan 2009; Mike Frysinger wine-1.1.13.ebuild, + wine-9999.ebuild: + Fix by Robert Förster for scanner/win64 econf typos #255447. + + 18 Jan 2009; Mike Frysinger metadata.xml, + wine-1.1.13.ebuild, wine-9999.ebuild: + Add USE="png ssl win64" and convert USE flags to $(use_with) #255250 by + Johan Verrept. + +*wine-1.1.13 (16 Jan 2009) + + 16 Jan 2009; Mike Frysinger +wine-1.1.13.ebuild: + Version bump. + + 06 Jan 2009; Mike Frysinger wine-9999.ebuild: + Drop gcc-3.4 ssp-compat patch #253740. + +*wine-1.1.12 (02 Jan 2009) + + 02 Jan 2009; Mike Frysinger +wine-1.1.12.ebuild: + Version bump. + +*wine-1.1.11 (21 Dec 2008) + + 21 Dec 2008; Mike Frysinger +wine-1.1.11.ebuild: + Version bump. + +*wine-1.1.10 (05 Dec 2008) + + 05 Dec 2008; Mike Frysinger +wine-1.1.10.ebuild: + Version bump. + +*wine-1.1.9 (21 Nov 2008) + + 21 Nov 2008; Mike Frysinger +wine-1.1.9.ebuild: + Version bump. + +*wine-1.1.8 (08 Nov 2008) + + 08 Nov 2008; Mike Frysinger +wine-1.1.8.ebuild: + Version bump. + + 26 Oct 2008; Mike Frysinger wine-1.1.6.ebuild, + wine-1.1.7.ebuild: + Add support for USE=gnutls #243072. + +*wine-1.1.7 (24 Oct 2008) + + 24 Oct 2008; Mike Frysinger +wine-1.1.7.ebuild: + Version bump. + +*wine-1.0.1 (17 Oct 2008) + + 17 Oct 2008; Mike Frysinger +wine-1.0.1.ebuild: + Version bump. + +*wine-1.1.6 (10 Oct 2008) + + 10 Oct 2008; Mike Frysinger +wine-1.1.6.ebuild: + Version bump. + +*wine-1.1.5 (19 Sep 2008) + + 19 Sep 2008; Mike Frysinger +wine-1.1.5.ebuild: + Version bump. + + 10 Sep 2008; Peter Volkov + +files/wine-1.1.4-install-fix.patch, wine-1.1.4.ebuild: + Patch from upstream to fix build issue, bug #237011, thank Martin von + Gagern for work. + + 06 Sep 2008; Doug Goldstein metadata.xml: + add some info about the samba USE flag + +*wine-1.1.4 (06 Sep 2008) + + 06 Sep 2008; Mike Frysinger +wine-1.1.4.ebuild: + Version bump. + +*wine-1.1.3 (22 Aug 2008) + + 22 Aug 2008; Mike Frysinger +wine-1.1.3.ebuild: + Version bump. + +*wine-1.1.2 (16 Aug 2008) + + 16 Aug 2008; Mike Frysinger +wine-1.1.2.ebuild: + Version bump. + +*wine-1.1.1 (16 Aug 2008) + + 16 Aug 2008; Mike Frysinger +wine-1.1.1.ebuild: + Version bump. + + 28 Jul 2008; Doug Goldstein metadata.xml: + add GLEP 56 USE flag desc from use.local.desc + +*wine-1.1.0 (27 Jun 2008) + + 27 Jun 2008; Mike Frysinger +wine-1.1.0.ebuild: + Version bump. + +*wine-1.0 (17 Jun 2008) + + 17 Jun 2008; Mike Frysinger +wine-1.0.ebuild: + Version bump. + +*wine-1.0_rc5 (13 Jun 2008) + + 13 Jun 2008; Mike Frysinger +wine-1.0_rc5.ebuild: + Version bump. + +*wine-1.0_rc4 (06 Jun 2008) + + 06 Jun 2008; Mike Frysinger +wine-1.0_rc4.ebuild: + Version bump. + + 02 Jun 2008; Mike Frysinger + +files/wine-1.0_rc3-openssl.patch, wine-1.0_rc3.ebuild: + Add fix from upstream for building with newer openssl #224049. + +*wine-1.0_rc3 (30 May 2008) + + 30 May 2008; Mike Frysinger +wine-1.0_rc3.ebuild: + Version bump. + + 25 May 2008; Mike Frysinger wine-1.0_rc2.ebuild: + Make the amd64 binaries depend on USE=X #223267 by James Pic. + +*wine-1.0_rc2 (24 May 2008) + + 24 May 2008; Mike Frysinger +wine-1.0_rc2.ebuild: + Version bump. + +*wine-1.0_rc1 (10 May 2008) + + 10 May 2008; Mike Frysinger +wine-1.0_rc1.ebuild: + Version bump. + +*wine-0.9.61 (02 May 2008) + + 02 May 2008; Mike Frysinger +wine-0.9.61.ebuild: + Version bump. + + 19 Apr 2008; Mike Frysinger wine-0.9.59.ebuild, + wine-0.9.60.ebuild: + Wine now ships with compiled fonts, so dont need fontforge #216323 by + Giacomo Perale. + +*wine-0.9.60 (18 Apr 2008) + + 18 Apr 2008; Mike Frysinger +wine-0.9.60.ebuild: + Version bump. + +*wine-0.9.59 (04 Apr 2008) + + 04 Apr 2008; Mike Frysinger +wine-0.9.59.ebuild: + Version bump. + +*wine-0.9.58 (22 Mar 2008) + + 22 Mar 2008; Mike Frysinger +wine-0.9.58.ebuild: + Version bump. + +*wine-0.9.57 (08 Mar 2008) + + 08 Mar 2008; Mike Frysinger +wine-0.9.57.ebuild: + Version bump. + + 23 Feb 2008; Mike Frysinger wine-0.9.9.ebuild, + wine-0.9.10.ebuild, wine-0.9.11.ebuild, wine-0.9.12.ebuild, + wine-0.9.13.ebuild, wine-0.9.14.ebuild, wine-0.9.15.ebuild, + wine-0.9.16.ebuild, wine-0.9.17.ebuild, wine-0.9.18.ebuild, + wine-0.9.19.ebuild, wine-0.9.20.ebuild, wine-0.9.21.ebuild, + wine-0.9.22.ebuild, wine-0.9.23.ebuild, wine-0.9.24.ebuild, + wine-0.9.25.ebuild, wine-0.9.26.ebuild, wine-0.9.27.ebuild, + wine-0.9.28.ebuild, wine-0.9.29.ebuild, wine-0.9.30.ebuild, + wine-0.9.31.ebuild, wine-0.9.32.ebuild, wine-0.9.33.ebuild, + wine-0.9.34.ebuild, wine-0.9.35.ebuild, wine-0.9.36.ebuild, + wine-0.9.37.ebuild, wine-0.9.38.ebuild, wine-0.9.39.ebuild, + wine-0.9.40.ebuild, wine-0.9.41.ebuild, wine-0.9.42.ebuild, + wine-0.9.43.ebuild, wine-0.9.44.ebuild, wine-0.9.45.ebuild, + wine-0.9.46.ebuild, wine-0.9.47.ebuild, wine-0.9.48.ebuild, + wine-0.9.49.ebuild, wine-0.9.50.ebuild, wine-0.9.51.ebuild, + wine-0.9.52.ebuild, wine-0.9.53.ebuild, wine-0.9.54.ebuild, + wine-0.9.55.ebuild, wine-0.9.56.ebuild, wine-9999.ebuild: + Move fontforge from RDEPEND to DEPEND as pointed out by Diego. + +*wine-0.9.56 (23 Feb 2008) + + 23 Feb 2008; Mike Frysinger +wine-0.9.56.ebuild: + Version bump. + +*wine-0.9.55 (08 Feb 2008) + + 08 Feb 2008; Mike Frysinger +wine-0.9.55.ebuild: + Version bump. + +*wine-0.9.54 (26 Jan 2008) + + 26 Jan 2008; Mike Frysinger +wine-0.9.54.ebuild: + Version bump. + +*wine-0.9.53 (11 Jan 2008) + + 11 Jan 2008; Mike Frysinger +wine-0.9.53.ebuild: + Version bump. + + 29 Dec 2007; Mike Frysinger wine-0.9.52.ebuild: + Add USE=samba to force lazy people to upgrade their samba #195621 and + auto-install the gecko cab when USE=gecko #197443 by Jacek Caban. + +*wine-0.9.52 (28 Dec 2007) + + 28 Dec 2007; Mike Frysinger +wine-0.9.52.ebuild: + Version bump. + + 22 Dec 2007; Mike Frysinger + +files/wine-0.9.51-valgrind.patch, wine-0.9.51.ebuild: + Fix building with newer valgrinds #202542. + +*wine-0.9.51 (16 Dec 2007) + + 16 Dec 2007; Mike Frysinger +wine-0.9.51.ebuild: + Version bump. + +*wine-0.9.50 (01 Dec 2007) + + 01 Dec 2007; Mike Frysinger +wine-0.9.50.ebuild: + Version bump. + + 20 Nov 2007; Joe Peterson wine-0.9.49.ebuild: + Added ~x86-fbsd keyword + +*wine-0.9.49 (09 Nov 2007) + + 09 Nov 2007; Mike Frysinger +wine-0.9.49.ebuild: + Version bump. + +*wine-0.9.48 (27 Oct 2007) + + 27 Oct 2007; Mike Frysinger +wine-0.9.48.ebuild: + Version bump. + +*wine-0.9.47 (13 Oct 2007) + + 13 Oct 2007; Mike Frysinger +wine-0.9.47.ebuild: + Version bump. + +*wine-0.9.46 (28 Sep 2007) + + 28 Sep 2007; Mike Frysinger +wine-0.9.46.ebuild: + Version bump. + +*wine-0.9.45 (14 Sep 2007) + + 14 Sep 2007; Mike Frysinger +wine-0.9.45.ebuild: + Version bump. + +*wine-0.9.44 (24 Aug 2007) + + 24 Aug 2007; Mike Frysinger +wine-0.9.44.ebuild: + Version bump. + +*wine-0.9.43 (12 Aug 2007) + + 12 Aug 2007; Mike Frysinger +wine-0.9.43.ebuild: + Version bump. + +*wine-0.9.42 (28 Jul 2007) + + 28 Jul 2007; Mike Frysinger +wine-0.9.42.ebuild: + Version bump. + +*wine-0.9.41 (13 Jul 2007) + + 13 Jul 2007; Mike Frysinger +wine-0.9.41.ebuild: + Version bump. + + 09 Jul 2007; Mike Frysinger wine-0.9.40.ebuild: + Make sure alsa-lib is built with USE=midi #183739. + +*wine-0.9.40 (29 Jun 2007) + + 29 Jun 2007; Mike Frysinger +wine-0.9.40.ebuild: + Version bump. + + 24 Jun 2007; Piotr Jaroszyński wine-9999.ebuild, + wine-20050111-r2.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild, wine-20050628.ebuild, + wine-20050725-r1.ebuild, wine-20050830.ebuild, wine-20050930.ebuild: + (QA) Don't use KEYWORDS="-*". bug #160519. + +*wine-0.9.39 (16 Jun 2007) + + 16 Jun 2007; Mike Frysinger +wine-0.9.39.ebuild: + Version bump. + +*wine-0.9.38 (01 Jun 2007) + + 01 Jun 2007; Mike Frysinger +wine-0.9.38.ebuild: + Version bump. + +*wine-0.9.37 (12 May 2007) + + 12 May 2007; Mike Frysinger +wine-0.9.37.ebuild: + Version bump. + + 05 May 2007; Mike Frysinger wine-0.9.34.ebuild, + wine-0.9.35.ebuild, wine-0.9.36.ebuild: + Pull in Xcursor now #177043 by Mart Raudsepp. + +*wine-0.9.36 (30 Apr 2007) + + 30 Apr 2007; Mike Frysinger +wine-0.9.36.ebuild: + Version bump. + + 19 Apr 2007; Mike Frysinger wine-0.9.35.ebuild: + Drop USE=arts #174864 by Christopher Eby. + +*wine-0.9.35 (13 Apr 2007) + + 13 Apr 2007; Mike Frysinger +wine-0.9.35.ebuild: + Version bump. + + 11 Apr 2007; Mike Frysinger + +files/wine-stub-RtlSetTimeZoneInformation.patch, wine-0.9.34.ebuild: + Remove pointless call to settimeofday() #162438. + +*wine-0.9.34 (31 Mar 2007) + + 31 Mar 2007; Mike Frysinger +wine-0.9.34.ebuild: + Version bump. + +*wine-0.9.33 (17 Mar 2007) + + 17 Mar 2007; Mike Frysinger +wine-0.9.33.ebuild: + Version bump #171193 by Nils Kneuper. + + 04 Mar 2007; Mike Frysinger + -files/wine-20041019-alsa-headers.patch, wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-0.9.7.ebuild, wine-0.9.8-r1.ebuild, wine-0.9.9.ebuild, + wine-0.9.10.ebuild, wine-0.9.11.ebuild, wine-0.9.12.ebuild, + wine-0.9.13.ebuild, wine-0.9.14.ebuild, wine-0.9.15.ebuild, + wine-0.9.16.ebuild, wine-0.9.17.ebuild, wine-0.9.18.ebuild, + wine-0.9.19.ebuild, wine-0.9.20.ebuild, wine-0.9.21.ebuild, + wine-0.9.22.ebuild, wine-0.9.23.ebuild, wine-0.9.24.ebuild, + wine-0.9.25.ebuild, wine-0.9.26.ebuild, wine-0.9.27.ebuild, + wine-0.9.28.ebuild, wine-0.9.29.ebuild, wine-0.9.30.ebuild, + wine-0.9.31.ebuild, wine-0.9.32.ebuild, wine-9999.ebuild, + -wine-20041019-r3.ebuild, wine-20050111-r2.ebuild, wine-20050211.ebuild, + wine-20050310-r1.ebuild, wine-20050419.ebuild, wine-20050524.ebuild, + wine-20050628.ebuild, wine-20050725-r1.ebuild, wine-20050830.ebuild, + wine-20050930.ebuild: + Cleanup modular X handling in all ebuilds and cleanup lcms handling #167240. + +*wine-0.9.32 (04 Mar 2007) + + 04 Mar 2007; Mike Frysinger +wine-0.9.32.ebuild: + Version bump. + + 04 Mar 2007; Marius Mauch wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-0.9.7.ebuild, wine-0.9.8-r1.ebuild, wine-0.9.9.ebuild, + wine-0.9.10.ebuild, wine-0.9.11.ebuild, wine-0.9.12.ebuild, + wine-0.9.13.ebuild, wine-0.9.14.ebuild, wine-0.9.15.ebuild, + wine-0.9.16.ebuild, wine-0.9.17.ebuild, wine-0.9.18.ebuild, + wine-0.9.19.ebuild, wine-0.9.20.ebuild, wine-0.9.21.ebuild, + wine-0.9.22.ebuild, wine-0.9.23.ebuild, wine-0.9.24.ebuild, + wine-0.9.25.ebuild, wine-0.9.26.ebuild, wine-0.9.27.ebuild, + wine-0.9.28.ebuild, wine-0.9.29.ebuild, wine-0.9.30.ebuild, + wine-0.9.31.ebuild, wine-9999.ebuild, wine-20050628.ebuild, + wine-20050725-r1.ebuild, wine-20050830.ebuild, wine-20050930.ebuild: + Replacing einfo with elog + +*wine-0.9.31 (17 Feb 2007) + + 17 Feb 2007; Mike Frysinger +wine-0.9.31.ebuild: + Version bump. + + 10 Feb 2007; Mike Frysinger wine-9999.ebuild: + Convert to git #166244 by Ramon Klass. + +*wine-0.9.30 (27 Jan 2007) + + 27 Jan 2007; Mike Frysinger +wine-0.9.30.ebuild: + Version bump #163891 by Nuno Lopes. + +*wine-0.9.29 (09 Jan 2007) + + 09 Jan 2007; Mike Frysinger +wine-0.9.29.ebuild: + Version bump. + + 06 Jan 2007; Mike Frysinger wine-0.9.21.ebuild, + wine-0.9.22.ebuild, wine-0.9.23.ebuild, wine-0.9.24.ebuild, + wine-0.9.25.ebuild, wine-0.9.26.ebuild, wine-0.9.27.ebuild, + wine-0.9.28.ebuild: + Scrub USE=glut and USE=gif from versions that no longer support them #160439 + by Jacek Caban. + + 04 Jan 2007; Mike Frysinger wine-0.9.13.ebuild, + wine-0.9.14.ebuild, wine-0.9.15.ebuild, wine-0.9.16.ebuild, + wine-0.9.17.ebuild, wine-0.9.18.ebuild, wine-0.9.19.ebuild, + wine-0.9.20.ebuild, wine-0.9.21.ebuild, wine-0.9.22.ebuild, + wine-0.9.23.ebuild, wine-0.9.24.ebuild, wine-0.9.25.ebuild, + wine-0.9.26.ebuild, wine-0.9.27.ebuild, wine-0.9.28.ebuild: + Drop USE=debug since it is no longer supported in the source code. + +*wine-0.9.28 (23 Dec 2006) + + 23 Dec 2006; Mike Frysinger +wine-0.9.28.ebuild: + Version bump. + +*wine-0.9.27 (10 Dec 2006) + + 10 Dec 2006; Mike Frysinger +wine-0.9.27.ebuild: + Version bump. + +*wine-0.9.26 (26 Nov 2006) + + 26 Nov 2006; Mike Frysinger +wine-0.9.26.ebuild: + Version bump. + +*wine-0.9.25 (11 Nov 2006) + + 11 Nov 2006; Mike Frysinger +wine-0.9.25.ebuild: + Version bump. + +*wine-0.9.24 (28 Oct 2006) + + 28 Oct 2006; Mike Frysinger +wine-0.9.24.ebuild: + Version bump. + +*wine-0.9.23 (13 Oct 2006) + + 13 Oct 2006; Mike Frysinger +wine-0.9.23.ebuild: + Version bump. + +*wine-0.9.22 (28 Sep 2006) + + 28 Sep 2006; Mike Frysinger +wine-0.9.22.ebuild: + Version bump. + + 14 Sep 2006; Mike Frysinger wine-0.9.19.ebuild, + wine-0.9.20.ebuild, wine-0.9.21.ebuild: + Punt dga stuff as upstream has cut it #147497 by Sascha Geschwandtner. + +*wine-0.9.21 (14 Sep 2006) + + 14 Sep 2006; Mike Frysinger +wine-0.9.21.ebuild: + Version bump #147503 by Markus Giese. + + 06 Sep 2006; Zac Medico wine-0.9.9.ebuild, + wine-0.9.10.ebuild, wine-0.9.11.ebuild, wine-0.9.12.ebuild, + wine-0.9.13.ebuild, wine-0.9.14.ebuild, wine-0.9.15.ebuild, + wine-0.9.16.ebuild, wine-0.9.17.ebuild, wine-0.9.18.ebuild, + wine-0.9.19.ebuild: + Revert stable keywords for bug #146514. + +*wine-0.9.20 (24 Aug 2006) + + 24 Aug 2006; Mike Frysinger +wine-0.9.20.ebuild: + Version bump. + +*wine-0.9.19 (11 Aug 2006) + + 11 Aug 2006; Mike Frysinger +wine-0.9.19.ebuild: + Version bump #143492 by Sterling Christensen. + + 30 Jul 2006; Mike Frysinger wine-0.9.18.ebuild, + wine-9999.ebuild: + Add support for USE=hal/dbus #141532 by Niels van Aert. + +*wine-0.9.18 (30 Jul 2006) + + 30 Jul 2006; Mike Frysinger +wine-0.9.18.ebuild: + Version bump #141901 by David Watzke. + +*wine-0.9.17 (12 Jul 2006) + + 12 Jul 2006; Mike Frysinger +wine-0.9.17.ebuild: + Version bump #140005 by Markus Giese. + + 27 Jun 2006; Mike Frysinger wine-0.9.16.ebuild: + Force truetype support since users dont know what a fontless wine actually + means (it's useless) #137788. + +*wine-0.9.16 (27 Jun 2006) + + 27 Jun 2006; Mike Frysinger +wine-0.9.16.ebuild: + Version bump #137533. + + 20 Jun 2006; Jeremy Huddleston wine-0.9.15.ebuild: + Fixes for bug #128772. + +*wine-0.9.15 (09 Jun 2006) + + 09 Jun 2006; Mike Frysinger +wine-0.9.15.ebuild: + Version bump #136125 by Arthur Koziel. + +*wine-0.9.14 (25 May 2006) + + 25 May 2006; Mike Frysinger +wine-0.9.14.ebuild: + Version bump. + +*wine-0.9.13 (12 May 2006) + + 12 May 2006; Mike Frysinger +wine-0.9.13.ebuild: + Version bump. + + 27 Apr 2006; Marien Zwart files/digest-wine-0.9, + files/digest-wine-0.9.1, files/digest-wine-0.9.2, files/digest-wine-0.9.3, + files/digest-wine-0.9.4, files/digest-wine-0.9.5-r1, + files/digest-wine-0.9.6, files/digest-wine-9999, + files/digest-wine-20041019-r3, files/digest-wine-20050111-r2, + files/digest-wine-20050211, files/digest-wine-20050310-r1, + files/digest-wine-20050419, files/digest-wine-20050524, + files/digest-wine-20050628, files/digest-wine-20050725-r1, + files/digest-wine-20050830, files/digest-wine-20050930, Manifest: + Fixing SHA256 digest for real, pass three... + +*wine-0.9.12 (14 Apr 2006) + + 14 Apr 2006; Mike Frysinger +wine-0.9.12.ebuild: + Version bump #129896 by toto. + + 14 Apr 2006; Mike Frysinger + +files/wine-0.9.11-winegcc-short-libnames.patch, wine-0.9.11.ebuild: + Grab patch from upstream for amd64 build fix #129557 by Andrew Dorney. + + 02 Apr 2006; Mike Frysinger wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-0.9.7.ebuild, wine-0.9.8-r1.ebuild, wine-0.9.9.ebuild, + wine-0.9.10.ebuild, wine-0.9.11.ebuild, wine-9999.ebuild, + wine-20050930.ebuild: + Change USE=xml2 to USE=xml #116346. + +*wine-0.9.11 (01 Apr 2006) + + 01 Apr 2006; Mike Frysinger +wine-0.9.11.ebuild: + Version bump #128394 by toto. + +*wine-0.9.10 (16 Mar 2006) + + 16 Mar 2006; Mike Frysinger +wine-0.9.10.ebuild: + Version bump. + + 09 Mar 2006; Mike Frysinger wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-0.9.7.ebuild, wine-0.9.8-r1.ebuild, wine-0.9.9.ebuild, + wine-9999.ebuild, wine-20041019-r3.ebuild, wine-20050111-r2.ebuild, + wine-20050211.ebuild, wine-20050310-r1.ebuild, wine-20050419.ebuild, + wine-20050524.ebuild, wine-20050628.ebuild, wine-20050725-r1.ebuild, + wine-20050830.ebuild, wine-20050930.ebuild: + Depend on fontforge when USE=truetype so we can build the default fonts. + + 06 Mar 2006; Mike Frysinger + +files/wine-0.9.9-flex.patch, wine-0.9.8-r1.ebuild, wine-0.9.9.ebuild: + Fix build errors with newer flex #124084. + +*wine-0.9.9 (03 Mar 2006) + + 03 Mar 2006; Mike Frysinger +wine-0.9.9.ebuild: + Version bump. + +*wine-0.9.8-r1 (18 Feb 2006) + + 18 Feb 2006; Mike Frysinger +wine-0.9.8-r1.ebuild: + Drop the DESTDIR patch since it isnt correct. + +*wine-0.9.8 (16 Feb 2006) + + 16 Feb 2006; Mike Frysinger + +files/wine-0.9.8-destdir.patch, +wine-0.9.8.ebuild: + Version bump. + + 05 Feb 2006; Simon Stelling wine-0.9.5-r1.ebuild, + wine-0.9.7.ebuild, wine-9999.ebuild: + remove old 2004.3 multilib checks + +*wine-0.9.7 (03 Feb 2006) + + 03 Feb 2006; Mike Frysinger + +files/wine-gentoo-no-ssp.patch, +wine-0.9.7.ebuild: + Version bump. + + 27 Jan 2006; Mike Frysinger wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-20041019-r3.ebuild, wine-20050111-r2.ebuild, wine-20050211.ebuild, + wine-20050310-r1.ebuild, wine-20050419.ebuild, wine-20050930.ebuild: + Add the winegcc -m32/-m64 patch back in to all versions since it is now in + upstream (and it fixes #110795). + + 27 Jan 2006; Mike Frysinger + -files/wine-20041019-no-stack.patch, +files/wine-no-ssp.patch, + wine-0.9.ebuild, wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5-r1.ebuild, wine-0.9.6.ebuild, + wine-9999.ebuild, wine-20041019-r3.ebuild, wine-20050111-r2.ebuild, + wine-20050211.ebuild, wine-20050310-r1.ebuild, wine-20050419.ebuild, + wine-20050524.ebuild, wine-20050628.ebuild, wine-20050725-r1.ebuild, + wine-20050830.ebuild, wine-20050930.ebuild: + Update the SSP patch with the version now in upstream. + + 25 Jan 2006; Mike Frysinger + +files/wine-0.9.6-force-ddraw-gamma.patch, wine-0.9.6.ebuild: + Add patch to fix DirectDrawGammaControl errors #119931 by David. + +*wine-0.9.6 (20 Jan 2006) + + 20 Jan 2006; Mike Frysinger +wine-0.9.6.ebuild: + Version bump. + +*wine-0.9.5-r1 (15 Jan 2006) + + 15 Jan 2006; Mike Frysinger -wine-0.9.5.ebuild, + +wine-0.9.5-r1.ebuild: + Rev bump for security #118101. + + 14 Jan 2006; Mike Frysinger wine-20041019-r3.ebuild, + wine-20050111-r2.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild, wine-20050628.ebuild, + wine-20050725-r1.ebuild, wine-20050830.ebuild, wine-20050930.ebuild: + Move to -* so people upgrade to 0.9.x and make sure we actually apply the + wmf patch for #118101. + + 08 Jan 2006; Mike Frysinger +files/wine-wmf.patch, + wine-0.9.ebuild, wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-0.9.5.ebuild, wine-20041019-r3.ebuild, + wine-20050111-r2.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild, wine-20050628.ebuild, + wine-20050725-r1.ebuild, wine-20050830.ebuild, wine-20050930.ebuild: + Add upstream patch for WMF exploit #118101 and make sure all ebuilds support + modular X. + +*wine-0.9.5 (05 Jan 2006) + + 05 Jan 2006; Mike Frysinger +wine-0.9.5.ebuild: + Version bump #117871 by Stephan. + + 05 Jan 2006; Mike Frysinger wine-0.9.ebuild, + wine-0.9.1.ebuild, wine-0.9.2.ebuild, wine-0.9.3.ebuild, + wine-0.9.4.ebuild, wine-9999.ebuild, wine-20041019-r3.ebuild, + wine-20050111-r2.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild, wine-20050628.ebuild, + wine-20050725-r1.ebuild, wine-20050830.ebuild, wine-20050930.ebuild: + Dont associate wine with windows executables by default #117785 Dima Ryazanov. + + 25 Dec 2005; Mike Frysinger + +files/wine-0.9.4-null-thread-check.patch, wine-0.9.4.ebuild: + Grab patch from upstream to fix random crashes #116679. + +*wine-0.9.4 (24 Dec 2005) + + 24 Dec 2005; Mike Frysinger +wine-0.9.4.ebuild: + Version bump #116490 by David Watzke. + + 14 Dec 2005; Donnie Berkholz ; wine-0.9.3.ebuild: + (#115225) Add modular X dependencies. + + 14 Dec 2005; Donnie Berkholz ; wine-9999.ebuild, + wine-20050930.ebuild: + (#115225) Add modular X dependencies. + +*wine-0.9.3 (11 Dec 2005) + + 11 Dec 2005; Mike Frysinger +wine-0.9.3.ebuild: + Version bump #115206 by David Watzke. + +*wine-0.9.2 (24 Nov 2005) + + 24 Nov 2005; Mike Frysinger +wine-0.9.2.ebuild: + Version bump. + +*wine-0.9.1 (10 Nov 2005) + + 10 Nov 2005; Mike Frysinger +wine-0.9.1.ebuild: + Version bump. + +*wine-0.9 (25 Oct 2005) + + 25 Oct 2005; Mike Frysinger +wine-0.9.ebuild: + Version bump. + + 03 Oct 2005; Mike Frysinger + +files/wine-20050930-dont-warn-lib-path.patch, + +files/wine-20050930-no-x.patch, wine-20050930.ebuild: + Fix building with USE=-X #107870 by ChazeFroy and dont display library + warning since it is irrelevant for Gentoo users #107971 by Holly Bostick. + + 02 Oct 2005; Mike Frysinger + files/wine-20041019-alsa-headers.patch: + Add patch to fix building with ALSA #107822. + +*wine-20050930 (01 Oct 2005) + + 01 Oct 2005; Mike Frysinger +wine-20050930.ebuild: + Version bump #107746 by rvalles@es.gnu.org. + + 16 Sep 2005; Ciaran McCreesh ChangeLog: + Converted to UTF-8, fixed encoding screwups + +*wine-20050830 (02 Sep 2005) + + 02 Sep 2005; Mike Frysinger + +files/wine-20050830-gcc-32bit.patch, +files/wine-20050830-no-ldap.patch, + +wine-20050830.ebuild: + Version bump #104492 by Martin Nowack. + +*wine-20050725-r1 (24 Aug 2005) +*wine-20050111-r2 (24 Aug 2005) + + 24 Aug 2005; Mike Frysinger -wine-20050111-r1.ebuild, + +wine-20050111-r2.ebuild, -wine-20050725.ebuild, +wine-20050725-r1.ebuild: + Version bump to resolve insecure tempfile usage #101773. + + 23 Aug 2005; Mike Frysinger + +files/wine-cvs-winelauncher-temp.patch, wine-20041019-r3.ebuild, + wine-20050111-r1.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild, wine-20050628.ebuild, + wine-20050725.ebuild: + Add patch from upstream to address insecure tempfile usage #101773. + + 03 Aug 2005; Mike Frysinger + +files/wine-20050725-gcc-32bit.patch, wine-20050524.ebuild, + wine-20050628.ebuild, wine-20050725.ebuild: + Make sure winegcc passes -m32/-m64 along to the linker #100180. + +*wine-20050725 (26 Jul 2005) + + 26 Jul 2005; Mike Frysinger +wine-20050725.ebuild: + Version bump #100277 by ChazeFroy. + + 10 Jul 2005; Mike Frysinger + +files/wine-hangfix-bug2660.patch, wine-20050524.ebuild: + Add patch from upstream cvs to fix some hangs #98156 by Scott Jones. + +*wine-20050628 (10 Jul 2005) + + 10 Jul 2005; Mike Frysinger + +wine-20050628.ebuild: + Version bump #97367 by t35t0r. + + 29 May 2005; Mike Frysinger + +files/wine-20050524-alsa-headers.patch, wine-20041019-r3.ebuild, + wine-20050111-r1.ebuild, wine-20050211.ebuild, wine-20050310-r1.ebuild, + wine-20050419.ebuild, wine-20050524.ebuild: + Re-order ALSA includes so they dont conflict with wine headers #94272 by + Ernst de Haan. + +*wine-20050524 (26 May 2005) + + 26 May 2005; Mike Frysinger +wine-20050524.ebuild: + Version bump #93851 by Rich. + + 08 May 2005; Herbie Hopkins wine-20050419.ebuild: + Bumped amd64 DEPEND, no 32bit libglut in previous xlibs. + + 21 Apr 2005; Herbie Hopkins wine-20050419.ebuild: + Set CC in this version too. + +*wine-20050419 (20 Apr 2005) + + 20 Apr 2005; Mike Frysinger +wine-20050419.ebuild: + Version bump #89795 by Patrizio Bassi. + + 19 Apr 2005; Herbie Hopkins wine-20050310-r1.ebuild: + Set CC=$(tc-getCC) to fix compilation on amd64, bug #88725. + +*wine-20050310-r1 (17 Apr 2005) + + 17 Apr 2005; Mike Frysinger + +files/wine-20050310-upstream-colortable.patch, -wine-20050310.ebuild, + +wine-20050310-r1.ebuild: + Add fix from upstream for X11 driver #88715 by Alan Jones. + +*wine-20050111-r1 (18 Mar 2005) + + 18 Mar 2005; Mike Frysinger + +files/wine-20050111-upstream-registry-fix.patch.bz2, + -wine-20050111.ebuild, +wine-20050111-r1.ebuild: + Add an upstream patch to fix a security issue with information leakage #85387. + +*wine-20050310 (13 Mar 2005) + + 13 Mar 2005; Mike Frysinger +wine-20050310.ebuild: + Version bump #84792. + + 19 Feb 2005; Mike Frysinger + +files/20050211-docs.patch, wine-20050111.ebuild, wine-20050211.ebuild: + Add patch to fix sgml error and pdf/ps misdetection #73458. + +*wine-20050211 (12 Feb 2005) + + 12 Feb 2005; Mike Frysinger +wine-20050211.ebuild: + Version bump #81688 by Rich. + +*wine-20050111 (12 Jan 2005) + + 12 Jan 2005; Mike Frysinger +wine-20050111.ebuild: + Version bump #77655 by Dennis Schridde. + +*wine-20041201 (02 Dec 2004) + + 02 Dec 2004; Mike Frysinger + files/20041019-no-stack.patch, wine-20041019-r3.ebuild, + +wine-20041201.ebuild: + Version bump #73080 by David Guembel. Fix the no-stack-protector patch + #72449 by Malte S. Stretz. Disable maketest (it requires X to be running) + #72375 by Sascha Silbe. + + 09 Nov 2004; Mike Frysinger wine-20041019-r3.ebuild: + USE=lcms support #70520. + +*wine-20041019-r3 (01 Nov 2004) + + 01 Nov 2004; Mike Frysinger +wine-20041019-r3.ebuild: + More clean ups and fixed with a ton of input from Vincent Béron. + +*wine-20041019-r2 (30 Oct 2004) + + 30 Oct 2004; Mike Frysinger -wine-20041019-r1.ebuild, + +wine-20041019-r2.ebuild: + Version bump to fix #69554 / #69543 / others and enhancements by Vincent Béron. + + 27 Oct 2004; Mike Frysinger + +files/20041019-no-stack.patch, wine-20041019-r1.ebuild, + wine-20041019.ebuild: + Filter stack-protector flags on the preloader binary #66002 by vyp08. + +*wine-20041019-r1 (27 Oct 2004) + + 27 Oct 2004; Mike Frysinger + +files/20041019-load-wrappers.patch, +wine-20041019-r1.ebuild: + Version bump to move wine into the normal prefix of things (/usr). The winex + ebuilds have long been punted from portage and the prebuilt solutions from + transgaming come in nicely bundled formats so there wont be any collisions. + Indirectly, we solve #33174 and #43550. Also, update our config files + #59134, make sure the default registry is created properly #58976, and clean + up our wrappers #63376. + +*wine-20041019 (27 Oct 2004) + + 27 Oct 2004; Mike Frysinger +wine-20041019.ebuild: + Version bump #68525 and others. Make sure USE flags are obeyed #35482. + + 03 Aug 2004; Martin Holzer wine-20040121.ebuild, + wine-20040213.ebuild, wine-20040309.ebuild, wine-20040408-r1.ebuild, + wine-20040408.ebuild, wine-20040505.ebuild, wine-20040615-r1.ebuild, + wine-20040615.ebuild, wine-20040716.ebuild: + unsetting ldflags. closes 58836 + +*wine-20040716 (19 Jul 2004) + + 19 Jul 2004; Martin Holzer +wine-20040716.ebuild: + Version bumped. + +*wine-20040615-r1 (13 Jul 2004) + + 13 Jul 2004; Martin Holzer +files/scrollbars.diff, + +wine-20040615-r1.ebuild: + adding patch. closes 56701 and 56736 + + 08 Jul 2004; Martin Holzer wine-20040121.ebuild, + wine-20040213.ebuild, wine-20040309.ebuild, wine-20040408-r1.ebuild, + wine-20040408.ebuild, wine-20040505.ebuild, wine-20040615.ebuild: + changing license to lgpl-2.1 closes 55433 + +*wine-20040615 (08 Jul 2004) + + 08 Jul 2004; Martin Holzer +wine-20040615.ebuild: + Version bumped. Closes 54085 + + 29 Jun 2004; Aron Griffis wine-20040121.ebuild, + wine-20040213.ebuild, wine-20040309.ebuild, wine-20040408-r1.ebuild, + wine-20040408.ebuild, wine-20040505.ebuild: + sync IUSE (+X), add sed-4 dep + +*wine-20040505 (29 Jun 2004) + + 29 Jun 2004; Martin Holzer +wine-20040505.ebuild: + Version bumped. Closes 50495 + +*wine-20040408-r1 (28 Jun 2004) + + 28 Jun 2004; Martin Holzer wine-20040408-r1.ebuild: + updating wrapper script. many thx to eGore . closes 47496 + +*wine-20040408 (10 Apr 2004) + + 10 Apr 2004; Martin Holzer wine-20040408.ebuild: + Version bumped. + +*wine-20040309 (10 Mar 2004) + + 10 Mar 2004; Martin Holzer wine-20040309.ebuild: + Version bumped. + + 10 Mar 2004; Martin Holzer wine-20040121.ebuild: + x86 stable + +*wine-20040213 (16 Feb 2004) + + 16 Feb 2004; Martin Holzer wine-20040213.ebuild: + Version bumped. + + 22 Jan 2004; Martin Holzer wine-20031212.ebuild: + x86 stable + +*wine-20040121 (22 Jan 2004) + + 22 Jan 2004; Martin Holzer wine-20040121.ebuild: + Version bumped. Closes 39025 + +*wine-20031212 (15 Dec 2003) + + 15 Dec 2003; Alex Veber wine-20031212.ebuild: + Version Bump + + 15 Dec 2003; Alex Veber wine-20031118-r1.ebuild: + Bump to stable. + + 10 Dec 2003; Martin Holzer wine-20031118-r1.ebuild, + wine-20031016.ebuild, files/wine-alsa.patch: + unstable for unstable. fixing alsa. closes #25904 + +*wine-20031118-r1 (01 Dec 2003) + + 01 Dec 2003; Alex Veber wine-20031118-r1.ebuild, + files/winearts-kdecvs-fix.patch: + revision bump, this fixes #32991, #32226, #31144 + and the long and annoying #31557 yay! :) + +*wine-20031118 (19 Nov 2003) + + 19 Nov 2003; Martin Holzer wine-20031118.ebuild: + Version bumped. + + 08 Nov 2003; Alex Veber wine-20031016.ebuild: + move to stable. + + 19 Oct 2003; Martin Holzer : + digest update. Closes #31434 + +*wine-20031016 (19 Oct 2003) + + 19 Oct 2003; Martin Holzer wine-20031016.ebuild: + Version bumped. Closes #31377. + + 13 Oct 2003; Alex Veber wine-20030911.ebuild: + move to stable. + + 01 Oct 2003; Sergey Kuleshov : + Changed the config file to reflect the changes wine team made in its syntax. + Now all paths should be specified relative to current dir, in our case this is + ~/.wine + +*wine-20030911 (13 Sep 2003) + + 13 Sep 2003; Alex Veber wine-20030618-r1.ebuild, + wine-20030911.ebuild, files/kpp-fix.patch: + a new version plus a cleanup of old ebuilds + + 27 Aug 2003; Alex Veber wine-20030813.ebuild: + move to stable + +*wine-20030813 (15 Aug 2003) + + 15 Aug 2003; Alex Veber wine-20030709.ebuild, + wine-20030813.ebuild: + new version + moved wine-20030709 to x86 + + 12 Jul 2003; Alex Veber wine-20030709.ebuild: + removed the kpp patch, the real fix is to use a native dll + + 12 Jul 2003; Sergey Kuleshov wine-20030618-r1.ebuild: + Bumping wine-20030618-r1 to stable. + +*wine-20030709 (12 Jul 2003) + + 12 Jul 2003; Martin Holzer wine-20030709.ebuild: + Version bumped. + +*wine-20030618-r1 (04 Jul 2003) + + 04 Jul 2003; Alex Veber wine-20030618-r1.ebuild, + files/kpp-fix.patch: + added a patch to fix a bug with kazaa kpp 2.1, thanks to cretin + (cretin@gentoo.org) + + 28 Jun 2003; Alex Veber wine-20030508.ebuild, + wine-20030618.ebuild: + unset C[XX]FLAGS + +*wine-20030618 (26 Jun 2003) + + 26 Jun 2003; Alex Veber wine-20030618.ebuild: + version bump. + + 11 Jun 2003; Stanislav Brabec : + Version 20030411-r1 included back to portage tree (bug #22587). + +*wine-20030508 (11 May 2003) + + 20 May 2003; Stanislav Brabec wine-20030508.ebuild: + Non-blocking solution of bug #20857. + + 13 May 2003; Martin Holzer wine-20030508.ebuild: + Added Blocking DEPEND. Closes #20857 + + 11 May 2003; Martin Holzer wine-20030508.ebuild: + Version bumped. + +*wine-20030411-r1 (16 Apr 2003) + + 16 Apr 2003; Martin Holzer Manifest, + wine-20030411-r1.ebuild, wine-20030411.ebuild, wine-20030411.ebuild: + Installing wine.conf.5 as manpage. Closes #16322. + +*wine-20020411 (11 Apr 2003) + + 15 Apr 2002; Stefan Jones wine-20020411.ebuild : + use strip-flags and remove unset CFLAGS CXXFLAGS + + 12 Apr 2002; Tilman Klar wine-20020411.ebuild : + Tagged this version stable ("x86"). Added support for USE="nptl". + + 11 Apr 2002; Tilman Klar wine-20020411.ebuild, + files/digest-wine-20020411, files/wine-20020411-* : + Added new version of wine (cvs snapshot). This version works with the + new binutils-2.13.90.0.20. + +*wine-* (11 Apr 2003) + + 11 Apr 2002; Tilman Klar wine-2002*, + files/digest-wine-2002*, files/wine-2002* : + Removed all wine versions prior to Jan 2003 from the tree. + + 11 Apr 2002; Tilman Klar wine-20030115.ebuild, + wine-20030219.ebuild, wine-20030318.ebuild, wine-20030408.ebuild : + Updated DEPEND. There were major problems with the new version of + binutils, that's why i made wine depend on <=binutils-2.13.90.0.18-r1. + For further information check bug #19106. + +*wine-20030318 (10 Apr 2003) + + 10 Apr 2003; Tilman Klar wine-20030318.ebuild, + files/digest-wine-20030318 : + Version bump. This should fix the glibc-2.3.2 problems. + +*wine-20030318 (06 Apr 2003) + + 06 Apr 2003; Tilman Klar wine-20030318.ebuild, + files/digest-wine-20030318 : + Version bump. + +*wine-* (01 Apr 2003) + + 01 Apr 2003; phoen][x *.ebuild : + Replaced 'export C{XX}FLAGS=""' with 'unset CFLAGS CXXFLAGS'. + Read bug #17986 for additional information about this. + +*wine-20030219 (27 Feb 2003) + + 27 Feb 2003; Stefan Jones wine-20030219.ebuild: + New version. Added tcltk use flag. + +*wine-20030115 (19 Jan 2003) + + 05 Feb 2003; phoen][x wine-20030115.ebuild: + Modified X dependencies. You can build wine without X now (for commandline + applications) - this closes bug #14651. + + 19 Jan 2003; Luca Barbato : wine-20030115.ebuild + Version bump. + +*wine-20021125 (28 Nov 2002) + + 05 Feb 2003; phoen][x wine-20021125.ebuild: + Modified X dependencies. You can build wine without X now (for commandline + applications) - this closes bug #14651. Put this version into the stable profile. + + 06 Dec 2002; Rodney Rees : changed sparc ~sparc keywords + + 28 Nov 2002; phoen][x wine-20021125.ebuild, ChangeLog, + files/wine-20021125-fake_windows.tar.bz2, files/wine-20021125-misc.tar.bz2 : + Version bump. This closes bug 11296 - thanks to Martin Holzer + . + +*wine-20021031 (04 Nov 2002) + + 08 Nov 2002; phoen][x wine-20021031.ebuild : + Put this ebuild into the stable profile. + + 04 Oct 2002; phoen][x wine-20021031.ebuild, ChangeLog, + files/wine-20021031-fake_windows.tar.bz2, files/wine-20021031-misc.tar.bz2 : + + Bumped to new version. Added Kazaa Lite compatibility to ~/.wine/config. + This closes bug #7568. + +*wine-20021007 (12 Oct 2002) + + 08 Nov 2002; phoen][x wine-20021007.ebuild : + + Put this ebuild into the stable profile. + + 15 Oct 2002; phoen][x wine-20021007.ebuild, ChangeLog, + files/wine-20021007-fake_windows.tar.bz2, files/wine-20021007-misc.tar.bz2 : + + Major rewrite: + - config, regedit-wine and wine are now in a tarball called ${P}-misc.tar.bz2 + - the fake_windows tarball ( ${P}-fake_windows.tar.bz2 ) goes to ${FILESDIR} now + - regedit-wine uses the new bin/regedit instead of bin/regapi ( see bug #9001 ) + - the default config is useful now ( running stuff outta the box should work ) + - the wine wrapper ( /usr/bin/wine ) uses /usr/bin/regedit for the initial + import of winedefault.reg + - using do{ins,bin} over mv/cp + - fixed permissions in /usr/lib/wine/.data + - added lots of comments + + 12 Oct 2002; phoen][x wine-20021007.ebuild, ChangeLog : + + Bumped to new version. + +*wine-20020904-r1 (13 Sep 2002) + + 13 Sep 2002; phoen][x wine-20020904-r1.ebuild, ChangeLog : + + Added manpage installation. This installs the manpage of wine as ${PN}. + Tidied up the ChangeLog. + +*wine-20020904 (09 Sep 2002) + + 09 Sep 2002; phoen][x wine-20020904.ebuild : + + Bumped to new version. + +*wine-20020804 (05 Sep 2002) + + 05 Sep 2002; phoen][x wine-20020804.ebuild : + + Bumped to new version. + Thanks to José Fonseca for the contribution. + This closes bug 7312. + +*wine-20020710-r2 (31 Aug 2002) + + 31 Aug 2002; phoen][x wine-20020710-r2.ebuild : + + New revision. This moves wine to its new location in /usr/lib/wine + in order to make it fhs compliant. Wine is started with "/usr/bin/wine", + which is a wrapper script. "/usr/bin/regedit-wine" imports registry + files into the wine registry. + +*wine-20020710-r1 (18 Jun 2002) + + 02 Aug 2002; Nick Hadaway : + + Updated ebuild to install /etc/wine/config. Closes bug #5821. + + 27 Jul 2002; Nick Hadaway wine-20020710-r1.ebuild : + + Updated ebuild so it installs /usr/wine/bin/regapi. Closes bug #5611. + + 18 Jun 2002; Michael Cohen wine-20020710.ebuild : + + Added ALSA and arts dependencies (Bug #5206 and friends) + +*wine-20020710 (17 Jun 2002) + + 17 Jun 2002; Michael Cohen wine-20020710.ebuild : + + Version bump + +*wine-20020605-r2 (15 Jun 2002) + + 15 Jun 2002; Spider wine-20020605-r2.ebuild : + + the /etc/wine stuff wasn't installed so I fixed that + (seems the source had moved into documentation/samples) + +*wine-20020605-r1 (14 Jun 2002) + + 14 Jun 2002; Dan Armak ChangeLog : + + Split off the documentation because manpage generation takes such a long + time. The docs now live in app-doc/wine-doc. + +*wine-20020605 (07 Jun 2002) + + 07 Jun 2002; Dan Armak : new upstream release + +*wine-20020509 (11 May 2002) + + 11 May 2002; Bart Verwilst : new upstream release, + new reworked ebuilds + +*wine-20020411 (14 Apr 2002) + + 14 Apr 2002; Dan Armak : new upstream release + +*wine-20020310-r1 (29 Mar 2002) + + 29 Mar 2002; Dan Armak : fix bug #1373: disable custom optimizations, + or the resulting wine won't work properly and will make the hardworking folks at #winehq + really really angry + +*wine-20020310 (27 Mar 2002) + + 27 Mar 2002; Seemant Kulleen wine-20020310.ebuild : + + man page/LFH fix submitted by Matthew Kennedy. + + 22 Mar 2002; Dan Armak Add missing /etc/wine/winedefault.reg file. + +*wine-20020310 (12 Mar 2002) + + 12 Mar 2002; Dan Armak Changelog: + + This is the latest upstream snapshot. Upstream changelog: identical to previous + snapshot except for the license change to LGPL. + +*wine-20020228 (5 Mar 2002) + + 5 Mar 2002; Dan Armak Changelog: + + This is the latest snapshot. I've rewritten the ebuild, fixing all known issues, + including the compilation failures. + + Among the fixes are: install into /usr not /opt/wine, compile and install the manpages, + handle the onfig file correctly (there'll be a winesetuptk ebuild sometime soon), and more. + +*wine-20011004-r1 (1 Feb 2002) + + 1 Feb 2002; G.Bevin ChangeLog : + + Added initial ChangeLog which should be updated whenever the package is + updated in any way. This changelog is targetted to users. This means that the + comments should well explained and written in clean English. The details about + writing correct changelogs are explained in the skel.ChangeLog file which you + can find in the root directory of the portage repository. diff --git a/app-emulation/wine/Manifest b/app-emulation/wine/Manifest new file mode 100644 index 00000000..61027a82 --- /dev/null +++ b/app-emulation/wine/Manifest @@ -0,0 +1,10 @@ +AUX acceptex.patch 46857 RMD160 154c2f6ea1c32de52e99d640322d17512aad816a SHA1 49878e892c72c19f9ca12fd9c416dff9f23a235c SHA256 ccbd476a97b7c74956fe906723f029f0c3078768f434680869508dc6107bf31c +AUX dinput.patch 3094 RMD160 05c8550c4a75a77dd4674635a29503c059f0b0fd SHA1 04570397eb182d68fc18b0badca5f9d52977c7df SHA256 b75c2b3e7db47d7221b2fc6065f4fb37807b9a8acf0903519e21d5ec1e1325f6 +AUX revert-ntdll.patch 686 RMD160 ee2ebf8e0af7b7310e70b1f3652ad40f6576232e SHA1 7ba005f9bc22702e5461e22f6a4dc6a032237af1 SHA256 ceeb1e503e8cbe9804b31478997061ba54c77b4966e6407fcc9a49ada49616e8 +AUX schannel.patch 4761 RMD160 191ef5eb1156262fd0bb3092a9214cb3ed04f548 SHA1 01adfd89c1fd7de75651fb7051ff79d10167d64d SHA256 41d1a34b69d6d1cdff80ab8e7e267385de3334af0fbff84393bc827a56ba632a +AUX wine-1.1.15-winegcc.patch 1550 RMD160 086fbdd7dbe5da98c3457f00cb30705150d58b1f SHA1 0aa5a9d0947e15af9fe103797a0c993cbb3eedab SHA256 fcf4a0578774d817b8de094abae85e370683a77805a59efe6c5f7b8b87935de9 +DIST wine-1.1.26.tar.bz2 15666433 RMD160 7949d7abbb62ee1db23940e348a5f9dc4a74fd4d SHA1 d39314e002c540d1852d10124473513cfb857dfd SHA256 0285b346ca7af8def0773cece1e9b01f47e7340577d6c780cd38863c948a1f5a +DIST wine_gecko-0.9.1.cab 7806837 RMD160 8b16a4d065cd28d87a2e226400fa0a3ed600c2f1 SHA1 9a49fc691740596517e381b47096a4bdf19a87d8 SHA256 76345852b844c4b624a1beaf3f47f261ad956dbee97316ea26b3c587b363be84 +EBUILD wine-1.1.26.ebuild 3590 RMD160 ab167fad7e4629dd5ba9eef16083070a977d2824 SHA1 60e31508a7e915064e3ce4270b084a4ae24be52e SHA256 df22d1d1c91fc5a200f1795b0eb607a0a72e9d141d7f26fde64b12b7af170e8e +MISC ChangeLog 46467 RMD160 898b3d7fa7f8d8e0f9268e3598112fbc21aacb97 SHA1 71a2cf14877b6713dfdcfe02fdf17c14a0b7049d SHA256 eafa6ca2d3d5c67dfbfc3f55dc6742a89ee853a1ccf51b4afbbe8ae008309940 +MISC metadata.xml 1123 RMD160 168b7d83724ac65a23a10ad8bbe04d4dee180f6f SHA1 f8bb8f4eb1e4dab230f9f8d8b87fe04c6e638334 SHA256 eeee6aabb900286b05e81427597d143fb5fe74cc9b503d58464abd2534eaa569 diff --git a/app-emulation/wine/files/acceptex.patch b/app-emulation/wine/files/acceptex.patch new file mode 100644 index 00000000..4e0671be --- /dev/null +++ b/app-emulation/wine/files/acceptex.patch @@ -0,0 +1,1173 @@ +diff --git a/dlls/mswsock/mswsock.spec b/dlls/mswsock/mswsock.spec +index 1f2bd78..c0814fb 100644 (file) +--- a/dlls/mswsock/mswsock.spec ++++ b/dlls/mswsock/mswsock.spec +@@ -1,7 +1,7 @@ +-@ stdcall AcceptEx(long long ptr long long long ptr ptr) ++@ stdcall AcceptEx(long long ptr long long long ptr ptr) ws2_32.AcceptEx + @ stdcall EnumProtocolsA(ptr ptr ptr) ws2_32.WSAEnumProtocolsA + @ stdcall EnumProtocolsW(ptr ptr ptr) ws2_32.WSAEnumProtocolsW +-@ stdcall GetAcceptExSockaddrs(ptr long long long ptr ptr ptr ptr) ++@ stdcall GetAcceptExSockaddrs(ptr long long long ptr ptr ptr ptr) ws2_32.GetAcceptExSockaddrs + @ stub GetAddressByNameA + @ stub GetAddressByNameW + @ stub GetNameByTypeA +diff --git a/dlls/ws2_32/socket.c b/dlls/ws2_32/socket.c +index 96be7ca..aa73f64 100644 (file) +--- a/dlls/ws2_32/socket.c ++++ b/dlls/ws2_32/socket.c +@@ -196,6 +196,15 @@ typedef struct ws2_async + { + int val; /* for send operations */ + int *ptr; /* for recv operations */ ++ struct /* for accept operation */ ++ { ++ SOCKET s_accept; /* socket to use as connection socket */ ++ PVOID buf; /* buffer to write data to */ ++ int data_len; ++ int local_len; ++ int remote_len; ++ DWORD *recvd; ++ } acpt; + } addrlen; + DWORD flags; + unsigned int n_iovecs; +@@ -241,6 +250,8 @@ static FARPROC blocking_hook = (FARPROC)WSA_DefaultBlockingHook; + static struct WS_hostent *WS_dup_he(const struct hostent* p_he); + static struct WS_protoent *WS_dup_pe(const struct protoent* p_pe); + static struct WS_servent *WS_dup_se(const struct servent* p_se); ++static void WS_AddCompletion( SOCKET sock, ULONG_PTR CompletionValue, NTSTATUS CompletionStatus, ULONG Information ); ++ + + int WSAIOCTL_GetInterfaceCount(void); + int WSAIOCTL_GetInterfaceName(int intNumber, char *intName); +@@ -1070,6 +1081,244 @@ static void WINAPI ws2_async_apc( void *arg, IO_STATUS_BLOCK *iosb, ULONG reserv + wsa->flags ); + HeapFree( GetProcessHeap(), 0, wsa ); + } ++/*********************************************************************** ++ * WS2_acceptex_data (INTERNAL) ++ * ++ * This function is used to place the ipaddresses in the buffer. ++ */ ++static void WS2_acceptex_data( char* buf, int local_len, int remote_len, int data_len, SOCKET s ) ++{ ++ int len; ++ buf = buf+data_len; ++ len = local_len - sizeof(int); ++ WS_getpeername(s,(struct WS_sockaddr*)(buf+sizeof(int)),&len); ++ *(int*)buf = len; ++ buf += local_len; ++ len = remote_len - sizeof(int); ++ WS_getsockname(s,(struct WS_sockaddr*)(buf+sizeof(int)),&len); ++ *(int*)buf = len; ++} ++/*********************************************************************** ++ * WS2_async_accept (INTERNAL) ++ * ++ * This is the function called to satisfy the AcceptEx callback ++ */ ++static NTSTATUS WINAPI WS2_async_accept( void *arg, IO_STATUS_BLOCK *iosb, NTSTATUS status ) ++{ ++ ws2_async *wsa = arg; ++ char *buf; ++ if(status != STATUS_ALERTED){ ++ if(status != STATUS_HANDLES_CLOSED) ++ FIXME("Unexpected/Unhandeled status Message= %x \n",status); ++ } ++ TRACE("status Message= %x listen: %lx, accept: %lx\n",status, HANDLE2SOCKET(wsa->hSocket),wsa->addrlen.acpt.s_accept); ++ if(status == STATUS_HANDLES_CLOSED){ ++ wsa->user_overlapped->Internal = status; ++ wsa->user_overlapped->InternalHigh = 0; ++ iosb->u.Status = status; ++ iosb->Information = 0; ++ return status; ++ } ++ SERVER_START_REQ( accept_socket ) ++ { ++ req->lhandle = wsa->hSocket; ++ req->ahandle = SOCKET2HANDLE(wsa->addrlen.acpt.s_accept); ++ req->access = GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE; ++ req->attributes = OBJ_INHERIT; ++ status = wine_server_call( req ); ++ } ++ SERVER_END_REQ; ++ if(status != STATUS_SUCCESS){ ++ FIXME("error in getting socket. socket: %lx, status: %x\n",wsa->addrlen.acpt.s_accept,status); ++ wsa->user_overlapped->Internal = status; ++ wsa->user_overlapped->InternalHigh = 0; ++ iosb->u.Status = status; ++ iosb->Information = 0; ++ return status; ++ } ++ /*We now have a connected socket. pull data in/write info to buffer*/ ++ buf = (char*)wsa->addrlen.acpt.buf; ++ WS2_acceptex_data( buf, wsa->addrlen.acpt.local_len, wsa->addrlen.acpt.remote_len,wsa->addrlen.acpt.data_len, wsa->addrlen.acpt.s_accept ); ++ /*socket address information is written. next pull in data.*/ ++ /*we don't pull in data yet... */ ++ wsa->addrlen.acpt.recvd = 0; ++ wsa->user_overlapped->Internal = status; ++ wsa->user_overlapped->InternalHigh = 0; ++ iosb->u.Status = status; ++ iosb->Information = 0; ++ ++ HeapFree( GetProcessHeap(), 0, wsa ); ++ return status; ++ ++} ++ ++/*********************************************************************** ++ * AcceptEx (ws2_32.@) ++ * ++ * Accept a new connection, retrieving the connected addresses and initial data. ++ * ++ * listener [I] Listening socket ++ * acceptor [I] Socket to accept on ++ * dest [O] Destination for inital data ++ * dest_len [I] Size of dest in bytes ++ * local_addr_len [I] Number of bytes reserved in dest for local addrress ++ * rem_addr_len [I] Number of bytes reserved in dest for remote addrress ++ * received [O] Destination for number of bytes of initial data ++ * overlapped [I] For asynchronous execution ++ * ++ * RETURNS ++ * Success: TRUE (We always return false because its simple) ++ * Failure: FALSE. Use WSAGetLastError() for details of the error. ++ */ ++BOOL WINAPI AcceptEx(SOCKET listener, SOCKET acceptor, PVOID dest, DWORD dest_len, ++ DWORD local_addr_len, DWORD rem_addr_len, LPDWORD received, ++ LPOVERLAPPED overlapped) ++{ ++ DWORD status; ++ struct ws2_async *wsa; ++ IO_STATUS_BLOCK *iosb; ++ char *buf = (char*) dest; ++ TRACE("listen: %lx, accept: %lx\n",listener,acceptor); ++ if(overlapped == NULL){ ++ set_error(STATUS_INVALID_PARAMETER); ++ return FALSE; ++ } ++ if(dest_len !=0){ ++ FIXME("AcceptEx does not support reciving data yet\n"); ++ dest_len = 0; ++ } ++ ++ SERVER_START_REQ( accept_socket ) ++ { ++ req->lhandle = SOCKET2HANDLE(listener); ++ req->ahandle = SOCKET2HANDLE(acceptor); ++ req->access = GENERIC_READ|GENERIC_WRITE|SYNCHRONIZE; ++ req->attributes = OBJ_INHERIT; ++ status = wine_server_call( req ); ++ } ++ SERVER_END_REQ; ++ ++ if (STATUS_SUCCESS == status) ++ { ++ buf = buf+dest_len; ++ WS2_acceptex_data( buf, local_addr_len, rem_addr_len, dest_len, acceptor ); ++ *received = 0; ++ overlapped->Internal = status; ++ overlapped->InternalHigh = 0; ++ WS_AddCompletion( listener , (ULONG_PTR)overlapped, STATUS_SUCCESS, 0); ++ set_error(STATUS_PENDING); ++ return FALSE; ++ } ++ ++ wsa = HeapAlloc( GetProcessHeap(), 0, sizeof(*wsa) ); ++ iosb = HeapAlloc( GetProcessHeap(), 0, sizeof(*iosb) ); ++ if(!wsa || !iosb){ ++ set_error(ERROR_NOT_ENOUGH_MEMORY); ++ return FALSE; ++ } ++ ++ ++ /*Setup the internal data structures!*/ ++ overlapped->Internal = STATUS_PENDING; ++ overlapped->InternalHigh = 0; ++ /*Do we need the following? Maybe...*/ ++ iosb = &wsa->local_iosb; ++ iosb->u.Status = STATUS_PENDING; ++ iosb->Information = 0; ++ ++ ++ wsa->hSocket = SOCKET2HANDLE(listener); ++ wsa->flags = 0; ++ wsa->user_overlapped = overlapped; ++ wsa->addrlen.acpt.s_accept = acceptor; ++ wsa->addrlen.acpt.buf = dest; ++ wsa->addrlen.acpt.data_len = dest_len; ++ wsa->addrlen.acpt.local_len = local_addr_len; ++ wsa->addrlen.acpt.remote_len = rem_addr_len; ++ wsa->addrlen.acpt.recvd = received; ++ ++ SERVER_START_REQ( set_socket_listener ) ++ { ++ req->handle = SOCKET2HANDLE(acceptor); ++ req->hListen = SOCKET2HANDLE(listener); ++ status = wine_server_call( req ); ++ } ++ SERVER_END_REQ; ++ if(status != STATUS_SUCCESS){ ++ FIXME("error setting socket listener\n"); ++ } ++ ++ SERVER_START_REQ( register_async_l ) ++ { ++ req->handle = wsa->hSocket; ++ req->type = ASYNC_TYPE_READ; ++ req->locator = SOCKET2HANDLE(acceptor); ++ req->async.callback = WS2_async_accept; ++ req->async.iosb = iosb; ++ req->async.arg = wsa; ++ req->async.event = overlapped->hEvent; ++ req->async.cvalue = (ULONG_PTR)overlapped; ++ status = wine_server_call( req ); ++ } ++ SERVER_END_REQ; ++ ++ if(status != STATUS_PENDING){ ++ HeapFree( GetProcessHeap(), 0, wsa ); ++ HeapFree( GetProcessHeap(), 0, iosb ); ++ set_error(status); ++ return FALSE; ++ } ++ set_error(STATUS_PENDING); ++ return FALSE; ++} ++ ++/*********************************************************************** ++ * GetAcceptExSockaddrs (WS2_32.@) ++ * ++ * Get infomation about an accepted socket. ++ * ++ * _buf [O] Destination for the first block of data from AcceptEx() ++ * data_size [I] length of data in bytes ++ * local_size [I] Bytes reserved for local addrinfo ++ * remote_size [I] Bytes reserved for remote addrinfo ++ * local_addr [O] Destination for local sockaddr ++ * local_addr_len [I] Size of local_addr ++ * remote_addr [O] Destination for remote sockaddr ++ * remote_addr_len [I] Size of rem_addr ++ * ++ * RETURNS ++ * Nothing. ++ */ ++VOID WINAPI GetAcceptExSockaddrs( PVOID _buf, DWORD data_size, DWORD local_size, DWORD remote_size, ++ struct sockaddr ** local_addr, LPINT local_addr_len, struct sockaddr ** remote_addr, LPINT remote_addr_len) ++{ ++ int len; ++ char *buf = _buf; ++ ++ TRACE("buf=%p, data_size=%d, local_size=%d, remote_size=%d, local_addr=%p (%p), remote_addr=%p (%p)\n", buf, data_size, local_size, remote_size, ++ local_addr, local_addr_len, remote_addr, remote_addr_len ); ++ ++ buf += data_size; ++ if (local_size) ++ { ++ len = *(int*)buf; ++ *local_addr_len = len; ++ *local_addr = (struct sockaddr*)(buf+sizeof(int)); ++ buf += local_size; ++ TRACE("local %d bytes to %p\n", len, local_addr); ++ } ++ else ++ *local_addr_len = 0; ++ if (remote_size) ++ { ++ len = *(int*)buf; ++ *remote_addr_len = len; ++ *remote_addr = (struct sockaddr*)(buf+sizeof(int)); ++ TRACE("remote %d bytes to %p\n", len, remote_addr); ++ } ++ else ++ *remote_addr_len = 0; ++} + + /*********************************************************************** + * WS2_recv (INTERNAL) +diff --git a/dlls/ws2_32/ws2_32.spec b/dlls/ws2_32/ws2_32.spec +index a77c215..2e20d38 100644 (file) +--- a/dlls/ws2_32/ws2_32.spec ++++ b/dlls/ws2_32/ws2_32.spec +@@ -119,3 +119,5 @@ + @ stdcall getaddrinfo(str str ptr ptr) WS_getaddrinfo + @ stdcall getnameinfo(ptr long ptr long ptr long long) WS_getnameinfo + @ stdcall inet_ntop(long ptr ptr long) WS_inet_ntop ++@ stdcall AcceptEx(long long ptr long long long ptr ptr) ++@ stdcall GetAcceptExSockaddrs(ptr long long long ptr ptr ptr ptr) +diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h +index c7566ea..9d3deef 100644 (file) +--- a/include/wine/server_protocol.h ++++ b/include/wine/server_protocol.h +@@ -47,7 +47,7 @@ struct reply_header + + struct request_max_size + { +- int pad[16]; ++ int pad[20]; + }; + + #define FIRST_USER_HANDLE 0x0020 +@@ -1274,6 +1274,7 @@ struct accept_socket_request + { + struct request_header __header; + obj_handle_t lhandle; ++ obj_handle_t ahandle; + unsigned int access; + unsigned int attributes; + }; +@@ -1301,6 +1302,18 @@ struct set_socket_event_reply + }; + + ++struct set_socket_listener_request ++{ ++ struct request_header __header; ++ obj_handle_t handle; ++ obj_handle_t hListen; ++ char __pad_20[4]; ++}; ++struct set_socket_listener_reply ++{ ++ struct reply_header __header; ++}; ++ + + struct get_socket_event_request + { +@@ -2849,6 +2862,21 @@ struct register_async_reply + { + struct reply_header __header; + }; ++ ++struct register_async_l_request ++{ ++ struct request_header __header; ++ obj_handle_t handle; ++ int type; ++ int count; ++ obj_handle_t locator; ++ char __pad_28[4]; ++ async_data_t async; ++}; ++struct register_async_l_reply ++{ ++ struct reply_header __header; ++}; + #define ASYNC_TYPE_READ 0x01 + #define ASYNC_TYPE_WRITE 0x02 + #define ASYNC_TYPE_WAIT 0x03 +@@ -4628,6 +4656,7 @@ enum request + REQ_create_socket, + REQ_accept_socket, + REQ_set_socket_event, ++ REQ_set_socket_listener, + REQ_get_socket_event, + REQ_enable_socket_event, + REQ_set_socket_deferred, +@@ -4718,6 +4747,7 @@ enum request + REQ_get_serial_info, + REQ_set_serial_info, + REQ_register_async, ++ REQ_register_async_l, + REQ_cancel_async, + REQ_ioctl, + REQ_get_ioctl_result, +@@ -4873,6 +4903,7 @@ union generic_request + struct create_socket_request create_socket_request; + struct accept_socket_request accept_socket_request; + struct set_socket_event_request set_socket_event_request; ++ struct set_socket_listener_request set_socket_listener_request; + struct get_socket_event_request get_socket_event_request; + struct enable_socket_event_request enable_socket_event_request; + struct set_socket_deferred_request set_socket_deferred_request; +@@ -4963,6 +4994,7 @@ union generic_request + struct get_serial_info_request get_serial_info_request; + struct set_serial_info_request set_serial_info_request; + struct register_async_request register_async_request; ++ struct register_async_l_request register_async_l_request; + struct cancel_async_request cancel_async_request; + struct ioctl_request ioctl_request; + struct get_ioctl_result_request get_ioctl_result_request; +@@ -5116,6 +5148,7 @@ union generic_reply + struct create_socket_reply create_socket_reply; + struct accept_socket_reply accept_socket_reply; + struct set_socket_event_reply set_socket_event_reply; ++ struct set_socket_listener_reply set_socket_listener_reply; + struct get_socket_event_reply get_socket_event_reply; + struct enable_socket_event_reply enable_socket_event_reply; + struct set_socket_deferred_reply set_socket_deferred_reply; +@@ -5206,6 +5239,7 @@ union generic_reply + struct get_serial_info_reply get_serial_info_reply; + struct set_serial_info_reply set_serial_info_reply; + struct register_async_reply register_async_reply; ++ struct register_async_l_reply register_async_l_reply; + struct cancel_async_reply cancel_async_reply; + struct ioctl_reply ioctl_reply; + struct get_ioctl_result_reply get_ioctl_result_reply; +diff --git a/server/async.c b/server/async.c +index 91f0c44..c30d740 100644 (file) +--- a/server/async.c ++++ b/server/async.c +@@ -45,6 +45,7 @@ struct async + struct completion *completion; + apc_param_t comp_key; + async_data_t data; /* data for async I/O call */ ++ obj_handle_t locator; /* handle used to locate this async */ + }; + + static void async_dump( struct object *obj, int verbose ); +@@ -117,7 +118,6 @@ static void async_destroy( struct object *obj ) + { + struct async *async = (struct async *)obj; + assert( obj->ops == &async_ops ); +- + list_remove( &async->queue_entry ); + async_reselect( async ); + +@@ -192,6 +192,7 @@ void free_async_queue( struct async_queue *queue ) + release_object( queue ); + } + ++ + /* create an async on a given queue of a fd */ + struct async *create_async( struct thread *thread, struct async_queue *queue, const async_data_t *data ) + { +@@ -214,6 +215,7 @@ struct async *create_async( struct thread *thread, struct async_queue *queue, co + async->timeout = NULL; + async->queue = (struct async_queue *)grab_object( queue ); + async->completion = NULL; ++ async->locator = 0; + if (queue->fd) async->completion = fd_get_completion( queue->fd, &async->comp_key ); + + list_add_tail( &queue->queue, &async->queue_entry ); +@@ -224,6 +226,15 @@ struct async *create_async( struct thread *thread, struct async_queue *queue, co + return async; + } + ++/* create an async that you can locate later */ ++struct async *create_async_l( struct thread *thread, struct async_queue *queue, const async_data_t *data, obj_handle_t l ) ++{ ++ struct async *out; ++ out = create_async(thread,queue,data); ++ out->locator = l; ++ return out; ++} ++ + /* set the timeout of an async operation */ + void async_set_timeout( struct async *async, timeout_t timeout, unsigned int status ) + { +@@ -279,26 +290,44 @@ void async_set_result( struct object *obj, unsigned int status, unsigned int tot + /* check if an async operation is waiting to be alerted */ + int async_waiting( struct async_queue *queue ) + { +- struct list *ptr; ++ struct list *ptr,*next; + struct async *async; + + if (!queue) return 0; + if (!(ptr = list_head( &queue->queue ))) return 0; +- async = LIST_ENTRY( ptr, struct async, queue_entry ); +- return async->status == STATUS_PENDING; ++ LIST_FOR_EACH_SAFE( ptr, next, &queue->queue ) ++ { ++ async = LIST_ENTRY( ptr, struct async, queue_entry ); ++ if(async->status == STATUS_PENDING) ++ { /*something is pending*/ ++ return TRUE; ++ } ++ } ++ return FALSE; /*nothing is pending*/ + } + +-/* wake up async operations on the queue */ +-void async_wake_up( struct async_queue *queue, unsigned int status ) ++/* wakes up specific async operations on the queue */ ++void async_wake_up_l( struct async_queue *queue, unsigned int status, obj_handle_t l ) + { + struct list *ptr, *next; +- + if (!queue) return; +- + LIST_FOR_EACH_SAFE( ptr, next, &queue->queue ) + { + struct async *async = LIST_ENTRY( ptr, struct async, queue_entry ); +- async_terminate( async, status ); ++ if( (async->locator == l || 0 == l) && /*step one. are we locating?*/ ++ (((status == STATUS_ALERTED) && (async->status != STATUS_ALERTED)) || /*don't alert one thats already alerted*/ ++ (status != STATUS_ALERTED)) ) /*if we aren't alerting, notify everything*/ ++ { ++ async_terminate( async, status ); + if (status == STATUS_ALERTED) break; /* only wake up the first one */ ++ } + } + } ++ ++/* wake up async operations on the queue */ ++void async_wake_up( struct async_queue *queue, unsigned int status ) ++{ ++ async_wake_up_l(queue,status,0); ++} ++ ++ +diff --git a/server/fd.c b/server/fd.c +index a57001a..b94d5a8 100644 (file) +--- a/server/fd.c ++++ b/server/fd.c +@@ -1863,6 +1863,7 @@ void default_fd_cancel_async( struct fd *fd ) + async_wake_up( fd->wait_q, STATUS_CANCELLED ); + } + ++ + /* default flush() routine */ + void no_flush( struct fd *fd, struct event **event ) + { +@@ -2060,6 +2061,32 @@ DECL_HANDLER(register_async) + } + } + ++/* create / reschedule an async I/O */ ++DECL_HANDLER(register_async_l) ++{ ++ unsigned int access; ++ struct fd *fd; ++ ++ switch(req->type) ++ { ++ case ASYNC_TYPE_READ: ++ access = FILE_READ_DATA; ++ break; ++ case ASYNC_TYPE_WRITE: ++ access = FILE_WRITE_DATA; ++ break; ++ default: ++ set_error( STATUS_INVALID_PARAMETER ); ++ return; ++ } ++ ++ if ((fd = get_handle_fd_obj( current->process, req->handle, access ))) ++ { ++ if (get_unix_fd( fd ) != -1) fd->fd_ops->queue_async_l( fd, &req->async, req->type, req->count, req->locator ); ++ release_object( fd ); ++ } ++} ++ + /* cancels all async I/O */ + DECL_HANDLER(cancel_async) + { +@@ -2072,6 +2099,7 @@ DECL_HANDLER(cancel_async) + } + } + ++ + /* attach completion object to a fd */ + DECL_HANDLER(set_completion_info) + { +diff --git a/server/file.h b/server/file.h +index aef40f7..74b2548 100644 (file) +--- a/server/file.h ++++ b/server/file.h +@@ -47,6 +47,9 @@ struct fd_ops + void (*reselect_async)( struct fd *, struct async_queue *queue ); + /* cancel an async operation */ + void (*cancel_async)(struct fd *); ++ /* queue a locatable async operation */ ++ void (*queue_async_l)(struct fd *, const async_data_t *data, int type, int count, obj_handle_t locator); ++ + }; + + /* file descriptor functions */ +@@ -138,12 +141,15 @@ extern struct async_queue *create_async_queue( struct fd *fd ); + extern void free_async_queue( struct async_queue *queue ); + extern struct async *create_async( struct thread *thread, struct async_queue *queue, + const async_data_t *data ); ++extern struct async *create_async_l( struct thread *thread, struct async_queue *queue, ++ const async_data_t *data, obj_handle_t l ); + extern void async_set_timeout( struct async *async, timeout_t timeout, unsigned int status ); + extern void async_set_result( struct object *obj, unsigned int status, + unsigned int total, client_ptr_t apc ); + extern int async_waiting( struct async_queue *queue ); + extern void async_terminate( struct async *async, unsigned int status ); + extern void async_wake_up( struct async_queue *queue, unsigned int status ); ++extern void async_wake_up_l( struct async_queue *queue, unsigned int status, obj_handle_t l ); + extern struct completion *fd_get_completion( struct fd *fd, apc_param_t *p_key ); + extern void fd_copy_completion( struct fd *src, struct fd *dst ); + +diff --git a/server/protocol.def b/server/protocol.def +index e871736..1bbe89e 100644 (file) +--- a/server/protocol.def ++++ b/server/protocol.def +@@ -63,7 +63,7 @@ struct reply_header + /* this is used to construct the generic_request union */ + struct request_max_size + { +- int pad[16]; /* the max request size is 16 ints */ ++ int pad[20]; /* the max request size is 16 ints */ + }; + + #define FIRST_USER_HANDLE 0x0020 /* first possible value for low word of user handle */ +@@ -1041,6 +1041,7 @@ enum server_fd_type + /* Accept a socket */ + @REQ(accept_socket) + obj_handle_t lhandle; /* handle to the listening socket */ ++ obj_handle_t ahandle; /* handle to the accepting socket */ + unsigned int access; /* wanted access rights */ + unsigned int attributes; /* object attributes */ + @REPLY +@@ -1057,6 +1058,11 @@ enum server_fd_type + unsigned int msg; /* message to send */ + @END + ++/* Set socket listener */ ++@REQ(set_socket_listener) ++ obj_handle_t handle; /* handle to the socket */ ++ obj_handle_t hListen; /* handle to the socket listening for connections */ ++@END + + /* Get socket event parameters */ + @REQ(get_socket_event) +@@ -2064,6 +2070,14 @@ enum message_type + async_data_t async; /* async I/O parameters */ + int count; /* count - usually # of bytes to be read/written */ + @END ++/* Create a locatable async I/O */ ++@REQ(register_async_l) ++ obj_handle_t handle; /* handle to comm port, socket or file */ ++ int type; /* type of queue to look after */ ++ int count; /* count - usually # of bytes to be read/written */ ++ obj_handle_t locator; /* used to locate a specific async request later */ ++ async_data_t async; /* async I/O parameters */ ++@END + #define ASYNC_TYPE_READ 0x01 + #define ASYNC_TYPE_WRITE 0x02 + #define ASYNC_TYPE_WAIT 0x03 +diff --git a/server/request.h b/server/request.h +index 4fc3bd6..8e6fe07 100644 (file) +--- a/server/request.h ++++ b/server/request.h +@@ -155,6 +155,7 @@ DECL_HANDLER(unlock_file); + DECL_HANDLER(create_socket); + DECL_HANDLER(accept_socket); + DECL_HANDLER(set_socket_event); ++DECL_HANDLER(set_socket_listener); + DECL_HANDLER(get_socket_event); + DECL_HANDLER(enable_socket_event); + DECL_HANDLER(set_socket_deferred); +@@ -245,6 +246,7 @@ DECL_HANDLER(is_window_hung); + DECL_HANDLER(get_serial_info); + DECL_HANDLER(set_serial_info); + DECL_HANDLER(register_async); ++DECL_HANDLER(register_async_l); + DECL_HANDLER(cancel_async); + DECL_HANDLER(ioctl); + DECL_HANDLER(get_ioctl_result); +@@ -399,6 +401,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] = + (req_handler)req_create_socket, + (req_handler)req_accept_socket, + (req_handler)req_set_socket_event, ++ (req_handler)req_set_socket_listener, + (req_handler)req_get_socket_event, + (req_handler)req_enable_socket_event, + (req_handler)req_set_socket_deferred, +@@ -489,6 +492,7 @@ static const req_handler req_handlers[REQ_NB_REQUESTS] = + (req_handler)req_get_serial_info, + (req_handler)req_set_serial_info, + (req_handler)req_register_async, ++ (req_handler)req_register_async_l, + (req_handler)req_cancel_async, + (req_handler)req_ioctl, + (req_handler)req_get_ioctl_result, +@@ -876,8 +880,9 @@ C_ASSERT( FIELD_OFFSET(struct create_socket_request, flags) == 32 ); + C_ASSERT( FIELD_OFFSET(struct create_socket_reply, handle) == 8 ); + C_ASSERT( sizeof(struct create_socket_reply) == 16 ); + C_ASSERT( FIELD_OFFSET(struct accept_socket_request, lhandle) == 12 ); +-C_ASSERT( FIELD_OFFSET(struct accept_socket_request, access) == 16 ); +-C_ASSERT( FIELD_OFFSET(struct accept_socket_request, attributes) == 20 ); ++C_ASSERT( FIELD_OFFSET(struct accept_socket_request, ahandle) == 16 ); ++C_ASSERT( FIELD_OFFSET(struct accept_socket_request, access) == 20 ); ++C_ASSERT( FIELD_OFFSET(struct accept_socket_request, attributes) == 24 ); + C_ASSERT( FIELD_OFFSET(struct accept_socket_reply, handle) == 8 ); + C_ASSERT( sizeof(struct accept_socket_reply) == 16 ); + C_ASSERT( FIELD_OFFSET(struct set_socket_event_request, handle) == 12 ); +@@ -886,6 +891,9 @@ C_ASSERT( FIELD_OFFSET(struct set_socket_event_request, event) == 20 ); + C_ASSERT( FIELD_OFFSET(struct set_socket_event_request, window) == 24 ); + C_ASSERT( FIELD_OFFSET(struct set_socket_event_request, msg) == 28 ); + C_ASSERT( sizeof(struct set_socket_event_request) == 32 ); ++C_ASSERT( FIELD_OFFSET(struct set_socket_listener_request, handle) == 12 ); ++C_ASSERT( FIELD_OFFSET(struct set_socket_listener_request, hListen) == 16 ); ++C_ASSERT( sizeof(struct set_socket_listener_request) == 24 ); + C_ASSERT( FIELD_OFFSET(struct get_socket_event_request, handle) == 12 ); + C_ASSERT( FIELD_OFFSET(struct get_socket_event_request, service) == 16 ); + C_ASSERT( FIELD_OFFSET(struct get_socket_event_request, c_event) == 20 ); +@@ -1350,6 +1358,12 @@ C_ASSERT( FIELD_OFFSET(struct register_async_request, type) == 12 ); + C_ASSERT( FIELD_OFFSET(struct register_async_request, async) == 16 ); + C_ASSERT( FIELD_OFFSET(struct register_async_request, count) == 56 ); + C_ASSERT( sizeof(struct register_async_request) == 64 ); ++C_ASSERT( FIELD_OFFSET(struct register_async_l_request, handle) == 12 ); ++C_ASSERT( FIELD_OFFSET(struct register_async_l_request, type) == 16 ); ++C_ASSERT( FIELD_OFFSET(struct register_async_l_request, count) == 20 ); ++C_ASSERT( FIELD_OFFSET(struct register_async_l_request, locator) == 24 ); ++C_ASSERT( FIELD_OFFSET(struct register_async_l_request, async) == 32 ); ++C_ASSERT( sizeof(struct register_async_l_request) == 72 ); + C_ASSERT( FIELD_OFFSET(struct cancel_async_request, handle) == 12 ); + C_ASSERT( sizeof(struct cancel_async_request) == 16 ); + C_ASSERT( FIELD_OFFSET(struct ioctl_request, code) == 12 ); +diff --git a/server/sock.c b/server/sock.c +index baaa9df..96ef50a 100644 (file) +--- a/server/sock.c ++++ b/server/sock.c +@@ -85,6 +85,8 @@ struct sock + struct sock *deferred; /* socket that waits for a deferred accept */ + struct async_queue *read_q; /* queue for asynchronous reads */ + struct async_queue *write_q; /* queue for asynchronous writes */ ++ obj_handle_t hListen; /* socket listening for connections for this one */ ++ int incCon; /* number of incomming connect attempts will will try to wake for */ + }; + + static void sock_dump( struct object *obj, int verbose ); +@@ -96,8 +98,12 @@ static int sock_get_poll_events( struct fd *fd ); + static void sock_poll_event( struct fd *fd, int event ); + static enum server_fd_type sock_get_fd_type( struct fd *fd ); + static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count ); ++static void sock_queue_async_l( struct fd *fd, const async_data_t *data, int type, int count, obj_handle_t locator ); + static void sock_reselect_async( struct fd *fd, struct async_queue *queue ); + static void sock_cancel_async( struct fd *fd ); ++static int sock_close_handle( struct object *obj, struct process *process, obj_handle_t handle ); ++static void sock_async_close_l( struct sock *sock, obj_handle_t locator ); ++ + + static int sock_get_error( int err ); + static void sock_set_error(void); +@@ -118,7 +124,7 @@ static const struct object_ops sock_ops = + default_set_sd, /* set_sd */ + no_lookup_name, /* lookup_name */ + no_open_file, /* open_file */ +- fd_close_handle, /* close_handle */ ++ sock_close_handle, /* close_handle */ + sock_destroy /* destroy */ + }; + +@@ -131,7 +137,8 @@ static const struct fd_ops sock_fd_ops = + default_fd_ioctl, /* ioctl */ + sock_queue_async, /* queue_async */ + sock_reselect_async, /* reselect_async */ +- sock_cancel_async /* cancel_async */ ++ sock_cancel_async, /* cancel_async */ ++ sock_queue_async_l /* quque_async_l */ + }; + + +@@ -247,11 +254,15 @@ static void sock_wake_up( struct sock *sock, int pollev ) + unsigned int events = sock->pmask & sock->mask; + int i; + int async_active = 0; +- ++ ++ /*fprintf(stderr,"sock: %p. pollev & (POLLIN|POLLPRI):%d. async_waiting( sock->read_q ):%d,sock->read_q:%p\n",sock,pollev & (POLLIN|POLLPRI),async_waiting( sock->read_q ),sock->read_q);*/ ++ /* fflush(NULL);*/ + if ( pollev & (POLLIN|POLLPRI) && async_waiting( sock->read_q )) + { ++ /* fprintf(stderr,"waking_read_queue pending:%d\n",sock->incCon);*/ ++ /* fflush(NULL);*/ + if (debug_level) fprintf( stderr, "activating read queue for socket %p\n", sock ); +- async_wake_up( sock->read_q, STATUS_ALERTED ); ++ async_wake_up( sock->read_q, STATUS_ALERTED ); + async_active = 1; + } + if ( pollev & POLLOUT && async_waiting( sock->write_q )) +@@ -332,10 +343,14 @@ static void sock_poll_event( struct fd *fd, int event ) + /* listening */ + if (event & POLLIN) + { +- /* incoming connection */ ++ ++ /* incoming connection */ ++ sock->incCon += 1; + sock->pmask |= FD_ACCEPT; + sock->errors[FD_ACCEPT_BIT] = 0; + sock->hmask |= FD_ACCEPT; ++ /* fprintf(stderr,"sock: %p. incomming connection. pending: %d\n",sock,sock->incCon);*/ ++ /* fflush(NULL);*/ + } + else if (event & (POLLERR|POLLHUP)) + { +@@ -435,10 +450,17 @@ static void sock_poll_event( struct fd *fd, int event ) + } + else + sock_reselect( sock ); +- ++ + /* wake up anyone waiting for whatever just happened */ +- if ( sock->pmask & sock->mask || sock->flags & WSA_FLAG_OVERLAPPED ) sock_wake_up( sock, event ); +- ++ if ( sock->pmask & sock->mask || sock->flags & WSA_FLAG_OVERLAPPED ) ++ { ++/* fprintf(stderr,"sock: %p. pending: %d. 1st: %d. 2nd: %d.\n",sock,sock->incCon, sock->pmask & sock->mask, sock->flags & WSA_FLAG_OVERLAPPED);*/ ++/* fflush(NULL);*/ ++ sock_wake_up( sock, event ); ++ } else{ ++/* fprintf(stderr,"sock: %p. pending: %d. 1st: %d. 2nd: %d.\n",sock,sock->incCon, sock->pmask & sock->mask, sock->flags & WSA_FLAG_OVERLAPPED);*/ ++/* fflush(NULL);*/ ++ } + /* if anyone is stupid enough to wait on the socket object itself, + * maybe we should wake them up too, just in case? */ + wake_up( &sock->obj, 0 ); +@@ -466,7 +488,7 @@ static int sock_get_poll_events( struct fd *fd ) + struct sock *sock = get_fd_user( fd ); + unsigned int mask = sock->mask & sock->state & ~sock->hmask; + int ev = 0; +- ++ + assert( sock->obj.ops == &sock_ops ); + + if (sock->state & FD_CONNECT) +@@ -490,7 +512,7 @@ static enum server_fd_type sock_get_fd_type( struct fd *fd ) + return FD_TYPE_SOCKET; + } + +-static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count ) ++static void sock_queue_async_l( struct fd *fd, const async_data_t *data, int type, int count, obj_handle_t locator ) + { + struct sock *sock = get_fd_user( fd ); + struct async_queue *queue; +@@ -514,7 +536,7 @@ static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, + return; + } + +- if ( ( !( sock->state & FD_READ ) && type == ASYNC_TYPE_READ ) || ++ if ( ( !( sock->state & (FD_READ|FD_WINE_LISTENING) ) && type == ASYNC_TYPE_READ ) || + ( !( sock->state & FD_WRITE ) && type == ASYNC_TYPE_WRITE ) ) + { + set_error( STATUS_PIPE_DISCONNECTED ); +@@ -522,7 +544,7 @@ static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, + else + { + struct async *async; +- if (!(async = create_async( current, queue, data ))) return; ++ if (!(async = create_async_l( current, queue, data, locator ))) return; + release_object( async ); + set_error( STATUS_PENDING ); + } +@@ -530,6 +552,10 @@ static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, + pollev = sock_reselect( sock ); + if ( pollev ) sock_try_event( sock, pollev ); + } ++static void sock_queue_async( struct fd *fd, const async_data_t *data, int type, int count) ++{ ++ sock_queue_async_l(fd,data,type,count,0); ++} + + static void sock_reselect_async( struct fd *fd, struct async_queue *queue ) + { +@@ -542,11 +568,38 @@ static void sock_cancel_async( struct fd *fd ) + { + struct sock *sock = get_fd_user( fd ); + assert( sock->obj.ops == &sock_ops ); +- + async_wake_up( sock->read_q, STATUS_CANCELLED ); + async_wake_up( sock->write_q, STATUS_CANCELLED ); + } + ++static int sock_close_handle( struct object *obj, struct process *process, obj_handle_t handle ) ++{ ++ struct sock *sock = (struct sock*) obj; ++ struct sock *l = NULL; ++ assert( sock->obj.ops == &sock_ops ); ++ async_wake_up( sock->read_q, STATUS_HANDLES_CLOSED ); ++ async_wake_up( sock->write_q, STATUS_HANDLES_CLOSED ); ++ if(current && sock){ /*avoid fatal error when updating wine config files*/ ++ l = (struct sock *)get_handle_obj( process, sock->hListen, FILE_WRITE_ATTRIBUTES, &sock_ops ); ++ if(l) ++ { ++ sock_async_close_l( l, handle ); ++ release_object( l ); ++ }else{ ++ clear_error(); ++ } ++ } ++ ++ return fd_close_handle(obj,process,handle); ++} ++ ++/*Closes all async operations on a socket with the corresponding locator */ ++static void sock_async_close_l( struct sock *sock, obj_handle_t locator ) ++{ ++ async_wake_up_l( sock->read_q, STATUS_HANDLES_CLOSED, locator ); ++ async_wake_up_l( sock->write_q, STATUS_HANDLES_CLOSED, locator ); ++} ++ + static struct fd *sock_get_fd( struct object *obj ) + { + struct sock *sock = (struct sock *)obj; +@@ -609,6 +662,7 @@ static struct object *create_socket( int family, int type, int protocol, unsigne + sock->deferred = NULL; + sock->read_q = NULL; + sock->write_q = NULL; ++ sock->incCon = 0; + if (!(sock->fd = create_anonymous_fd( &sock_fd_ops, sockfd, &sock->obj, + (flags & WSA_FLAG_OVERLAPPED) ? 0 : FILE_SYNCHRONOUS_IO_NONALERT ))) + { +@@ -621,16 +675,17 @@ static struct object *create_socket( int family, int type, int protocol, unsigne + } + + /* accept a socket (creates a new fd) */ +-static struct sock *accept_socket( obj_handle_t handle ) ++static struct sock *accept_socket( obj_handle_t handle, obj_handle_t ahandle ) + { +- struct sock *acceptsock; ++ struct sock *acceptsock = NULL; + struct sock *sock; + int acceptfd; + struct sockaddr saddr; +- ++ + sock = (struct sock *)get_handle_obj( current->process, handle, FILE_READ_DATA, &sock_ops ); +- if (!sock) ++ if (!sock){ + return NULL; ++ } + + if ( sock->deferred ) + { +@@ -650,46 +705,62 @@ static struct sock *accept_socket( obj_handle_t handle ) + { + sock_set_error(); + release_object( sock ); +- return NULL; ++ return NULL; + } +- if (!(acceptsock = alloc_object( &sock_ops ))) +- { +- close( acceptfd ); +- release_object( sock ); +- return NULL; +- } +- +- /* newly created socket gets the same properties of the listening socket */ +- fcntl(acceptfd, F_SETFL, O_NONBLOCK); /* make socket nonblocking */ +- acceptsock->state = FD_WINE_CONNECTED|FD_READ|FD_WRITE; +- if (sock->state & FD_WINE_NONBLOCKING) +- acceptsock->state |= FD_WINE_NONBLOCKING; +- acceptsock->mask = sock->mask; +- acceptsock->hmask = 0; +- acceptsock->pmask = 0; +- acceptsock->polling = 0; +- acceptsock->type = sock->type; +- acceptsock->family = sock->family; +- acceptsock->event = NULL; +- acceptsock->window = sock->window; +- acceptsock->message = sock->message; +- acceptsock->wparam = 0; +- if (sock->event) acceptsock->event = (struct event *)grab_object( sock->event ); +- acceptsock->flags = sock->flags; +- acceptsock->deferred = NULL; +- acceptsock->read_q = NULL; +- acceptsock->write_q = NULL; +- if (!(acceptsock->fd = create_anonymous_fd( &sock_fd_ops, acceptfd, &acceptsock->obj, ++ ++ if(ahandle){ ++ acceptsock = (struct sock *)get_handle_obj(current->process, ahandle, FILE_READ_DATA | FILE_WRITE_DATA, &sock_ops ); ++ if(acceptsock){ ++ if(acceptsock->event) ++ release_object( acceptsock->event ); ++ release_object( acceptsock->fd ); ++ } ++ }else{ ++ acceptsock = alloc_object( &sock_ops ); ++ } ++ if (!acceptsock) ++ { ++ close( acceptfd ); ++ release_object( sock ); ++ return NULL; ++ } ++ ++ ++ fcntl(acceptfd, F_SETFL, O_NONBLOCK); /* make socket nonblocking */ ++ acceptsock->state = FD_WINE_CONNECTED|FD_READ|FD_WRITE; ++ acceptsock->hmask = 0; ++ acceptsock->pmask = 0; ++ acceptsock->polling = 0; ++ acceptsock->event = NULL; ++ acceptsock->deferred = NULL; ++ acceptsock->read_q = NULL; ++ acceptsock->write_q = NULL; ++ acceptsock->wparam = 0; ++ acceptsock->incCon = 0; ++ /* newly created socket gets the same properties of the listening socket */ ++ if (sock->state & FD_WINE_NONBLOCKING) ++ acceptsock->state |= FD_WINE_NONBLOCKING; ++ acceptsock->mask = sock->mask; ++ acceptsock->type = sock->type; ++ acceptsock->family = sock->family; ++ acceptsock->window = sock->window; ++ acceptsock->message = sock->message; ++ if (sock->event) acceptsock->event = (struct event *)grab_object( sock->event ); ++ acceptsock->flags = sock->flags; ++ if (!(acceptsock->fd = create_anonymous_fd( &sock_fd_ops, acceptfd, &acceptsock->obj, + get_fd_options( sock->fd ) ))) +- { +- release_object( acceptsock ); +- release_object( sock ); +- return NULL; +- } ++ { ++ release_object( acceptsock ); ++ release_object( sock ); ++ return NULL; ++ } + } + clear_error(); +- sock->pmask &= ~FD_ACCEPT; +- sock->hmask &= ~FD_ACCEPT; ++ sock->pmask &= ~FD_ACCEPT; ++ sock->hmask &= ~FD_ACCEPT; ++ sock->incCon -= 1; ++ //fprintf(stderr,"accept: pending: %d\n",sock->incCon); ++ //fflush(NULL); + sock_reselect( sock ); + release_object( sock ); + return acceptsock; +@@ -787,13 +858,35 @@ DECL_HANDLER(accept_socket) + struct sock *sock; + + reply->handle = 0; +- if ((sock = accept_socket( req->lhandle )) != NULL) ++ if ((sock = accept_socket( req->lhandle, req->ahandle )) != NULL) + { +- reply->handle = alloc_handle( current->process, &sock->obj, req->access, req->attributes ); +- sock->wparam = reply->handle; /* wparam for message is the socket handle */ +- sock_reselect( sock ); +- release_object( &sock->obj ); ++ if (req->ahandle) ++ reply->handle = req->ahandle; ++ else ++ { ++ reply->handle = alloc_handle( current->process, &sock->obj, req->access, req->attributes ); ++ sock->wparam = reply->handle; /* wparam for message is the socket handle */ ++ sock_reselect( sock ); ++ } ++ release_object( &sock->obj );//I think this needs togo in the else. But i want to check. ++ //We can't release the object unless we allocate a handle for it. ++ //Do we need to se the wparam? What is this? No... maybe... i dont know. ++ } ++} ++ ++/* Sets which socket is listening for connections for this socket */ ++DECL_HANDLER(set_socket_listener) ++{ ++ struct sock *sock; ++ sock = (struct sock *)get_handle_obj( current->process, req->handle, FILE_WRITE_ATTRIBUTES, &sock_ops ); ++ if(!sock){ ++ set_error( STATUS_INVALID_HANDLE ); ++ return; + } ++ sock->hListen = req->hListen; ++ release_object( &sock->obj ); ++ set_error( STATUS_SUCCESS ); ++ return; + } + + /* set socket event parameters */ +diff --git a/server/trace.c b/server/trace.c +index d24f653..fa23e00 100644 (file) +--- a/server/trace.c ++++ b/server/trace.c +@@ -1553,6 +1553,7 @@ static void dump_create_socket_reply( const struct create_socket_reply *req ) + static void dump_accept_socket_request( const struct accept_socket_request *req ) + { + fprintf( stderr, " lhandle=%04x", req->lhandle ); ++ fprintf( stderr, ", ahandle=%04x", req->ahandle ); + fprintf( stderr, ", access=%08x", req->access ); + fprintf( stderr, ", attributes=%08x", req->attributes ); + } +@@ -1571,6 +1572,12 @@ static void dump_set_socket_event_request( const struct set_socket_event_request + fprintf( stderr, ", msg=%08x", req->msg ); + } + ++static void dump_set_socket_listener_request( const struct set_socket_listener_request *req ) ++{ ++ fprintf( stderr, " handle=%04x", req->handle ); ++ fprintf( stderr, ", hListen=%04x", req->hListen ); ++} ++ + static void dump_get_socket_event_request( const struct get_socket_event_request *req ) + { + fprintf( stderr, " handle=%04x", req->handle ); +@@ -2565,6 +2572,15 @@ static void dump_register_async_request( const struct register_async_request *re + fprintf( stderr, ", count=%d", req->count ); + } + ++static void dump_register_async_l_request( const struct register_async_l_request *req ) ++{ ++ fprintf( stderr, " handle=%04x", req->handle ); ++ fprintf( stderr, ", type=%d", req->type ); ++ fprintf( stderr, ", count=%d", req->count ); ++ fprintf( stderr, ", locator=%04x", req->locator ); ++ dump_async_data( ", async=", &req->async ); ++} ++ + static void dump_cancel_async_request( const struct cancel_async_request *req ) + { + fprintf( stderr, " handle=%04x", req->handle ); +@@ -3857,6 +3873,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = { + (dump_func)dump_create_socket_request, + (dump_func)dump_accept_socket_request, + (dump_func)dump_set_socket_event_request, ++ (dump_func)dump_set_socket_listener_request, + (dump_func)dump_get_socket_event_request, + (dump_func)dump_enable_socket_event_request, + (dump_func)dump_set_socket_deferred_request, +@@ -3947,6 +3964,7 @@ static const dump_func req_dumpers[REQ_NB_REQUESTS] = { + (dump_func)dump_get_serial_info_request, + (dump_func)dump_set_serial_info_request, + (dump_func)dump_register_async_request, ++ (dump_func)dump_register_async_l_request, + (dump_func)dump_cancel_async_request, + (dump_func)dump_ioctl_request, + (dump_func)dump_get_ioctl_result_request, +@@ -4098,6 +4116,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = { + (dump_func)dump_create_socket_reply, + (dump_func)dump_accept_socket_reply, + NULL, ++ NULL, + (dump_func)dump_get_socket_event_reply, + NULL, + NULL, +@@ -4189,6 +4208,7 @@ static const dump_func reply_dumpers[REQ_NB_REQUESTS] = { + NULL, + NULL, + NULL, ++ NULL, + (dump_func)dump_ioctl_reply, + (dump_func)dump_get_ioctl_result_reply, + (dump_func)dump_create_named_pipe_reply, +@@ -4339,6 +4359,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = { + "create_socket", + "accept_socket", + "set_socket_event", ++ "set_socket_listener", + "get_socket_event", + "enable_socket_event", + "set_socket_deferred", +@@ -4429,6 +4450,7 @@ static const char * const req_names[REQ_NB_REQUESTS] = { + "get_serial_info", + "set_serial_info", + "register_async", ++ "register_async_l", + "cancel_async", + "ioctl", + "get_ioctl_result", +diff --git a/tools/make_requests b/tools/make_requests +index e7a1ffb..d3a517b 100755 (executable) +--- a/tools/make_requests ++++ b/tools/make_requests +@@ -59,7 +59,7 @@ my @asserts = (); + + my @trace_lines = (); + +-my $max_req_size = 64; ++my $max_req_size = 80; + + my $warnings = scalar(@ARGV) && $ARGV[0] eq "-w"; diff --git a/app-emulation/wine/files/dinput.patch b/app-emulation/wine/files/dinput.patch new file mode 100644 index 00000000..79a6f02c --- /dev/null +++ b/app-emulation/wine/files/dinput.patch @@ -0,0 +1,68 @@ + +--- a/dlls/dinput/mouse.c ++++ b/dlls/dinput/mouse.c +@@ -55,7 +55,8 @@ typedef enum + { + WARP_DEFAULT, + WARP_DISABLE, +- WARP_FORCE_ON ++ WARP_FORCE_ON, ++ WARP_FORCE_EDGE + } WARP_MOUSE; + + struct SysMouseImpl +@@ -205,6 +206,8 @@ static SysMouseImpl *alloc_device(REFGUID rguid, const void *mvt, IDirectInputIm + newDevice->warp_override = WARP_DISABLE; + else if (!strcasecmp(buffer, "force")) + newDevice->warp_override = WARP_FORCE_ON; ++ else if (!strcasecmp(buffer, "force_edge")) ++ newDevice->warp_override = WARP_FORCE_EDGE; + } + if (appkey) RegCloseKey(appkey); + if (hkey) RegCloseKey(hkey); +@@ -331,8 +334,16 @@ static int dinput_mouse_hook( LPDIRECTINPUTDEVICE8A iface, WPARAM wparam, LPARAM + } + + This->need_warp = This->warp_override != WARP_DISABLE && +- (pt.x || pt.y) && +- (dwCoop & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON); ++ ( ++ ((pt.x || pt.y) && This->warp_override != WARP_FORCE_EDGE) || ++ ( ++ ( ++ hook->pt.x<2 || hook->pt.y<2 || ++ hook->pt.x>((2 * This->win_centerX)-2) || hook->pt.y>((2 * This->win_centerY)-2) ++ ) && This->warp_override == WARP_FORCE_EDGE ++ ) ++ ) && ++ (dwCoop & DISCL_EXCLUSIVE || This->warp_override >= WARP_FORCE_ON); + break; + } + case WM_MOUSEWHEEL: +@@ -453,7 +464,7 @@ static HRESULT WINAPI SysMouseAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface) + } + + /* Need a window to warp mouse in. */ +- if (This->warp_override == WARP_FORCE_ON && !This->base.win) ++ if (This->warp_override >= WARP_FORCE_ON && !This->base.win) + This->base.win = GetDesktopWindow(); + + /* Get the window dimension and find the center */ +@@ -462,7 +473,7 @@ static HRESULT WINAPI SysMouseAImpl_Acquire(LPDIRECTINPUTDEVICE8A iface) + This->win_centerY = (rect.bottom - rect.top ) / 2; + + /* Warp the mouse to the center of the window */ +- if (This->base.dwCoopLevel & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON) ++ if (This->base.dwCoopLevel & DISCL_EXCLUSIVE || This->warp_override >= WARP_FORCE_ON) + { + This->mapped_center.x = This->win_centerX; + This->mapped_center.y = This->win_centerY; +@@ -496,7 +507,7 @@ static HRESULT WINAPI SysMouseAImpl_Unacquire(LPDIRECTINPUTDEVICE8A iface) + } + + /* And put the mouse cursor back where it was at acquire time */ +- if (This->base.dwCoopLevel & DISCL_EXCLUSIVE || This->warp_override == WARP_FORCE_ON) ++ if (This->base.dwCoopLevel & DISCL_EXCLUSIVE || This->warp_override >= WARP_FORCE_ON) + { + TRACE(" warping mouse back to (%d , %d)\n", This->org_coords.x, This->org_coords.y); + SetCursorPos(This->org_coords.x, This->org_coords.y); diff --git a/app-emulation/wine/files/revert-ntdll.patch b/app-emulation/wine/files/revert-ntdll.patch new file mode 100644 index 00000000..b13103ac --- /dev/null +++ b/app-emulation/wine/files/revert-ntdll.patch @@ -0,0 +1,13 @@ +diff -x .git -Naur wine-git/dlls/ntdll/heap.c wine-reverted/dlls/ntdll/heap.c +--- wine-git/dlls/ntdll/heap.c 2009-07-20 09:55:24.140677008 -0600 ++++ wine-reverted/dlls/ntdll/heap.c 2009-07-20 09:57:23.532678084 -0600 +@@ -1567,8 +1567,7 @@ + if (!(ret = allocate_large_block( heapPtr, flags, size ))) goto oom; + notify_alloc( ret, size, flags & HEAP_ZERO_MEMORY ); + memcpy( ret, pArena + 1, oldActualSize ); +- notify_free( pArena + 1 ); +- HEAP_MakeInUseBlockFree( subheap, pArena ); ++ /* FIXME: free old memory here! */ + goto done; + } + if ((pNext < (char *)subheap->base + subheap->size) && diff --git a/app-emulation/wine/files/schannel.patch b/app-emulation/wine/files/schannel.patch new file mode 100644 index 00000000..aaddd49a --- /dev/null +++ b/app-emulation/wine/files/schannel.patch @@ -0,0 +1,140 @@ +diff --git a/dlls/secur32/schannel.c b/dlls/secur32/schannel.c +index cf3c8eb..c981bf2 100644 (file) +--- a/dlls/secur32/schannel.c ++++ b/dlls/secur32/schannel.c +@@ -653,128 +653,17 @@ static SECURITY_STATUS SEC_ENTRY schan_InitializeSecurityContextW( + PSecBufferDesc pInput, ULONG Reserved2, PCtxtHandle phNewContext, + PSecBufferDesc pOutput, ULONG *pfContextAttr, PTimeStamp ptsExpiry) + { +- struct schan_context *ctx; +- struct schan_buffers *out_buffers; +- struct schan_credentials *cred; +- struct schan_transport transport; +- int err; +- +- TRACE("%p %p %s %d %d %d %p %d %p %p %p %p\n", phCredential, phContext, +- debugstr_w(pszTargetName), fContextReq, Reserved1, TargetDataRep, pInput, +- Reserved1, phNewContext, pOutput, pfContextAttr, ptsExpiry); +- +- dump_buffer_desc(pInput); +- dump_buffer_desc(pOutput); +- +- if (!phContext) ++ SECURITY_STATUS ret; ++ if (phCredential) + { +- ULONG_PTR handle; +- +- if (!phCredential) return SEC_E_INVALID_HANDLE; +- +- cred = schan_get_object(phCredential->dwLower, SCHAN_HANDLE_CRED); +- if (!cred) return SEC_E_INVALID_HANDLE; +- +- if (!(cred->credential_use & SECPKG_CRED_OUTBOUND)) +- { +- WARN("Invalid credential use %#x\n", cred->credential_use); +- return SEC_E_INVALID_HANDLE; +- } +- +- ctx = HeapAlloc(GetProcessHeap(), 0, sizeof(*ctx)); +- if (!ctx) return SEC_E_INSUFFICIENT_MEMORY; +- +- handle = schan_alloc_handle(ctx, SCHAN_HANDLE_CTX); +- if (handle == SCHAN_INVALID_HANDLE) +- { +- HeapFree(GetProcessHeap(), 0, ctx); +- return SEC_E_INTERNAL_ERROR; +- } +- +- err = pgnutls_init(&ctx->session, GNUTLS_CLIENT); +- if (err != GNUTLS_E_SUCCESS) +- { +- pgnutls_perror(err); +- schan_free_handle(handle, SCHAN_HANDLE_CTX); +- HeapFree(GetProcessHeap(), 0, ctx); +- return SEC_E_INTERNAL_ERROR; +- } +- +- /* FIXME: We should be using the information from the credentials here. */ +- FIXME("Using hardcoded \"NORMAL\" priority\n"); +- err = pgnutls_set_default_priority(ctx->session); +- if (err != GNUTLS_E_SUCCESS) +- { +- pgnutls_perror(err); +- pgnutls_deinit(ctx->session); +- schan_free_handle(handle, SCHAN_HANDLE_CTX); +- HeapFree(GetProcessHeap(), 0, ctx); +- } +- +- err = pgnutls_credentials_set(ctx->session, GNUTLS_CRD_CERTIFICATE, cred->credentials); +- if (err != GNUTLS_E_SUCCESS) +- { +- pgnutls_perror(err); +- pgnutls_deinit(ctx->session); +- schan_free_handle(handle, SCHAN_HANDLE_CTX); +- HeapFree(GetProcessHeap(), 0, ctx); +- } +- +- pgnutls_transport_set_pull_function(ctx->session, schan_pull); +- pgnutls_transport_set_push_function(ctx->session, schan_push); +- +- phNewContext->dwLower = handle; +- phNewContext->dwUpper = 0; ++ FIXME("stub\n"); ++ ret = SEC_E_UNSUPPORTED_FUNCTION; + } + else + { +- ctx = schan_get_object(phContext->dwLower, SCHAN_HANDLE_CTX); +- } +- +- ctx->req_ctx_attr = fContextReq; +- +- transport.ctx = ctx; +- init_schan_buffers(&transport.in, pInput, schan_init_sec_ctx_get_next_buffer); +- init_schan_buffers(&transport.out, pOutput, schan_init_sec_ctx_get_next_buffer); +- pgnutls_transport_set_ptr(ctx->session, &transport); +- +- /* Perform the TLS handshake */ +- err = pgnutls_handshake(ctx->session); +- +- out_buffers = &transport.out; +- if (out_buffers->current_buffer_idx != -1) +- { +- SecBuffer *buffer = &out_buffers->desc->pBuffers[out_buffers->current_buffer_idx]; +- buffer->cbBuffer = out_buffers->offset; +- } +- +- *pfContextAttr = 0; +- if (ctx->req_ctx_attr & ISC_REQ_ALLOCATE_MEMORY) +- *pfContextAttr |= ISC_RET_ALLOCATED_MEMORY; +- +- switch(err) +- { +- case GNUTLS_E_SUCCESS: +- TRACE("Handshake completed\n"); +- return SEC_E_OK; +- +- case GNUTLS_E_AGAIN: +- TRACE("Continue...\n"); +- return SEC_I_CONTINUE_NEEDED; +- +- case GNUTLS_E_WARNING_ALERT_RECEIVED: +- case GNUTLS_E_FATAL_ALERT_RECEIVED: +- { +- gnutls_alert_description_t alert = pgnutls_alert_get(ctx->session); +- const char *alert_name = pgnutls_alert_get_name(alert); +- WARN("ALERT: %d %s\n", alert, alert_name); +- return SEC_E_INTERNAL_ERROR; +- } +- +- default: +- pgnutls_perror(err); +- return SEC_E_INTERNAL_ERROR; ++ ret = SEC_E_INVALID_HANDLE; + } ++ return ret; + } + + /*********************************************************************** + diff --git a/app-emulation/wine/files/wine-1.1.15-winegcc.patch b/app-emulation/wine/files/wine-1.1.15-winegcc.patch new file mode 100644 index 00000000..6e5bb22a --- /dev/null +++ b/app-emulation/wine/files/wine-1.1.15-winegcc.patch @@ -0,0 +1,55 @@ +http://bugs.gentoo.org/260726 + +--- wine-1.1.15/tools/winegcc/winegcc.c ++++ wine-1.1.15/tools/winegcc/winegcc.c +@@ -215,10 +215,13 @@ + strarray* files; + }; + ++#undef FORCE_POINTER_SIZE + #ifdef __i386__ + static const enum target_cpu build_cpu = CPU_x86; ++#define FORCE_POINTER_SIZE + #elif defined(__x86_64__) + static const enum target_cpu build_cpu = CPU_x86_64; ++#define FORCE_POINTER_SIZE + #elif defined(__sparc__) + static const enum target_cpu build_cpu = CPU_SPARC; + #elif defined(__ALPHA__) +@@ -968,6 +971,9 @@ + opts.linker_args = strarray_alloc(); + opts.compiler_args = strarray_alloc(); + opts.winebuild_args = strarray_alloc(); ++#ifdef FORCE_POINTER_SIZE ++ opts.force_pointer_size = sizeof(size_t); ++#endif + + /* determine the processor type */ + if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp; +--- wine-1.1.15/tools/winebuild/main.c ++++ wine-1.1.15/tools/winebuild/main.c +@@ -50,10 +50,13 @@ + int link_ext_symbols = 0; + int force_pointer_size = 0; + ++#undef FORCE_POINTER_SIZE + #ifdef __i386__ + enum target_cpu target_cpu = CPU_x86; ++#define FORCE_POINTER_SIZE + #elif defined(__x86_64__) + enum target_cpu target_cpu = CPU_x86_64; ++#define FORCE_POINTER_SIZE + #elif defined(__sparc__) + enum target_cpu target_cpu = CPU_SPARC; + #elif defined(__ALPHA__) +@@ -574,6 +577,10 @@ + signal( SIGTERM, exit_on_signal ); + signal( SIGINT, exit_on_signal ); + ++#ifdef FORCE_POINTER_SIZE ++ force_pointer_size = sizeof(size_t); ++#endif ++ + output_file = stdout; + argv = parse_options( argc, argv, spec ); + diff --git a/app-emulation/wine/metadata.xml b/app-emulation/wine/metadata.xml new file mode 100644 index 00000000..90f6e7d8 --- /dev/null +++ b/app-emulation/wine/metadata.xml @@ -0,0 +1,18 @@ + + + +wine + +Wine is an Open Source implementation of the Windows API on top of X and Unix. + +Think of Wine as a compatibility layer for running Windows programs. Wine does not require Microsoft Windows, as it is a completely free alternative implementation of the Windows API consisting of 100% non-Microsoft code, however Wine can optionally use native Windows DLLs if they are available. Wine provides both a development toolkit for porting Windows source code to Unix as well as a program loader, allowing many unmodified Windows programs to run on x86-based Unixes, including Linux, FreeBSD, and Solaris. + + + Add support for the Gecko engine when using + iexplore + Add support for NTLM auth. see + http://wiki.winehq.org/NtlmAuthSetupGuide and + http://wiki.winehq.org/NtlmSigningAndSealing + Build a 64bit version of Wine (won't run Win32 binaries) + + diff --git a/app-emulation/wine/wine-1.1.26.ebuild b/app-emulation/wine/wine-1.1.26.ebuild new file mode 100644 index 00000000..d1835dd9 --- /dev/null +++ b/app-emulation/wine/wine-1.1.26.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2009 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.1.26.ebuild,v 1.1 2009/07/18 22:15:36 vapier Exp $ + +EAPI="2" + +inherit multilib eutils + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="git://source.winehq.org/git/wine.git" + inherit git + SRC_URI="" + KEYWORDS="" +else + MY_P="${PN}-${PV/_/-}" + SRC_URI="mirror://sourceforge/${PN}/${MY_P}.tar.bz2" + KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" + S=${WORKDIR}/${MY_P} +fi + +GV="0.9.1" +DESCRIPTION="free implementation of Windows(tm) on Unix" +HOMEPAGE="http://www.winehq.org/" +SRC_URI="${SRC_URI} + gecko? ( mirror://sourceforge/wine/wine_gecko-${GV}.cab )" + +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="alsa cups dbus esd +gecko gnutls hal jack jpeg lcms ldap nas ncurses +opengl oss png samba scanner ssl win64 +X xcomposite xinerama xml" +RESTRICT="test" #72375 + +RDEPEND=">=media-libs/freetype-2.0.0 + media-fonts/corefonts + dev-lang/perl + dev-perl/XML-Simple + ncurses? ( >=sys-libs/ncurses-5.2 ) + jack? ( media-sound/jack-audio-connection-kit ) + dbus? ( sys-apps/dbus ) + gnutls? ( net-libs/gnutls ) + hal? ( sys-apps/hal ) + X? ( + x11-libs/libXcursor + x11-libs/libXrandr + x11-libs/libXi + x11-libs/libXmu + x11-libs/libXxf86vm + x11-apps/xmessage + ) + alsa? ( media-libs/alsa-lib[midi] ) + esd? ( media-sound/esound ) + nas? ( media-libs/nas ) + cups? ( net-print/cups ) + opengl? ( virtual/opengl ) + jpeg? ( media-libs/jpeg ) + ldap? ( net-nds/openldap ) + lcms? ( media-libs/lcms ) + 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? ( >=sys-devel/gcc-4.4.0 ) + !win64? ( amd64? ( + X? ( + >=app-emulation/emul-linux-x86-xlibs-2.1 + >=app-emulation/emul-linux-x86-soundlibs-2.1 + ) + app-emulation/emul-linux-x86-baselibs + >=sys-kernel/linux-headers-2.6 + ) )" +DEPEND="${RDEPEND} + X? ( + x11-proto/inputproto + x11-proto/xextproto + x11-proto/xf86vidmodeproto + ) + sys-devel/bison + sys-devel/flex" + +src_unpack() { + if [[ ${PV} == "9999" ]] ; then + git_src_unpack + else + unpack ${MY_P}.tar.bz2 + fi +} + +src_prepare() { + epatch "${FILESDIR}"/${PN}-1.1.15-winegcc.patch #260726 + epatch "${FILESDIR}"/acceptex.patch + epatch "${FILESDIR}"/dinput.patch + epatch "${FILESDIR}"/schannel.patch + epatch "${FILESDIR}"/revert-ntdll.patch + sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die + sed -i '/^MimeType/d' tools/wine.desktop || die #117785 +} + +src_configure() { + export LDCONFIG=/bin/true + + use amd64 && ! use win64 && multilib_toolchain_setup x86 + + # XXX: should check out these flags too: + # audioio capi fontconfig freetype gphoto + econf \ + --sysconfdir=/etc/wine \ + $(use_with alsa) \ + $(use_with cups) \ + $(use_with esd) \ + $(use_with gnutls) \ + $(! use dbus && echo --without-hal || use_with hal) \ + $(use_with jack) \ + $(use_with jpeg) \ + $(use_with lcms cms) \ + $(use_with ldap) \ + $(use_with nas) \ + $(use_with ncurses curses) \ + $(use_with opengl) \ + $(use_with oss) \ + $(use_with png) \ + $(use_with scanner sane) \ + $(use_with ssl openssl) \ + $(use_enable win64) \ + $(use_with X x) \ + $(use_with xcomposite) \ + $(use_with xinerama) \ + $(use_with xml) \ + $(use_with xml xslt) \ + || die "configure failed" + + emake -j1 depend || die "depend" +} + +src_compile() { + emake all || die "all" +} + +src_install() { + emake DESTDIR="${D}" install || die + dodoc ANNOUNCE AUTHORS README + if use gecko ; then + insinto /usr/share/wine/gecko + doins "${DISTDIR}"/wine_gecko-${GV}.cab || die + fi +}