From bff83b7e5567cfac1a32971259730942241f577f22d4641d3c5d84fa6b027aa4 Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Mon, 27 Sep 2010 13:44:13 +0000 Subject: [PATCH] split tarball into vanilla tarball and susepatches patch OBS-URL: https://build.opensuse.org/package/show/Emulators/wine?expand=0&rev=69 --- susepatches.patch | 335 ++++++++++++++++++++++++++++++++++++++++++++++ wine.spec | 4 + 2 files changed, 339 insertions(+) create mode 100644 susepatches.patch diff --git a/susepatches.patch b/susepatches.patch new file mode 100644 index 0000000..96a6f75 --- /dev/null +++ b/susepatches.patch @@ -0,0 +1,335 @@ +diff --git a/dlls/crypt32/str.c b/dlls/crypt32/str.c +index 914ccaa..6d0fb5b 100644 +--- a/dlls/crypt32/str.c ++++ b/dlls/crypt32/str.c +@@ -190,6 +190,7 @@ DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, + static const char crlfSep[] = "\r\n"; + static const char plusSep[] = " + "; + static const char spaceSep[] = " "; ++ static const char quoteSep[] = "\""; + DWORD ret = 0, bytes = 0; + BOOL bRet; + CERT_NAME_INFO *info; +@@ -204,7 +205,7 @@ DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, + if (bRet) + { + DWORD i, j, sepLen, rdnSepLen; +- LPCSTR sep, rdnSep; ++ LPCSTR sep, rdnSep, quote; + BOOL reverse = dwStrType & CERT_NAME_STR_REVERSE_FLAG; + const CERT_RDN *rdn = info->rgRDN; + +@@ -222,11 +223,16 @@ DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, + else + rdnSep = plusSep; + rdnSepLen = strlen(rdnSep); ++ if (dwStrType & CERT_NAME_STR_NO_QUOTING_FLAG) ++ quote = NULL; ++ else ++ quote = quoteSep; + for (i = 0; (!psz || ret < csz) && i < info->cRDN; i++) + { + for (j = 0; (!psz || ret < csz) && j < rdn->cRDNAttr; j++) + { + DWORD chars; ++ int needquote = 0; + char prefixBuf[10]; /* big enough for GivenName */ + LPCSTR prefix = NULL; + +@@ -255,13 +261,44 @@ DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, + psz ? psz + ret : NULL, psz ? csz - ret - 1 : 0); + ret += chars; + } +- /* FIXME: handle quoting */ ++ /* FIXME: quoting still misses " (which is replaced by "") */ + chars = CertRDNValueToStrA( + rdn->rgRDNAttr[j].dwValueType, + &rdn->rgRDNAttr[j].Value, psz ? psz + ret : NULL, + psz ? csz - ret : 0); +- if (chars) ++ ++ /* poor mans memmem(), for , seperation */ ++ if (psz && quote && chars) { ++ int xx; ++ for (xx=0;xxrgRDNAttr[j].dwValueType, ++ &rdn->rgRDNAttr[j].Value, psz ? psz + ret : NULL, ++ psz ? csz - ret : 0); + ret += chars - 1; ++ if (psz && ret < csz - strlen(quote) - 1) ++ memcpy (psz + ret, quote, strlen(quote)); ++ ret += strlen(quote); ++ } else { ++ if (chars) ++ ret += chars - 1; ++ } ++ ++ /* FIXME: handle quoting */ + if (j < rdn->cRDNAttr - 1) + { + if (psz && ret < csz - rdnSepLen - 1) +@@ -353,6 +390,7 @@ DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indentLevel, + static const WCHAR crlfSep[] = { '\r','\n',0 }; + static const WCHAR plusSep[] = { ' ','+',' ',0 }; + static const WCHAR spaceSep[] = { ' ',0 }; ++ static const WCHAR quoteSep[] = { '"',0 }; + DWORD ret = 0, bytes = 0; + BOOL bRet; + CERT_NAME_INFO *info; +@@ -365,7 +403,7 @@ DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indentLevel, + if (bRet) + { + DWORD i, j, sepLen, rdnSepLen; +- LPCWSTR sep, rdnSep; ++ LPCWSTR sep, rdnSep, quote; + BOOL reverse = dwStrType & CERT_NAME_STR_REVERSE_FLAG; + const CERT_RDN *rdn = info->rgRDN; + +@@ -383,11 +421,16 @@ DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indentLevel, + else + rdnSep = plusSep; + rdnSepLen = lstrlenW(rdnSep); ++ if (dwStrType & CERT_NAME_STR_NO_QUOTING_FLAG) ++ quote = NULL; ++ else ++ quote = quoteSep; + for (i = 0; (!psz || ret < csz) && i < info->cRDN; i++) + { + for (j = 0; (!psz || ret < csz) && j < rdn->cRDNAttr; j++) + { + DWORD chars; ++ int needquote = 0; + LPCSTR prefixA = NULL; + LPCWSTR prefixW = NULL; + +@@ -435,13 +478,43 @@ DWORD cert_name_to_str_with_indent(DWORD dwCertEncodingType, DWORD indentLevel, + psz ? psz + ret : NULL, psz ? csz - ret - 1 : 0); + ret += chars; + } +- /* FIXME: handle quoting */ ++ /* FIXME: quoting still misses " (which is replaced by "") */ + chars = CertRDNValueToStrW( + rdn->rgRDNAttr[j].dwValueType, + &rdn->rgRDNAttr[j].Value, psz ? psz + ret : NULL, + psz ? csz - ret : 0); +- if (chars) ++ ++ /* poor mans memmem(), for , seperation */ ++ if (psz && quote && chars) { ++ int xx; ++ for (xx=0;xxrgRDNAttr[j].dwValueType, ++ &rdn->rgRDNAttr[j].Value, psz ? psz + ret : NULL, ++ psz ? csz - ret : 0); + ret += chars - 1; ++ if (psz && ret < csz - lstrlenW(quote) - 1) ++ memcpy (psz + ret, quote, lstrlenW(quote) * sizeof(WCHAR)); ++ ret += lstrlenW(quote); ++ } else { ++ if (chars) ++ ret += chars - 1; ++ } ++ + if (j < rdn->cRDNAttr - 1) + { + if (psz && ret < csz - rdnSepLen - 1) +diff --git a/dlls/crypt32/tests/str.c b/dlls/crypt32/tests/str.c +index ebc3342..2549bcc 100644 +--- a/dlls/crypt32/tests/str.c ++++ b/dlls/crypt32/tests/str.c +@@ -67,12 +67,12 @@ static const BYTE cert[] = + 0x73,0x6f,0x74,0x61,0x31,0x14,0x30,0x12,0x6,0x3,0x55,0x4,0x7,0x13,0xb,0x4d, + 0x69,0x6e,0x6e,0x65,0x61,0x70,0x6f,0x6c,0x69,0x73,0x31,0x14,0x30,0x12,0x6,0x3, + 0x55,0x4,0xa,0x13,0xb,0x43,0x6f,0x64,0x65,0x57,0x65,0x61,0x76,0x65,0x72,0x73, +- 0x31,0x19,0x30,0x17,0x6,0x3,0x55,0x4,0xb,0x13,0x10,0x57,0x69,0x6e,0x65,0x20, ++ 0x31,0x19,0x30,0x17,0x6,0x3,0x55,0x4,0xb,0x13,0x10,0x57,0x69,0x6e,0x65,0x2c, + 0x44,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d,0x65,0x6e,0x74,0x31,0x12,0x30,0x10, + 0x6,0x3,0x55,0x4,0x3,0x13,0x9,0x6c,0x6f,0x63,0x61,0x6c,0x68,0x6f,0x73,0x74, + 0x31,0x23,0x30,0x21,0x6,0x9,0x2a,0x86,0x48,0x86,0xf7,0xd,0x1,0x9,0x1,0x16, + 0x14,0x61,0x72,0x69,0x63,0x40,0x63,0x6f,0x64,0x65,0x77,0x65,0x61,0x76,0x65, +- 0x72,0x73,0x2e,0x63,0x6f,0x6d,0x30,0x1e,0x17,0xd,0x30,0x36,0x30,0x31,0x32, ++ 0x72,0x73,0x3b,0x63,0x6f,0x6d,0x30,0x1e,0x17,0xd,0x30,0x36,0x30,0x31,0x32, + 0x35,0x31,0x33,0x35,0x37,0x32,0x34,0x5a,0x17,0xd,0x30,0x36,0x30,0x32,0x32, + 0x34,0x31,0x33,0x35,0x37,0x32,0x34,0x5a,0x30,0x81,0xa1,0x31,0xb,0x30,0x9,0x6, + 0x3,0x55,0x4,0x6,0x13,0x2,0x55,0x53,0x31,0x12,0x30,0x10,0x6,0x3,0x55,0x4,0x8, +@@ -80,11 +80,11 @@ static const BYTE cert[] = + 0x3,0x55,0x4,0x7,0x13,0xb,0x4d,0x69,0x6e,0x6e,0x65,0x61,0x70,0x6f,0x6c,0x69, + 0x73,0x31,0x14,0x30,0x12,0x6,0x3,0x55,0x4,0xa,0x13,0xb,0x43,0x6f,0x64,0x65, + 0x57,0x65,0x61,0x76,0x65,0x72,0x73,0x31,0x19,0x30,0x17,0x6,0x3,0x55,0x4,0xb, +- 0x13,0x10,0x57,0x69,0x6e,0x65,0x20,0x44,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d, ++ 0x13,0x10,0x57,0x69,0x6e,0x65,0x2c,0x44,0x65,0x76,0x65,0x6c,0x6f,0x70,0x6d, + 0x65,0x6e,0x74,0x31,0x12,0x30,0x10,0x6,0x3,0x55,0x4,0x3,0x13,0x9,0x6c,0x6f, + 0x63,0x61,0x6c,0x68,0x6f,0x73,0x74,0x31,0x23,0x30,0x21,0x6,0x9,0x2a,0x86,0x48, + 0x86,0xf7,0xd,0x1,0x9,0x1,0x16,0x14,0x61,0x72,0x69,0x63,0x40,0x63,0x6f,0x64, +- 0x65,0x77,0x65,0x61,0x76,0x65,0x72,0x73,0x2e,0x63,0x6f,0x6d,0x30,0x81,0x9f, ++ 0x65,0x77,0x65,0x61,0x76,0x65,0x72,0x73,0x3b,0x63,0x6f,0x6d,0x30,0x81,0x9f, + 0x30,0xd,0x6,0x9,0x2a,0x86,0x48,0x86,0xf7,0xd,0x1,0x1,0x1,0x5,0x0,0x3,0x81, + 0x8d,0x0,0x30,0x81,0x89,0x2,0x81,0x81,0x0,0x9b,0xb5,0x8f,0xaf,0xfb,0x9a,0xaf, + 0xdc,0xa2,0x4d,0xb1,0xc8,0x72,0x44,0xef,0x79,0x7f,0x28,0xb6,0xfe,0x50,0xdc, +@@ -107,71 +107,71 @@ static const BYTE cert[] = + 0x91,0x8a,0xf8,0x5,0xef,0x5b,0x3b,0x49,0xbf,0x5f,0x2b}; + + static char issuerStr[] = +- "US, Minnesota, Minneapolis, CodeWeavers, Wine Development, localhost, aric@codeweavers.com"; ++ "US, Minnesota, Minneapolis, CodeWeavers, \"Wine,Development\", localhost, \"aric@codeweavers;com\""; + static char issuerStrSemicolon[] = +- "US; Minnesota; Minneapolis; CodeWeavers; Wine Development; localhost; aric@codeweavers.com"; ++ "US; Minnesota; Minneapolis; CodeWeavers; \"Wine,Development\"; localhost; \"aric@codeweavers;com\""; + static char issuerStrCRLF[] = +- "US\r\nMinnesota\r\nMinneapolis\r\nCodeWeavers\r\nWine Development\r\nlocalhost\r\naric@codeweavers.com"; ++ "US\r\nMinnesota\r\nMinneapolis\r\nCodeWeavers\r\n\"Wine,Development\"\r\nlocalhost\r\n\"aric@codeweavers;com\""; + static char subjectStr[] = +- "2.5.4.6=US, 2.5.4.8=Minnesota, 2.5.4.7=Minneapolis, 2.5.4.10=CodeWeavers, 2.5.4.11=Wine Development, 2.5.4.3=localhost, 1.2.840.113549.1.9.1=aric@codeweavers.com"; ++ "2.5.4.6=US, 2.5.4.8=Minnesota, 2.5.4.7=Minneapolis, 2.5.4.10=CodeWeavers, 2.5.4.11=\"Wine,Development\", 2.5.4.3=localhost, 1.2.840.113549.1.9.1=\"aric@codeweavers;com\""; + static char subjectStrSemicolon[] = +- "2.5.4.6=US; 2.5.4.8=Minnesota; 2.5.4.7=Minneapolis; 2.5.4.10=CodeWeavers; 2.5.4.11=Wine Development; 2.5.4.3=localhost; 1.2.840.113549.1.9.1=aric@codeweavers.com"; ++ "2.5.4.6=US; 2.5.4.8=Minnesota; 2.5.4.7=Minneapolis; 2.5.4.10=CodeWeavers; 2.5.4.11=\"Wine,Development\"; 2.5.4.3=localhost; 1.2.840.113549.1.9.1=\"aric@codeweavers;com\""; + static char subjectStrCRLF[] = +- "2.5.4.6=US\r\n2.5.4.8=Minnesota\r\n2.5.4.7=Minneapolis\r\n2.5.4.10=CodeWeavers\r\n2.5.4.11=Wine Development\r\n2.5.4.3=localhost\r\n1.2.840.113549.1.9.1=aric@codeweavers.com"; +-static char x500SubjectStr[] = "C=US, S=Minnesota, L=Minneapolis, O=CodeWeavers, OU=Wine Development, CN=localhost, E=aric@codeweavers.com"; +-static char x500SubjectStrSemicolonReverse[] = "E=aric@codeweavers.com; CN=localhost; OU=Wine Development; O=CodeWeavers; L=Minneapolis; S=Minnesota; C=US"; ++ "2.5.4.6=US\r\n2.5.4.8=Minnesota\r\n2.5.4.7=Minneapolis\r\n2.5.4.10=CodeWeavers\r\n2.5.4.11=\"Wine,Development\"\r\n2.5.4.3=localhost\r\n1.2.840.113549.1.9.1=\"aric@codeweavers;com\""; ++static char x500SubjectStr[] = "C=US, S=Minnesota, L=Minneapolis, O=CodeWeavers, OU=\"Wine,Development\", CN=localhost, E=\"aric@codeweavers;com\""; ++static char x500SubjectStrSemicolonReverse[] = "E=\"aric@codeweavers;com\"; CN=localhost; OU=\"Wine,Development\"; O=CodeWeavers; L=Minneapolis; S=Minnesota; C=US"; + static WCHAR issuerStrW[] = { + 'U','S',',',' ','M','i','n','n','e','s','o','t','a',',',' ','M','i','n','n', + 'e','a','p','o','l','i','s',',',' ','C','o','d','e','W','e','a','v','e','r', +- 's',',',' ','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t', +- ',',' ','l','o','c','a','l','h','o','s','t',',',' ','a','r','i','c','@','c', +- 'o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }; ++ 's',',',' ','"','W','i','n','e',',','D','e','v','e','l','o','p','m','e','n','t','"', ++ ',',' ','l','o','c','a','l','h','o','s','t',',',' ','"','a','r','i','c','@','c', ++ 'o','d','e','w','e','a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR issuerStrSemicolonW[] = { + 'U','S',';',' ','M','i','n','n','e','s','o','t','a',';',' ','M','i','n','n', + 'e','a','p','o','l','i','s',';',' ','C','o','d','e','W','e','a','v','e','r', +- 's',';',' ','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t', +- ';',' ','l','o','c','a','l','h','o','s','t',';',' ','a','r','i','c','@','c', +- 'o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }; ++ 's',';',' ','"','W','i','n','e',',','D','e','v','e','l','o','p','m','e','n','t','"', ++ ';',' ','l','o','c','a','l','h','o','s','t',';',' ','"','a','r','i','c','@','c', ++ 'o','d','e','w','e','a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR issuerStrCRLFW[] = { + 'U','S','\r','\n','M','i','n','n','e','s','o','t','a','\r','\n','M','i','n', + 'n','e','a','p','o','l','i','s','\r','\n','C','o','d','e','W','e','a','v','e', +- 'r','s','\r','\n','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n', +- 't','\r','\n','l','o','c','a','l','h','o','s','t','\r','\n','a','r','i','c', +- '@','c','o','d','e','w','e','a','v','e','r','s','.','c','o','m',0 }; ++ 'r','s','\r','\n','"','W','i','n','e',',','D','e','v','e','l','o','p','m','e','n', ++ 't','"','\r','\n','l','o','c','a','l','h','o','s','t','\r','\n','"','a','r','i','c', ++ '@','c','o','d','e','w','e','a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR subjectStrW[] = { + '2','.','5','.','4','.','6','=','U','S',',',' ','2','.','5','.','4','.','8', + '=','M','i','n','n','e','s','o','t','a',',',' ','2','.','5','.','4','.','7', + '=','M','i','n','n','e','a','p','o','l','i','s',',',' ','2','.','5','.','4', + '.','1','0','=','C','o','d','e','W','e','a','v','e','r','s',',',' ','2','.', +- '5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p', +- 'm','e','n','t',',',' ','2','.','5','.','4','.','3','=','l','o','c','a','l', ++ '5','.','4','.','1','1','=','"','W','i','n','e',',','D','e','v','e','l','o','p', ++ 'm','e','n','t','"',',',' ','2','.','5','.','4','.','3','=','l','o','c','a','l', + 'h','o','s','t',',',' ','1','.','2','.','8','4','0','.','1','1','3','5','4', +- '9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e', +- 'a','v','e','r','s','.','c','o','m',0 }; ++ '9','.','1','.','9','.','1','=','"','a','r','i','c','@','c','o','d','e','w','e', ++ 'a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR subjectStrSemicolonW[] = { + '2','.','5','.','4','.','6','=','U','S',';',' ','2','.','5','.','4','.','8', + '=','M','i','n','n','e','s','o','t','a',';',' ','2','.','5','.','4','.','7', + '=','M','i','n','n','e','a','p','o','l','i','s',';',' ','2','.','5','.','4', + '.','1','0','=','C','o','d','e','W','e','a','v','e','r','s',';',' ','2','.', +- '5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p', +- 'm','e','n','t',';',' ','2','.','5','.','4','.','3','=','l','o','c','a','l', ++ '5','.','4','.','1','1','=','"','W','i','n','e',',','D','e','v','e','l','o','p', ++ 'm','e','n','t','"',';',' ','2','.','5','.','4','.','3','=','l','o','c','a','l', + 'h','o','s','t',';',' ','1','.','2','.','8','4','0','.','1','1','3','5','4', +- '9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e', +- 'a','v','e','r','s','.','c','o','m',0 }; ++ '9','.','1','.','9','.','1','=','"','a','r','i','c','@','c','o','d','e','w','e', ++ 'a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR subjectStrCRLFW[] = { + '2','.','5','.','4','.','6','=','U','S','\r','\n','2','.','5','.','4','.','8', + '=','M','i','n','n','e','s','o','t','a','\r','\n','2','.','5','.','4','.','7', + '=','M','i','n','n','e','a','p','o','l','i','s','\r','\n','2','.','5','.','4', + '.','1','0','=','C','o','d','e','W','e','a','v','e','r','s','\r','\n','2','.', +- '5','.','4','.','1','1','=','W','i','n','e',' ','D','e','v','e','l','o','p', +- 'm','e','n','t','\r','\n','2','.','5','.','4','.','3','=','l','o','c','a','l', ++ '5','.','4','.','1','1','=','"','W','i','n','e',',','D','e','v','e','l','o','p', ++ 'm','e','n','t','"','\r','\n','2','.','5','.','4','.','3','=','l','o','c','a','l', + 'h','o','s','t','\r','\n','1','.','2','.','8','4','0','.','1','1','3','5','4', +- '9','.','1','.','9','.','1','=','a','r','i','c','@','c','o','d','e','w','e', +- 'a','v','e','r','s','.','c','o','m',0 }; ++ '9','.','1','.','9','.','1','=','"','a','r','i','c','@','c','o','d','e','w','e', ++ 'a','v','e','r','s',';','c','o','m','"',0 }; + static WCHAR x500SubjectStrSemicolonReverseW[] = { +- 'E','=','a','r','i','c','@','c','o','d','e','w','e','a','v','e','r','s','.','c', +- 'o','m',';',' ','C','N','=','l','o','c','a','l','h','o','s','t',';',' ','O','U', +- '=','W','i','n','e',' ','D','e','v','e','l','o','p','m','e','n','t',';',' ','O', ++ 'E','=','"','a','r','i','c','@','c','o','d','e','w','e','a','v','e','r','s',';','c', ++ 'o','m','"',';',' ','C','N','=','l','o','c','a','l','h','o','s','t',';',' ','O','U', ++ '=','"','W','i','n','e',',','D','e','v','e','l','o','p','m','e','n','t','"',';',' ','O', + '=','C','o','d','e','W','e','a','v','e','r','s',';',' ','L','=','M','i','n','n', + 'e','a','p','o','l','i','s',';',' ','S','=','M','i','n','n','e','s','o','t','a', + ';',' ','C','=','U','S',0 }; +@@ -399,11 +399,8 @@ static void test_NameToStrConversionW(PCERT_NAME_BLOB pName, DWORD dwStrType, + sizeof(buffer) / sizeof(buffer[0])); + ok(i == lstrlenW(expected) + 1, "Expected %d chars, got %d\n", + lstrlenW(expected) + 1, i); +- ok(!lstrcmpW(buffer, expected), "Unexpected value\n"); +-#ifdef DUMP_STRINGS +- trace("Expected %s, got %s\n", ++ ok(!lstrcmpW(buffer, expected), "Expected %s, got %s\n", + wine_dbgstr_w(expected), wine_dbgstr_w(buffer)); +-#endif + } + + static void test_CertNameToStrW(void) +diff --git a/dlls/shell32/pidl.c b/dlls/shell32/pidl.c +index 1c9cf22..054683c 100644 +--- a/dlls/shell32/pidl.c ++++ b/dlls/shell32/pidl.c +@@ -1753,13 +1753,13 @@ LPITEMIDLIST _ILCreateEntireNetwork(void) + + TRACE("\n"); + +- pidlOut = _ILAlloc(PT_NETWORK, FIELD_OFFSET(PIDLDATA, u.network.szNames[sizeof("Entire Network")])); ++ pidlOut = _ILAlloc(PT_NETWORK, FIELD_OFFSET(PIDLDATA, u.network.szNames[strlen("Entire Network")+1])); + if (pidlOut) + { + LPPIDLDATA pData = _ILGetDataPointer(pidlOut); + + pData->u.network.dummy = 0; +- strcpy(pData->u.network.szNames, "Entire Network"); ++ memcpy(pData->u.network.szNames, "Entire Network", strlen("Entire Network")+1); + } + return pidlOut; + } diff --git a/wine.spec b/wine.spec index c2260ed..38fcb65 100644 --- a/wine.spec +++ b/wine.spec @@ -31,12 +31,15 @@ Version: 1.3.3 Release: 2 Summary: An MS Windows Emulator Url: http://www.winehq.com +# vanilla Wine release Source0: wine-%version.tar.bz2 Source1: http://kegel.com/wine/winetricks Source2: http://kegel.com/wine/wisotool Source3: README.SuSE Source4: wine.desktop Source5: ubuntuwine.tar.bz2 +# SUSE specific patches +Patch0: susepatches.patch Recommends: wine-gecko wine-mp3 Requires: wine-32bit = %version # for winetricks: @@ -91,6 +94,7 @@ libraries. %prep %setup -q +%patch0 -p1 # cp %{S:3} . #