Add app-emulation/wine to make Diablo3 work again

This commit is contained in:
Stefan Reimer 2013-12-25 18:42:40 -08:00
parent 7767a10880
commit 5dc08f56b4
14 changed files with 1750 additions and 0 deletions

View File

@ -0,0 +1,19 @@
AUX wine-1.1.15-winegcc.patch 1556 SHA256 dbd89db561d7583faf317d795b8c11231575d885e21c6414add39079604dbd0d SHA512 a6a6dbde16c1f850a5cb4d6b6fe1a8129bb267c44c19de63a4eb26933fd69ff98e440d257e467d766a6a6ac326d72dd621cae37fb593c8c62e43f588ccef3f25 WHIRLPOOL 3aea848b17217ab215f860c3526c44a5d9bd9e7adfe35c02bb5c841461bdaf4bd8ac4f8e8b990c0558980381fc1b2441b79edc3ff6dcde7455203fbd1fc3f49c
AUX wine-1.2.3-msxml3-libxml2-headers.patch 14328 SHA256 0a046e532343f9a4508307434a2f39e0a3a50a66c165b69e56dd671488d4ba7d SHA512 837bde9cfefa12b81197c9fa2978c8b17f760594eb9d6b8fe96ab4baf2f34b5d2330db245c0ee180a9d5aa59657f52b8500fd976bb70b111d0f32d4103f71f94 WHIRLPOOL e74ff9ad63b95878337d4eac342e9abbc60c73af2f4017cdd87671c472c49bee953759b9786d5b245669352dc23ac338178b415d2c4f01516c385fee66a167b5
AUX wine-1.4_rc2-multilib-portage.patch 1256 SHA256 9d0acd304d11d1bf73f56699754aaa1bfe1facba90648ee330fdbe08d9ff4938 SHA512 ac0b29e2b4c9b04bb6694a4e4da654446f68efbf90cda6809b45dad51e6679ac5410398763fde7e9505ef959493a037aa588cee58d14906563a4746702d2b0e9 WHIRLPOOL 8ea26266c327bc8313eca9b5d39c9741b226037750ca2d1d33262420093e05c306e7f004656c362c3c50b330d050cf9e5fceaa2b024a82809aae8b3617b0ae18
AUX wine-1.5.11-osmesa-check.patch 1888 SHA256 8aa70a10a215d5a10e70a404701cf70c0efc674ca6e2f093bbd243f70153e3bb SHA512 5c53e19efa4e080e4bc46c955d2f53beaaa55726e3ee528a5d41374452d6a75817f2145df4a2b05e0d168ed78fe81da35bab1322d6fcc736bf59ba6282e7ff9b WHIRLPOOL d35b52ddcace0fcb043894f00b14a90ecef8af87ff16d2ff091e64b34d8629a5d49ff59cae355c0457b7b9213f1ec66ae53747cb096b23c4f0a2ec8b7c8c8431
AUX wine-1.5.17-osmesa-check.patch 1774 SHA256 dc7dde67c416bb067e528b85228cff01833a2a20c802248ef56d74184014e50e SHA512 12325e75db5e63e1d4c4e2463c3e164b1eba0d3d88455cfcd698a8bb790d7c0b3c947a06e7a09e232b1a14202e64ea2dc9331cbc4b503833f78a7c1034410c79 WHIRLPOOL 2d9bb86a5d683301c75ea275302f67616a8e9c6ebfc436b05f8f1b3d5d815c310999ca9518747abcf4d248bd18f34388dcb323c526d633c50e66ffb4bf94e5d6
AUX wine-1.5.23-winebuild-CCAS.patch 6101 SHA256 34143c55618870dd31eea1e260ae973572d99557a20f24a4f217bb0ff1d615eb SHA512 f44580efcf4a406517a2fc65d7509a42b0b0b180a4c63f5980c894e708934d60155d87634e406763426415d00c1ea2f8f3894ac4797a2e2527ca0d9ed23430af WHIRLPOOL d62fb5c27fba3b8297ae2151a432f80d9655c0c2ccee9dee12beea84a2186c0e7965a6902d6bc5638cdb1c853c188a49b790825c8741a9dc4bb1516ff6ca9a53
AUX wine-1.5.26-winegcc.patch 1808 SHA256 91c1012059b93a421b2eae9f2ea46b7b327d6d3d58ba0cb47021c8a57f6d8228 SHA512 fce9daf40a96f4a7502c249a30107c8dfc5d8edd4a171b863d2bf14c3ad46d18e4c29932ab4a6ede7da5d589d777b962d2f577f5360ee4db8019d71362c51d47 WHIRLPOOL 71cbe36c6bac87071472541b7f5cd3ed1b08f05479bc0016262b3f86e75738e467dad197563b4898f2b24fd0ab4e27c40dce04f244a3e7f5ea1582b4db1c5cc2
AUX wine-1.5.30-libwine.patch 1777 SHA256 2f0155c2c1d11fd9a06deab54dd753c1161e32217eae82604f8c1d542e87af4f SHA512 e6d566f75632065def197cf27b5705a3f2f736a7b3bb4ae03df19fea00fd980a5b5d0517981469fef0fa5347c1c3b9651894fb23d937b5dbbd993cd292f67183 WHIRLPOOL 62ed15db6bddda47dcf74d846e15a9904c11abdf63e0321e7e2bc3197f60c819992b3a95a4395f85edeef9181a1866749194b9744be8d42bd94acab37470aad6
AUX wine-1.5.31-gnutls-3.2.0.patch 1616 SHA256 3ce82009b05fe997b0d198ad83533026d6410811ecfc6254c1505d0b9d18caf0 SHA512 09de6ff03da996197cd6833c1f53e9f39b43fc43e02ad3b4e12648a57288c1fa200886a805e6811372e12665f9a5d463603f9a9ba39cb1392b2cf4d11f3f9a65 WHIRLPOOL 590a9206913a51eae81e236057bbed346dae8f895575dcc948ba7168edf5c0605db6278344fad727c2a828a2aeef258f72a57a12b5dca244a3b7b82cfe43452a
AUX wine-1.6-memset-O3.patch 695 SHA256 1f04496713e8a401ba068702c5c3e104b18635bfb54808e5641a3c48a9b9bad4 SHA512 ad7231f8dedf98f9e9b91fcb8bbe72a716d78285127b0c33396de0b1e17a191f91f9a4a377c0e90671bb5f4e57bfb087ef7e80c9537c6c73b3c9bb90b3885968 WHIRLPOOL 91689c31054b896609493e2b0b4fe67e3d752d889f4ccae9c3e15229543341998809fd19a2040457e04fbdbd45505f0f2b49052844004193872713053d7239f8
AUX wine-1.7.2-osmesa-check.patch 1740 SHA256 5264ac291435eb64c70cef4bdccbf8d4448472b4f014ab15ede35bcceebb6579 SHA512 4738a381923df7b45ea68092efb7ccb967907976d6d2f8bb0167af4211c377a73e296481b94092ac232f9ae09edf21447da92a134ebfff9b32acdd9e20340b95 WHIRLPOOL 95a90f8ff5a649833b39cb28de997c3b516cd09a53cf71d616c4fd412dfa6e71c47a1255a4d0597d85a62966cd9d6b9fae1c21c88e67d8650d31d414fca8fd42
AUX wine-1.7.9-hcce.patch 4699 SHA256 93d5dd444f3cd445156d21dad8653ad67d195cd8c373335d43b122e68e76e673 SHA512 084fd9af46acdb035e3ec4bcdeb04cb21a09c4288777905136f8bfe74ee14833a3cee241be891ceca9c70e0a506d936d92d12422c54d1a2e211c0dbe128f98bc WHIRLPOOL ccc3fa16bf5ef0f7e1b227d0c35b4dae986a30b2a99ae2fbccff1416feac6bd6ade389d900882daa86a16e1209e977b212f33e227a5beb355d9cde2a6df1badb
DIST wine-1.7.9.tar.bz2 21323337 SHA256 79f99ecc24696915439c474c4953bb77652ab53f16b41daa4da270fe43279c5a SHA512 29f8aa715ebe47c8a06bd5f6a80cac3fb75b2ca7aa81648cc8aed5461cfd825e4da68b6209ca672dce42b968521cfd9bffffaadd2d85b904b55d99687a1c83d0 WHIRLPOOL 333fee72b2a0e9d6ab8a003712c38166bd27aaff384a2b940c089ecc846f7669c59efbeb5cdc2fc87a46d63b0d29d0335873bb7c22f05913bad430b81990241a
DIST wine-gentoo-2013.06.24.tar.bz2 85442 SHA256 bfbf6b25e98f717320de2ede467e3628fbc749d936b8449f8477c9dc6f41e04b SHA512 b6819889314f6a6ea16c1332f4b177c43623116763969c31b23b61754cd304dd085f5d3eafbe847159331eb97dddd9b4c10699430129ea4a71da418c1fe175f0 WHIRLPOOL 227e0ac6569736d4ad5813cef49f775dae956f4fc9255de95753d5d3cba1bf6cf3db31d23d3702bb54d2e60c5a6f779b602f0efb2096e4c827c924565b273d00
DIST wine-mono-4.5.2.msi 52502528 SHA256 d9124edb41ba4418af10eba519dafb25ab4338c567d25ce0eb4ce1e1b4d7eaad SHA512 73c907f63b73836d5afd0753197358aaea43a74a47800f929ef0627112298256f1fa46d1b9ff297b117468d953cdeab21fb5962db13c5debbcb71004462df609 WHIRLPOOL 18d3544c6753c5a01917bfc1b694f31ce45213108527f13317ec0bb8b2d2339ce41800534967e067cd15cd186ef9e186a5d3252275e443dfa1a6ae3641d4d17c
DIST wine_gecko-2.24-x86.msi 22373888 SHA256 6e38acae87ea66e2c1e8f2f0afe88f89eed3e6e0b431cd3da38dea814b71202c SHA512 f158d28ca09bc900a2680892e7ac10770e06050a9251e1ec3a953fee0bf9b1c326e166f92fb88a4648297b6587c91a5ef5af35f267bb2ba5f679da4c8fdb6898 WHIRLPOOL bbe7a2572d89dc5e0347ba11b2014bac79fc4427d7551655313a46b147a79c1607b7f46596877c459ddaa0e202337fb3d217429ddd6a4df49ee33b373a788487
DIST wine_gecko-2.24-x86_64.msi 23608320 SHA256 47557da68bcb2aedaebb93af73275aac96ba23e896bd98f25f2acbfd216d9cc8 SHA512 45ce0dcf42c3e2fe2198092812242e3467b19db4a4946e0b1a2d6327fd48aa936fb85cc1930bace6eaba0c61bff3a6536767ba0a91a0f085f307d1bddd171f0c WHIRLPOOL b6ba7c784d3a79d7afc11f0e12f0372b52b9f194eedfd083abed36a461e7301d2dd936be3be12619364f6ac5aae9cfbfb7fc47141bff92b62826f209365210ec
DIST winepulse-patches-1.7.8.tar.bz2 49140 SHA256 0fd31ea7fec8817561a7b304bbfad6bdd014eb566b0c533e15773064bca555ad SHA512 18c88d4da37714d0216c01929eb92c99161fdf7024d8516512fc2585bc8d5a700fb1b5eb9fb667149e104305f366c867973f41b688a04f63e7cce76f5d85389a WHIRLPOOL 60dfeeb1d51c9ea7730ff1e9263d44fbcf3509e6ae68df1e3d30d965999f19525979f64617494bb1c3e1712c7117f30bebfbcbc75b1b08ba1f1e033720b0cacc
EBUILD wine-1.7.9-r1.ebuild 12800 SHA256 1c70b3a3c460055f8aa01bfa0f818523511e4be5b26e3c1664067cc152f29621 SHA512 2bd4e81cd08e65cc3d8c34644b740e7ec41eae34af25c317e05b8943c50345ca8537f9b3c3bdb34f372ddb94b721461fc26b41b26b3856cbea3d6fc8a4a39e72 WHIRLPOOL fcd18439bf0a35e1404ceccafa12f4d6030ede43c2f2e767dda6fe47a2d86a0ac26119c14ec0f837b4d3ef1dca144776c7664ad25e5c94c2ac015ebc505bd013

