Compare commits

..

111 Commits

Author SHA1 Message Date
Sebastian Lackner
17c1053de4 Release 1.7.34-1 (Debian/Ubuntu specific dependency fix).
The package rename caused some problems on Debian/Ubuntu. This updated version should
hopefully fix those. Other distributions which do not use debian/{rules,control} for
packaging are unaffected by these changes.
2015-01-11 19:25:22 +01:00
Sebastian Lackner
b56948f392 debian/rules: Second attempt to fix Debian/Ubuntu dependencies, this time by providing the compatibility symlinks in the main package. 2015-01-11 13:42:15 +01:00
Michael MĂĽller
7850f8bd74 Fix debian control file 2015-01-11 07:19:23 +01:00
Sebastian Lackner
25a137c8c6 debian/control: Add explicit dependency from wine-compholio dummy packages to subpackages. 2015-01-11 05:32:52 +01:00
Sebastian Lackner
cdf5f42599 Release 1.7.34. 2015-01-10 22:27:16 +01:00
Sebastian Lackner
daf84945cb kernel32-Named_Pipe: When running on an older kernel, make sure that ntdll doesn't try to use message mode features. 2015-01-10 18:13:05 +01:00
Sebastian Lackner
a83a587270 patchinstall.sh: Use /bin/sh instead of bash. 2015-01-10 15:30:31 +01:00
Sebastian Lackner
595ac8afa2 wined3d-CSMT_Main: Fix warning in CSMT patchset, move fixes for uninitialized memory accesses into corresponding patches. 2015-01-10 07:35:17 +01:00
Sebastian Lackner
09ab82e9d0 ws2_32-WSARecv_Last_Error: Remove unnecessary tests, remove todo_wine where necessary. 2015-01-10 03:53:38 +01:00
Sebastian Lackner
87fd17de51 Update DXTn patches to better handle when libtxc_dxtn is missing or support is not compiled in. 2015-01-10 03:28:30 +01:00
Sebastian Lackner
ec40c1c8d0 nvapi-Stub_DLL: Build nvapi.dll only on 32-bit systems and nvapi64.dll only on 64-bit systems. 2015-01-10 00:22:00 +01:00
Sebastian Lackner
a0d5d4158b nvcuda-CUDA_Support: Rename function arguments in Unknown1 interface back to void*, we don't know enough about this internal interface yet. 2015-01-09 19:34:10 +01:00
Sebastian Lackner
e7782a24bf nvcuda-CUDA_Support: Replace a FIXME with a TRACE, its harmless now that ContextStorage is wrapped properly. 2015-01-09 08:05:29 +01:00
Sebastian Lackner
5c890acd8a nvcuda-CUDA_Support: Properly wrap undocumented 'ContextStorage' interface and add tests. 2015-01-09 07:58:31 +01:00
Sebastian Lackner
09dbde3104 nvcuda-CUDA_Support: Add additional patch for functions added in CUDA 6.5 2015-01-09 04:46:29 +01:00
Sebastian Lackner
e0a9d6cb9d nvcuda-CUDA_Support: Merge Unknown5 interface into main patch, move workaround into separate patch (to be removed later). 2015-01-09 03:47:45 +01:00
Sebastian Lackner
19d41e6139 winepulse-Pulseaudio_Support: Added missing files. 2015-01-08 18:41:18 +01:00
Sebastian Lackner
f2b6e399d4 Rebased winepulse-Pulseaudio_Support patches to latest version from http://repo.or.cz/w/wine/multimedia.git. 2015-01-08 18:34:58 +01:00
Sebastian Lackner
d4fa1d1816 patchinstall.sh: Implement 'stg' (stacked git) backend. 2015-01-08 15:41:25 +01:00
Sebastian Lackner
e01a0f00de patchinstall.sh: Rename 'git' backend to 'git-am', add 'git-apply' backend. 2015-01-08 14:59:00 +01:00
Sebastian Lackner
4f4df208a9 patchupdate.py: Fix issue when detecting dependencies, make wined3d-CSMT_Main depend on wined3d-Color_Key. 2015-01-08 02:12:38 +01:00
Michael MĂĽller
62d458238d Clean up nvapi patches and add NvAPI_GetPhysicalGPUsFromLogicalGPU. 2015-01-08 01:09:51 +01:00
Sebastian Lackner
f80d76f069 Merge branch 'master' of github.com:wine-compholio/wine-staging 2015-01-08 00:40:58 +01:00
Sebastian Lackner
cb475f78f9 Added patch to fix color key regression causing pink rectangles around text. 2015-01-08 00:38:19 +01:00
Michael MĂĽller
0868bcbade Update existing nvapi patch and add new stubs. 2015-01-07 23:31:32 +01:00
Sebastian Lackner
ac1ffc70f8 patchupdate.py: Improve code-generation for dependency resolver. 2015-01-07 23:08:07 +01:00
Sebastian Lackner
fe43f3ddc6 Added patch to implement support for CUDA GPU video decoding. 2015-01-07 22:37:15 +01:00
Erich E. Hoover
3f85f1763b Actually add patch for previous commit... 2015-01-07 11:17:26 -07:00
Erich E. Hoover
1fe2ba1ddc Added patch for WSARecv to call SetLastError on success. 2015-01-07 10:50:48 -07:00
Sebastian Lackner
2543a28ce4 debian/rules: Call patchinstall.sh directly instead of using deprecated Makefile. 2015-01-07 11:09:21 +01:00
Sebastian Lackner
673cb4f847 Added patch to fix NULL dereference in ICSeqCompressFrameStart. 2015-01-07 10:51:59 +01:00
Sebastian Lackner
2e6bd2290e nvapi-Stub_DLL: Remove unnecessary DLL_WINE_PREATTACH check. 2015-01-07 10:40:48 +01:00
Sebastian Lackner
1f5939c74a nvcuda-CUDA_Support: Fix typos. 2015-01-07 10:36:35 +01:00
Sebastian Lackner
63509658f4 Merge branch 'master' of github.com:wine-compholio/wine-staging 2015-01-07 10:07:50 +01:00
Sebastian Lackner
9fb3f40824 Huge rewrite of patchupdate.py, use script based method to apply patches, deprecation of Makefile based method. 2015-01-07 10:02:38 +01:00
Michael MĂĽller
41728a6faf Added patch for nvapi stubs (required for GPU PhysX support). 2015-01-06 15:12:34 +01:00
Erich E. Hoover
5f3631c6be Removed patches accepted upstream and rebase. 2015-01-05 19:25:58 -07:00
Erich E. Hoover
ad5dcc9752 Fix issue with invalid handles being incorrect when a new process is created. 2015-01-04 23:40:46 -07:00
Erich E. Hoover
abdef6b13c Remove patch for creating handles for new consoles. 2015-01-04 11:47:29 -07:00
Sebastian Lackner
205001dab8 d3dx9_36-DrawText: Added patch to fix horizontal centering. 2015-01-04 19:32:27 +01:00
Erich E. Hoover
1ba1541771 Replace new console handle patch with a version that does not inherit the handles from the parent. 2015-01-04 09:33:16 -07:00
Erich E. Hoover
ef6a3db00f Fix mistaken removal of trace variable in NeedCurrentDirectoryForExePath patch. 2015-01-04 09:18:01 -07:00
Erich E. Hoover
d8cde81519 Added patch to creating handles for new consoles when a new process is created. 2015-01-04 00:08:23 -07:00
Erich E. Hoover
a5ec351f6e Added patch for CreateProcess to prioritize the working directory over the system search path. 2015-01-03 22:32:32 -07:00
Sebastian Lackner
4c95b9d483 Fix issue in ws2_32-WriteWatches patch which can cause exceptions on the signal stack. 2015-01-03 21:32:47 +01:00
Sebastian Lackner
90c12baba2 nvcuda-CUDA_Support: Add minimalistic cuda.h directly to wine to avoid dependency, split patchset. 2015-01-03 03:53:04 +01:00
Michael MĂĽller
d3262def33 Add nvcuda patch for two d3d9 init functions. 2015-01-03 00:36:12 +01:00
Erich E. Hoover
63a6c00152 Added patch with stubs for WinSqm[Start|End]Session. 2015-01-02 14:28:56 -07:00
Sebastian Lackner
aa13fb8472 nvcuda-CUDA_Support: Added patch for Unknown5 internal CUDA interface. 2015-01-02 22:00:32 +01:00
Sebastian Lackner
21ab9dc521 Release lock while calling TLS callbacks, use refcount to allow releasing an active callback. 2015-01-02 03:46:33 +01:00
Sebastian Lackner
40e8ab0c08 Added patches for D3DXComputeNormals and D3DXComputeNormalMap. 2015-01-02 03:32:58 +01:00
Michael MĂĽller
e09be4fd77 Added first nvcuda implementation. 2015-01-01 22:38:59 +01:00
Sebastian Lackner
9f43cabb0a Added patch to fix parameters for ConvertToIndexedBlendedMesh stub. 2015-01-01 16:42:23 +01:00
Sebastian Lackner
b5e303e711 Removed patch to reallocate buffer when adding records to AVI files (fixed upstream). 2014-12-31 23:45:20 +01:00
Sebastian Lackner
706ff96060 d3dx9_36-DrawText: Fix condition when stripping NULL chars at the end of buffer. 2014-12-31 00:54:52 +01:00
Sebastian Lackner
6294cf99ff Merge branch 'master' of github.com:wine-compholio/wine-staging 2014-12-30 21:03:14 +01:00
Sebastian Lackner
0ad98f7460 Added patch for ID3DXFont::DrawTextA/W support. 2014-12-30 21:00:02 +01:00
Erich E. Hoover
b22ef7765c Rebase dsound-Fast_Mixer patch against latest upstream. 2014-12-29 21:40:24 -07:00
Sebastian Lackner
2fce7d906c Merge branch 'maharmstone-master' 2014-12-30 03:23:35 +01:00
Sebastian Lackner
44abde0a0d Removed several patches (accepted upstream), disable dsound-Fast_Mixer until rebased. 2014-12-30 01:32:56 +01:00
Mark Harmstone
e103c8cb4a added patch to expose PKEY_AudioEndpoint_PhysicalSpeakers for Pulse 2014-12-29 22:05:03 +00:00
Sebastian Lackner
ca871ef7fd kernel32-Named_Pipe: Fix compilation issue on FreeBSD. 2014-12-29 18:48:39 +01:00
Sebastian Lackner
bbd04d95a2 Added patch to fix access violation when calling GetStringTypeW with NULL src. 2014-12-27 23:08:41 +01:00
Sebastian Lackner
1944c4b4e8 Added patch to avoid calling IDirect3DDevice7_DrawIndexedPrimitive if there is no primitive. 2014-12-27 18:56:01 +01:00
Sebastian Lackner
913f7f2af2 Add note that named pipe message mode support is only fully implemented on Linux. 2014-12-27 18:25:51 +01:00
Sebastian Lackner
9c6e895b0b Added patch to add support for named pipe message mode. 2014-12-27 17:33:55 +01:00
Sebastian Lackner
1f74cc531e wininet-encoding: Fix whitespace issue. 2014-12-27 14:35:38 +01:00
Sebastian Lackner
05fd4e7f64 Removed patch for IoCsqInitialize (accepted upstream). 2014-12-24 22:09:07 +01:00
Sebastian Lackner
74e480d41e Merge branch 'master' of github.com:wine-compholio/wine-staging 2014-12-23 23:08:31 +01:00
Sebastian Lackner
b6a21b238f Removed several patches (accepted upstream). 2014-12-23 23:07:04 +01:00
Erich E. Hoover
9b064a2d9b Add bug number for IOCTL_DVD_READ_STRUCTURE problem. 2014-12-23 11:20:17 -07:00
Sebastian Lackner
981ea8facf Removed patch for wine64 support on FreeBSD (accepted upstream). 2014-12-23 16:02:22 +01:00
Sebastian Lackner
a934f08991 Added patch to fix invalid usage of RegOpenKeyExW in msdmo. 2014-12-23 07:23:35 +01:00
Sebastian Lackner
ce701fe0df Added patch to try harder to get the host name address in getaddrinfo(). 2014-12-23 07:12:43 +01:00
Sebastian Lackner
91e07b125f Merge branch 'master' of github.com:wine-compholio/wine-staging 2014-12-23 06:36:07 +01:00
Sebastian Lackner
2ec8a387a0 Added patch to use actual program name if available to describe PulseAudio streams. 2014-12-23 06:33:31 +01:00
Erich E. Hoover
b594ebe2e7 Added patch to expect the correct buffer size for different IOCTL_DVD_READ_STRUCTURE requests. 2014-12-22 20:36:56 -07:00
Sebastian Lackner
4f213843ac Added patch for support of SLGetWindowsInformationDWORD. 2014-12-22 20:35:58 +01:00
Mark Harmstone
cdcb0f8b99 Added patch to extract program name to describe PulseAudio streams 2014-12-21 23:55:31 +00:00
Sebastian Lackner
9e0670934a winepulse-PulseAudio_Support: Merge last patch into corresponding commits. 2014-12-21 05:34:21 +01:00
Michael MĂĽller
f85f8cf234 Add another entry to list of fixed bugs for gdi32-MultiMonitor. 2014-12-21 01:37:42 +01:00
Michael MĂĽller
7bad59bbdd Provide font licenses as seperate files. 2014-12-20 23:17:47 +01:00
Sebastian Lackner
030275f110 Added test for RtlIpv4StringToAddressExA. 2014-12-20 20:13:49 +01:00
Sebastian Lackner
0d1d699881 Added patch with stub for D3DXIntersect. 2014-12-20 17:13:13 +01:00
Sebastian Lackner
a59b542fd6 Added patch with stub for D3DXComputeTangentFrameEx. 2014-12-20 17:02:35 +01:00
Sebastian Lackner
aeedb30ca0 Removed patch for stub of ntdll.RtlSetHeapInformation (accepted upstream), rebased wininet patch. 2014-12-19 23:39:35 +01:00
Michael MĂĽller
9efe53b3f5 Added patch for ID3DXEffect::FindNextValidTechnique. 2014-12-19 22:40:48 +01:00
Michael MĂĽller
3d8a3c0e69 Added patch for IDXGIOutput::GetDesc. 2014-12-19 21:35:01 +01:00
Sebastian Lackner
c6eae9c6a3 Merge branch 'master' of github.com:wine-compholio/wine-staging 2014-12-19 14:53:04 +01:00
Sebastian Lackner
135f617b33 Fix issue in user32-WndProc patch which caused crashes for some 16-bit apps. 2014-12-19 14:38:16 +01:00
Michael MĂĽller
64fafd5c2e debian: Provide more transitional dummy packages to (hopefully) fix upgrading. 2014-12-19 02:30:05 +01:00
Erich E. Hoover
72b64cb4f2 Update DOS Attributes patches to use ENOSYS and 'turn hexattr up to 11'. 2014-12-18 15:50:39 -07:00
Sebastian Lackner
f6749f92de Added patch for stub of ntdll.RtlSetHeapInformation. 2014-12-18 23:26:56 +01:00
Sebastian Lackner
d2c32c103a Merge branch 'master' of github.com:wine-compholio/wine-staging 2014-12-18 22:44:36 +01:00
Sebastian Lackner
777d431d9a Removed patch to export SHILCreateFromPath by name (accepted upstream). 2014-12-18 22:44:10 +01:00
Erich E. Hoover
2777cce402 Remove DOS Attribute dependency from Junction Point patchset (dependent patch accepted upstream). 2014-12-18 13:07:38 -07:00
Sebastian Lackner
3fe922b5f5 Added test for server-Unexpected_Wakeup patch. 2014-12-18 18:44:41 +01:00
Michael MĂĽller
dd5e8aebb1 debian: Fix breaks entry (again). 2014-12-18 04:50:58 +01:00
Michael MĂĽller
f7f1efa7df debian: Fix breaks entry. 2014-12-18 04:45:45 +01:00
Michael MĂĽller
0df2608bb1 debian: Provide only legacy symlink for bin directory. 2014-12-18 04:05:50 +01:00
Sebastian Lackner
2912921b94 Added patch to ensure X11 input events are handled even without explicit message loop. 2014-12-18 01:17:09 +01:00
Sebastian Lackner
7dac73a69b Partially removed patches for ntdll DOS attributes (accepted upstream). 2014-12-18 00:13:20 +01:00
Michael MĂĽller
90261acce1 Rename debian package to wine-staging and small changelog cleanup. 2014-12-17 20:36:31 +01:00
Sebastian Lackner
12af26a582 Avoid duplicate wined3d specfile by adding PARENTSPEC Makefile argument. 2014-12-17 04:27:10 +01:00
Sebastian Lackner
f3e96bb902 debian/changelog: Add a missing space. 2014-12-16 23:04:07 +01:00
Sebastian Lackner
565f1e2e53 Removed several patches (accepted upstream). 2014-12-16 22:22:31 +01:00
Sebastian Lackner
b0ab8b3913 Added patch to return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK. 2014-12-16 04:12:24 +01:00
Sebastian Lackner
1de37be8c1 wininet-FtpFindFirstFile: Replace HeapFree with heap_free.
... which is the same, but makes the coding style look more similar to existing code.
2014-12-16 02:41:20 +01:00
Sebastian Lackner
71a0838ac3 Added patch to fix handling of subdirectory in FtpFindFirstFile. 2014-12-16 01:49:58 +01:00
Sebastian Lackner
8765c50218 Removed several patches (accepted upstream). 2014-12-15 22:50:30 +01:00
Sebastian Lackner
346417b032 ntdll-DOS_Attributes: Replace '==' with '=' in configure.ac to be compatible with alternative shells. 2014-12-15 14:32:00 +01:00
230 changed files with 20825 additions and 7618 deletions

