diff --git a/app-emulation/wine/Manifest b/app-emulation/wine/Manifest new file mode 100644 index 0000000..b00fa1d --- /dev/null +++ b/app-emulation/wine/Manifest @@ -0,0 +1,5 @@ +DIST wine-1.5.12.tar.bz2 20652437 SHA256 ba987a0e3b1d5c0ba2d42fecdcff1c4e910d7c9949d9baca796b8b5c1318662c SHA512 c16ca8a6343a40f5a287fa123c9d03d6bc60b1e9bd9642cfa94fc473e2acd8bed56d442a149ac590b00292494795aa3b23e3c021990c3ca444641a4899d9a947 WHIRLPOOL 834b79863c158113a3cc71507371110c269aea8edb00bcb9cacadcf5d69a6389bf1836a19d3c9ad6e9b1593aaf02c8f1f90d9cea3149b42a3089983addfcd233 +DIST wine-mono-0.0.4.msi 44408320 SHA256 15d8a612cdeca4eff3137353f29fdeb7a99e055cd633844c91cd00e0186b8882 SHA512 a7a3d5a564bab68ec6f3b96dff53c7b1491ce6d53b9fa3c2f5770e3ada69ffdefcbdde340697e9916d8c487f748db22aae97803b21bd63e461149be1eac096e4 WHIRLPOOL dc3bfafb8768cbda124870fceb1389e34a7d8ff0b1bad3df7e05923ce2695a2b037467bfddd90e1726f3f64f79bfa9f64bf65054ae3355a69039026fabf1eb4a +DIST wine_gecko-1.7-x86.msi 16995328 SHA256 2ed524e79cc88137b28430389af19cb032989311921462a29f72d6f121954913 SHA512 c17308ebcaaa947729dcfcc73736ec4f0ed559744eb89fc7b60afab9bc6c67044dc4885209ac79104ef0f957e842162ad8beb1535236c0fa2ed0dab6b0133636 WHIRLPOOL cba9e7276783c3fa828a948c6c5bca3a01329dd768f0768f310624aab70bcafb94dca1789ad77670dfc5c737da0a21342641997c0697d7c2a337b9e15555363b +DIST wine_gecko-1.7-x86_64.msi 17438720 SHA256 19d0364a43621738fa3fd1713ef9590ad0cc61ea4c8858ad3f8703a81b13c927 SHA512 04928aab0ba3ab90074085f9198e46372701249863b6710ed4ffc0c92e0ffc30348a41be528c7c1dec9007441cc1f3d3aa1193e469ac75f5ae635df52dac4dd7 WHIRLPOOL 389ae0eb32b2ea994cac9fdb0fd785bb457489063657040f54a5dd74c74483396772b18bbb0e7b4d86c1036d52a21d0d68610a458842e79e2c2567301d3e1659 +DIST winepulse-2012.06.15.patch 100596 SHA256 f6baf816e6170c406607d81e298fea2d175452ca822ee4cd2748fe4381ecd4dc SHA512 cd14a3407820d5d7b64a1ea19e41ae816a6a06888d57314cd7314192744574885501c98fa9e9f0fb102d3427d9f7bcc4f1a5ac532947b89db52ef731e071cb69 WHIRLPOOL 2dbb40afb633f5b1238d8849825b4711de865033ebb5c8f04c8e930a2974b8a5f4958fe87b5c1a9ccb1417ab1f4fbd2ed37feec11d2212efa01a6e05171a06a6 diff --git a/app-emulation/wine/files/wine-1.1.15-winegcc.patch b/app-emulation/wine/files/wine-1.1.15-winegcc.patch new file mode 100644 index 0000000..a1cd890 --- /dev/null +++ b/app-emulation/wine/files/wine-1.1.15-winegcc.patch @@ -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 ); + diff --git a/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch b/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch new file mode 100644 index 0000000..be6ffc5 --- /dev/null +++ b/app-emulation/wine/files/wine-1.4_rc2-multilib-portage.patch @@ -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]) diff --git a/app-emulation/wine/files/wine-1.5.11-osmesa-check.patch b/app-emulation/wine/files/wine-1.5.11-osmesa-check.patch new file mode 100644 index 0000000..2bd7694 --- /dev/null +++ b/app-emulation/wine/files/wine-1.5.11-osmesa-check.patch @@ -0,0 +1,38 @@ +From 22fcf835dfe713ad93f649a901973208e0f7b62d Mon Sep 17 00:00:00 2001 +From: Alexandre Rostovtsev +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 + diff --git a/app-emulation/wine/wine-1.5.12.ebuild b/app-emulation/wine/wine-1.5.12.ebuild new file mode 100644 index 0000000..bd2fe23 --- /dev/null +++ b/app-emulation/wine/wine-1.5.12.ebuild @@ -0,0 +1,250 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/app-emulation/wine/wine-1.5.12.ebuild,v 1.2 2012/09/10 06:02:11 tetromino Exp $ + +EAPI="4" + +inherit autotools eutils flag-o-matic multilib pax-utils + +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.7" +MV="0.0.4" +PULSE_PATCH="winepulse-2012.06.15.patch" +DESCRIPTION="free implementation of Windows(tm) on Unix" +HOMEPAGE="http://www.winehq.org/" +SRC_URI="${SRC_URI} + gecko? ( + mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi + win64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi ) + ) + mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi ) + http://source.winehq.org/patches/data/87234 -> ${PULSE_PATCH}" + +LICENSE="LGPL-2.1" +SLOT="0" +IUSE="alsa capi cups custom-cflags elibc_glibc fontconfig +gecko gnutls gphoto2 gsm gstreamer hardened jpeg lcms ldap +mono mp3 ncurses nls odbc openal opencl +opengl osmesa +oss +perl png pulseaudio samba scanner selinux ssl test +threads +truetype udisks v4l +win32 +win64 +X xcomposite xinerama xml" +REQUIRED_USE="elibc_glibc? ( threads ) + mono? ( || ( win32 !win64 ) ) + osmesa? ( opengl )" #286560 +RESTRICT="test" #72375 + +MLIB_DEPS="amd64? ( + truetype? ( >=app-emulation/emul-linux-x86-xlibs-2.1 ) + X? ( + >=app-emulation/emul-linux-x86-xlibs-2.1 + >=app-emulation/emul-linux-x86-soundlibs-2.1[pulseaudio(+)?] + ) + mp3? ( app-emulation/emul-linux-x86-soundlibs ) + odbc? ( app-emulation/emul-linux-x86-db ) + openal? ( app-emulation/emul-linux-x86-sdl ) + opengl? ( app-emulation/emul-linux-x86-opengl ) + scanner? ( app-emulation/emul-linux-x86-medialibs ) + v4l? ( app-emulation/emul-linux-x86-medialibs ) + app-emulation/emul-linux-x86-baselibs + >=sys-kernel/linux-headers-2.6 + )" +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 + ) + gnutls? ( net-libs/gnutls ) + gstreamer? ( media-libs/gstreamer media-libs/gst-plugins-base ) + X? ( + x11-libs/libXcursor + 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-1* ) + mp3? ( >=media-sound/mpg123-1.5.0 ) + nls? ( sys-devel/gettext ) + odbc? ( dev-db/unixODBC ) + osmesa? ( media-libs/mesa[osmesa] ) + pulseaudio? ( media-sound/pulseaudio ) + 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? ( dev-libs/openssl ) + png? ( media-libs/libpng ) + v4l? ( media-libs/libv4l ) + !win64? ( ${MLIB_DEPS} ) + win32? ( ${MLIB_DEPS} ) + xcomposite? ( x11-libs/libXcomposite )" +DEPEND="${RDEPEND} + X? ( + x11-proto/inputproto + x11-proto/xextproto + x11-proto/xf86vidmodeproto + ) + xinerama? ( x11-proto/xineramaproto ) + !hardened? ( sys-devel/prelink ) + virtual/pkgconfig + virtual/yacc + sys-devel/flex" + +src_unpack() { + if use win64 ; then + [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]] \ + && die "you need gcc-4.4+ to build 64bit wine" + fi + + if use win32 && use opencl; then + [[ x$(eselect opencl show) = "xintel" ]] && + die "Cannot build wine[opencl,win32]: intel-ocl-sdk is 64-bit only" # 403947 + fi + + if [[ ${PV} == "9999" ]] ; then + git-2_src_unpack + else + unpack ${MY_P}.tar.bz2 + fi +} + +src_prepare() { + local md5="$(md5sum server/protocol.def)" + epatch "${FILESDIR}"/${PN}-1.1.15-winegcc.patch #260726 + epatch "${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615 + epatch "${FILESDIR}"/${PN}-1.5.11-osmesa-check.patch #429386 + epatch "${DISTDIR}/${PULSE_PATCH}" #421365 + epatch_user #282735 + if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then + einfo "server/protocol.def was patched; running tools/make_requests" + tools/make_requests || die #432348 + fi + eautoreconf + sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die + sed -i '/^MimeType/d' tools/wine.desktop || die #117785 +} + +do_configure() { + local builddir="${WORKDIR}/wine$1" + mkdir -p "${builddir}" + pushd "${builddir}" >/dev/null + + ECONF_SOURCE=${S} \ + econf \ + --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 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 ssl openssl) \ + $(use_with osmesa) \ + $(use_with oss) \ + $(use_with png) \ + $(use_with threads pthread) \ + $(use_with pulseaudio pulse) \ + $(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) \ + $2 + + emake -j1 depend + + popd >/dev/null +} + +src_configure() { + export LDCONFIG=/bin/true + use custom-cflags || strip-flags + + if use win64 ; then + do_configure 64 --enable-win64 + use win32 && ABI=x86 do_configure 32 --with-wine64=../wine64 + else + ABI=x86 do_configure 32 --disable-win64 + fi +} + +src_compile() { + local b + for b in 64 32 ; do + local builddir="${WORKDIR}/wine${b}" + [[ -d ${builddir} ]] || continue + emake -C "${builddir}" all + done +} + +src_install() { + local b + for b in 64 32 ; do + local builddir="${WORKDIR}/wine${b}" + [[ -d ${builddir} ]] || continue + emake -C "${builddir}" install DESTDIR="${D}" + done + dodoc ANNOUNCE AUTHORS README + if use gecko ; then + insinto /usr/share/wine/gecko + doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi + use win64 && 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 + + if use win32 || ! use win64; then + pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055 + fi + use win64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader} + + if use win64 && ! use win32; then + dosym /usr/bin/wine{64,} # 404331 + dosym /usr/bin/wine{64,}-preloader + fi +}