View File

@ -0,0 +1,55 @@
http://bugs.gentoo.org/260726
--- wine-1.1.15/tools/winegcc/winegcc.c
+++ wine-1.1.15/tools/winegcc/winegcc.c
@@ -215,10 +215,13 @@
strarray* files;
};
+#undef FORCE_POINTER_SIZE
#ifdef __i386__
static const enum target_cpu build_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
#elif defined(__x86_64__)
static const enum target_cpu build_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
#elif defined(__sparc__)
static const enum target_cpu build_cpu = CPU_SPARC;
#elif defined(__ALPHA__)
@@ -968,6 +971,9 @@
opts.linker_args = strarray_alloc();
opts.compiler_args = strarray_alloc();
opts.winebuild_args = strarray_alloc();
+#ifdef FORCE_POINTER_SIZE
+ opts.force_pointer_size = sizeof(size_t);
+#endif
/* determine the processor type */
if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp;
--- wine-1.1.15/tools/winebuild/main.c
+++ wine-1.1.15/tools/winebuild/main.c
@@ -50,10 +50,13 @@
int link_ext_symbols = 0;
int force_pointer_size = 0;
+#undef FORCE_POINTER_SIZE
#ifdef __i386__
enum target_cpu target_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
#elif defined(__x86_64__)
enum target_cpu target_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
#elif defined(__sparc__)
enum target_cpu target_cpu = CPU_SPARC;
#elif defined(__ALPHA__)
@@ -574,6 +577,10 @@
signal( SIGTERM, exit_on_signal );
signal( SIGINT, exit_on_signal );
+#ifdef FORCE_POINTER_SIZE
+ force_pointer_size = sizeof(size_t);
+#endif
+
output_file = stdout;
argv = parse_options( argc, argv, spec );

View File

