SHA256
1
0
forked from pool/wine

- Updated to 1.7.50 development snapshot

- New version of the Gecko engine based on Firefox 40.
  - First steps of the Direct3D 11 implementation.
  - Better font matching in DirectWrite.
  - Support for OpenMP on ARM platforms.
  - Various bug fixes.
- updated winetricks
- removed susepatches.patch (upstreamed)

OBS-URL: https://build.opensuse.org/package/show/Emulators/wine?expand=0&rev=301
This commit is contained in:
Marcus Meissner 2015-08-24 09:47:58 +00:00 committed by Git OBS Bridge
parent 6959cbce3d
commit 42375f9b24
8 changed files with 139 additions and 201 deletions

View File

@ -1,169 +0,0 @@
commit 38076fa63308417429617f959ce44315b604424c
Author: Sebastian Lackner <sebastian@fds-team.de>
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 );

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c8a1589753493cb6b71b3772b730cdf90059fe0f29cbfb369fc9a2339766b789
size 22541586

View File

@ -1,7 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlXE1ToACgkQ9ebp7rlGHddS8gCgnpgZemeRznDg7CIttwBQi8MG
lWEAn2t8RhM3l0asOuVN+zDt0YPSeuTw
=zTDF
-----END PGP SIGNATURE-----

3
wine-1.7.50.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7c5410fab820281f337d478c18305027363c9012f30f742339ef1eb0f9dd711e
size 22586575

7
wine-1.7.50.tar.bz2.sign Normal file
View File

@ -0,0 +1,7 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iEYEABECAAYFAlXXMFEACgkQ9ebp7rlGHdfF3ACeK6OQi/n3/H+IWojhEeKzgqUo
XfEAnAxUK0XXV//7Z4vxRv5iYx3Z7uVH
=kw0s
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,15 @@
-------------------------------------------------------------------
Mon Aug 24 09:47:12 UTC 2015 - meissner@suse.com
- Updated to 1.7.50 development snapshot
- New version of the Gecko engine based on Firefox 40.
- First steps of the Direct3D 11 implementation.
- Better font matching in DirectWrite.
- Support for OpenMP on ARM platforms.
- Various bug fixes.
- updated winetricks
- removed susepatches.patch (upstreamed)
-------------------------------------------------------------------
Thu Aug 13 06:21:54 UTC 2015 - meissner@suse.com

View File

@ -57,7 +57,7 @@ BuildRequires: sane-backends-devel
BuildRequires: update-desktop-files
BuildRequires: valgrind-devel
BuildRequires: xorg-x11-devel
Version: 1.7.49
Version: 1.7.50
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} .
#

View File

