diff options
author | 2013-04-27 03:32:00 +0200 | |
---|---|---|
committer | 2013-04-27 03:32:00 +0200 | |
commit | 9930b768a025686136c29b546abe60c5b1218270 (patch) | |
tree | d20f39c24d9e8449d8475e0378b34cae91cf77a8 /app-emulation | |
parent | bedup-0.9.0 added. (diff) | |
download | eroen-9930b768a025686136c29b546abe60c5b1218270.tar.gz eroen-9930b768a025686136c29b546abe60c5b1218270.tar.bz2 eroen-9930b768a025686136c29b546abe60c5b1218270.zip |
wine-1.5.28: imported from portage
Diffstat (limited to 'app-emulation')
-rw-r--r-- | app-emulation/wine/files/wine-1.5.23-winebuild-CCAS.patch | 214 | ||||
-rw-r--r-- | app-emulation/wine/files/wine-1.5.26-winegcc.patch | 59 | ||||
-rw-r--r-- | app-emulation/wine/wine-1.5.28.ebuild | 302 |
3 files changed, 575 insertions, 0 deletions
diff --git a/app-emulation/wine/files/wine-1.5.23-winebuild-CCAS.patch b/app-emulation/wine/files/wine-1.5.23-winebuild-CCAS.patch new file mode 100644 index 0000000..3971ddd --- /dev/null +++ b/app-emulation/wine/files/wine-1.5.23-winebuild-CCAS.patch @@ -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 + diff --git a/app-emulation/wine/files/wine-1.5.26-winegcc.patch b/app-emulation/wine/files/wine-1.5.26-winegcc.patch new file mode 100644 index 0000000..2045e34 --- /dev/null +++ b/app-emulation/wine/files/wine-1.5.26-winegcc.patch @@ -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; diff --git a/app-emulation/wine/wine-1.5.28.ebuild b/app-emulation/wine/wine-1.5.28.ebuild new file mode 100644 index 0000000..7aeadf4 --- /dev/null +++ b/app-emulation/wine/wine-1.5.28.ebuild @@ -0,0 +1,302 @@ +# 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.5.28.ebuild,v 1.1 2013/04/14 00:32:20 tetromino Exp $ + +EAPI="5" + +AUTOTOOLS_AUTORECONF=1 +inherit autotools-multilib eutils flag-o-matic gnome2-utils 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="1.9" +MV="0.0.8" +PULSE_PATCHES="winepulse-patches-1.5.25" +WINE_GENTOO="wine-gentoo-2012.11.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 ) + 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 elibc_glibc fontconfig +gecko gphoto2 gsm gstreamer jpeg lcms ldap +mono mp3 ncurses nls odbc openal opencl +opengl osmesa +oss +perl png +prelink samba scanner selinux ssl test +threads +truetype udisks v4l +X xcomposite xinerama xml" +[[ ${PV} == "9999" ]] || IUSE="${IUSE} pulseaudio" +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" + +RDEPEND="truetype? ( >=media-libs/freetype-2.0.0 media-fonts/corefonts ) + perl? ( dev-lang/perl dev-perl/XML-Simple ) + capi? ( net-dialup/capi4k-utils ) + ncurses? ( >=sys-libs/ncurses-5.2:= ) + fontconfig? ( media-libs/fontconfig:= ) + gphoto2? ( media-libs/libgphoto2:= ) + openal? ( media-libs/openal:= ) + udisks? ( + sys-apps/dbus + sys-fs/udisks:2 + ) + 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/libXmu + 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:= ) + ldap? ( net-nds/openldap:= ) + lcms? ( media-libs/lcms:0= ) + mp3? ( >=media-sound/mpg123-1.5.0 ) + nls? ( sys-devel/gettext ) + odbc? ( dev-db/unixODBC:= ) + osmesa? ( media-libs/mesa[osmesa] ) + samba? ( >=net-fs/samba-3.0.25 ) + selinux? ( sec-policy/selinux-wine ) + 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 ) + amd64? ( + abi_x86_32? ( + gstreamer? ( app-emulation/emul-linux-x86-gstplugins ) + truetype? ( >=app-emulation/emul-linux-x86-xlibs-2.1[development] ) + X? ( + >=app-emulation/emul-linux-x86-xlibs-2.1[development] + >=app-emulation/emul-linux-x86-soundlibs-2.1[development] + ) + mp3? ( app-emulation/emul-linux-x86-soundlibs[development] ) + odbc? ( app-emulation/emul-linux-x86-db[development] ) + openal? ( app-emulation/emul-linux-x86-sdl[development] ) + opengl? ( app-emulation/emul-linux-x86-opengl[development] ) + osmesa? ( >=app-emulation/emul-linux-x86-opengl-20121028[development] ) + scanner? ( app-emulation/emul-linux-x86-medialibs[development] ) + v4l? ( app-emulation/emul-linux-x86-medialibs[development] ) + >=app-emulation/emul-linux-x86-baselibs-20130224[development] + >=sys-kernel/linux-headers-2.6 + ) + )" +[[ ${PV} == "9999" ]] || RDEPEND="${RDEPEND} + pulseaudio? ( + media-sound/pulseaudio + sys-auth/rtkit + )" +DEPEND="${RDEPEND} + X? ( + x11-proto/inputproto + x11-proto/xextproto + x11-proto/xf86vidmodeproto + ) + xinerama? ( x11-proto/xineramaproto ) + prelink? ( sys-devel/prelink ) + 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" + +src_unpack() { + if use abi_x86_64; then + [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]] \ + && die "you need gcc-4.4+ to build 64bit wine" + fi + + if use abi_x86_32 && use opencl; then + [[ x$(eselect opencl show) = "xintel" ]] && + die "Cannot build wine[opencl,abi_x86_32]: intel-ocl-sdk is 64-bit only" # 403947 + fi + + if [[ ${PV} == "9999" ]] ; then + git-2_src_unpack + else + unpack ${MY_P}.tar.bz2 + fi + + unpack "${PULSE_PATCHES}.tar.bz2" + unpack "${WINE_GENTOO}.tar.bz2" +} + +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.5.17-osmesa-check.patch #429386 + "${FILESDIR}"/${PN}-1.5.23-winebuild-CCAS.patch #455308 + ) + [[ ${PV} == "9999" ]] || 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 + sed -i '/^MimeType/d' tools/wine.desktop || die #117785 +} + +do_configure() { + local myeconfargs=( + "${myeconfargs[@]}" + CCAS="$(tc-getAS)" + ) + + if use amd64; then + if [[ ${ABI} == amd64 ]]; then + myeconfargs+=( --enable-win64 ) + else + myeconfargs+=( --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 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) + ) + + [[ ${PV} == "9999" ]] || myeconfargs+=( $(use_with pulseaudio pulse) ) + + 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 ) + 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 +} + +pkg_preinst() { + gnome2_icon_savelist +} + +pkg_postinst() { + gnome2_icon_cache_update +} + +pkg_postrm() { + gnome2_icon_cache_update +} |