@ -0,0 +1,574 @@
From 26603f25f73142a45b5b964bb9bb2e59bc0908d4 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Thu, 24 Feb 2011 13:11:53 +0100
Subject: [PATCH] msxml3: Include the system libxml headers before the Windows
headers.
[Alexandre Rostovtsev <tetromino@gentoo.org>: backport to wine-1.2.3]
---
dlls/msxml3/attribute.c | 6 ++++++
dlls/msxml3/bsc.c | 6 ++++++
dlls/msxml3/cdata.c | 5 +++++
dlls/msxml3/comment.c | 5 +++++
dlls/msxml3/dispex.c | 5 +++++
dlls/msxml3/docfrag.c | 5 +++++
dlls/msxml3/domdoc.c | 11 +++++++++--
dlls/msxml3/domimpl.c | 5 +++++
dlls/msxml3/element.c | 5 +++++
dlls/msxml3/entityref.c | 5 +++++
dlls/msxml3/factory.c | 5 +++++
dlls/msxml3/httprequest.c | 6 ++++++
dlls/msxml3/main.c | 15 +++++++++++++++
dlls/msxml3/msxml_private.h | 23 -----------------------
dlls/msxml3/node.c | 31 +++++++++++++++++++++++++++----
dlls/msxml3/nodelist.c | 5 +++++
dlls/msxml3/nodemap.c | 5 +++++
dlls/msxml3/parseerror.c | 5 +++++
dlls/msxml3/pi.c | 5 +++++
dlls/msxml3/queryresult.c | 9 +++++++--
dlls/msxml3/regsvr.c | 4 ++++
dlls/msxml3/saxreader.c | 10 +++++++---
dlls/msxml3/schema.c | 12 ++++++++++++
dlls/msxml3/text.c | 5 +++++
dlls/msxml3/xmldoc.c | 5 +++++
dlls/msxml3/xmlelem.c | 5 +++++
26 files changed, 174 insertions(+), 34 deletions(-)
diff --git a/dlls/msxml3/attribute.c b/dlls/msxml3/attribute.c
index d78fa47..3df93d6 100644
--- a/dlls/msxml3/attribute.c
+++ b/dlls/msxml3/attribute.c
@@ -23,6 +23,12 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/HTMLtree.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/bsc.c b/dlls/msxml3/bsc.c
index b24e04c..01a09a5 100644
--- a/dlls/msxml3/bsc.c
+++ b/dlls/msxml3/bsc.c
@@ -23,6 +23,12 @@
#include <stdarg.h>
#include <assert.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/HTMLtree.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/cdata.c b/dlls/msxml3/cdata.c
index 3fba66c..caf8cd8 100644
--- a/dlls/msxml3/cdata.c
+++ b/dlls/msxml3/cdata.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/comment.c b/dlls/msxml3/comment.c
index e74de07..1cabfa3 100644
--- a/dlls/msxml3/comment.c
+++ b/dlls/msxml3/comment.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c
index 09b71fe..6b01b15 100644
--- a/dlls/msxml3/dispex.c
+++ b/dlls/msxml3/dispex.c
@@ -22,6 +22,11 @@
#include <stdarg.h>
#include <assert.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/docfrag.c b/dlls/msxml3/docfrag.c
index fff3f62..bebd252 100644
--- a/dlls/msxml3/docfrag.c
+++ b/dlls/msxml3/docfrag.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 0007503..e6a61e4 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -25,6 +25,15 @@
#include <stdarg.h>
#include <assert.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/xpathInternals.h>
+# include <libxml/xmlsave.h>
+# include <libxml/SAX2.h>
+# include <libxml/parserInternals.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -47,8 +56,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef HAVE_LIBXML2
-#include <libxml/xmlsave.h>
-
/* not defined in older versions */
#define XML_SAVE_FORMAT 1
#define XML_SAVE_NO_DECL 2
diff --git a/dlls/msxml3/domimpl.c b/dlls/msxml3/domimpl.c
index dd518a1..c6794ac 100644
--- a/dlls/msxml3/domimpl.c
+++ b/dlls/msxml3/domimpl.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/element.c b/dlls/msxml3/element.c
index 617c008..1b5c693 100644
--- a/dlls/msxml3/element.c
+++ b/dlls/msxml3/element.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/entityref.c b/dlls/msxml3/entityref.c
index db46193..1baea6e 100644
--- a/dlls/msxml3/entityref.c
+++ b/dlls/msxml3/entityref.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c
index 3fd229c..45df9f0 100644
--- a/dlls/msxml3/factory.c
+++ b/dlls/msxml3/factory.c
@@ -24,6 +24,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index 4585484..be1a5f7 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -22,6 +22,12 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/encoding.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/main.c b/dlls/msxml3/main.c
index 60b0cbd..47a89b1 100644
--- a/dlls/msxml3/main.c
+++ b/dlls/msxml3/main.c
@@ -25,6 +25,21 @@
#define COBJMACROS
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# ifdef SONAME_LIBXSLT
+# ifdef HAVE_LIBXSLT_PATTERN_H
+# include <libxslt/pattern.h>
+# endif
+# ifdef HAVE_LIBXSLT_TRANSFORM_H
+# include <libxslt/transform.h>
+# endif
+# include <libxslt/xsltutils.h>
+# include <libxslt/xsltInternals.h>
+# endif
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/msxml_private.h b/dlls/msxml3/msxml_private.h
index e0279f1..e1fbb59 100644
--- a/dlls/msxml3/msxml_private.h
+++ b/dlls/msxml3/msxml_private.h
@@ -102,10 +102,6 @@ BOOL dispex_query_interface(DispatchEx*,REFIID,void**);
#ifdef HAVE_LIBXML2
-#ifdef HAVE_LIBXML_PARSER_H
-#include <libxml/parser.h>
-#endif
-
/* constructors */
extern IUnknown *create_domdoc( xmlNodePtr document );
extern IUnknown *create_xmldoc( void );
@@ -184,25 +180,6 @@ static inline BSTR bstr_from_xmlChar(const xmlChar *str)
#endif
-void* libxslt_handle;
-#ifdef SONAME_LIBXSLT
-# ifdef HAVE_LIBXSLT_PATTERN_H
-# include <libxslt/pattern.h>
-# endif
-# ifdef HAVE_LIBXSLT_TRANSFORM_H
-# include <libxslt/transform.h>
-# endif
-# include <libxslt/xsltutils.h>
-# include <libxslt/xsltInternals.h>
-
-# define MAKE_FUNCPTR(f) extern typeof(f) * p##f
-MAKE_FUNCPTR(xsltApplyStylesheet);
-MAKE_FUNCPTR(xsltCleanupGlobals);
-MAKE_FUNCPTR(xsltFreeStylesheet);
-MAKE_FUNCPTR(xsltParseStylesheetDoc);
-# undef MAKE_FUNCPTR
-#endif
-
extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, BSTR srcText,
LONG line, LONG linepos, LONG filepos );
extern HRESULT DOMDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj );
diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
index bbdcb5d..2980566 100644
--- a/dlls/msxml3/node.c
+++ b/dlls/msxml3/node.c
@@ -24,6 +24,23 @@
#include <stdarg.h>
#include <assert.h>
+
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/HTMLtree.h>
+# ifdef SONAME_LIBXSLT
+# ifdef HAVE_LIBXSLT_PATTERN_H
+# include <libxslt/pattern.h>
+# endif
+# ifdef HAVE_LIBXSLT_TRANSFORM_H
+# include <libxslt/transform.h>
+# endif
+# include <libxslt/xsltutils.h>
+# include <libxslt/xsltInternals.h>
+# endif
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -33,16 +50,22 @@
#include "msxml_private.h"
-#ifdef HAVE_LIBXML2
-# include <libxml/HTMLtree.h>
-#endif
-
#include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef HAVE_LIBXML2
+#ifdef SONAME_LIBXSLT
+extern void* libxslt_handle;
+# define MAKE_FUNCPTR(f) extern typeof(f) * p##f
+MAKE_FUNCPTR(xsltApplyStylesheet);
+MAKE_FUNCPTR(xsltCleanupGlobals);
+MAKE_FUNCPTR(xsltFreeStylesheet);
+MAKE_FUNCPTR(xsltParseStylesheetDoc);
+# undef MAKE_FUNCPTR
+#endif
+
static const WCHAR szBinBase64[] = {'b','i','n','.','b','a','s','e','6','4',0};
static const WCHAR szString[] = {'s','t','r','i','n','g',0};
static const WCHAR szNumber[] = {'n','u','m','b','e','r',0};
diff --git a/dlls/msxml3/nodelist.c b/dlls/msxml3/nodelist.c
index f643c5e..4b2bba9 100644
--- a/dlls/msxml3/nodelist.c
+++ b/dlls/msxml3/nodelist.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/nodemap.c b/dlls/msxml3/nodemap.c
index 7d23ec8..d3d9c38 100644
--- a/dlls/msxml3/nodemap.c
+++ b/dlls/msxml3/nodemap.c
@@ -23,6 +23,11 @@
#define COBJMACROS
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/parseerror.c b/dlls/msxml3/parseerror.c
index 4b0dc57..89f14ca 100644
--- a/dlls/msxml3/parseerror.c
+++ b/dlls/msxml3/parseerror.c
@@ -25,6 +25,11 @@
#include <stdarg.h>
#include <assert.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winerror.h"
diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index 0baefe4..3ebc1bf 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/queryresult.c b/dlls/msxml3/queryresult.c
index 2c6f23e..8613b20 100644
--- a/dlls/msxml3/queryresult.c
+++ b/dlls/msxml3/queryresult.c
@@ -24,6 +24,13 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/xpath.h>
+# include <libxml/xpathInternals.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -48,8 +55,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef HAVE_LIBXML2
-#include <libxml/xpath.h>
-
typedef struct _queryresult
{
DispatchEx dispex;
diff --git a/dlls/msxml3/regsvr.c b/dlls/msxml3/regsvr.c
index 415e5af..864d61e 100644
--- a/dlls/msxml3/regsvr.c
+++ b/dlls/msxml3/regsvr.c
@@ -24,6 +24,10 @@
#include <stdarg.h>
#include <string.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
#define COBJMACROS
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index eca9f1d..f2d340e 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -24,6 +24,13 @@
#include <stdarg.h>
#include <assert.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/SAX2.h>
+# include <libxml/parserInternals.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
@@ -43,9 +50,6 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
#ifdef HAVE_LIBXML2
-#include <libxml/SAX2.h>
-#include <libxml/parserInternals.h>
-
typedef struct _saxreader
{
const struct IVBSAXXMLReaderVtbl *lpVBSAXXMLReaderVtbl;
diff --git a/dlls/msxml3/schema.c b/dlls/msxml3/schema.c
index 72d7854..c1465c0 100644
--- a/dlls/msxml3/schema.c
+++ b/dlls/msxml3/schema.c
@@ -23,6 +23,18 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+# include <libxml/tree.h>
+# include <libxml/xmlschemas.h>
+# include <libxml/schemasInternals.h>
+# include <libxml/hash.h>
+# include <libxml/parser.h>
+# include <libxml/parserInternals.h>
+# include <libxml/xmlIO.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/text.c b/dlls/msxml3/text.c
index fdcb06b..72b2ffd 100644
--- a/dlls/msxml3/text.c
+++ b/dlls/msxml3/text.c
@@ -24,6 +24,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/xmldoc.c b/dlls/msxml3/xmldoc.c
index d1a010f..0d1006e 100644
--- a/dlls/msxml3/xmldoc.c
+++ b/dlls/msxml3/xmldoc.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
diff --git a/dlls/msxml3/xmlelem.c b/dlls/msxml3/xmlelem.c
index a71b18b..a818d14 100644
--- a/dlls/msxml3/xmlelem.c
+++ b/dlls/msxml3/xmlelem.c
@@ -23,6 +23,11 @@
#include "config.h"
#include <stdarg.h>
+#ifdef HAVE_LIBXML2
+# include <libxml/parser.h>
+# include <libxml/xmlerror.h>
+#endif
+
#include "windef.h"
#include "winbase.h"
#include "winuser.h"
--
1.7.8.3

View File

@ -0,0 +1,40 @@
https://bugs.gentoo.org/show_bug.cgi?id=395615
Explicitly add the required -m32/m64 to *FLAGS; this overrides any
arch-specific -m* flags that may have been appended by multilib-portage.
Even though -m32/m64 is now added to *FLAGS, -m32/m64 still has to be
explicitly added to CC and CXX due to wine's build system. For example,
winegcc saves the build-time value of CC and uses it at runtime.
--- a/configure.ac
+++ b/configure.ac
@@ -133,12 +133,18 @@
then
CC="$CC -m64"
CXX="$CXX -m64"
+ CFLAGS="$CFLAGS -m64"
+ LDFLAGS="$LDFLAGS -m64"
+ CXXFLAGS="$CXXFLAGS -m64"
host_cpu="x86_64"
notice_platform="64-bit "
AC_SUBST(TARGETFLAGS,"-m64")
else
CC="$CC -m32"
CXX="$CXX -m32"
+ CFLAGS="$CFLAGS -m32"
+ LDFLAGS="$LDFLAGS -m32"
+ CXXFLAGS="$CXXFLAGS -m32"
host_cpu="i386"
notice_platform="32-bit "
AC_SUBST(TARGETFLAGS,"-m32")
@@ -150,6 +156,9 @@
then
CC="$CC -m32"
CXX="$CXX -m32"
+ CFLAGS="$CFLAGS -m32"
+ LDFLAGS="$LDFLAGS -m32"
+ CXXFLAGS="$CXXFLAGS -m32"
AC_MSG_CHECKING([whether $CC works])
AC_LINK_IFELSE([AC_LANG_PROGRAM()],AC_MSG_RESULT([yes]),
[AC_MSG_RESULT([no])

View File

@ -0,0 +1,38 @@
From 22fcf835dfe713ad93f649a901973208e0f7b62d Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 7 Aug 2012 01:29:01 -0400
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
If mesa had been built with shared glapi, glAccum is not available in
libOSMesa without explicitly linking to libGL. In addition, in
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
libglapi if mesa was built with shared glapi, see
https://bugs.gentoo.org/show_bug.cgi?id=399813
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
---
configure.ac | 8 +++++++-
1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/configure.ac b/configure.ac
index 15ada86..6eab75e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1133,7 +1133,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
if test "$ac_cv_header_GL_osmesa_h" = "yes"
then
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
+ osmesa_save_CC=$CC
+ CC=$CXX
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ CC=$osmesa_save_CC
+ fi
fi
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
--
1.7.8.6

View File

@ -0,0 +1,38 @@
From 1ede664b18bd8a88359a3cebb291ad49833ee033 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 7 Aug 2012 01:29:01 -0400
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
If mesa had been built with shared glapi, glAccum is not available in
libOSMesa without explicitly linking to libGL. In addition, in
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
libglapi if mesa was built with shared glapi, see
https://bugs.gentoo.org/show_bug.cgi?id=399813
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
---
configure.ac | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index cc32c24..275b792 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1128,7 +1128,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
if test "x$with_osmesa" != "xno"
then
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
+ osmesa_save_CC=$CC
+ CC=$CXX
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $X_PRE_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ CC=$osmesa_save_CC
+ fi
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
fi
--
1.8.0

View File

@ -0,0 +1,214 @@
From 57c57e9dfae50f045503ae9f3107fa3748512483 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Sun, 3 Feb 2013 19:19:36 -0500
Subject: [PATCH] winebuild: Use $CCAS to assemble if found
Commit c14bdaf1 made winebuild use Clang to assemble if found.
However, just because a user has some version of Clang installed, it
does not mean that she wants to use Clang to assemble Wine. For example,
a user who has both Clang and GAS installed may want to use GAS to avoid
textrels (see https://bugs.gentoo.org/show_bug.cgi?id=455308).
This patch allows the user to override which assembler gets used by
exporting CCAS at Wine configure time; the name CCAS was chosen for
compatibility with automake's standard AM_PROG_AS macro.
---
configure | 106 ++++++++++++++++++++++++++++++++++++++++++++
configure.ac | 4 ++
tools/winebuild/Makefile.in | 5 ++-
tools/winebuild/utils.c | 12 +++++
4 files changed, 126 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index e3253ee..d0b7777 100755
--- a/configure
+++ b/configure
@@ -732,6 +732,8 @@ FLEX
TOOLSDIR
WOW64_DISABLE
TARGETFLAGS
+ac_ct_CCAS
+CCAS
CPPBIN
ac_ct_CXX
CXXFLAGS
@@ -861,6 +863,7 @@ CPPFLAGS
CXX
CXXFLAGS
CCC
+CCAS
CPP
XMKMF'
@@ -1549,6 +1552,7 @@ Some influential environment variables:
you have headers in a nonstandard directory <include dir>
CXX C++ compiler command
CXXFLAGS C++ compiler flags
+ CCAS Assembler command
CPP C preprocessor
XMKMF Path to xmkmf, Makefile generator for X Window System
@@ -4075,6 +4079,108 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in clang gas as
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CCAS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$CCAS"; then
+ ac_cv_prog_CCAS="$CCAS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CCAS="$ac_tool_prefix$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CCAS=$ac_cv_prog_CCAS
+if test -n "$CCAS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CCAS" >&5
+$as_echo "$CCAS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$CCAS" && break
+ done
+fi
+if test -z "$CCAS"; then
+ ac_ct_CCAS=$CCAS
+ for ac_prog in clang gas as
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CCAS+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ if test -n "$ac_ct_CCAS"; then
+ ac_cv_prog_ac_ct_CCAS="$ac_ct_CCAS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CCAS="$ac_prog"
+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CCAS=$ac_cv_prog_ac_ct_CCAS
+if test -n "$ac_ct_CCAS"; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CCAS" >&5
+$as_echo "$ac_ct_CCAS" >&6; }
+else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CCAS" && break
+done
+
+ if test "x$ac_ct_CCAS" = x; then
+ CCAS=""$CC""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CCAS=$ac_ct_CCAS
+ fi
+fi
+
+
case $host in
*-darwin*)
if test "x$enable_win64" = "xyes"
diff --git a/configure.ac b/configure.ac
index c93cd08..760f325 100644
--- a/configure.ac
+++ b/configure.ac
@@ -126,6 +126,10 @@ dnl We can't use AC_PROG_CPP for winegcc, it uses by default $(CC) -E
AC_CHECK_TOOL(CPPBIN,cpp,cpp)
AC_DEFINE_UNQUOTED(EXEEXT,["$ac_exeext"],[Define to the file extension for executables.])
+dnl Analogous to AM_PROG_AS
+AC_ARG_VAR([CCAS],[Assembler command])
+AC_CHECK_TOOLS(CCAS,[clang gas as],["$CC"])
+
case $host in
*-darwin*)
if test "x$enable_win64" = "xyes"
diff --git a/tools/winebuild/Makefile.in b/tools/winebuild/Makefile.in
index 2017129..3fe47a3 100644
--- a/tools/winebuild/Makefile.in
+++ b/tools/winebuild/Makefile.in
@@ -1,4 +1,7 @@
-DEFS = -D__WINESRC__ $(EXTRADEFS)
+DEFS = \
+ -DCCAS="\"@CCAS@\"" \
+ -D__WINESRC__ \
+ $(EXTRADEFS)
PROGRAMS = winebuild$(EXEEXT)
MANPAGE = winebuild.man
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
index 262ff3a..1c5f918 100644
--- a/tools/winebuild/utils.c
+++ b/tools/winebuild/utils.c
@@ -352,6 +352,18 @@ struct strarray *get_as_command(void)
static int as_is_clang = 0;
struct strarray *args = strarray_init();
+ if (!as_command && strlen( CCAS ))
+ {
+ struct stat st;
+
+ if (!stat( CCAS, &st ))
+ as_command = CCAS;
+ else
+ as_command = find_tool( CCAS, NULL );
+
+ if (as_command && strstr( as_command, "clang" )) as_is_clang = 1;
+ }
+
if (!as_command)
{
as_command = find_tool( "clang", NULL );
--
1.8.1.2

View File

@ -0,0 +1,59 @@
http://bugs.gentoo.org/260726
diff --git a/tools/winebuild/main.c b/tools/winebuild/main.c
index 16b4165..5c77267 100644
--- a/tools/winebuild/main.c
+++ b/tools/winebuild/main.c
@@ -48,10 +48,13 @@ int link_ext_symbols = 0;
int force_pointer_size = 0;
int unwind_tables = 0;
+#undef FORCE_POINTER_SIZE
#ifdef __i386__
enum target_cpu target_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
#elif defined(__x86_64__)
enum target_cpu target_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
#elif defined(__powerpc__)
enum target_cpu target_cpu = CPU_POWERPC;
#elif defined(__arm__)
@@ -611,6 +614,10 @@ int main(int argc, char **argv)
signal( SIGTERM, exit_on_signal );
signal( SIGINT, exit_on_signal );
+#ifdef FORCE_POINTER_SIZE
+ force_pointer_size = sizeof(size_t);
+#endif
+
output_file = stdout;
argv = parse_options( argc, argv, spec );
diff --git a/tools/winegcc/winegcc.c b/tools/winegcc/winegcc.c
index 06aa200..c44d2e3 100644
--- a/tools/winegcc/winegcc.c
+++ b/tools/winegcc/winegcc.c
@@ -213,10 +213,13 @@ struct options
strarray* files;
};
+#undef FORCE_POINTER_SIZE
#ifdef __i386__
static const enum target_cpu build_cpu = CPU_x86;
+#define FORCE_POINTER_SIZE
#elif defined(__x86_64__)
static const enum target_cpu build_cpu = CPU_x86_64;
+#define FORCE_POINTER_SIZE
#elif defined(__powerpc__)
static const enum target_cpu build_cpu = CPU_POWERPC;
#elif defined(__arm__)
@@ -1258,6 +1261,9 @@ int main(int argc, char **argv)
opts.linker_args = strarray_alloc();
opts.compiler_args = strarray_alloc();
opts.winebuild_args = strarray_alloc();
+#ifdef FORCE_POINTER_SIZE
+ opts.force_pointer_size = sizeof(size_t);
+#endif
/* determine the processor type */
if (strendswith(argv[0], "winecpp")) opts.processor = proc_cpp;

View File

@ -0,0 +1,45 @@
commit ce4b6451aabbe83809c7483c748cfa009cc090d6
Author: Alexandre Julliard <julliard@winehq.org>
Date: Fri May 10 22:01:44 2013 +0200
configure: Add explicit install targets in libs/wine for make_makefiles.
diff --git a/configure b/configure
index d4c1f8e..ef38bfd 100755
--- a/configure
+++ b/configure
@@ -16379,7 +16379,7 @@ wine_fn_config_makefile documentation enable_documentation
wine_fn_config_makefile fonts enable_fonts install-lib
wine_fn_config_makefile include enable_include install-dev
wine_fn_config_makefile libs/port enable_libs_port
-wine_fn_config_makefile libs/wine enable_libs_wine
+wine_fn_config_makefile libs/wine enable_libs_wine install-dev,install-lib
wine_fn_config_makefile libs/wpp enable_libs_wpp
wine_fn_config_makefile loader enable_loader install-lib,manpage
wine_fn_config_program aspnet_regiis enable_aspnet_regiis install
diff --git a/configure.ac b/configure.ac
index 6dd2348..b44673e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3173,7 +3173,7 @@ WINE_CONFIG_MAKEFILE([documentation])
WINE_CONFIG_MAKEFILE([fonts],,[install-lib])
WINE_CONFIG_MAKEFILE([include],,[install-dev])
WINE_CONFIG_MAKEFILE([libs/port])
-WINE_CONFIG_MAKEFILE([libs/wine])
+WINE_CONFIG_MAKEFILE([libs/wine],,[install-dev,install-lib])
WINE_CONFIG_MAKEFILE([libs/wpp])
WINE_CONFIG_MAKEFILE([loader],,[install-lib,manpage])
WINE_CONFIG_PROGRAM(aspnet_regiis,,[install])
diff --git a/libs/wine/Makefile.in b/libs/wine/Makefile.in
index b8dc385..7de7799 100644
--- a/libs/wine/Makefile.in
+++ b/libs/wine/Makefile.in
@@ -111,4 +111,8 @@ version.c: dummy
$(RELPATH):
@cd $(TOOLSDIR)/tools && $(MAKE) relpath$(TOOLSEXT)
+# Make sure that make_makefiles sees the install rules
+install install-lib::
+install install-dev::
+
@LIBWINE_RULES@

View File

@ -0,0 +1,44 @@
From 9fb3de8e9268e8e81128fc77328495567140e082 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Sat, 25 May 2013 23:57:04 -0400
Subject: [PATCH] configure, secur32: In gnutls-3.2, gnutls_mac_get_key_size()
moved to crypto.h
Based on a patch by Ben Kohler <bkohler@gmail.com>
https://bugs.gentoo.org/show_bug.cgi?id=471077
http://bugs.winehq.org/show_bug.cgi?id=33649
---
configure.ac | 3 ++-
dlls/secur32/schannel_gnutls.c | 1 +
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 1941be1..2c10734 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1344,7 +1344,8 @@ then
ac_save_CPPFLAGS="$CPPFLAGS"
WINE_PACKAGE_FLAGS(GNUTLS,[gnutls])
AC_CHECK_HEADER(gnutls/gnutls.h,
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>]], [[static typeof(gnutls_mac_get_key_size) *func; if (func) return 0;]])],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>]], [[static typeof(gnutls_mac_get_key_size) *func; if (func) return 0;]])],
[WINE_CHECK_SONAME(gnutls,gnutls_global_init,,[GNUTLS_CFLAGS=""],[$GNUTLS_LIBS])])],
[GNUTLS_CFLAGS=""])
CPPFLAGS="$ac_save_CPPFLAGS"
diff --git a/dlls/secur32/schannel_gnutls.c b/dlls/secur32/schannel_gnutls.c
index 70b8276..cbe64e8 100644
--- a/dlls/secur32/schannel_gnutls.c
+++ b/dlls/secur32/schannel_gnutls.c
@@ -25,6 +25,7 @@
#include <stdarg.h>
#ifdef SONAME_LIBGNUTLS
#include <gnutls/gnutls.h>
+#include <gnutls/crypto.h>
#endif
#include "windef.h"
--
1.8.2.1

