From 866ed7620176e0637a53134390eab666536d89f4 Mon Sep 17 00:00:00 2001 From: Andreas Bierfert Date: Sep 25 2019 13:33:45 +0000 Subject: - add missing patches --- diff --git a/wine-const.patch b/wine-const.patch new file mode 100644 index 0000000..fe8ab34 --- /dev/null +++ b/wine-const.patch @@ -0,0 +1,20 @@ +--- dlls/winhttp/net.c.old 2010-04-04 18:11:01.266148279 +0300 ++++ dlls/winhttp/net.c 2010-04-04 18:12:52.235163141 +0300 +@@ -91,7 +91,7 @@ + static void *libssl_handle; + static void *libcrypto_handle; + +-static SSL_METHOD *method; ++static const SSL_METHOD *method; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; +@@ -113,7 +113,7 @@ + static void *OpenSSL_ssl_handle; + static void *OpenSSL_crypto_handle; + +-static SSL_METHOD *meth; ++const static SSL_METHOD *meth; + static SSL_CTX *ctx; + static int hostname_idx; + static int error_idx; diff --git a/wine-gecko.patch b/wine-gecko.patch new file mode 100644 index 0000000..93ea904 --- /dev/null +++ b/wine-gecko.patch @@ -0,0 +1,127 @@ +--- dlls/mshtml/install.c.orig 2010-03-28 23:48:50.000000000 +0200 ++++ dlls/mshtml/install.c 2010-03-29 20:43:54.000000000 +0200 +@@ -284,6 +284,103 @@ + return ret; + } + ++static BOOL install_from_fedora_mingw32_wine_gecko(void) { ++ const char *data_dir, *subdir; ++ BOOL res; ++ ++ LPWSTR dos_dir_name; ++ LPSTR dos_dir_name_a; ++ static WCHAR *(*wine_get_dos_file_name)(const char*); ++ static const WCHAR kernel32W[] = {'k','e','r','n','e','l','3','2','.','d','l','l',0}; ++ ++ char install_dir[MAX_PATH]; ++ char gecko_dir[MAX_PATH]; ++ ++ SHFILEOPSTRUCTA sf; ++ ++ TRACE("()\n"); ++ ++ if((data_dir = wine_get_data_dir())) ++ subdir = "/gecko/"; ++ else if((data_dir = wine_get_build_dir())) ++ subdir = "/../gecko/"; ++ else ++ return FALSE; ++ ++ TRACE("data_dir=%s\n",data_dir); ++ TRACE("subdir=%s\n",subdir); ++ ++ memcpy(gecko_dir, data_dir, MAX_PATH); ++ strncat(gecko_dir, subdir, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, GECKO_VERSION, MAX_PATH-strlen(gecko_dir)); ++ strncat(gecko_dir, "/", MAX_PATH-strlen(gecko_dir)); ++ ++ if(!wine_get_dos_file_name) ++ wine_get_dos_file_name = (void*)GetProcAddress(GetModuleHandleW(kernel32W), "wine_get_dos_file_name"); ++ ++ if(wine_get_dos_file_name) { /* Wine UNIX mode */ ++ dos_dir_name = wine_get_dos_file_name(gecko_dir); ++ if(!dos_dir_name) { ++ ERR("Could not get dos file name of %s\n", debugstr_a(gecko_dir)); ++ return FALSE; ++ } ++ } else { ++ return FALSE; ++ } ++ ++ TRACE("gecko_dir=%s\n", debugstr_a(gecko_dir)); ++ TRACE("dos_dir_name=%s\n", debugstr_w(dos_dir_name)); ++ ++ ++ if(GetFileAttributesW(dos_dir_name) == INVALID_FILE_ATTRIBUTES) { ++ TRACE("mingw32-wine-gecko package not installed\n"); ++ return FALSE; ++ } ++ ++ GetSystemDirectoryA(install_dir, sizeof(install_dir)); ++ strncat(install_dir, "\\gecko\\",MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ strncat(install_dir, GECKO_VERSION, MAX_PATH-strlen(install_dir)); ++ res = CreateDirectoryA(install_dir, NULL); ++ if(!res && GetLastError() != ERROR_ALREADY_EXISTS) { ++ ERR("Could not create directory: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ TRACE("install_dir=%s\n",debugstr_a(install_dir)); ++ ++ dos_dir_name_a = heap_strdupWtoA(dos_dir_name); ++ ++ lstrcatA(dos_dir_name_a,"*.*"); ++ TRACE("dos_dir_name_a=%s\n",debugstr_a(dos_dir_name_a)); ++ ++ memset(&sf,0,sizeof(sf)); ++ sf.hwnd = 0; ++ sf.wFunc = FO_COPY; ++ sf.pFrom = dos_dir_name_a; ++ sf.pTo = install_dir; ++ sf.fFlags = FOF_NOCONFIRMATION, FOF_NOCONFIRMMKDIR | FOF_NOERRORUI | FOF_SILENT; ++ res = SHFileOperationA(&sf); ++ ++ heap_free(dos_dir_name_a); ++ ++ if(res != 0) { ++ ERR("Could not copy files: %08u\n", GetLastError()); ++ return FALSE; ++ } ++ ++ set_registry(install_dir); ++ ++ clean_up(); ++ ++ return TRUE; ++} ++ + static HRESULT WINAPI InstallCallback_QueryInterface(IBindStatusCallback *iface, + REFIID riid, void **ppv) + { +@@ -541,7 +638,8 @@ + * - $datadir/gecko + * - download from URL stored in GeckoUrl value of HKCU/Software/MSHTML key + */ +- if(!install_from_registered_dir() ++ if ( !install_from_fedora_mingw32_wine_gecko() ++ && !install_from_registered_dir() + && !install_from_default_dir() + && !silent && (url = get_url())) + DialogBoxW(hInst, MAKEINTRESOURCEW(ID_DWL_DIALOG), 0, installer_proc); +--- dlls/mshtml/Makefile.in.orig 2010-03-29 15:13:47.000000000 +0200 ++++ dlls/mshtml/Makefile.in 2010-03-29 15:49:55.000000000 +0200 +@@ -4,7 +4,7 @@ + VPATH = @srcdir@ + MODULE = mshtml.dll + IMPORTLIB = mshtml +-IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 ++IMPORTS = strmiids uuid urlmon shlwapi ole32 oleaut32 user32 gdi32 advapi32 kernel32 shell32 + EXTRADEFS = -DCOM_NO_WINDOWS_H + DELAYIMPORTS = wininet +