diff --git a/README.md b/README.md index a5ef20c6..676a0f7a 100644 --- a/README.md +++ b/README.md @@ -39,13 +39,14 @@ Wine. All those differences are also documented on the Included bug fixes and improvements ----------------------------------- -**Bug fixes and features included in the next upcoming release [12]:** +**Bug fixes and features included in the next upcoming release [13]:** * Add IEnumString stub interface for ACLShellSource ([Wine Bug #18019](https://bugs.winehq.org/show_bug.cgi?id=18019)) * Add implementation for shlwapi.AssocGetPerceivedType * Add stub for atl80.AtlIPersistPropertyBag_Save ([Wine Bug #33888](https://bugs.winehq.org/show_bug.cgi?id=33888)) * Add stub for fltlib.FilterLoad ([Wine Bug #38435](https://bugs.winehq.org/show_bug.cgi?id=38435)) * Add stub for winsta.WinStationEnumerateW ([Wine Bug #38102](https://bugs.winehq.org/show_bug.cgi?id=38102)) +* Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} ([Wine Bug #12076](https://bugs.winehq.org/show_bug.cgi?id=12076)) * Dirtify vertex shader on transformed update to fix graphical corruption ([Wine Bug #38539](https://bugs.winehq.org/show_bug.cgi?id=38539)) * Do not create foreign thread queues for attach_thread_input requests ([Wine Bug #38562](https://bugs.winehq.org/show_bug.cgi?id=38562)) * Improve ReadDataAvailable handling in FilePipeLocalInformation class diff --git a/debian/changelog b/debian/changelog index 9e20bf3a..0ba4aa93 100644 --- a/debian/changelog +++ b/debian/changelog @@ -27,6 +27,8 @@ wine-staging (1.7.43) UNRELEASED; urgency=low * Added patch to avoid creating foreign thread queues for attach_thread_input requests. * Added patch with IEnumString stub interface for ACLShellSource. + * Added patch to create stub files for + system32/drivers/etc/{services,hosts,networks,protocol}. * Removed patch to use lockfree implementation for FD cache (accepted upstream). * Removed patch to properly handle closing sockets during a select call diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 4443f8cb..b0b79b69 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -249,6 +249,7 @@ patch_enable_all () enable_wine_inf_ProfileList_UserSID="$1" enable_wineboot_HKEY_DYN_DATA="$1" enable_wineboot_MachineGuid="$1" + enable_wineboot_drivers_etc_Stubs="$1" enable_winebuild_LinkerVersion="$1" enable_winecfg_Libraries="$1" enable_winecfg_Staging="$1" @@ -810,6 +811,9 @@ patch_enable () wineboot-MachineGuid) enable_wineboot_MachineGuid="$2" ;; + wineboot-drivers_etc_Stubs) + enable_wineboot_drivers_etc_Stubs="$2" + ;; winebuild-LinkerVersion) enable_winebuild_LinkerVersion="$2" ;; @@ -5156,6 +5160,21 @@ if test "$enable_wineboot_MachineGuid" -eq 1; then ) >> "$patchlist" fi +# Patchset wineboot-drivers_etc_Stubs +# | +# | This patchset fixes the following Wine bugs: +# | * [#12076] Create stub files for system32/drivers/etc/{services,hosts,networks,protocol} +# | +# | Modified files: +# | * programs/wineboot/wineboot.c +# | +if test "$enable_wineboot_drivers_etc_Stubs" -eq 1; then + patch_apply wineboot-drivers_etc_Stubs/0001-wineboot-Init-system32-drivers-etc-host-networks-pro.patch + ( + echo '+ { "Sebastian Lackner", "wineboot: Init system32/drivers/etc/{host,networks,protocol,services}.", 1 },'; + ) >> "$patchlist" +fi + # Patchset winebuild-LinkerVersion # | # | This patchset fixes the following Wine bugs: diff --git a/patches/wineboot-drivers_etc_Stubs/0001-wineboot-Init-system32-drivers-etc-host-networks-pro.patch b/patches/wineboot-drivers_etc_Stubs/0001-wineboot-Init-system32-drivers-etc-host-networks-pro.patch new file mode 100644 index 00000000..5cdb0fdc --- /dev/null +++ b/patches/wineboot-drivers_etc_Stubs/0001-wineboot-Init-system32-drivers-etc-host-networks-pro.patch @@ -0,0 +1,70 @@ +From 6127b7897fb868a9a80cd53d2123402570662d68 Mon Sep 17 00:00:00 2001 +From: Sebastian Lackner +Date: Wed, 13 May 2015 06:58:16 +0200 +Subject: wineboot: Init + system32/drivers/etc/{host,networks,protocol,services}. + +Based on a patch by Jactry Zeng. +--- + programs/wineboot/wineboot.c | 38 ++++++++++++++++++++++++++++++++++++++ + 1 file changed, 38 insertions(+) + +diff --git a/programs/wineboot/wineboot.c b/programs/wineboot/wineboot.c +index a20b4e1..b2cc0a9 100644 +--- a/programs/wineboot/wineboot.c ++++ b/programs/wineboot/wineboot.c +@@ -417,6 +417,41 @@ static void create_volatile_environment_registry_key(void) + RegCloseKey( hkey ); + } + ++static void create_etc_stub_files(void) ++{ ++ static const WCHAR drivers_etcW[] = {'\\','d','r','i','v','e','r','s','\\','e','t','c',0}; ++ static const WCHAR hostsW[] = {'h','o','s','t','s',0}; ++ static const WCHAR networksW[] = {'n','e','t','w','o','r','k','s',0}; ++ static const WCHAR protocolW[] = {'p','r','o','t','o','c','o','l',0}; ++ static const WCHAR servicesW[] = {'s','e','r','v','i','c','e','s',0}; ++ static const WCHAR *files[] = { hostsW, networksW, protocolW, servicesW }; ++ WCHAR path[MAX_PATH + sizeof(drivers_etcW)/sizeof(WCHAR) + 32]; ++ DWORD i, path_len; ++ HANDLE file; ++ ++ GetSystemDirectoryW( path, MAX_PATH ); ++ strcatW( path, drivers_etcW ); ++ path_len = strlenW( path ); ++ ++ if (!CreateDirectoryW( path, NULL ) && GetLastError() != ERROR_ALREADY_EXISTS) ++ return; ++ ++ path[ path_len++ ] = '\\'; ++ for (i = 0; i < sizeof(files) / sizeof(files[0]); i++) ++ { ++ path[ path_len ] = 0; ++ strcatW( path, files[i] ); ++ if (PathFileExistsW( path )) continue; ++ ++ file = CreateFileW( path, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, ++ NULL, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, NULL ); ++ if (file == INVALID_HANDLE_VALUE) ++ WINE_ERR( "wine: failed to create %s.", wine_dbgstr_w(path) ); ++ else ++ CloseHandle( file ); ++ } ++} ++ + /* Performs the rename operations dictated in %SystemRoot%\Wininit.ini. + * Returns FALSE if there was an error, or otherwise if all is ok. + */ +@@ -1023,6 +1058,9 @@ static void update_wineprefix( BOOL force ) + } + DestroyWindow( hwnd ); + } ++ ++ create_etc_stub_files(); ++ + WINE_MESSAGE( "wine: configuration in '%s' has been updated.\n", config_dir ); + } + +-- +2.4.0 + diff --git a/patches/wineboot-drivers_etc_Stubs/definition b/patches/wineboot-drivers_etc_Stubs/definition new file mode 100644 index 00000000..96d2be68 --- /dev/null +++ b/patches/wineboot-drivers_etc_Stubs/definition @@ -0,0 +1 @@ +Fixes: [12076] Create stub files for system32/drivers/etc/{services,hosts,networks,protocol}