diff --git a/susepatches.patch b/susepatches.patch new file mode 100644 index 0000000..4bda76d --- /dev/null +++ b/susepatches.patch @@ -0,0 +1,169 @@ +commit 38076fa63308417429617f959ce44315b604424c +Author: Sebastian Lackner +Date: Mon Aug 10 18:31:56 2015 +0200 + + ntdll: Move cookie initialization code from memory management to loader. + +diff --git a/dlls/ntdll/loader.c b/dlls/ntdll/loader.c +index 0e91af4..d15b140 100644 +--- a/dlls/ntdll/loader.c ++++ b/dlls/ntdll/loader.c +@@ -50,6 +50,12 @@ WINE_DECLARE_DEBUG_CHANNEL(snoop); + WINE_DECLARE_DEBUG_CHANNEL(loaddll); + WINE_DECLARE_DEBUG_CHANNEL(imports); + ++#ifdef _WIN64 ++#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232) ++#endif ++#define DEFAULT_SECURITY_COOKIE_32 0xbb40e64e ++#define DEFAULT_SECURITY_COOKIE_16 (DEFAULT_SECURITY_COOKIE_32 >> 16) ++ + /* we don't want to include winuser.h */ + #define RT_MANIFEST ((ULONG_PTR)24) + #define ISOLATIONAWARE_MANIFEST_RESOURCE_ID ((ULONG_PTR)2) +@@ -1602,6 +1608,55 @@ static void load_builtin_callback( void *module, const char *filename ) + } + + ++/*********************************************************************** ++ * set_security_cookie ++ * ++ * Create a random security cookie for buffer overflow protection. Make ++ * sure it does not accidentally match the default cookie value. ++ */ ++static void set_security_cookie( void *module, SIZE_T len ) ++{ ++ static ULONG seed; ++ IMAGE_LOAD_CONFIG_DIRECTORY *loadcfg; ++ ULONG loadcfg_size; ++ ULONG_PTR *cookie; ++ ++ loadcfg = RtlImageDirectoryEntryToData( module, TRUE, IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG, &loadcfg_size ); ++ if (!loadcfg) return; ++ if (loadcfg_size < offsetof(IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie) + sizeof(loadcfg->SecurityCookie)) return; ++ if (!loadcfg->SecurityCookie) return; ++ if (loadcfg->SecurityCookie < (ULONG_PTR)module || ++ loadcfg->SecurityCookie > (ULONG_PTR)module + len - sizeof(ULONG_PTR)) ++ { ++ WARN( "security cookie %p outside of image %p-%p\n", ++ (void *)loadcfg->SecurityCookie, module, (char *)module + len ); ++ return; ++ } ++ ++ cookie = (ULONG_PTR *)loadcfg->SecurityCookie; ++ TRACE( "initializing security cookie %p\n", cookie ); ++ ++ if (!seed) seed = NtGetTickCount() ^ GetCurrentProcessId(); ++ for (;;) ++ { ++ if (*cookie == DEFAULT_SECURITY_COOKIE_16) ++ *cookie = RtlRandom( &seed ) >> 16; /* leave the high word clear */ ++ else if (*cookie == DEFAULT_SECURITY_COOKIE_32) ++ *cookie = RtlRandom( &seed ); ++#ifdef DEFAULT_SECURITY_COOKIE_64 ++ else if (*cookie == DEFAULT_SECURITY_COOKIE_64) ++ { ++ *cookie = RtlRandom( &seed ); ++ /* fill up, but keep the highest word clear */ ++ *cookie ^= (ULONG_PTR)RtlRandom( &seed ) << 16; ++ } ++#endif ++ else ++ break; ++ } ++} ++ ++ + /****************************************************************************** + * load_native_dll (internal) + */ +@@ -1636,6 +1691,8 @@ static NTSTATUS load_native_dll( LPCWSTR load_path, LPCWSTR name, HANDLE file, + goto done; + } + ++ set_security_cookie( module, len ); ++ + /* fixup imports */ + + nt = RtlImageNtHeader( module ); +diff --git a/dlls/ntdll/virtual.c b/dlls/ntdll/virtual.c +index 676675f..fe17518 100644 +--- a/dlls/ntdll/virtual.c ++++ b/dlls/ntdll/virtual.c +@@ -61,12 +61,6 @@ WINE_DECLARE_DEBUG_CHANNEL(module); + #define MAP_NORESERVE 0 + #endif + +-#ifdef _WIN64 +-#define DEFAULT_SECURITY_COOKIE_64 (((ULONGLONG)0x00002b99 << 32) | 0x2ddfa232) +-#endif +-#define DEFAULT_SECURITY_COOKIE_32 0xbb40e64e +-#define DEFAULT_SECURITY_COOKIE_16 (DEFAULT_SECURITY_COOKIE_32 >> 16) +- + /* File view */ + struct file_view + { +@@ -1060,37 +1054,6 @@ static NTSTATUS stat_mapping_file( struct file_view *view, struct stat *st ) + } + + /*********************************************************************** +- * set_security_cookie +- * +- * Create a random security cookie for buffer overflow protection. Make +- * sure it does not accidentally match the default cookie value. +- */ +-static void set_security_cookie(ULONG_PTR *cookie) +-{ +- static ULONG seed; +- +- if (!cookie) return; +- if (!seed) seed = NtGetTickCount() ^ GetCurrentProcessId(); +- while (1) +- { +- if (*cookie == DEFAULT_SECURITY_COOKIE_16) +- *cookie = RtlRandom( &seed ) >> 16; /* leave the high word clear */ +- else if (*cookie == DEFAULT_SECURITY_COOKIE_32) +- *cookie = RtlRandom( &seed ); +-#ifdef DEFAULT_SECURITY_COOKIE_64 +- else if (*cookie == DEFAULT_SECURITY_COOKIE_64) +- { +- *cookie = RtlRandom( &seed ); +- /* fill up, but keep the highest word clear */ +- *cookie ^= (ULONG_PTR)RtlRandom( &seed ) << 16; +- } +-#endif +- else +- break; +- } +-} +- +-/*********************************************************************** + * map_image + * + * Map an executable (PE format) image into memory. +@@ -1103,8 +1066,6 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz + IMAGE_SECTION_HEADER sections[96]; + IMAGE_SECTION_HEADER *sec; + IMAGE_DATA_DIRECTORY *imports; +- IMAGE_LOAD_CONFIG_DIRECTORY *loadcfg; +- ULONG loadcfg_size; + NTSTATUS status = STATUS_CONFLICTING_ADDRESSES; + int i; + off_t pos; +@@ -1316,16 +1277,6 @@ static NTSTATUS map_image( HANDLE hmapping, int fd, char *base, SIZE_T total_siz + } + } + +- /* randomize security cookie */ +- +- loadcfg = RtlImageDirectoryEntryToData( (HMODULE)ptr, TRUE, +- IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG, &loadcfg_size ); +- if (loadcfg && loadcfg_size >= offsetof(IMAGE_LOAD_CONFIG_DIRECTORY, SecurityCookie) + sizeof(loadcfg->SecurityCookie) && +- (ULONG_PTR)ptr <= loadcfg->SecurityCookie && loadcfg->SecurityCookie <= (ULONG_PTR)ptr + total_size - sizeof(ULONG_PTR)) +- { +- set_security_cookie((ULONG_PTR *)loadcfg->SecurityCookie); +- } +- + /* set the image protections */ + + VIRTUAL_SetProt( view, ptr, ROUND_SIZE( 0, header_size ), VPROT_COMMITTED | VPROT_READ ); diff --git a/wine-1.7.48.tar.bz2 b/wine-1.7.48.tar.bz2 deleted file mode 100644 index a01d967..0000000 --- a/wine-1.7.48.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e3f55ce56e2092d49b317fea8802e314be2b2170fd434f5e45f7141773946c8e -size 22444016 diff --git a/wine-1.7.48.tar.bz2.sign b/wine-1.7.48.tar.bz2.sign deleted file mode 100644 index 5e2aa58..0000000 --- a/wine-1.7.48.tar.bz2.sign +++ /dev/null @@ -1,7 +0,0 @@ ------BEGIN PGP SIGNATURE----- -Version: GnuPG v1 - -iEYEABECAAYFAlW3yEYACgkQ9ebp7rlGHdetnQCfZxS8fc4e75KC+IrGjw7udbjb -ntMAniWJv0IEVoF2zKAlF3IstnUSqZHB -=J+6k ------END PGP SIGNATURE----- diff --git a/wine-1.7.49.tar.bz2 b/wine-1.7.49.tar.bz2 new file mode 100644 index 0000000..8694d23 --- /dev/null +++ b/wine-1.7.49.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8a1589753493cb6b71b3772b730cdf90059fe0f29cbfb369fc9a2339766b789 +size 22541586 diff --git a/wine-1.7.49.tar.bz2.sign b/wine-1.7.49.tar.bz2.sign new file mode 100644 index 0000000..cb58b89 --- /dev/null +++ b/wine-1.7.49.tar.bz2.sign @@ -0,0 +1,7 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1 + +iEYEABECAAYFAlXE1ToACgkQ9ebp7rlGHddS8gCgnpgZemeRznDg7CIttwBQi8MG +lWEAn2t8RhM3l0asOuVN+zDt0YPSeuTw +=zTDF +-----END PGP SIGNATURE----- diff --git a/wine.changes b/wine.changes index 96cd19f..d24400d 100644 --- a/wine.changes +++ b/wine.changes @@ -1,3 +1,19 @@ +------------------------------------------------------------------- +Thu Aug 13 06:21:54 UTC 2015 - meissner@suse.com + +- susepatches.patch: fix ms word + +------------------------------------------------------------------- +Sat Aug 8 10:57:45 UTC 2015 - meissner@suse.com + +- Updated to 1.7.49 development snapshot + - DirectWrite is now good enough for rendering text in Steam. + - A number of Direct2D improvements. + - Some more OpenMP functions. + - Support for namespaces in the IDL compiler. + - Various bug fixes. +- winetricks update + ------------------------------------------------------------------- Wed Jul 29 16:27:02 UTC 2015 - meissner@suse.com diff --git a/wine.spec b/wine.spec index 3604026..99b8287 100644 --- a/wine.spec +++ b/wine.spec @@ -57,7 +57,7 @@ BuildRequires: sane-backends-devel BuildRequires: update-desktop-files BuildRequires: valgrind-devel BuildRequires: xorg-x11-devel -Version: 1.7.48 +Version: 1.7.49 Release: 0 Summary: An MS Windows Emulator License: LGPL-2.1+ @@ -80,7 +80,7 @@ Source5: ubuntuwine.tar.bz2 Source7: baselibs.conf # SUSE specific patches # - currently none, but add them here -#Patch0: susepatches.patch +Patch0: susepatches.patch Recommends: wine-gecko >= 2.24 Recommends: wine-mp3 # not packaged in distro... @@ -125,7 +125,7 @@ libraries. %prep %setup -q -#%patch0 -p1 +%patch0 -p1 # cp %{S:3} . # diff --git a/winetricks b/winetricks index 3f066df..04b96ed 100644 --- a/winetricks +++ b/winetricks @@ -5953,7 +5953,8 @@ load_dotnet_verifier() # 2013/03/28: sha1sum 0eba832a0733cd47b7639463dd5a22a41e95ee6e # 2014/01/23: sha1sum 8818f3460826145e2a66bb91727afa7cd531037b # 2014/11/22: sha1sum 47de0b849c4c3d354df23588c709108e7816d788 - w_download http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-08-99-90-04/netfx_5F00_setupverifier_5F00_new.zip 47de0b849c4c3d354df23588c709108e7816d788 + # 2015/07/31: sha1sum 32f24526a5716737281dc260451b60a641b23c7e + w_download http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Components-PostAttachments/00-08-99-90-04/netfx_5F00_setupverifier_5F00_new.zip 32f24526a5716737281dc260451b60a641b23c7e cd "$W_CACHE"/dotnet_verifier @@ -7323,8 +7324,9 @@ load_shockwave() { # 2014-11-22 sha1sum: 644d3228654ded798eabe40e7044b96b90e742f6 # 2015-03-30 sha1sum: 9f2d4d929e7210ae9fb633881127b21586ffd8ce # 2015-04-27 sha1sum: 244e6a5c5fa2dd26c136bc5b402f6cad588763d7 + # 2015-08-02 sha1sum: e2efa2eb7db0a6de08905cd61bb3efcf58fda994 - w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi 244e6a5c5fa2dd26c136bc5b402f6cad588763d7 + w_download http://fpdownload.macromedia.com/get/shockwave/default/english/win95nt/latest/sw_lic_full_installer.msi e2efa2eb7db0a6de08905cd61bb3efcf58fda994 cd "$W_CACHE"/shockwave w_try "$WINE" msiexec /i sw_lic_full_installer.msi $W_UNATTENDED_SLASH_Q } @@ -9104,11 +9106,11 @@ load_dxdiag() then w_call dxdiagn fi - if w_workaround_wine_bug 25715 + if w_workaround_wine_bug 25715 "" 1.7.28, then w_call quartz fi - if w_workaround_wine_bug 25716 + if w_workaround_wine_bug 25716 "" 1.7.29, then w_call devenum fi