2
.gitignore vendored
View File

@@ -1,4 +1,2 @@
debian/tools/wine
.patchupdate.cache
*.ok
*.pyc

View File

@@ -37,11 +37,15 @@ Wine. All those differences are also documented on the
Included bug fixes and improvements
===================================
**Bugs fixed in Wine Staging 1.7.33 [119]:**
**Bugs fixed in Wine Staging 1.7.34-1 [135]:**
* ATL IOCS data should not be stored in GWLP_USERDATA ([Wine Bug #21767](https://bugs.winehq.org/show_bug.cgi?id=21767))
* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](https://bugs.winehq.org/show_bug.cgi?id=36374))
* Add default ACLs for user shell folders
* Add nvapi stubs required for GPU PhysX support
* Add stub for D3DXComputeNormalMap
* Add stub for D3DXComputeTangentFrameEx ([Wine Bug #31984](https://bugs.winehq.org/show_bug.cgi?id=31984))
* Add stub for D3DXIntersect
* Add stub for NtSetLdtEntries/ZwSetLdtEntries ([Wine Bug #26268](https://bugs.winehq.org/show_bug.cgi?id=26268))
* Add support for GetPropValue to PulseAudio backend
* Adobe Reader needs ITextSelection_fnGetDuplicate implementation
@@ -51,18 +55,23 @@ Included bug fixes and improvements
* Audio stuttering and performance drops in multiple applications ([Wine Bug #30639](https://bugs.winehq.org/show_bug.cgi?id=30639))
* Avoid crashing when broken app tries to release surface although refcount is zero ([Wine Bug #18477](https://bugs.winehq.org/show_bug.cgi?id=18477))
* Avoid race-conditions of async WSARecv() operations with write watches.
* Basic support for CUDA
* Black & White needs DXTn software decoding support ([Wine Bug #14939](https://bugs.winehq.org/show_bug.cgi?id=14939))
* Correctly treat '.' when checking for empty directories ([Wine Bug #26272](https://bugs.winehq.org/show_bug.cgi?id=26272))
* CreateProcess does not prioritize the working directory over the system search path ([Wine Bug #23934](https://bugs.winehq.org/show_bug.cgi?id=23934))
* D3DCompileShader should filter specific warning messages ([Wine Bug #33770](https://bugs.winehq.org/show_bug.cgi?id=33770))
* Do not fail when a used context is passed to wglShareLists ([Wine Bug #11436](https://bugs.winehq.org/show_bug.cgi?id=11436))
* Don't fill KdHelp structure for usermode applications ([Wine Bug #37272](https://bugs.winehq.org/show_bug.cgi?id=37272))
* Emulate access to KI_USER_SHARED_DATA kernel page on x86_64 ([Wine Bug #33849](https://bugs.winehq.org/show_bug.cgi?id=33849))
* Emulate write to CR4 register ([Wine Bug #30220](https://bugs.winehq.org/show_bug.cgi?id=30220))
* Ensure NtProtectVirtualMemory and NtCreateSection are on separate pages ([Wine Bug #33162](https://bugs.winehq.org/show_bug.cgi?id=33162))
* Ensure X11 input events are handled even without explicit message loop ([Wine Bug #8854](https://bugs.winehq.org/show_bug.cgi?id=8854))
* Exception during start of fr-043 caused by missing DXTn support ([Wine Bug #37391](https://bugs.winehq.org/show_bug.cgi?id=37391))
* Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
* FEAR 1 installer expects basic_string_wchar_dtor to return NULL ([Wine Bug #37358](https://bugs.winehq.org/show_bug.cgi?id=37358))
* FairplayKD.sys needs KeSetSystemAffinityThread ([Wine Bug #36822](https://bugs.winehq.org/show_bug.cgi?id=36822))
* Fix NULL dereference in ICSeqCompressFrameStart ([Wine Bug #27595](https://bugs.winehq.org/show_bug.cgi?id=27595))
* Fix access violation when calling GetStringTypeW with NULL src. ([Wine Bug #37759](https://bugs.winehq.org/show_bug.cgi?id=37759))
* Fix black screen on startup introduced by pixelformat changes. ([Wine Bug #35950](https://bugs.winehq.org/show_bug.cgi?id=35950))
* Fix color key regression causing pink rectangles around text ([Wine Bug #37748](https://bugs.winehq.org/show_bug.cgi?id=37748))
* Fix comparison of punctuation characters in lstrcmp ([Wine Bug #10767](https://bugs.winehq.org/show_bug.cgi?id=10767))
* Fix condition mask handling in RtlVerifyVersionInfo ([Wine Bug #36143](https://bugs.winehq.org/show_bug.cgi?id=36143))
* Fix crash of Trine Demo on start ([Wine Bug #19231](https://bugs.winehq.org/show_bug.cgi?id=19231))
@@ -73,21 +82,27 @@ Included bug fixes and improvements
* Fix gray screen on startup introduced by pixelformat changes. ([Wine Bug #35975](https://bugs.winehq.org/show_bug.cgi?id=35975))
* Fix handling of empty section and key name for profile files. ([Wine Bug #8036](https://bugs.winehq.org/show_bug.cgi?id=8036))
* Fix handling of invert_y in DrawTextExW ([Wine Bug #22109](https://bugs.winehq.org/show_bug.cgi?id=22109))
* Fix handling of subdirectory in FtpFindFirstFile ([Wine Bug #16526](https://bugs.winehq.org/show_bug.cgi?id=16526))
* Fix issues when driver dispatch routine returns different status codes ([Wine Bug #30155](https://bugs.winehq.org/show_bug.cgi?id=30155))
* Fix issues with dragging layers between images in Adobe Photoshop 7.0 ([Wine Bug #12007](https://bugs.winehq.org/show_bug.cgi?id=12007))
* Fix missing video introduced by pixelformat changes. ([Wine Bug #36900](https://bugs.winehq.org/show_bug.cgi?id=36900))
* Fix parameters for ConvertToIndexedBlendedMesh stub ([Wine Bug #36449](https://bugs.winehq.org/show_bug.cgi?id=36449))
* Fix possible segfault in pulse_rd_loop of PulseAudio backend
* Fix return value of ScrollWindowEx for invisible windows ([Wine Bug #37706](https://bugs.winehq.org/show_bug.cgi?id=37706))
* Fix texture corruption in CSI: Fatal Conspiracy ([Wine Bug #33768](https://bugs.winehq.org/show_bug.cgi?id=33768))
* Fix unintentional leaks with ntdll internals
* Fix wined3d performance drop introduced by pixelformat changes. ([Wine Bug #35655](https://bugs.winehq.org/show_bug.cgi?id=35655))
* Games For Windows Live 1.x expects a valid linker version in the PE header ([Wine Bug #28768](https://bugs.winehq.org/show_bug.cgi?id=28768))
* GetMonitorInfo returns the same name for all monitors ([Wine Bug #37709](https://bugs.winehq.org/show_bug.cgi?id=37709))
* GetSecurityInfo returns NULL DACL for process object ([Wine Bug #15980](https://bugs.winehq.org/show_bug.cgi?id=15980))
* Hearthstone fails to start ([Wine Bug #36216](https://bugs.winehq.org/show_bug.cgi?id=36216))
* IOCTL_DVD_READ_STRUCTURE expects the wrong size of output buffer for some requests ([Wine Bug #37767](https://bugs.winehq.org/show_bug.cgi?id=37767))
* Ignore unsupported flags for CoInternetSetFeatureEnabled ([Wine Bug #35197](https://bugs.winehq.org/show_bug.cgi?id=35197))
* Implement ID3DXEffect::FindNextValidTechnique ([Wine Bug #34101](https://bugs.winehq.org/show_bug.cgi?id=34101))
* Implement IDXGIOutput::GetDesc
* Implement a Microsoft Yahei replacement font ([Wine Bug #13829](https://bugs.winehq.org/show_bug.cgi?id=13829))
* Implement an Arial replacement font ([Wine Bug #32323](https://bugs.winehq.org/show_bug.cgi?id=32323))
* Implement exclusive mode in PulseAudio backend ([Wine Bug #37042](https://bugs.winehq.org/show_bug.cgi?id=37042))
* Implement stubs for mfplat.MFStartup and MFShutdown ([Wine Bug #37701](https://bugs.winehq.org/show_bug.cgi?id=37701))
* Improvement for heap allocation performance
* Initialize irp.Tail.Overlay.OriginalFileObject with stub file object ([Wine Bug #37537](https://bugs.winehq.org/show_bug.cgi?id=37537))
* Lego Stunt Rally requires DXTn software de/encoding support ([Wine Bug #25486](https://bugs.winehq.org/show_bug.cgi?id=25486))
@@ -99,8 +114,6 @@ Included bug fixes and improvements
* Need for Speed 3 installer requires devices in HKEY_DYN_DATA ([Wine Bug #7115](https://bugs.winehq.org/show_bug.cgi?id=7115))
* Other Pipelight-specific enhancements
* Prevent window managers from grouping all wine programs together ([Wine Bug #32699](https://bugs.winehq.org/show_bug.cgi?id=32699))
* Provide named entry point shell32.SHILCreateFromPath for vista apps ([Wine Bug #37265](https://bugs.winehq.org/show_bug.cgi?id=37265))
* Reallocate buffer when adding records to AVI files ([Wine Bug #5137](https://bugs.winehq.org/show_bug.cgi?id=5137))
* Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates)
* Return an error when trying to open a terminated process ([Wine Bug #37087](https://bugs.winehq.org/show_bug.cgi?id=37087))
* Return correct IMediaSeeking stream positions in quartz ([Wine Bug #23174](https://bugs.winehq.org/show_bug.cgi?id=23174))
@@ -112,6 +125,8 @@ Included bug fixes and improvements
* Support for AllocateAndGetTcpExTableFromStack ([Wine Bug #34372](https://bugs.winehq.org/show_bug.cgi?id=34372))
* Support for BindImageEx ([Wine Bug #3591](https://bugs.winehq.org/show_bug.cgi?id=3591))
* Support for CSMT (command stream) to increase graphic performance ([Wine Bug #11674](https://bugs.winehq.org/show_bug.cgi?id=11674))
* Support for CUDA GPU video decoding
* Support for D3DXComputeNormals ([Wine Bug #26379](https://bugs.winehq.org/show_bug.cgi?id=26379))
* Support for D3DXGetShaderInputSemantics ([Wine Bug #22682](https://bugs.winehq.org/show_bug.cgi?id=22682))
* Support for DOS hidden/system file attributes ([Wine Bug #9158](https://bugs.winehq.org/show_bug.cgi?id=9158))
* Support for Dynamic DST (daylight saving time) information in registry
@@ -119,11 +134,11 @@ Included bug fixes and improvements
* Support for GetFinalPathNameByHandle ([Wine Bug #36073](https://bugs.winehq.org/show_bug.cgi?id=36073))
* Support for GetSystemTimes ([Wine Bug #19813](https://bugs.winehq.org/show_bug.cgi?id=19813))
* Support for GetVolumePathName
* Support for ID3DXFont::DrawTextA/W ([Wine Bug #24754](https://bugs.winehq.org/show_bug.cgi?id=24754))
* Support for ID3DXSkinInfoImpl_UpdateSkinnedMesh ([Wine Bug #32572](https://bugs.winehq.org/show_bug.cgi?id=32572))
* Support for ITextDocument_fnRange function ([Wine Bug #12458](https://bugs.winehq.org/show_bug.cgi?id=12458))
* Support for ITextRange, ITextFont and ITextPara ([Wine Bug #18303](https://bugs.winehq.org/show_bug.cgi?id=18303))
* Support for Junction Points ([Wine Bug #12401](https://bugs.winehq.org/show_bug.cgi?id=12401))
* Support for K32EnumProcessModulesEx ([Wine Bug #34864](https://bugs.winehq.org/show_bug.cgi?id=34864))
* Support for KF_FLAG_DEFAULT_PATH in SHGetKnownFolderPath ([Wine Bug #30385](https://bugs.winehq.org/show_bug.cgi?id=30385))
* Support for LoadIconMetric ([Wine Bug #35375](https://bugs.winehq.org/show_bug.cgi?id=35375))
* Support for NtQuerySection ([Wine Bug #37338](https://bugs.winehq.org/show_bug.cgi?id=37338))
@@ -131,31 +146,32 @@ Included bug fixes and improvements
* Support for PulseAudio backend for audio ([Wine Bug #10495](https://bugs.winehq.org/show_bug.cgi?id=10495))
* Support for RtlDecompressBuffer ([Wine Bug #37449](https://bugs.winehq.org/show_bug.cgi?id=37449))
* Support for SHCreateSessionKey ([Wine Bug #35630](https://bugs.winehq.org/show_bug.cgi?id=35630))
* Support for StrCatChainW
* Support for SLGetWindowsInformationDWORD ([Wine Bug #36709](https://bugs.winehq.org/show_bug.cgi?id=36709))
* Support for TOOLTIPS_GetTipText edge cases ([Wine Bug #30648](https://bugs.winehq.org/show_bug.cgi?id=30648))
* Support for TransmitFile ([Wine Bug #5048](https://bugs.winehq.org/show_bug.cgi?id=5048))
* Support for UTF7 encoding/decoding ([Wine Bug #27388](https://bugs.winehq.org/show_bug.cgi?id=27388))
* Support for WTSEnumerateProcessesW ([Wine Bug #29903](https://bugs.winehq.org/show_bug.cgi?id=29903))
* Support for combase HSTRING objects
* Support for extra large and jumbo icon lists in shell32 ([Wine Bug #24721](https://bugs.winehq.org/show_bug.cgi?id=24721))
* Support for inherited file ACLs ([Wine Bug #34406](https://bugs.winehq.org/show_bug.cgi?id=34406))
* Support for interface change notifications ([Wine Bug #32328](https://bugs.winehq.org/show_bug.cgi?id=32328))
* Support for loader dll redirections
* Support for named pipe message mode (Linux only) ([Wine Bug #17195](https://bugs.winehq.org/show_bug.cgi?id=17195))
* Support for pasting HTML from Unix applications ([Wine Bug #7372](https://bugs.winehq.org/show_bug.cgi?id=7372))
* Support for process ACLs ([Wine Bug #22006](https://bugs.winehq.org/show_bug.cgi?id=22006))
* Support for setcap on wine-preloader ([Wine Bug #26256](https://bugs.winehq.org/show_bug.cgi?id=26256))
* Support for stored file ACLs ([Wine Bug #31858](https://bugs.winehq.org/show_bug.cgi?id=31858))
* Support for wine64 on FreeBSD/PC-BSD ([Wine Bug #34330](https://bugs.winehq.org/show_bug.cgi?id=34330))
* Try harder to get the host name address in getaddrinfo() ([Wine Bug #29609](https://bugs.winehq.org/show_bug.cgi?id=29609))
* Tumblebugs 2 requires DXTn software encoding support ([Wine Bug #29586](https://bugs.winehq.org/show_bug.cgi?id=29586))
* Unity3D Editor requires ProductId registry value ([Wine Bug #36964](https://bugs.winehq.org/show_bug.cgi?id=36964))
* Update a XIM candidate position when cursor location changes ([Wine Bug #30938](https://bugs.winehq.org/show_bug.cgi?id=30938))
* Use actual program name if available to describe PulseAudio streams
* Use manual relay for RunDLL_CallEntry16 in shell32 ([Wine Bug #23033](https://bugs.winehq.org/show_bug.cgi?id=23033))
* Voobly expects correct handling of WRITECOPY memory protection ([Wine Bug #29384](https://bugs.winehq.org/show_bug.cgi?id=29384))
* WSARecv should call SetLastError on success ([Wine Bug #31438](https://bugs.winehq.org/show_bug.cgi?id=31438))
* Wine ignores IDF_CHECKFIRST flag in SetupPromptForDisk ([Wine Bug #20465](https://bugs.winehq.org/show_bug.cgi?id=20465))
* Workaround for shlwapi URLs with relative paths
* XEMBED support for embedding Wine windows inside Linux applications
* nVidia driver for high-end laptop cards does not list all supported resolutions
* vSphere needs IoCsqInitialize ([Wine Bug #36777](https://bugs.winehq.org/show_bug.cgi?id=36777))
* ntdll is missing WinSqm[Start|End]Session implementation ([Wine Bug #31971](https://bugs.winehq.org/show_bug.cgi?id=31971))
* wglDescribePixelFormat should return max index for NULL descriptor ([Wine Bug #6176](https://bugs.winehq.org/show_bug.cgi?id=6176))
* wininet should allow Accept-Encoding header for HTTP/1.0 ([Wine Bug #37046](https://bugs.winehq.org/show_bug.cgi?id=37046))

63
debian/changelog vendored
View File

@@ -1,3 +1,64 @@
wine-staging (1.7.34-1) unstable; urgency=low
* Debian/Ubuntu specific package dependency fix (no changes for other distros).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 11 Jan 2015 19:14:09 +0100
wine-staging (1.7.34) unstable; urgency=low
* Huge rewrite of patchupdate.py, deprecation of Makefile based way to apply patches.
* Rename debian package from 'wine-compholio' to 'wine-staging' and provide compatibility package.
* Avoid duplicate wined3d specfile by adding PARENTSPEC Makefile argument.
* Fix issue in DOS Attributes patch which broke ./configure on systems with alternative shells.
* Fix issue in user32-WndProc patch which caused crashes for some 16-bit apps.
* Fix issue in ws2_32-WriteWatches patch which can cause exceptions on the signal stack.
* Fix issue with invalid handles being incorrect when a new process is created.
* Update DXTn patches to better handle when libtxc_dxtn is missing or support is not compiled in.
* Added patch for WSARecv to call SetLastError on success.
* Added patch for CreateProcess to prioritize the working directory over the system search path.
* Added patch with stubs for WinSqm[Start|End]Session.
* Added patch to fix handling of subdirectory in FtpFindFirstFile.
* Added patch to return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK.
* Added patch to ensure X11 input events are handled even without explicit message loop.
* Added test for server-Unexpected_Wakeup patch.
* Added patch for stub of ntdll.RtlSetHeapInformation.
* Added patch for IDXGIOutput::GetDesc.
* Added patch for ID3DXEffect::FindNextValidTechnique.
* Added patch with stub for D3DXComputeTangentFrameEx.
* Added patch with stub for D3DXIntersect.
* Added test for RtlIpv4StringToAddressExA.
* Added patch for support of SLGetWindowsInformationDWORD.
* Added patch to expect the correct buffer size for different IOCTL_DVD_READ_STRUCTURE requests.
* Added patch to use actual program name if available to describe PulseAudio streams.
* Added patch to try harder to get the host name address in getaddrinfo().
* Added patch to fix invalid usage of RegOpenKeyExW in msdmo.
* Added patch to add support for named pipe message mode.
* Added patch to avoid calling IDirect3DDevice7_DrawIndexedPrimitive if there is no primitive.
* Added patch to fix access violation when calling GetStringTypeW with NULL src.
* Added patch for ID3DXFont::DrawTextA/W support.
* Added patch to fix parameters for ConvertToIndexedBlendedMesh stub.
* Added patch for basic CUDA support.
* Added patches for D3DXComputeNormals and D3DXComputeNormalMap.
* Added patch for nvapi stubs (required for GPU PhysX support).
* Added patch to fix NULL dereference in ICSeqCompressFrameStart.
* Added patch to implement support for CUDA GPU video decoding.
* Added patch to fix color key regression causing pink rectangles around text.
* Rebased winepulse-Pulseaudio_Support patches to latest version from http://repo.or.cz/w/wine/multimedia.git.
* Removed patch to emulate write to CR4 register (accepted upstream).
* Removed patch with stub for KeSetSystemAffinityThread (accepted upstream).
* Removed patch to implement combase HSTRING objects (accepted upstream).
* Removed patch to add fake ProductId to registry (accepted upstream).
* Removed patch to implement stubs for MFStartup and MFShutdown (accepted upstream).
* Removed patch to implement shlwapi.StrCatChainW (accepted upstream).
* Removed patch to implement semi-stub for psapi/kernel32 K32EnumProcessModulesEx (accepted upstream).
* Removed patch to return proper charcount for GetLocaleInfo with LOCALE_IFIRSTDAYOFWEEK (accepted upstream).
* Removed patch to export SHILCreateFromPath by name (accepted upstream).
* Removed patch for stub of ntdll.RtlSetHeapInformation (accepted upstream).
* Removed patch for wine64 support on FreeBSD (accepted upstream).
* Removed patch for IoCsqInitialize (accepted upstream).
* Removed patch to fix invalid usage of RegOpenKeyExW in msdmo (fixed upstream).
* Removed patch to reallocate buffer when adding records to AVI files (fixed upstream).
* Partially removed patches for ntdll DOS attributes (accepted upstream).
* Partially removed patches for UTF7 support (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sat, 10 Jan 2015 22:22:01 +0100
wine-compholio (1.7.33) unstable; urgency=low
* Various improvements of patchupdate.py.
* Added patches for wined3d CSMT (command stream) support.
@@ -54,7 +115,7 @@ wine-compholio (1.7.32) unstable; urgency=low
* Removed patch to fix implementation ofCoWaitForMultipleHandles (accepted upstream).
* Removed patch to avoid interthread no-op messages in ShowWindow (accepted upstream).
* Removed patches to take abs() of vertex z coordinate as FFP fog coordinate (fixed upstream).
* Removed patch to fix detection of gnutls on Ubuntu 14.10.
* Removed patch to fix detection of gnutls on Ubuntu 14.10 (accepted upstream).
-- Sebastian Lackner <sebastian@fds-team.de> Sun, 30 Nov 2014 15:22:49 +0100
wine-compholio (1.7.31) unstable; urgency=low

82
debian/control vendored
View File

@@ -1,4 +1,4 @@
Source: wine-compholio
Source: wine-staging
Section: otherosfs
Priority: optional
Maintainer: Erich E. Hoover <erich.e.hoover@gmail.com>
@@ -69,7 +69,7 @@ Build-Depends: autotools-dev,
x11proto-xinerama-dev
Standards-Version: 3.9.2
Package: wine-compholio-i386
Package: wine-staging-i386
Architecture: i386
Multi-Arch: foreign
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
@@ -108,9 +108,7 @@ Recommends: libcapi20-3,
libgsm1
Section: otherosfs
Priority: optional
Replaces: wine-compholio (<< 1.7.15-1~)
Breaks: wine-compholio (<< 1.7.15-1~)
Description: The Compholio Edition is a special build of the popular Wine software
Description: The Staging Edition is a special build of the popular Wine software
with patches representing my current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
@@ -125,7 +123,7 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
work, there may be some loss of functionality compared with the stable release
provided by the regular wine package.
Package: wine-compholio-amd64
Package: wine-staging-amd64
Architecture: amd64
Multi-Arch: foreign
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
@@ -164,9 +162,7 @@ Recommends: libcapi20-3,
libgsm1
Section: otherosfs
Priority: optional
Replaces: wine-compholio (<< 1.7.15-1~)
Breaks: wine-compholio (<< 1.7.15-1~)
Description: The Compholio Edition is a special build of the popular Wine software
Description: The Staging Edition is a special build of the popular Wine software
with patches representing my current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
@@ -181,16 +177,16 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
work, there may be some loss of functionality compared with the stable release
provided by the regular wine package.
Package: wine-compholio
Package: wine-staging
Architecture: i386 amd64
Multi-Arch: foreign
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
Depends: ${misc:Depends}, ${shlibs:Depends},
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
wine-compholio-amd64 (= ${binary:Version}) [amd64],
wine-staging-i386 (= ${binary:Version}) [i386 amd64],
wine-staging-amd64 (= ${binary:Version}) [amd64],
Section: otherosfs
Priority: optional
Description: The Compholio Edition is a special build of the popular Wine software
Description: The Staging Edition is a special build of the popular Wine software
with patches representing my current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
@@ -207,18 +203,16 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
work, there may be some loss of functionality compared with the stable release
provided by the regular wine package.
Package: wine-compholio-dev
Package: wine-staging-dev
Architecture: i386 amd64
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
Depends: libc6-dev,
${shlibs:Depends},
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
wine-compholio-amd64 (= ${binary:Version}) [amd64],
wine-staging-i386 (= ${binary:Version}) [i386 amd64],
wine-staging-amd64 (= ${binary:Version}) [amd64],
Section: libdevel
Priority: optional
Replaces: wine-compholio (<< 1.7.15-1~)
Breaks: wine-compholio (<< 1.7.15-1~)
Description: The Compholio Edition is a special build of the popular Wine software
Description: The Staging Edition is a special build of the popular Wine software
with patches representing my current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
@@ -230,18 +224,16 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
This package consists of the development files needed to compile programs
using wine's free version of the Microsoft Windows API.
Package: wine-compholio-dbg
Package: wine-staging-dbg
Architecture: i386 amd64
Multi-Arch: same
Pre-Depends: dpkg (>= 1.14.12ubuntu3), ${misc:Pre-Depends}
Depends: ${shlibs:Depends},
wine-compholio-i386 (= ${binary:Version}) [i386 amd64],
wine-compholio-amd64 (= ${binary:Version}) [amd64],
wine-staging-i386 (= ${binary:Version}) [i386 amd64],
wine-staging-amd64 (= ${binary:Version}) [amd64],
Section: debug
Priority: optional
Replaces: wine-compholio (<< 1.7.15-1~)
Breaks: wine-compholio (<< 1.7.15-1~)
Description: The Compholio Edition is a special build of the popular Wine software
Description: The Staging Edition is a special build of the popular Wine software
with patches representing my current staging tree for Wine.
.
Microsoft Windows Compatibility Layer (Binary Emulator and Library)
@@ -252,3 +244,43 @@ Description: The Compholio Edition is a special build of the popular Wine softwa
.
This package includes debugging symbols useful for reporting crashes and other
failures.
Package: wine-compholio
Architecture: i386 amd64
Depends: wine-staging, ${misc:Depends}
Priority: extra
Section: oldlibs
Description: Transitional dummy package
This is a transitional dummy package. It can safely be removed.
Package: wine-compholio-i386
Architecture: i386
Depends: wine-staging-i386, ${misc:Depends}
Priority: extra
Section: oldlibs
Description: Transitional dummy package
This is a transitional dummy package. It can safely be removed.
Package: wine-compholio-amd64
Architecture: amd64
Depends: wine-staging-amd64, ${misc:Depends}
Priority: extra
Section: oldlibs
Description: Transitional dummy package
This is a transitional dummy package. It can safely be removed.
Package: wine-compholio-dev
Architecture: i386 amd64
Depends: wine-staging-dev, ${misc:Depends}
Priority: extra
Section: oldlibs
Description: Transitional dummy package
This is a transitional dummy package. It can safely be removed.
Package: wine-compholio-dbg
Architecture: i386 amd64
Depends: wine-staging-dbg, ${misc:Depends}
Priority: extra
Section: oldlibs
Description: Transitional dummy package
This is a transitional dummy package. It can safely be removed.

43
debian/rules vendored
View File

@@ -14,11 +14,11 @@ endif
override_dh_auto_configure:
# Apply our patches, reconfigure, and update the wineserver protocol request data
make -C "$(CURDIR)/patches/" DESTDIR="$(CURDIR)" install
"$(CURDIR)/patches/patchinstall.sh" DESTDIR="$(CURDIR)" --all
# Run configure
ifeq ($(DEB_BUILD_ARCH), amd64)
./configure --prefix=/opt/wine-compholio \
./configure --prefix=/opt/wine-staging \
--libdir=\$${prefix}/lib64 \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
@@ -27,7 +27,7 @@ ifeq ($(DEB_BUILD_ARCH), amd64)
--with-xattr \
$(CONFFLAGS)
else
./configure --prefix=/opt/wine-compholio \
./configure --prefix=/opt/wine-staging \
--libdir=\$${prefix}/lib \
--mandir=\$${prefix}/share/man \
--infodir=\$${prefix}/share/info \
@@ -42,31 +42,42 @@ override_dh_auto_test:
override_dh_installdocs:
# Create copies of license files
cp "$(CURDIR)/LICENSE" "$(CURDIR)/LICENSE.wine"
cp "$(CURDIR)/LICENSE.md" "$(CURDIR)/LICENSE.wine-compholio"
dh_installdocs --link-doc=wine-compholio
dh_installdocs --link-doc=wine-staging
override_dh_install:
dh_install --fail-missing
# These files will end up in multiple packages otherwise
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine-preloader
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64
rm -f debian/wine-compholio/opt/wine-compholio/bin/wine64-preloader
rm -f debian/wine-staging/opt/wine-staging/bin/wine
rm -f debian/wine-staging/opt/wine-staging/bin/wine-preloader
rm -f debian/wine-staging/opt/wine-staging/bin/wine64
rm -f debian/wine-staging/opt/wine-staging/bin/wine64-preloader
# Create compatibility symlinks
mkdir -p debian/wine-compholio/opt/wine-compholio/bin
for _file in $$(ls "debian/wine-staging/opt/wine-staging/bin"); do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
# Architecture specific compatibility symlinks
ifeq ($(DEB_HOST_ARCH),amd64)
for _file in wine wine-preloader wine64 wine64-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
else
for _file in wine wine-preloader; do \
ln -s "/opt/wine-staging/bin/$$_file" "debian/wine-compholio/opt/wine-compholio/bin/$$_file"; \
done
endif
override_dh_strip:
dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-compholio-dbg
dh_strip -Xwine-pthread -Xwine-kthread --dbg-package=wine-staging-dbg
override_dh_shlibdeps:
ifeq ($(DEB_HOST_ARCH),amd64)
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-compholio/lib64/
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-staging/lib64/
else
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-compholio/lib/
dh_shlibdeps -l $(CURDIR)/debian/tmp/opt/wine-staging/lib/
endif

View File

@@ -2,7 +2,7 @@
#
# Wrapper to apply binary patches without git.
#
# Copyright (C) 2014 Sebastian Lackner
# Copyright (C) 2014-2015 Sebastian Lackner
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -75,7 +75,7 @@ filesize()
# Parse environment variables
while [[ $# > 0 ]]; do
while [ "$#" -gt 0 ]; do
cmd="$1"; shift
case "$cmd" in

291
debian/tools/patchinstall.sh.in vendored Normal file
View File

@@ -0,0 +1,291 @@
#!/bin/sh
#
# Script to automatically install all Wine Staging patches
#
# Copyright (C) 2015 Sebastian Lackner
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
#
# Show usage information
usage()
{{
echo ""
echo "Usage: ./patchinstall.sh [DESTDIR=path] [--all] [-W patchset] [patchset ...]"
echo ""
echo "Autogenerated script to apply all Wine Staging patches on your Wine"
echo "source tree. This script replaces and enhances the old method of"
echo "using a Makefile."
echo ""
echo "Configuration:"
echo " DESTDIR=path Specify the path to the wine source tree"
echo " --all Select all patches"
echo " --help Display this help and exit"
echo " --no-autoupdate Do not apply patchlist and don't auto-update files"
echo " -W patchset Exclude a specific patchset"
echo ""
echo "Backends:"
echo " --backend=patch Use regular 'patch' utility to apply patches (default)"
echo " --backend=git-am Use 'git am' to apply patches"
echo " --backend=git-apply Use 'git apply' to apply patches"
echo ""
}}
# Critical error, abort
abort()
{{
echo "ERROR: $1" >&2
exit 1
}}
{patch_helpers}
# Default settings
patch_enable_all 0
enable_autoupdate=1
patchlist="/dev/null"
backend="patch"
enable=1
if test "$#" -eq 0; then
abort "No commandline arguments given, don't know what to do."
fi
while test "$#" -gt 0; do
if patch_enable "$1" "$enable"; then
shift
enable=1
continue
fi
if test "$enable" -ne 1; then
abort "Wrong use of -W commandline argument, expected patchname."
fi
case "$1" in
DESTDIR=*)
DESTDIR="${{1#*=}}"
shift
;;
--all)
patch_enable_all 1
shift
;;
--backend=*)
backend="${{1#*=}}"
shift
;;
--help)
usage
exit 0
;;
--no-autoupdate)
enable_autoupdate=0
shift
;;
-W)
enable=2
shift
;;
*)
abort "Unknown commandline argument $1"
exit 1
esac
done
if test "$enable" -ne 1; then
abort "Missing argument for -W, expected patchname."
fi
# Apply the patches using gitapply.sh, a small wrapper around 'patch'
if test "$backend" = "patch"; then
patch_apply ()
{{
echo "Applying $1"
if ! ../debian/tools/gitapply.sh -d "$DESTDIR" < "$1"; then
abort "Failed to apply patch, aborting!"
fi
}}
# GIT backend - apply patches using 'git am'
elif test "$backend" = "git" -o "$backend" = "git-am"; then
patch_apply ()
{{
echo "Applying $1"
if ! cat "$1" | (cd "$DESTDIR" && git am); then
abort "Failed to apply patch, aborting!"
fi
}}
# Git apply backend
elif test "$backend" = "git-apply"; then
patch_apply ()
{{
echo "Applying $1"
if ! cat "$1" | (cd "$DESTDIR" && git apply); then
abort "Failed to apply patch, aborting!"
fi
}}
# Stacked GIT backend - import the patches (mainly for developers)
elif test "$backend" = "stg"; then
# Only import the regular patches, no autogenerated ones -
# moreover, don't run autoreconf or ./tools/make_requests.
enable_autoupdate=0
patch_apply ()
{{
echo "Applying $1"
if ! echo "staging/$1" | cat - "$1" | (cd "$DESTDIR" && stg import); then
abort "Failed to apply patch, aborting!"
fi
}}
else
abort "Selected backend $backend not supported."
fi
{patch_resolver}
if test -z "$DESTDIR" -a -f ./tools/make_requests; then
DESTDIR="$(pwd)"
elif test ! -f "$DESTDIR/tools/make_requests"; then
abort "DESTDIR does not point to the Wine source tree."
fi
# To make sure we find all the patches and tools switch to the patches directory now
script="$(readlink -f "$0")"
curdir="$(dirname "$script")"
if ! cd "$curdir"; then
abort "Failed to change working directory to $curdir."
fi
# If autoupdate is enabled then create a tempfile to keep track of all patches
if test "$enable_autoupdate" -eq 1; then
patchlist=$(mktemp)
if test ! -f "$patchlist"; then
echo "ERROR: Unable to create temporary file for patchlist." >&2
exit 1
fi
fi
{patch_apply}
if test "$enable_autoupdate" -eq 1; then
# Generate a temporary patch containing the patchlist and apply it
patch_data=$(cat "$patchlist" | sort)
patch_lines=$(echo "$patch_data" | wc -l)
if test ! -z "$patch_data"; then
patch_lines=$((${{patch_lines}}+23))
cat > "$patchlist" <<EOF
From: Wine Staging Team <webmaster@fds-team.de>
Subject: Autogenerated patch list.
diff --git a/include/wine/library.h b/include/wine/library.h
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
+extern const void *wine_get_patches(void);
extern const char *wine_get_build_id(void);
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..0a3182f 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -478,6 +478,${{patch_lines}} @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}}
+static const struct
+{{
+ const char *author;
+ const char *subject;
+ int revision;
+}}
+wine_patch_data[] =
+{{
${{patch_data}}
+ {{ NULL, NULL, 0 }}
+}};
+
+/* return the applied non-standard patches */
+const void *wine_get_patches(void)
+{{
+ return &wine_patch_data[0];
+}}
+
/* return the build id string */
const char *wine_get_build_id(void)
{{
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..5b42029 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -83,6 +83,7 @@ EXPORTS
wine_get_sortkey
wine_get_user_name
wine_get_version
+ wine_get_patches
wine_init
wine_init_argv0_path
wine_is_dbcs_leadbyte
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..7cb2918 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -90,6 +90,7 @@ WINE_1.0
wine_get_ss;
wine_get_user_name;
wine_get_version;
+ wine_get_patches;
wine_init;
wine_init_argv0_path;
wine_is_dbcs_leadbyte;
EOF
patch_apply "$patchlist"
fi
rm "$patchlist"
# Other autogenerated changes
if ! (cd "$DESTDIR" && autoreconf -f); then
abort "'autoreconf -f' failed."
fi
if ! (cd "$DESTDIR" && ./tools/make_requests); then
abort "'./tools/make_requests' failed."
fi
fi
# Success
exit 0

View File

@@ -1,74 +0,0 @@
#!/bin/sh
PATCH_DATA=$(cat);
PATCH_LINES=$(echo "${PATCH_DATA}" | wc -l);
PATCH_LINES=$((${PATCH_LINES}+23));
cat <<EOF
From: Wine Staging Team <webmaster@fds-team.de>
Subject: Autogenerated patch list.
diff --git a/include/wine/library.h b/include/wine/library.h
--- a/include/wine/library.h
+++ b/include/wine/library.h
@@ -43,6 +43,7 @@ extern const char *wine_get_data_dir(void);
extern const char *wine_get_server_dir(void);
extern const char *wine_get_user_name(void);
extern const char *wine_get_version(void);
+extern const void *wine_get_patches(void);
extern const char *wine_get_build_id(void);
extern void wine_init_argv0_path( const char *argv0 );
extern void wine_exec_wine_binary( const char *name, char **argv, const char *env_var );
diff --git a/libs/wine/config.c b/libs/wine/config.c
index a273502..0a3182f 100644
--- a/libs/wine/config.c
+++ b/libs/wine/config.c
@@ -478,6 +478,${PATCH_LINES} @@ const char *wine_get_version(void)
return PACKAGE_VERSION;
}
+static const struct
+{
+ const char *author;
+ const char *subject;
+ int revision;
+}
+wine_patch_data[] =
+{
${PATCH_DATA}
+ { NULL, NULL, 0 }
+};
+
+/* return the applied non-standard patches */
+const void *wine_get_patches(void)
+{
+ return &wine_patch_data[0];
+}
+
/* return the build id string */
const char *wine_get_build_id(void)
{
diff --git a/libs/wine/wine.def b/libs/wine/wine.def
index ed315bd..5b42029 100644
--- a/libs/wine/wine.def
+++ b/libs/wine/wine.def
@@ -83,6 +83,7 @@ EXPORTS
wine_get_sortkey
wine_get_user_name
wine_get_version
+ wine_get_patches
wine_init
wine_init_argv0_path
wine_is_dbcs_leadbyte
diff --git a/libs/wine/wine.map b/libs/wine/wine.map
index 2159fac..7cb2918 100644
--- a/libs/wine/wine.map
+++ b/libs/wine/wine.map
@@ -90,6 +90,7 @@ WINE_1.0
wine_get_ss;
wine_get_user_name;
wine_get_version;
+ wine_get_patches;
wine_init;
wine_init_argv0_path;
wine_is_dbcs_leadbyte;
EOF

View File

@@ -1,8 +1,8 @@
#!/usr/bin/python2
#
# Automatic patch dependency checker and Makefile/README.md generator.
# Automatic patch dependency checker and apply script/README.md generator.
#
# Copyright (C) 2014 Sebastian Lackner
# Copyright (C) 2014-2015 Sebastian Lackner
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -43,17 +43,15 @@ latest_wine_commit = None
cached_patch_result = {}
class config(object):
path_depcache = ".patchupdate.cache"
path_patches = "patches"
path_changelog = "debian/changelog"
path_wine = "debian/tools/wine"
path_template_Makefile = "debian/tools/Makefile.in"
path_Makefile = "patches/Makefile"
path_template_script = "debian/tools/patchinstall.sh.in"
path_script = "patches/patchinstall.sh"
path_README_md = "README.md"
path_template_README_md = "debian/tools/README.md.in"
path_README_md = "README.md"
path_IfDefined = "9999-IfDefined.patch"
@@ -64,6 +62,7 @@ class PatchUpdaterError(RuntimeError):
class PatchSet(object):
def __init__(self, name, directory):
self.name = name
self.variable = None
self.directory = directory
self.fixes = []
self.changes = []
@@ -75,7 +74,6 @@ class PatchSet(object):
self.modified_files = set()
self.depends = set()
self.verify_depends = set()
self.verify_time = None
def _pairs(a):
@@ -98,14 +96,6 @@ def _split_seq(iterable, size):
yield items
items = list(itertools.islice(it, size))
def _merge_seq(iterable, callback=None):
"""Merge lists/iterators into a new one. Call callback after each chunk"""
for i, items in enumerate(iterable):
if callback is not None:
callback(i)
for obj in items:
yield obj
def _escape(s):
"""Escape string inside of '...' quotes."""
return s.replace("\\", "\\\\\\\\").replace("\"", "\\\"").replace("'", "'\\''")
@@ -322,13 +312,6 @@ def causal_time_relation_any(all_patches, indices):
return False
return True
def causal_time_permutations(all_patches, indices):
"""Iterate over all possible permutations of patches affecting
a specific file, which are compatible with dependencies."""
for permutation in itertools.permutations(indices):
if causal_time_relation(all_patches, permutation):
yield permutation
def contains_binary_patch(all_patches, indices, filename):
"""Checks if any patch with given indices affecting filename is a binary patch."""
for i in indices:
@@ -373,133 +356,20 @@ def select_patches(all_patches, indices, filename):
selected_patches[i] = extract_patch(all_patches[i], filename)
return selected_patches
def verify_patch_order(all_patches, indices, filename, pool):
"""Checks if the dependencies are defined correctly by applying
the patches on a (temporary) copy from the git tree."""
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
if contains_binary_patch(all_patches, indices, filename):
if not causal_time_relation_any(all_patches, indices):
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
return
original_content = get_wine_file(filename)
original_content_hash = _sha256(original_content)
selected_patches = select_patches(all_patches, indices, filename)
try:
def _test_apply(permutations):
"""Tests if specific permutations of patches apply on the wine source tree."""
patch_stack_indices = []
patch_stack_patches = []
try:
for permutation in permutations:
# Calculate hash
m = hashlib.sha256()
m.update(original_content_hash)
for i in permutation:
m.update(selected_patches[i][0])
input_hash = m.digest()
# Fast path -> we know that it applies properly
try:
yield cached_patch_result[input_hash]
continue
except KeyError:
pass
# Remove unneeded patches from patch stack
while list(permutation[:len(patch_stack_indices)]) != patch_stack_indices:
patch_stack_indices.pop()
patch_stack_patches.pop().close()
# Apply the patches (without fuzz)
try:
while len(patch_stack_indices) < len(permutation):
i = permutation[len(patch_stack_indices)]
original = patch_stack_patches[-1] if len(patch_stack_indices) else original_content
patch_stack_patches.append(patchutils.apply_patch(original, selected_patches[i][1], fuzz=0))
patch_stack_indices.append(i)
output_hash = _sha256(patch_stack_patches[-1])
except patchutils.PatchApplyError:
output_hash = None
cached_patch_result[input_hash] = output_hash
yield output_hash
finally:
# Ensure temporary files are cleaned up properly
while len(patch_stack_patches):
patch_stack_patches.pop().close()
# Show a progress bar while applying the patches - this task might take some time
chunk_size = 20
total_tasks = (math.factorial(len(indices)) + chunk_size - 1) / chunk_size
with progressbar.ProgressBar(desc=filename, total=total_tasks) as progress:
failed_to_apply = False
last_result_hash = None
# Check for possible ways to apply the patch
it = _split_seq(causal_time_permutations(all_patches, indices), chunk_size)
for output_hash in _merge_seq(pool.imap_unordered(lambda seq: list(_test_apply(seq)), it), \
callback=progress.update):
# Failed to apply patch, continue checking the rest.
if output_hash is None:
failed_to_apply = True
if last_result_hash is None:
continue
break
# No known hash yet, remember the result. If we failed applying before, we can stop now.
elif last_result_hash is None:
last_result_hash = output_hash
if failed_to_apply: break
# Applied successful, but result has a different hash - also treat as failure.
elif last_result_hash != output_hash:
failed_to_apply = True
break
if failed_to_apply:
progress.finish("<failed to apply>")
elif verbose:
progress.finish(binascii.hexlify(last_result_hash))
finally:
original_content.close()
for _, (_, p) in selected_patches.iteritems():
p.close()
# If something failed, then show the appropriate error message.
if failed_to_apply and last_result_hash is None:
raise PatchUpdaterError("Changes to file %s don't apply on git source tree: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
elif failed_to_apply:
raise PatchUpdaterError("Depending on the order some changes to file %s don't apply / lead to different results: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
else:
assert len(last_result_hash) == 32
def resolve_dependencies(all_patches, index):
def resolve_dependencies(all_patches, index = None, depends = None):
"""Returns a sorted list with all dependencies for a given patch."""
def _resolve(depends):
for i in depends:
# Check for disabled patch
if all_patches[i].disabled:
raise PatchUpdaterError("Encountered dependency on disabled patchset %s" % all_patches[i].name)
# Dependencies already resolved
if all_patches[i].verify_resolved > 0:
continue
# Detect circular dependency
if all_patches[i].verify_resolved < 0:
raise PatchUpdaterError("Circular dependency while trying to resolve dependencies of %s" % all_patches[index].name)
raise PatchUpdaterError("Circular dependency while trying to resolve %s" % all_patches[i].name)
# Recusively resolve dependencies
all_patches[i].verify_resolved = -1
@@ -511,7 +381,9 @@ def resolve_dependencies(all_patches, index):
patch.verify_resolved = 0
resolved = []
_resolve(all_patches[index].depends)
if depends is None:
depends = all_patches[index].depends
_resolve(depends)
return resolved
def generate_ifdefined(all_patches):
@@ -564,111 +436,148 @@ def generate_ifdefined(all_patches):
assert p.modified_file in patch.modified_files
patch.patches.append(p)
def verify_dependencies(all_patches):
"""Resolve dependencies, and afterwards run verify_patch_order() to check if everything applies properly."""
def _load_patch_cache():
"""Load dictionary for cached patch dependency tests."""
global cached_patch_result
cached_patch_result = _load_dict(config.path_depcache)
def _save_patch_cache():
"""Save dictionary for cached patch dependency tests."""
_save_dict(config.path_depcache, cached_patch_result.copy())
enabled_patches = dict([(i, patch) for i, patch in all_patches.iteritems() if not patch.disabled])
max_patches = max(enabled_patches.keys()) + 1
for _, patch in enabled_patches.iteritems():
patch.verify_depends = set(patch.depends)
patch.verify_time = [0]*max_patches
# Check for circular dependencies and perform modified vector clock algorithm
patches = dict(enabled_patches)
while len(patches):
to_delete = []
for i, patch in patches.iteritems():
if len(patch.verify_depends) == 0:
patch.verify_time[i] += 1
to_delete.append(i)
if len(to_delete) == 0:
raise PatchUpdaterError("Circular dependency (or disabled dependency) in set of patches: %s" %
", ".join([patch.name for i, patch in patches.iteritems()]))
for j in to_delete:
for i, patch in patches.iteritems():
if i != j and j in patch.verify_depends:
patch.verify_time = causal_time_combine(patch.verify_time, patches[j].verify_time)
patch.verify_depends.remove(j)
del patches[j]
def generate_script(all_patches):
"""Resolve dependencies, and afterwards check if everything applies properly."""
depends = sorted([i for i, patch in all_patches.iteritems() if not patch.disabled])
resolved = resolve_dependencies(all_patches, depends=depends)
max_patches = max(resolved) + 1
# Generate timestamps based on dependencies, still required for binary patches
# Find out which files are modified by multiple patches
modified_files = {}
for i, patch in enabled_patches.iteritems():
for i, patch in [(i, all_patches[i]) for i in resolved]:
patch.verify_time = [0]*max_patches
patch.verify_time[i] += 1
for j in patch.depends:
patch.verify_time = causal_time_combine(patch.verify_time, all_patches[j].verify_time)
for f in patch.modified_files:
if f not in modified_files:
modified_files[f] = []
modified_files[f].append(i)
# Check if patches always apply correctly
_load_patch_cache()
pool = multiprocessing.pool.ThreadPool(processes=8)
try:
for f, indices in modified_files.iteritems():
verify_patch_order(enabled_patches, indices, f, pool)
finally:
_save_patch_cache()
pool.close()
# Check dependencies
for filename, indices in modified_files.iteritems():
def generate_makefile(all_patches):
"""Generate Makefile for a specific set of patches."""
# If one of patches is a binary patch, then we cannot / won't verify it - require dependencies in this case
if contains_binary_patch(all_patches, indices, filename):
if not causal_time_relation_any(all_patches, indices):
raise PatchUpdaterError("Because of binary patch modifying file %s the following patches need explicit dependencies: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
continue
with open(config.path_template_Makefile) as template_fp:
original_content = get_wine_file(filename)
selected_patches = select_patches(all_patches, indices, filename)
# Show a progress bar while applying the patches - this task might take some time
with progressbar.ProgressBar(desc=filename, total=2 ** len(indices)) as progress:
for k, bitstring in enumerate(itertools.product([0,1], repeat=len(indices))):
progress.update(k)
set_apply = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if u]
set_skip = [(i, all_patches[i]) for u, i in zip(bitstring, indices) if not u]
test_apply = True
# Check if there is any patch2 which depends directly or indirectly on patch1.
# If this is the case we found an impossible situation, we can be skipped in this test.
for i, patch1 in set_apply:
for j, patch2 in set_skip:
if causal_time_smaller(patch2.verify_time, patch1.verify_time):
test_apply = False
break
if not test_apply:
break
if test_apply:
try:
original = original_content
for i, patch in set_apply:
original = patchutils.apply_patch(original, selected_patches[i][1], fuzz=0)
except patchutils.PatchApplyError:
progress.finish("<failed to apply>")
raise PatchUpdaterError("Changes to file %s don't apply: %s" %
(filename, ", ".join([all_patches[i].name for i in indices])))
# Generate code for helper functions
lines = []
lines.append("# Enable or disable all patchsets\n")
lines.append("patch_enable_all ()\n")
lines.append("{\n")
for i, patch in sorted([(i, all_patches[i]) for i in resolved], key=lambda x:x[1].name):
patch.variable = "enable_%s" % patch.name.replace("-","_")
lines.append("\t%s=\"$1\"\n" % patch.variable)
lines.append("}\n")
lines.append("\n")
lines.append("# Enable or disable a specific patchset\n")
lines.append("patch_enable ()\n")
lines.append("{\n")
lines.append("\tcase \"$1\" in\n")
for i, patch in sorted([(i, all_patches[i]) for i in resolved], key=lambda x:x[1].name):
lines.append("\t\t%s)\n" % patch.name)
lines.append("\t\t\t%s=\"$2\"\n" % patch.variable)
lines.append("\t\t\t;;\n")
lines.append("\t\t*)\n")
lines.append("\t\t\treturn 1\n")
lines.append("\t\t\t;;\n")
lines.append("\tesac\n")
lines.append("\treturn 0\n")
lines.append("}\n")
lines_helpers = lines
# Generate code for dependency resolver
lines = []
for i, patch in [(i, all_patches[i]) for i in reversed(resolved)]:
if len(patch.depends):
lines.append("if test \"$%s\" -eq 1; then\n" % patch.variable)
for j in sorted(patch.depends):
lines.append("\tif test \"$%s\" -gt 1; then\n" % all_patches[j].variable)
lines.append("\t\tabort \"Patchset %s disabled, but %s depends on that.\"\n" %
(all_patches[j].name, patch.name))
lines.append("\tfi\n")
for j in sorted(patch.depends):
lines.append("\t%s=1\n" % all_patches[j].variable)
lines.append("fi\n\n")
lines_resolver = lines
# Generate code for applying all patchsets
lines = []
for i, patch in [(i, all_patches[i]) for i in resolved]:
lines.append("# Patchset %s\n" % patch.name)
lines.append("# |\n")
# List all bugs fixed by this patchset
if any([bugid is not None for bugid, bugname in patch.fixes]):
lines.append("# | This patchset fixes the following Wine bugs:\n")
for bugid, bugname in patch.fixes:
if bugid is not None:
lines.append("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap("[#%d] %s" % (bugid, bugname), 120)))
lines.append("# |\n")
# List all modified files
lines.append("# | Modified files:\n")
lines.append("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap(", ".join(sorted(patch.modified_files)), 120)))
lines.append("# |\n")
lines.append("if test \"$%s\" -eq 1; then\n" % patch.variable)
for f in patch.files:
lines.append("\tpatch_apply %s\n" % os.path.join(patch.name, f))
if len(patch.patches):
lines.append("\t(\n")
for p in _unique(patch.patches, key=lambda p: (p.patch_author, p.patch_subject, p.patch_revision)):
lines.append("\t\techo '+ { \"%s\", \"%s\", %d },';\n" %
(_escape(p.patch_author), _escape(p.patch_subject), p.patch_revision))
lines.append("\t) >> \"$patchlist\"\n")
lines.append("fi\n\n")
lines_apply = lines
with open(config.path_template_script) as template_fp:
template = template_fp.read()
with open(config.path_Makefile, "w") as fp:
fp.write(template.format(patchlist="\t" + " \\\n\t".join(
["%s.ok" % patch.name for _, patch in all_patches.iteritems() if not patch.disabled])))
for _, patch in all_patches.iteritems():
fp.write("# Patchset %s\n" % patch.name)
fp.write("# |\n")
# List all bugs fixed by this patchset
if any([bugid is not None for bugid, bugname in patch.fixes]):
fp.write("# | This patchset fixes the following Wine bugs:\n")
for bugid, bugname in patch.fixes:
if bugid is not None:
fp.write("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap("[#%d] %s" % (bugid, bugname), 120)))
fp.write("# |\n")
# List all modified files
fp.write("# | Modified files:\n")
fp.write("# | *\t%s\n" % "\n# | \t".join(textwrap.wrap(", ".join(sorted(patch.modified_files)), 120)))
fp.write("# |\n")
# Generate dependencies and code to apply patches
fp.write(".INTERMEDIATE: %s.ok\n" % patch.name)
depends = " ".join([""] + sorted(["%s.ok" % all_patches[d].name for d in patch.depends])) if len(patch.depends) else ""
fp.write("%s.ok:%s\n" % (patch.name, depends))
for f in patch.files:
fp.write("\t$(call APPLY_FILE,%s)\n" % os.path.join(patch.name, f))
# Create *.ok file (used to generate patchlist)
if len(patch.patches):
fp.write("\t@( \\\n")
for p in _unique(patch.patches, key=lambda p: (p.patch_author, p.patch_subject, p.patch_revision)):
fp.write("\t\techo '+ { \"%s\", \"%s\", %d },'; \\\n" % \
(_escape(p.patch_author), _escape(p.patch_subject), p.patch_revision))
fp.write("\t) > %s.ok\n" % patch.name)
else:
fp.write("\ttouch %s.ok\n" % patch.name)
fp.write("\n");
with open(config.path_script, "w") as fp:
fp.write(template.format(patch_helpers="".join(lines_helpers).rstrip("\n"),
patch_resolver="".join(lines_resolver).rstrip("\n"),
patch_apply="".join(lines_apply).rstrip("\n")))
# Add changes to git
subprocess.call(["git", "add", config.path_Makefile])
subprocess.call(["git", "add", config.path_script])
def generate_markdown(all_patches, stable_patches, stable_compholio_version):
"""Generate README.md including information about specific patches and bugfixes."""
@@ -731,9 +640,8 @@ def generate_markdown(all_patches, stable_patches, stable_compholio_version):
subprocess.call(["git", "add", config.path_README_md])
if __name__ == "__main__":
verbose = "-v" in sys.argv[1:]
# Hack to avoid KeyboardInterrupts on worker threads
# Hack to avoid KeyboardInterrupts on different threads
def _sig_int(signum=None, frame=None):
signal.signal(signal.SIGINT, signal.SIG_IGN)
raise RuntimeError("CTRL+C pressed")
@@ -749,14 +657,8 @@ if __name__ == "__main__":
all_patches = read_patchset()
stable_patches = read_patchset(revision="v%s" % stable_compholio_version)
# Update autogenerated ifdefined patches
generate_ifdefined(all_patches)
# Check dependencies
verify_dependencies(all_patches)
# Update Makefile and README.md
generate_makefile(all_patches)
generate_script(all_patches)
generate_markdown(all_patches, stable_patches, stable_compholio_version)
except PatchUpdaterError as e:

View File

@@ -1,4 +0,0 @@
/opt/wine-compholio/lib64/libwine.so*
/opt/wine-compholio/lib64/wine
/opt/wine-compholio/bin/wine64
/opt/wine-compholio/bin/wine64-preloader

View File

@@ -1 +0,0 @@
/opt/wine-compholio/include

View File

@@ -1,4 +0,0 @@
/opt/wine-compholio/lib/libwine.so*
/opt/wine-compholio/lib/wine
/opt/wine-compholio/bin/wine
/opt/wine-compholio/bin/wine-preloader

View File

@@ -1,6 +0,0 @@
documentation/README.*
ANNOUNCE
AUTHORS
LICENSE.wine
LICENSE.wine-compholio
README

View File

@@ -1,2 +0,0 @@
/opt/wine-compholio/bin
/opt/wine-compholio/share

4
debian/wine-staging-amd64.install vendored Normal file
View File

@@ -0,0 +1,4 @@
/opt/wine-staging/lib64/libwine.so*
/opt/wine-staging/lib64/wine
/opt/wine-staging/bin/wine64
/opt/wine-staging/bin/wine64-preloader

1
debian/wine-staging-dev.install vendored Normal file
View File

@@ -0,0 +1 @@
/opt/wine-staging/include

4
debian/wine-staging-i386.install vendored Normal file
View File

@@ -0,0 +1,4 @@
/opt/wine-staging/lib/libwine.so*
/opt/wine-staging/lib/wine
/opt/wine-staging/bin/wine
/opt/wine-staging/bin/wine-preloader

9
debian/wine-staging.docs vendored Normal file
View File

@@ -0,0 +1,9 @@
documentation/README.*
ANNOUNCE
AUTHORS
LICENSE
COPYING.LIB
COPYING.arial
COPYING.cour
COPYING.msyh
README

2
debian/wine-staging.install vendored Normal file
View File

@@ -0,0 +1,2 @@
/opt/wine-staging/bin
/opt/wine-staging/share

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More