View File

@ -0,0 +1,21 @@
Avoid "undefined reference to `memset'" error when building with
USE=custom-cflags and -O3 in CFLAGS with gcc-4.8.
See:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888
http://bugs.winehq.org/show_bug.cgi?id=33521
https://bugs.gentoo.org/show_bug.cgi?id=480508
diff --git a/configure.ac b/configure.ac
index d8033cf..fe7cc7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1767,6 +1767,7 @@ then
dnl Check for some compiler flags
WINE_TRY_CFLAGS([-fno-builtin],[AC_SUBST(BUILTINFLAG,"-fno-builtin")])
+ WINE_TRY_CFLAGS([-fno-tree-loop-distribute-patterns])
WINE_TRY_CFLAGS([-fno-strict-aliasing])
dnl clang needs to be told to fail on unknown options
saved_CFLAGS=$CFLAGS

View File

@ -0,0 +1,38 @@
From b7eb1ff48dd1210aa3e1002afc503d5df75d50b9 Mon Sep 17 00:00:00 2001
From: Alexandre Rostovtsev <tetromino@gentoo.org>
Date: Tue, 7 Aug 2012 01:29:01 -0400
Subject: [PATCH] Do not check for libGL symbols when checking libOSMesa
If mesa had been built with shared glapi, glAccum is not available in
libOSMesa without explicitly linking to libGL. In addition, in
mesa-8.0.x and earlier, libOSMesa needs to be explicitly linked to
libglapi if mesa was built with shared glapi, see
https://bugs.gentoo.org/show_bug.cgi?id=399813
And in mesa-8.1.x, libOSMesa in addition needs libdl, libpthread, and
libstdc++, see https://bugs.gentoo.org/show_bug.cgi?id=431832
---
configure.ac | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 66b4dd6..0303d87 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1213,7 +1213,13 @@ This probably prevents linking to OpenGL. Try deleting the file and restarting c
if test "x$with_osmesa" != "xno"
then
- WINE_CHECK_SONAME(OSMesa,glAccum,,,[$X_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[$X_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ if test "x$ac_cv_lib_soname_OSMesa" = "x"; then
+ osmesa_save_CC=$CC
+ CC=$CXX
+ WINE_CHECK_SONAME(OSMesa,OSMesaCreateContext,,,[-lglapi -lpthread -ldl $X_LIBS $XLIB -lm $X_EXTRA_LIBS])
+ CC=$osmesa_save_CC
+ fi
WINE_NOTICE_WITH(osmesa,[test "x$ac_cv_lib_soname_OSMesa" = "x"],
[libOSMesa ${notice_platform}development files not found (or too old), OpenGL rendering in bitmaps won't be supported.])
fi
--
1.8.3.2

View File

@ -0,0 +1,128 @@
From 8a8957b4e6c9fe153524a7b1051f3aa1b6b4b402 Mon Sep 17 00:00:00 2001
From: Ryan Davis <iconoclasmandheresy@gmail.com>
Date: Sat, 16 Nov 2013 00:45:53 -0800
Subject: [PATCH 1/2] Apply hcce patch and massager for new wording
---
dlls/crypt32/chain.c | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/dlls/crypt32/chain.c b/dlls/crypt32/chain.c
index 1a83dee..31d1c53 100644
--- a/dlls/crypt32/chain.c
+++ b/dlls/crypt32/chain.c
@@ -33,7 +33,10 @@ WINE_DECLARE_DEBUG_CHANNEL(chain);
#define DEFAULT_CYCLE_MODULUS 7
-static HCERTCHAINENGINE CRYPT_defaultChainEngine;
+/* There are two default chain engines which correspond to HCCE_CURRENT_USER and
+ * HCCE_LOCAL_MACHINE.
+*/
+static HCERTCHAINENGINE CRYPT_defaultChainEngine[2] = { NULL, NULL };
/* This represents a subset of a certificate chain engine: it doesn't include
* the "hOther" store described by MSDN, because I'm not sure how that's used.
@@ -212,7 +215,7 @@ VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
TRACE("(%p)\n", hChainEngine);
- if (engine && InterlockedDecrement(&engine->ref) == 0)
+ if (engine > HCCE_LOCAL_MACHINE && InterlockedDecrement(&engine->ref) == 0)
{
CertCloseStore(engine->hWorld, 0);
CertCloseStore(engine->hRoot, 0);
@@ -220,26 +223,28 @@ VOID WINAPI CertFreeCertificateChainEngine(HCERTCHAINENGINE hChainEngine)
}
}
-static HCERTCHAINENGINE CRYPT_GetDefaultChainEngine(void)
+static HCERTCHAINENGINE CRYPT_GetDefaultChainEngine(HCERTCHAINENGINE h)
{
- if (!CRYPT_defaultChainEngine)
+ if (!CRYPT_defaultChainEngine[(int)h])
{
CERT_CHAIN_ENGINE_CONFIG config = { 0 };
HCERTCHAINENGINE engine;
config.cbSize = sizeof(config);
+ if (h == HCCE_LOCAL_MACHINE)
+ config.dwFlags = CERT_CHAIN_USE_LOCAL_MACHINE_STORE;
CertCreateCertificateChainEngine(&config, &engine);
- InterlockedCompareExchangePointer(&CRYPT_defaultChainEngine, engine,
+ InterlockedCompareExchangePointer(&CRYPT_defaultChainEngine[(int)h], engine,
NULL);
- if (CRYPT_defaultChainEngine != engine)
+ if (CRYPT_defaultChainEngine[(int)h] != engine)
CertFreeCertificateChainEngine(engine);
}
- return CRYPT_defaultChainEngine;
+ return CRYPT_defaultChainEngine[(int)h];
}
-void default_chain_engine_free(void)
+void default_chain_engine_free(HCERTCHAINENGINE h)
{
- CertFreeCertificateChainEngine(CRYPT_defaultChainEngine);
+ CertFreeCertificateChainEngine(CRYPT_defaultChainEngine[(int)h]);
}
typedef struct _CertificateChain
@@ -2886,11 +2891,10 @@ BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine,
return FALSE;
}
- if (!engine)
- engine = CRYPT_GetDefaultChainEngine();
+ if (engine <= HCCE_LOCAL_MACHINE)
+ engine = CRYPT_GetDefaultChainEngine(engine);
if (TRACE_ON(chain))
dump_chain_para(pChainPara);
- /* FIXME: what about HCCE_LOCAL_MACHINE? */
ret = CRYPT_BuildCandidateChainFromCert(engine, pCertContext, pTime,
hAdditionalStore, dwFlags, &chain);
if (ret)
--
1.8.4.3
From df10036a07e90f2c75c4d54d8ec462e24e314bae Mon Sep 17 00:00:00 2001
From: Ryan Davis <iconoclasmandheresy@gmail.com>
Date: Sat, 16 Nov 2013 23:53:49 -0800
Subject: [PATCH 2/2] HCCE patch kinda.
---
dlls/crypt32/crypt32_private.h | 2 +-
dlls/crypt32/main.c | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/crypt32/crypt32_private.h b/dlls/crypt32/crypt32_private.h
index 53e0834..6a4d819 100644
--- a/dlls/crypt32/crypt32_private.h
+++ b/dlls/crypt32/crypt32_private.h
@@ -157,7 +157,7 @@ void crypt_oid_init(void) DECLSPEC_HIDDEN;
void crypt_oid_free(void) DECLSPEC_HIDDEN;
void crypt_sip_free(void) DECLSPEC_HIDDEN;
void root_store_free(void) DECLSPEC_HIDDEN;
-void default_chain_engine_free(void) DECLSPEC_HIDDEN;
+void default_chain_engine_free(HCERTCHAINENGINE) DECLSPEC_HIDDEN;
/* (Internal) certificate store types and functions */
struct WINE_CRYPTCERTSTORE;
diff --git a/dlls/crypt32/main.c b/dlls/crypt32/main.c
index c4f6c78..2afb702 100644
--- a/dlls/crypt32/main.c
+++ b/dlls/crypt32/main.c
@@ -50,7 +50,8 @@ BOOL WINAPI DllMain(HINSTANCE hInst, DWORD fdwReason, PVOID pvReserved)
crypt_oid_free();
crypt_sip_free();
root_store_free();
- default_chain_engine_free();
+ default_chain_engine_free(HCCE_CURRENT_USER);
+ default_chain_engine_free(HCCE_LOCAL_MACHINE);
if (hDefProv) CryptReleaseContext(hDefProv, 0);
break;
}
--
1.8.4.3

View File

@ -0,0 +1,437 @@
# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.7.8.ebuild,v 1.3 2013/12/17 12:33:14 tetromino Exp $
EAPI="5"
AUTOTOOLS_AUTORECONF=1
PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"
PLOCALE_BACKUP="en"
inherit autotools-multilib eutils fdo-mime flag-o-matic gnome2-utils l10n multilib pax-utils toolchain-funcs virtualx
if [[ ${PV} == "9999" ]] ; then
EGIT_REPO_URI="git://source.winehq.org/git/wine.git"
inherit git-2
SRC_URI=""
#KEYWORDS=""
else
MY_P="${PN}-${PV/_/-}"
SRC_URI="mirror://sourceforge/${PN}/Source/${MY_P}.tar.bz2"
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
S=${WORKDIR}/${MY_P}
fi
GV="2.24"
MV="4.5.2"
PULSE_PATCHES="winepulse-patches-1.7.8"
WINE_GENTOO="wine-gentoo-2013.06.24"
DESCRIPTION="Free implementation of Windows(tm) on Unix"
HOMEPAGE="http://www.winehq.org/"
SRC_URI="${SRC_URI}
gecko? (
abi_x86_32? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi )
abi_x86_64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi )
)
mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi )
pulseaudio? ( http://dev.gentoo.org/~tetromino/distfiles/${PN}/${PULSE_PATCHES}.tar.bz2 )
http://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
LICENSE="LGPL-2.1"
SLOT="0"
IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl +png +prelink pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype +udisks v4l +X xcomposite xinerama +xml"
REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
test? ( abi_x86_32 )
elibc_glibc? ( threads )
mono? ( abi_x86_32 )
osmesa? ( opengl )" #286560
# FIXME: the test suite is unsuitable for us; many tests require net access
# or fail due to Xvfb's opengl limitations.
RESTRICT="test"
NATIVE_DEPEND="
truetype? ( >=media-libs/freetype-2.0.0 )
capi? ( net-dialup/capi4k-utils )
ncurses? ( >=sys-libs/ncurses-5.2:= )
udisks? ( sys-apps/dbus )
fontconfig? ( media-libs/fontconfig:= )
gphoto2? ( media-libs/libgphoto2:= )
openal? ( media-libs/openal:= )
gstreamer? ( media-libs/gstreamer:0.10 media-libs/gst-plugins-base:0.10 )
X? (
x11-libs/libXcursor
x11-libs/libXext
x11-libs/libXrandr
x11-libs/libXi
x11-libs/libXxf86vm
)
xinerama? ( x11-libs/libXinerama )
alsa? ( media-libs/alsa-lib )
cups? ( net-print/cups:= )
opencl? ( virtual/opencl )
opengl? (
virtual/glu
virtual/opengl
)
gsm? ( media-sound/gsm:= )
jpeg? ( virtual/jpeg:0= )
ldap? ( net-nds/openldap:= )
lcms? ( media-libs/lcms:2= )
mp3? ( >=media-sound/mpg123-1.5.0 )
netapi? ( net-fs/samba[netapi(+)] )
nls? ( sys-devel/gettext )
odbc? ( dev-db/unixODBC:= )
osmesa? ( media-libs/mesa[osmesa] )
pulseaudio? ( media-sound/pulseaudio )
xml? ( dev-libs/libxml2 dev-libs/libxslt )
scanner? ( media-gfx/sane-backends:= )
ssl? ( net-libs/gnutls:= )
png? ( media-libs/libpng:0= )
v4l? ( media-libs/libv4l )
xcomposite? ( x11-libs/libXcomposite )"
COMMON_DEPEND="
!amd64? ( ${NATIVE_DEPEND} )
amd64? (
abi_x86_64? ( ${NATIVE_DEPEND} )
abi_x86_32? (
truetype? ( || (
>=app-emulation/emul-linux-x86-xlibs-2.1[development]
>=media-libs/freetype-2.0.0[abi_x86_32]
) )
ncurses? ( || (
app-emulation/emul-linux-x86-baselibs[development]
sys-libs/ncurses[abi_x86_32]
) )
udisks? ( || (
>=app-emulation/emul-linux-x86-baselibs-20130224[development]
sys-apps/dbus[abi_x86_32]
) )
fontconfig? ( || (
app-emulation/emul-linux-x86-xlibs[development]
media-libs/fontconfig[abi_x86_32]
) )
gphoto2? (
app-emulation/emul-linux-x86-medialibs[development]
)
openal? ( || (
app-emulation/emul-linux-x86-sdl[development]
media-libs/openal[abi_x86_32]
) )
gstreamer? (
app-emulation/emul-linux-x86-gstplugins
app-emulation/emul-linux-x86-medialibs[development]
)
X? ( || (
app-emulation/emul-linux-x86-xlibs[development]
(
x11-libs/libXcursor[abi_x86_32]
x11-libs/libXext[abi_x86_32]
x11-libs/libXrandr[abi_x86_32]
x11-libs/libXi[abi_x86_32]
x11-libs/libXxf86vm[abi_x86_32]
)
) )
xinerama? ( || (
app-emulation/emul-linux-x86-xlibs[development]
x11-libs/libXinerama[abi_x86_32]
) )
alsa? ( || (
app-emulation/emul-linux-x86-soundlibs[alsa,development]
media-libs/alsa-lib[abi_x86_32]
) )
cups? ( app-emulation/emul-linux-x86-baselibs )
opencl? ( virtual/opencl[abi_x86_32] )
opengl? ( || (
app-emulation/emul-linux-x86-opengl[development]
(
virtual/glu[abi_x86_32]
virtual/opengl[abi_x86_32]
)
) )
gsm? ( || (
app-emulation/emul-linux-x86-soundlibs[development]
media-sound/gsm[abi_x86_32]
) )
jpeg? ( || (
app-emulation/emul-linux-x86-baselibs[development]
virtual/jpeg:0[abi_x86_32]
) )
ldap? ( app-emulation/emul-linux-x86-baselibs[development] )
lcms? ( || (
app-emulation/emul-linux-x86-baselibs[development]
media-libs/lcms:2[abi_x86_32]
) )
mp3? ( || (
app-emulation/emul-linux-x86-soundlibs[development]
>=media-sound/mpg123-1.5.0[abi_x86_32]
) )
nls? ( app-emulation/emul-linux-x86-baselibs[development] )
odbc? ( app-emulation/emul-linux-x86-db[development] )
osmesa? ( || (
>=app-emulation/emul-linux-x86-opengl-20121028[development]
media-libs/mesa[osmesa,abi_x86_32]
) )
pulseaudio? ( || (
app-emulation/emul-linux-x86-soundlibs[development]
>=media-sound/pulseaudio-4.0-r1[abi_x86_32]
) )
xml? ( >=app-emulation/emul-linux-x86-baselibs-20131008[development] )
scanner? ( app-emulation/emul-linux-x86-medialibs[development] )
ssl? ( app-emulation/emul-linux-x86-baselibs[development] )
png? ( || (
app-emulation/emul-linux-x86-baselibs[development]
media-libs/libpng:0[abi_x86_32]
) )
v4l? ( || (
app-emulation/emul-linux-x86-medialibs[development]
media-libs/libv4l[abi_x86_32]
) )
xcomposite? ( || (
app-emulation/emul-linux-x86-xlibs[development]
x11-libs/libXcomposite[abi_x86_32]
) )
)
)"
RDEPEND="${COMMON_DEPEND}
dos? ( games-emulation/dosbox )
perl? ( dev-lang/perl dev-perl/XML-Simple )
samba? ( >=net-fs/samba-3.0.25 )
selinux? ( sec-policy/selinux-wine )
udisks? ( sys-fs/udisks:2 )
pulseaudio? ( realtime? ( sys-auth/rtkit ) )"
DEPEND="${COMMON_DEPEND}
amd64? ( abi_x86_32? ( !abi_x86_64? ( ${NATIVE_DEPEND} ) ) )
X? (
x11-proto/inputproto
x11-proto/xextproto
x11-proto/xf86vidmodeproto
)
xinerama? ( x11-proto/xineramaproto )
prelink? ( sys-devel/prelink )
>=sys-kernel/linux-headers-2.6
virtual/pkgconfig
virtual/yacc
sys-devel/flex"
# These use a non-standard "Wine" category, which is provided by
# /etc/xdg/applications-merged/wine.menu
QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
usr/share/applications/wine-notepad.desktop
usr/share/applications/wine-uninstaller.desktop
usr/share/applications/wine-winecfg.desktop"
wine_build_environment_check() {
[[ ${MERGE_TYPE} = "binary" ]] && return 0
if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then
eerror "You need gcc-4.4+ to build 64-bit wine"
eerror
return 1
fi
if use abi_x86_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; then
eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
eerror "See https://bugs.gentoo.org/487864 for more details."
eerror
return 1
fi
}
pkg_pretend() {
wine_build_environment_check || die
}
pkg_setup() {
wine_build_environment_check || die
}
src_unpack() {
if [[ ${PV} == "9999" ]] ; then
git-2_src_unpack
else
unpack ${MY_P}.tar.bz2
fi
use pulseaudio && unpack "${PULSE_PATCHES}.tar.bz2"
unpack "${WINE_GENTOO}.tar.bz2"
l10n_find_plocales_changes "${S}/po" "" ".po"
}
src_prepare() {
local md5="$(md5sum server/protocol.def)"
local PATCHES=(
"${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
"${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
"${FILESDIR}"/${PN}-1.7.2-osmesa-check.patch #429386
"${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
"${FILESDIR}"/${PN}-1.7.9-hcce.patch #46554
)
use pulseaudio && PATCHES+=(
"../${PULSE_PATCHES}"/*.patch #421365
)
autotools-utils_src_prepare
if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
einfo "server/protocol.def was patched; running tools/make_requests"
tools/make_requests || die #432348
fi
sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
if ! use run-exes; then
sed -i '/^MimeType/d' tools/wine.desktop || die #117785
fi
# hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
l10n_get_locales > po/LINGUAS # otherwise wine doesn't respect LINGUAS
}
do_configure() {
local myeconfargs=( "${myeconfargs[@]}" )
if use amd64; then
if [[ ${ABI} == amd64 ]]; then
myeconfargs+=( --enable-win64 )
else
use netapi && ewarn "Disabling netapi in wine32; see https://bugs.gentoo.org/494394"
# We currently don't have 32-bit libnetapi on amd64; #494394
myeconfargs+=(
--without-netapi
--disable-win64
)
fi
# Note: using --with-wine64 results in problems with multilib.eclass
# CC/LD hackery. We're using separate tools instead.
fi
autotools-utils_src_configure
}
src_configure() {
export LDCONFIG=/bin/true
use custom-cflags || strip-flags
local myeconfargs=( # common
--sysconfdir=/etc/wine
$(use_with alsa)
$(use_with capi)
$(use_with lcms cms)
$(use_with cups)
$(use_with ncurses curses)
$(use_with udisks dbus)
$(use_with fontconfig)
$(use_with ssl gnutls)
$(use_with gphoto2 gphoto)
$(use_with gsm)
$(use_with gstreamer)
--without-hal
$(use_with jpeg)
$(use_with ldap)
$(use_with mp3 mpg123)
$(use_with netapi)
$(use_with nls gettext)
$(use_with openal)
$(use_with opencl)
$(use_with opengl)
$(use_with osmesa)
$(use_with oss)
$(use_with png)
$(use_with threads pthread)
$(use_with scanner sane)
$(use_enable test tests)
$(use_with truetype freetype)
$(use_with v4l)
$(use_with X x)
$(use_with xcomposite)
$(use_with xinerama)
$(use_with xml)
$(use_with xml xslt)
)
use pulseaudio && myeconfargs+=( --with-pulse )
if use amd64 && use abi_x86_32; then
# Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
# set AR and RANLIB to make QA scripts happy; #483342
tc-export PKG_CONFIG AR RANLIB
fi
multilib_parallel_foreach_abi do_configure
}
src_compile() {
autotools-multilib_src_compile depend
autotools-multilib_src_compile all
}
src_test() {
if [[ $(id -u) == 0 ]]; then
ewarn "Skipping tests since they cannot be run under the root user."
ewarn "To run the test ${PN} suite, add userpriv to FEATURES in make.conf"
return
fi
# FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
multilib_toolchain_setup x86
local BUILD_DIR="${S}-${ABI}"
cd "${BUILD_DIR}" || die
WINEPREFIX="${T}/.wine-${ABI}" Xemake test
}
src_install() {
local DOCS=( ANNOUNCE AUTHORS README )
add_locale_docs() {
local locale_doc="documentation/README.$1"
[[ ! -e ${locale_doc} ]] || DOCS=( "${DOCS[@]}" ${locale_doc} )
}
l10n_for_each_locale_do add_locale_docs
autotools-multilib_src_install
emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
if use gecko ; then
insinto /usr/share/wine/gecko
use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
fi
if use mono ; then
insinto /usr/share/wine/mono
doins "${DISTDIR}"/wine-mono-${MV}.msi
fi
if ! use perl ; then
rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
fi
use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
if use abi_x86_64 && ! use abi_x86_32; then
dosym /usr/bin/wine{64,} # 404331
dosym /usr/bin/wine{64,}-preloader
fi
# respect LINGUAS when installing man pages, #469418
for l in de fr pl; do
use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
done
}
pkg_preinst() {
gnome2_icon_savelist
}
pkg_postinst() {
gnome2_icon_cache_update
fdo-mime_desktop_database_update
}
pkg_postrm() {
gnome2_icon_cache_update
fdo-mime_desktop_database_update
}