@ -154,11 +154,6 @@ else
W_TMP_EARLY="/tmp"
fi
# ftp.microsoft.com resolves to two different IP addresses, one of which is broken
# 2012-08-11: 64.4.17.176
# 2015-05-13: 134.170.188.232
ftp_microsoft_com=134.170.188.232
#---- Public Functions ----
# Ask permission to continue
@ -6004,6 +5999,24 @@ load_dsound()
#----------------------------------------------------------------
w_metadata esent dlls \
title="MS Extensible Storage Engine" \
publisher="Microsoft" \
year="2011" \
media="download" \
file1="../win7sp1/windows6.1-KB976932-X86.exe" \
installed_file1="$W_SYSTEM32_DLLS_WIN/esent.dll"
load_esent()
{
helper_win7sp1 x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll
w_try cp "$W_TMP/x86_microsoft-windows-e..estorageengine-isam_31bf3856ad364e35_6.1.7601.17514_none_f3ebb0cc8a4dd814/esent.dll" "$W_SYSTEM32_DLLS/esent.dll"
w_override_dlls native,builtin esent
}
#----------------------------------------------------------------
# FIXME: update winetricks_is_installed to look at installed_file2..n
w_metadata flash dlls \
title="Flash Player 14" \
@ -6495,6 +6508,86 @@ load_mdac28()
#----------------------------------------------------------------
w_metadata mdx dlls \
title="Managed DirectX" \
publisher="Microsoft" \
year="2006" \
media="download" \
file1="../directx9/directx_feb2010_redist.exe" \
installed_file1="C:/windows/assembly/GAC/microsoft.directx/1.0.2902.0__31bf3856ad364e35/microsoft.directx.dll"
load_mdx()
{
helper_directx_dl
cd "$W_TMP"
w_try_cabextract -F "*MDX*" "$W_CACHE"/directx9/$DIRECTX_NAME
w_try_cabextract -F "*.cab" *Archive.cab
# Install assemblies
w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2902.0" -F "microsoft.directx*" *MDX1_x86.cab
for file in mdx_*.cab
do
ver="${file%%_x86.cab}"
ver="${ver##mdx_}"
w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/$ver" -F "microsoft.directx*" "$file"
done
w_try_cabextract -d "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code/1.0.2911.0" -F "microsoft.directx.direct3dx*" *MDX1_x86.cab
# Add them to GAC
cd "$W_WINDIR_UNIX/Microsoft.NET/DirectX for Managed Code"
for ver in *
do
cd "$ver"
for asm in *.dll
do
name="${asm%%.dll}"
w_try mkdir -p "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35"
w_try cp "$asm" "$W_WINDIR_UNIX/assembly/GAC/$name/${ver}__31bf3856ad364e35"
done
cd -
done
# AssemblyFolders
cat > "$W_TMP"/asmfolders.reg <<_EOF_
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2902.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2902.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2903.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2903.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2904.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2904.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2905.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2905.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2906.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2906.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2907.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2907.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2908.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2908.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2909.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2909.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2910.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2910.0\\\\"
[HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AssemblyFolders\DX_1.0.2911.0]
@="C:\\\\windows\\\\Microsoft.NET\\\\DirectX for Managed Code\\\\1.0.2911.0\\\\"
_EOF_
w_try_regedit "$W_TMP_WIN"\\asmfolders.reg
}
#----------------------------------------------------------------
w_metadata mfc40 dlls \
title="MS mfc40 (Microsoft Foundation Classes from Visual C++ 4.0)" \
publisher="Microsoft" \
@ -7430,9 +7523,9 @@ load_vb2run()
{
# Not referenced on MS web anymore, but the old Microsoft Software Library FTP still has it.
# See ftp://ftp.microsoft.com/Softlib/index.txt
# 2014/05/31: Microosfot FTP is down ftp://$ftp_microsoft_com/Softlib/MSLFILES/VBRUN200.EXE
# Mirror list: http://www.filewatcher.com/m/VBRUN200.EXE.220504-0.html
w_download ftp://ftp.chatnfiles.com/Winfilesdotcom/winfilesdotcom-june-98-4-of-4/required/VBRUN200.EXE ac0568b73ee375408778e9b505df995f79ab907e
# 2014/05/31: Microsoft FTP is down ftp://$ftp_microsoft_com/Softlib/MSLFILES/VBRUN200.EXE
# 2015/08/10: chatnfiles is down, conradshome.com is up (and has a LOT of old MS installers archived!)
w_download http://www.conradshome.com/win31/archive/softlib/vbrun200.exe ac0568b73ee375408778e9b505df995f79ab907e
w_try_unzip "$W_TMP" "$W_CACHE"/vb2run/VBRUN200.EXE
w_try cp -f "$W_TMP/VBRUN200.DLL" "$W_SYSTEM32_DLLS"
}
@ -9096,6 +9189,8 @@ load_dxdiag()
{
helper_directx_dl
w_call gmdls
w_try_cabextract -d "$W_TMP" -L -F dxnt.cab "$W_CACHE"/directx9/$DIRECTX_NAME
w_try_cabextract -d "$W_SYSTEM32_DLLS" -L -F "dxdiag.exe" "$W_TMP/dxnt.cab"
mkdir -p "$W_WINDIR_UNIX/help"
@ -9106,6 +9201,10 @@ load_dxdiag()
then
w_call dxdiagn
fi
if w_workaround_wine_bug 9027
then
w_call directmusic
fi
if w_workaround_wine_bug 25715 "" 1.7.28,
then
w_call quartz
@ -9128,7 +9227,7 @@ w_metadata emu8086 apps \
load_emu8086()
{
w_download http://emu8086.com/emu8086.zip fa3b2451cbc46fd2e3aa2670fa4d81ae8e75c7db
w_download https://web.archive.org/web/20140209022335/http://emu8086.com/emu8086.zip fa3b2451cbc46fd2e3aa2670fa4d81ae8e75c7db
w_try_unzip "$W_TMP" "$W_CACHE/$W_PACKAGE"/$file1
w_try "$WINE" "$W_TMP/Setup.exe" $W_UNATTENDED_SLASH_SILENT
w_declare_exe "c:\\emu8086" "emu8086.exe"
@ -9231,7 +9330,7 @@ w_metadata irfanview apps \
load_irfanview()
{
w_download http://www.tucows.com/download/windows/files/iview438_setup.exe c55c2fd91ac1af03e8063442b110ba771357d42e
w_download http://fossies.org/windows/misc/iview438_setup.exe c55c2fd91ac1af03e8063442b110ba771357d42e
if w_workaround_wine_bug 657 "Installing mfc42"
then
w_call mfc42
@ -10146,7 +10245,7 @@ load_python26_setuptools()
{
w_call python26
w_download https://bootstrap.pypa.io/ez_setup.py 50e215cb8efd8a9c982ca6894a057c2bea22d86f
w_download https://bootstrap.pypa.io/ez_setup.py 90b05e9298b7963eaec6de050c8fc751ce6a2a29
cd "$W_CACHE/$W_PACKAGE"
w_try "$WINE" "C:\Python26\python.exe" ${file1}
@ -11257,7 +11356,7 @@ w_metadata algodoo_demo games \
load_algodoo_demo()
{
w_download http://www.algodoo.com/download/Algodoo_1_7_1-Win32.exe caa73e73669a8787652a6bed123bbe2682152f12
w_download http://www.algodoo.com/download/Algodoo_1_7_1-Win32.exe caa73e73669a8787652a6bed123bbe2682152f12
cd "$W_CACHE/$W_PACKAGE"
w_ahk_do "
@ -11360,8 +11459,7 @@ w_metadata aoe3_demo games \
load_aoe3_demo()
{
w_download "http://download.microsoft.com/download/a/5/2/a525997e-8423-435b-b694-08118d235064/aoe3trial.exe" \
2b0a123243092d79f910db5691d99d469f7c17c3
w_download "http://download.microsoft.com/download/a/5/2/a525997e-8423-435b-b694-08118d235064/aoe3trial.exe" 2b0a123243092d79f910db5691d99d469f7c17c3
if w_workaround_wine_bug 24897 "Installing msxml4 to avoid font problem" 1.3.9,
then
@ -12534,9 +12632,7 @@ w_metadata crayonphysics_demo games \
load_crayonphysics_demo()
{
w_download \
http://crayonphysicsdeluxe.s3.amazonaws.com/$file1 \
4ffd64c630f69e7cf024ef946c2c64c8c4ce4eac
w_download http://crayonphysicsdeluxe.s3.amazonaws.com/crayon_release52demo.exe 4ffd64c630f69e7cf024ef946c2c64c8c4ce4eac
# Inno Setup installer
w_try "$WINE" "$W_CACHE/$W_PACKAGE/$file1" ${W_OPT_UNATTENDED:+ /sp- /silent /norestart}
w_declare_exe "$W_PROGRAMS_X86_WIN\\Crayon Physics Deluxe Demo" crayon.exe
@ -15428,8 +15524,7 @@ load_myth2_demo()
# source code to Project Magma for further development.
# 1 May 2011 1.7.2 sha1sum e0a8f707377e71314a471a09ad2a55179ea44588
w_download http://tain.totalcodex.net/items/download/myth-ii-demo-windows \
e0a8f707377e71314a471a09ad2a55179ea44588 $file1
w_download http://tain.totalcodex.net/items/download/myth-ii-demo-windows e0a8f707377e71314a471a09ad2a55179ea44588 Myth2_Demo_172.exe
cd "$W_CACHE/$W_PACKAGE"
w_ahk_do "