diff --git a/README.md b/README.md index 2b852658..4fe7d3a9 100644 --- a/README.md +++ b/README.md @@ -18,9 +18,11 @@ These patches fix the following Wine bugs: * Implement an Arial replacement font ([Wine Bug #32323](http://bugs.winehq.org/show_bug.cgi?id=32323 "Netflix (Silverlight 4.x) and several .NET Framework 3.x/4.0 WPF apps require either Arial or Verdana to be installed")) * Support for interface change notifications ([Wine Bug #32328](http://bugs.winehq.org/show_bug.cgi?id=32328 "Many .NET and Silverlight applications require SIO_ADDRESS_LIST_CHANGE for interface change notifications")) * Support for inherited file ACLs ([Wine Bug #34406](http://bugs.winehq.org/show_bug.cgi?id=34406 "Finale Notepad 2012 doesn't copy/create user files on program start")) +* Add Dynamic DST exceptions for Israel Standard Time ([Wine Bug #36374](http://bugs.winehq.org/show_bug.cgi?id=36374 "Israel timezone handled incorrectly")) Besides that the following additional changes are included: +* Add support for Dynamic DST (daylight saving time) information in registry * Lockfree algorithm for filedescriptor cache (improves file access speed) * Other Pipelight specific enhancements * Reduced SetTimer minimum value from 10 ms to 5 ms (improves Silverlight framerates) diff --git a/patches/16-server-CreateProcess_ACLs/a3f43350-092c-11e4-9b1e-0090f5c75ad5.def b/patches/16-server-CreateProcess_ACLs/a3f43350-092c-11e4-9b1e-0090f5c75ad5.def deleted file mode 100644 index 1bddd504..00000000 --- a/patches/16-server-CreateProcess_ACLs/a3f43350-092c-11e4-9b1e-0090f5c75ad5.def +++ /dev/null @@ -1,3 +0,0 @@ -Revision: 1 -Author: Joris van der Wel -Title: Implement passing ACLs to CreateProcess. diff --git a/patches/17-strmbase-Lock_Race_Conditions/c64ef9a8-0dd2-11e4-ab01-0090f5c75ad5.def b/patches/17-strmbase-Lock_Race_Conditions/c64ef9a8-0dd2-11e4-ab01-0090f5c75ad5.def deleted file mode 100644 index 02ac92ea..00000000 --- a/patches/17-strmbase-Lock_Race_Conditions/c64ef9a8-0dd2-11e4-ab01-0090f5c75ad5.def +++ /dev/null @@ -1,3 +0,0 @@ -Revision: 1 -Author: Erich E. Hoover -Title: Fix possible race conditions in strmbase/quartz. diff --git a/patches/18-quartz-MediaSeeking_Positions/748e5166-11ad-11e4-ae23-0090f5c75ad5.def b/patches/18-quartz-MediaSeeking_Positions/748e5166-11ad-11e4-ae23-0090f5c75ad5.def deleted file mode 100644 index 8a0fdc78..00000000 --- a/patches/18-quartz-MediaSeeking_Positions/748e5166-11ad-11e4-ae23-0090f5c75ad5.def +++ /dev/null @@ -1,3 +0,0 @@ -Revision: 1 -Author: Erich E. Hoover -Title: Return correct IMediaSeeking stream positions in quartz. diff --git a/patches/19-ntdll-Dynamic_DST/0001-ntdll-Add-support-for-Dynamic-DST-daylight-saving-ti.patch b/patches/19-ntdll-Dynamic_DST/0001-ntdll-Add-support-for-Dynamic-DST-daylight-saving-ti.patch new file mode 100644 index 00000000..65de762f --- /dev/null +++ b/patches/19-ntdll-Dynamic_DST/0001-ntdll-Add-support-for-Dynamic-DST-daylight-saving-ti.patch @@ -0,0 +1,74 @@ +From b72d6c2bb191c98187193ea00ccce6eed0486a7b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michael=20M=C3=BCller?= +Date: Thu, 24 Jul 2014 01:27:16 +0200 +Subject: ntdll: Add support for Dynamic DST (daylight saving time) + information in registry. + +--- + dlls/ntdll/time.c | 34 +++++++++++++++++++++++++++++----- + 1 file changed, 29 insertions(+), 5 deletions(-) + +diff --git a/dlls/ntdll/time.c b/dlls/ntdll/time.c +index 5ec5a1c..df3bedd 100644 +--- a/dlls/ntdll/time.c ++++ b/dlls/ntdll/time.c +@@ -598,11 +598,23 @@ static void find_reg_tz_info(RTL_TIME_ZONE_INFORMATION *tzi) + 'W','i','n','d','o','w','s',' ','N','T','\\', + 'C','u','r','r','e','n','t','V','e','r','s','i','o','n','\\', + 'T','i','m','e',' ','Z','o','n','e','s',0 }; ++ static const WCHAR Dynamic_DstW[] = { 'D','y','n','a','m','i','c',' ','D','S','T',0 }; ++ static const WCHAR fmtW[] = { '%','d',0 }; + HANDLE hkey; + ULONG idx; +- OBJECT_ATTRIBUTES attr; +- UNICODE_STRING nameW; +- WCHAR buf[128]; ++ OBJECT_ATTRIBUTES attr, attrDynamic; ++ UNICODE_STRING nameW, nameDynamicW; ++ WCHAR buf[128], yearW[16]; ++ ++ sprintfW(yearW, fmtW, tzi->DaylightDate.wYear); ++ ++ attrDynamic.Length = sizeof(attrDynamic); ++ attrDynamic.RootDirectory = 0; /* will be replaced later */ ++ attrDynamic.ObjectName = &nameDynamicW; ++ attrDynamic.Attributes = 0; ++ attrDynamic.SecurityDescriptor = NULL; ++ attrDynamic.SecurityQualityOfService = NULL; ++ RtlInitUnicodeString(&nameDynamicW, Dynamic_DstW); + + attr.Length = sizeof(attr); + attr.RootDirectory = 0; +@@ -628,7 +640,9 @@ static void find_reg_tz_info(RTL_TIME_ZONE_INFORMATION *tzi) + static const WCHAR dltW[] = { 'D','l','t',0 }; + static const WCHAR tziW[] = { 'T','Z','I',0 }; + RTL_TIME_ZONE_INFORMATION reg_tzi; +- HANDLE hSubkey; ++ HANDLE hSubkey, hSubkeyDynamicDST; ++ BOOL is_dynamic = FALSE; ++ + struct tz_reg_data + { + LONG bias; +@@ -660,7 +674,17 @@ static void find_reg_tz_info(RTL_TIME_ZONE_INFORMATION *tzi) + + get_value(hSubkey, stdW, REG_SZ, reg_tzi.StandardName, sizeof(reg_tzi.StandardName)); + get_value(hSubkey, dltW, REG_SZ, reg_tzi.DaylightName, sizeof(reg_tzi.DaylightName)); +- get_value(hSubkey, tziW, REG_BINARY, &tz_data, sizeof(tz_data)); ++ ++ /* Check for Dynamic DST entry first */ ++ attrDynamic.RootDirectory = hSubkey; ++ if (!NtOpenKey(&hSubkeyDynamicDST, KEY_READ, &attrDynamic)) ++ { ++ is_dynamic = reg_query_value(hSubkeyDynamicDST, yearW, REG_BINARY, &tz_data, sizeof(tz_data)); ++ NtClose(hSubkeyDynamicDST); ++ } ++ ++ if (!is_dynamic) ++ get_value(hSubkey, tziW, REG_BINARY, &tz_data, sizeof(tz_data)); + + #undef get_value + +-- +1.7.9.5 + diff --git a/patches/19-ntdll-Dynamic_DST/0002-wine.inf-Add-Dynamic-DST-exceptions-for-Israel-Stand.patch b/patches/19-ntdll-Dynamic_DST/0002-wine.inf-Add-Dynamic-DST-exceptions-for-Israel-Stand.patch new file mode 100644 index 00000000..84590e6e --- /dev/null +++ b/patches/19-ntdll-Dynamic_DST/0002-wine.inf-Add-Dynamic-DST-exceptions-for-Israel-Stand.patch @@ -0,0 +1,47 @@ +From 415449fb2194136efaeed4b978b5e3a7617ae43b Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Sat, 26 Jul 2014 00:44:03 +0200 +Subject: wine.inf: Add Dynamic DST exceptions for Israel Standard Time. + +--- + loader/wine.inf.in | 24 ++++++++++++++++++++++++ + 1 file changed, 24 insertions(+) + +diff --git a/loader/wine.inf.in b/loader/wine.inf.in +index 25bc098..594ad60 100644 +--- a/loader/wine.inf.in ++++ b/loader/wine.inf.in +@@ -2756,6 +2756,30 @@ HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time,"Display",,"Asia/Jerusal + HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time,"Dlt",,"Israel Daylight Time" + HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time,"Std",,"Israel Standard Time" + HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time,"TZI",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,00,00,0a,00,00,00,05,00,02,00,00,00,00,00,00,00,00,00,03,00,05,00,05,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2017",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,e1,07,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,e1,07,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2018",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,e2,07,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,e2,07,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2023",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,e7,07,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,e7,07,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2028",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,ec,07,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,ec,07,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2029",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,ed,07,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,ed,07,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2034",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,f2,07,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,f2,07,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2035",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,f3,07,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,f3,07,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2040",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,f8,07,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,f8,07,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2045",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,fd,07,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,fd,07,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2046",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,fe,07,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,fe,07,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2051",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,03,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,03,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2056",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,08,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,08,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2057",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,09,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,09,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2062",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,0e,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,0e,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2063",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,0f,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,0f,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2068",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,14,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,14,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2073",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,19,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,19,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2074",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,1a,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,1a,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2079",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,1f,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,1f,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2084",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,24,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,24,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2085",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,25,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,25,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2090",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,2a,08,0a,00,00,00,1d,00,02,00,00,00,00,00,00,00,2a,08,03,00,05,00,18,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2091",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,2b,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,2b,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 ++HKLM,%CurrentVersionNT%\Time Zones\Israel Standard Time\Dynamic DST,"2096",1,88,ff,ff,ff,00,00,00,00,c4,ff,ff,ff,30,08,0a,00,00,00,1c,00,02,00,00,00,00,00,00,00,30,08,03,00,05,00,17,00,02,00,00,00,00,00,00,00 + HKLM,%CurrentVersionNT%\Time Zones\Jordan Standard Time,"Display",,"Asia/Amman" + HKLM,%CurrentVersionNT%\Time Zones\Jordan Standard Time,"Dlt",,"Jordan Daylight Time" + HKLM,%CurrentVersionNT%\Time Zones\Jordan Standard Time,"Std",,"Jordan Standard Time" +-- +1.7.9.5 + diff --git a/patches/19-ntdll-Dynamic_DST/definition b/patches/19-ntdll-Dynamic_DST/definition new file mode 100644 index 00000000..f0dbbab0 --- /dev/null +++ b/patches/19-ntdll-Dynamic_DST/definition @@ -0,0 +1,10 @@ +Author: Michael Müller +Subject: Add support for Dynamic DST (daylight saving time) information in registry. +Revision: 1 + +Author: Sebastian Lackner +Subject: Add Dynamic DST exceptions for Israel Standard Time. +Revision: 1 + +Fixes: Add support for Dynamic DST (daylight saving time) information in registry +Fixes: [36374] Add Dynamic DST exceptions for Israel Standard Time diff --git a/patches/Makefile b/patches/Makefile index 0ea12294..70f10e14 100644 --- a/patches/Makefile +++ b/patches/Makefile @@ -22,6 +22,7 @@ PATCHLIST := 00-Commandline.ok \ 16-server-CreateProcess_ACLs.ok \ 17-strmbase-Lock_Race_Conditions.ok \ 18-quartz-MediaSeeking_Positions.ok \ + 19-ntdll-Dynamic_DST.ok \ 97-Pipelight.ok \ 98-Miscellaneous.ok @@ -395,6 +396,26 @@ clean: echo "+ { \"18-quartz-MediaSeeking_Positions\", \"Erich E. Hoover\", \"Return correct IMediaSeeking stream positions in quartz.\" },"; \ ) > 18-quartz-MediaSeeking_Positions.ok +# Patchset 19-ntdll-Dynamic_DST +# | +# | Included patches: +# | * Add support for Dynamic DST (daylight saving time) information in registry. [by Michael Müller] +# | * Add Dynamic DST exceptions for Israel Standard Time. [by Sebastian Lackner] +# | +# | This patchset fixes the following Wine bugs: +# | * [#36374] Israel timezone handled incorrectly +# | +# | Modified files: +# | * dlls/ntdll/time.c, loader/wine.inf.in +# | +19-ntdll-Dynamic_DST.ok: + $(PATCH) < 19-ntdll-Dynamic_DST/0001-ntdll-Add-support-for-Dynamic-DST-daylight-saving-ti.patch + $(PATCH) < 19-ntdll-Dynamic_DST/0002-wine.inf-Add-Dynamic-DST-exceptions-for-Israel-Stand.patch + ( \ + echo "+ { \"19-ntdll-Dynamic_DST\", \"Michael Müller\", \"Add support for Dynamic DST (daylight saving time) information in registry.\" },"; \ + echo "+ { \"19-ntdll-Dynamic_DST\", \"Sebastian Lackner\", \"Add Dynamic DST exceptions for Israel Standard Time.\" },"; \ + ) > 19-ntdll-Dynamic_DST.ok + # Patchset 97-Pipelight # | # | Included patches: