From 1f09a875abe37320767306b068f52441e2ef960e Mon Sep 17 00:00:00 2001 From: Rob Walker Date: Wed, 5 Sep 2018 17:43:33 +0100 Subject: [PATCH] new release candidate version(s): app-emulation/wine-vanilla (3.0.3-rc2) --- app-emulation/wine-vanilla/Manifest | 3 + .../wine-vanilla-3.0.3_rc2.ebuild | 588 ++++++++++++++++++ .../wine-vanilla-3.0.3_rc2_p1.ebuild | 1 + 3 files changed, 592 insertions(+) create mode 100644 app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2.ebuild create mode 120000 app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2_p1.ebuild diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest index b2e3424c..04a9979a 100644 --- a/app-emulation/wine-vanilla/Manifest +++ b/app-emulation/wine-vanilla/Manifest @@ -79,6 +79,7 @@ DIST wine-3.7.tar.xz 20454036 SHA256 76c73760d72497c59e81dfd7c5def450171bd59e9cf DIST wine-3.8.tar.xz 20473392 SHA256 02b00c6c948b3bab717e1b1e2075a5406b14d138bd2e01fdb1268a93d1c20d51 SHA512 387c6bff3eafac7e92030d11c02b3461b4ead059d2aad7f6d903e176f304d2ac0a426132fcd452507868f0d22bb360a30734edf3e73dfd514037458f08406e98 WHIRLPOOL fc2672bc763fcf4ca690391a8f4bf206d97f166e1c335ae9aa071e0f38acebdc85a35b65511e3e9e7e5974867bcc1598b2154599c6e53bec80315887d1640830 DIST wine-3.9.tar.xz 20508952 SHA256 ccadc281966d5a94f1161dec22d29bf7bd6506b371b26f18f652d374e986b735 SHA512 4c4e5a741a61b9427c175e015177df5806638736f7dfd92098ed95239d41a373cbab876c054d3c948e1db6a7de359db3babd63bc194edc8c2c3be28b58f75e64 WHIRLPOOL a25237b16a7a211195c6f70098963d9695204f6cadea42c1bbc10436ba011e59989fd87073fba2336c0ba625ef7e7cfc2da31048d70e8c23508d1b1f9eb8b042 DIST wine-stable-wine-3.0.3-rc1.tar.gz 32659520 SHA256 389e949525f96f570619991a13c344fca56b7efb2161854037b694487f41cdba SHA512 dfca0d005c7e98a7a2252eaf774383c6fc7c0302097ef092624e1b5ddb478b7bbf0a0d591f689e57a0a470195b2616bb1e0e833cc317ee3f17420688aa5b4e79 WHIRLPOOL 5056986e7af43614cf627174ae7bb77f2710791bc29bbd55461f3164e6037b3c34567a07d90661c2240829bc637a27f52326a313281b53abd5816ca0045edc6b +DIST wine-stable-wine-3.0.3-rc2.tar.gz 32659741 SHA256 ee5242a3e662424e2d672fed0f6046028b18eff03e992a64c9c509096ac85f94 SHA512 6e6e3927d7a5e1ad4f872c2c85ddefcd215e24e1cb6ea0cb66498da88fb7e1c29adce73254c275e8e75960aedeb062e4b750e63e7da3e850aa2905c35dbcf7cf WHIRLPOOL be9d5f2ac0da5fc7aec39b1b1bad71d6aef83a5a4b4c7e10e0d4d59fd769d6061c61a5020e08b0f13e4e7a054a5986f5afffebf8404c786a334f7dac3b8014f8 EBUILD wine-vanilla-1.8-r12.ebuild 23380 SHA256 f75112c881d6d9c81f0794411b21b6c59536810c610ac693f8c8b4055e3de4a8 SHA512 7dbac921cb361bedd419a550ca5fd07db0e9985336ca7696996de47595b3bc2c3dc36791b810f592096e3083808f7a097c27cb0bd1908da66a9f237bb28617d7 WHIRLPOOL 8f06b270a2c679567d8ef06f1025f6a5db4fc1e67c08096010e6b78f8e55eeb6f08692d5aaeb22657078f9a7471494218a5533ffa9147e6cf3dc959ceb97f953 EBUILD wine-vanilla-1.8.1-r12.ebuild 23399 SHA256 3bb79459f4db12a365ddbd1191a0b90d447f550ea4b03b42a53d1ea46c477478 SHA512 ca93098faced10f014efcec0e2bd01d6a77d8ad1c5c3caea900fd21d4a80cba0b24a5054fe457e14c604aa08309ec26ce30f0bd938f9ccae9f182231abbc0263 WHIRLPOOL 0abfc0cf4dabb7a899a4443ce05e3ecbc069a3a001c985f0eccb15e0289841bf2f551f6300877eb1d3fa280f821290b2d01293f7137f540d66169e88969fb152 EBUILD wine-vanilla-1.8.2-r12.ebuild 23396 SHA256 82e7044f7ae7a5f9e53b7ac106cc3ec67a71086d38e5ff4a978d8292961d54bf SHA512 4da3d439f12acec231660f01bedccdde6b9a803ff20991770d70a38968d6954e7ff65702f87c0cf54041f7ce12f7082fc4bdccb9d98d8baad875cbff0ffd0b8f WHIRLPOOL 46f4b10aeb4a397f8e93318721ed04d1201634bc90323d0afe851020f868550a08dabc53623c35262251afb728a2a16b537d94e07394b9e44668f154e249bd38 @@ -147,6 +148,8 @@ EBUILD wine-vanilla-3.0.2-r1.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064 EBUILD wine-vanilla-3.0.2_p1-r1.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 EBUILD wine-vanilla-3.0.3_rc1.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 EBUILD wine-vanilla-3.0.3_rc1_p1.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 +EBUILD wine-vanilla-3.0.3_rc2.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 +EBUILD wine-vanilla-3.0.3_rc2_p1.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 EBUILD wine-vanilla-3.0_p1-r4.ebuild 22416 SHA256 1a19f2c28ed94933abf3a92d9973064d92713d652a2de48d725aa43c5784256f SHA512 36b5b5be8aef220f7aab1d5111eea642bc50cb8239cf4bf3cae07981022da8c86f0bcdf9e8a4be3e63e632417cc59b03b223ff935c4a134788a264b3bb6e73aa WHIRLPOOL 71e450924f717f774f634569b7bfa3419f44650753c9782406fb27050252eebbaa2c09157ddc28bcc82ec21110c0eb4a3aa38eb4b86e9be3c9ff843d64824c90 EBUILD wine-vanilla-3.1-r5.ebuild 22448 SHA256 9328257ff4309dd07469c06d5d55b893b533bc72fc6948e238b7f66845052a8c SHA512 db8a3cef39fa1e3d8dd04f66ab77c21cde1bfb6e51e5edbc9f0ab9788954913b5b60b9126bd0e4715019d01fcccc45dc4c1cc2ef3d3df68d7dc4a313a5774ecd WHIRLPOOL 03e3cbc267d1610274b6b0cad57a33a38813c8abc6a9743db2323f721dda23a43ae42bdc3d118511f1ee421fa65d0ce9c9940ffc6fe487c5f3b18d97f76005a7 EBUILD wine-vanilla-3.10-r1.ebuild 22714 SHA256 858bba1b2fdfa2984f403aacb21a92789705550e23c756c3aeed807bb00b4e97 SHA512 deac72cae882251ed8705abf608cdd5e47a7d41aadde6e1cf1bae975aaf37ccd5128bcd8237f0fe65f68e260159da04ff4070444097b651fe9a4b75b8b6ab338 WHIRLPOOL 7db3b851dcde28ff80fea3465016d49526aae8ce7b01ea8da82064b2891ef0e1ccf8bceebc953653d41f5abbd52d3cde5862cfa5a0572e9dd0b4a6d2ce459d06 diff --git a/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2.ebuild new file mode 100644 index 00000000..e6a7822d --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2.ebuild @@ -0,0 +1,588 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +# shellcheck disable=SC2034 +EAPI=7 + +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 flag-o-matic l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx xdg-utils-r1 + +MY_PN="${PN%%-*}" +MY_PV="${PV}" +# shellcheck disable=SC2207 +array_components=( $( ver_rs 1- ' ' ) ) +version_component_count=${#array_components[@]} +# Hack, using Portage patch versioning, to implement multiple slots per single unique slotted version +# (of the multislot wine-vanilla package) +(( version_component_count > 2 )) && if [[ "$( ver_cut $((version_component_count-1)) )" = "p" ]]; then + patch_version="$( ver_cut $((version_component_count-1))- )" + MY_PV="${MY_PV%_${patch_version}}" + : $(( version_component_count -= 2 )) +fi + +MY_P="${MY_PN}-${MY_PV}" + +if [[ "${MY_PV}" == "9999" ]]; then + #KEYWORDS="" + EGIT_REPO_URI="https://source.winehq.org/git/wine.git" + inherit git-r3 + SRC_URI="" +else + KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd" + is_rc=0 + (( version_component_count > 2 )) && if [[ "$( ver_cut $((version_component_count-1)) )" = "rc" ]]; then + is_rc=1 + : $(( version_component_count -= 2 )) + MY_PV=$(ver_rs $((version_component_count)) '''-''' "${MY_PV}") + MY_P="${MY_PN}-${MY_PV}" + fi + major_version=$( ver_cut 1 ) + minor_version=0 + (( version_component_count > 1 )) && minor_version=$( ver_cut 2 ) + is_stable=$(( (major_version == 1 && (minor_version % 2 == 0)) || (major_version >= 2 && minor_version == 0) )) + is_major_base=$(( is_stable && (version_component_count == 2) )) + if (( is_stable && is_rc && !is_major_base )); then + # Pull Wine RC intermediate stable versions from alternate Github repository... + STABLE_PREFIX="wine-stable" + MY_P="${STABLE_PREFIX}-${MY_P}" + SRC_URI="https://github.com/mstefani/wine-stable/archive/${MY_PN}-${MY_PV}.tar.gz -> ${MY_P}.tar.gz" + elif (( (major_version < 2) || ((version_component_count == 2) && (major_version == 2) && (minor_version == 0)) )); then + # The base Wine 2.0 release tarball was bzip2 compressed - switching to xz shortly after... + SRC_URI="https://dl.winehq.org/wine/source/${major_version}.${minor_version}/${MY_P}.tar.bz2 -> ${MY_P}.tar.bz2" + elif (( (major_version >= 2) && (minor_version == 0) )); then + SRC_URI="https://dl.winehq.org/wine/source/${major_version}.0/${MY_P}.tar.xz -> ${MY_P}.tar.xz" + else + SRC_URI="https://dl.winehq.org/wine/source/${major_version}.x/${MY_P}.tar.xz -> ${MY_P}.tar.xz" + fi +fi +unset -v array_components is_major_base is_rc is_stable minor_version major_version patch_version version_component_count + +GENTOO_WINE_EBUILD_COMMON_P="gentoo-wine-ebuild-common-20180805" +GENTOO_WINE_EBUILD_COMMON_PN="${GENTOO_WINE_EBUILD_COMMON_P%-*}" +GENTOO_WINE_EBUILD_COMMON_PV="${GENTOO_WINE_EBUILD_COMMON_P##*-}" + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without any external patchsets" +HOMEPAGE="https://www.winehq.org/" +SRC_URI="${SRC_URI} + https://github.com/bobwya/${GENTOO_WINE_EBUILD_COMMON_PN}/archive/${GENTOO_WINE_EBUILD_COMMON_PV}.tar.gz -> ${GENTOO_WINE_EBUILD_COMMON_P}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="${PV}" + +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink prefix pulseaudio +realtime +run-exes samba scanner selinux +ssl test +threads +truetype udev +udisks v4l +X +xcomposite xinerama +xml" +REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) + X? ( truetype ) + elibc_glibc? ( threads ) + osmesa? ( opengl ) + test? ( abi_x86_32 )" #286560 osmesa-opengl #551124 X-truetype + +# FIXME: the test suite is unsuitable for us; many tests require net access +# or fail due to Xvfb's opengl limitations. +RESTRICT="test" + +COMMON_DEPEND=" + >=app-emulation/wine-desktop-common-20180412 + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) + cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] + ) + jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5:0=[${MULTILIB_USEDEP}] ) + lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] ) + ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) + nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) + openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( + virtual/glu[${MULTILIB_USEDEP}] + virtual/opengl[${MULTILIB_USEDEP}] + ) + osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.0.5[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + xml? ( + dev-libs/libxml2[${MULTILIB_USEDEP}] + dev-libs/libxslt[${MULTILIB_USEDEP}] + ) +" + +RDEPEND="${COMMON_DEPEND} + !app-emulation/wine:0 + >=app-eselect/eselect-wine-1.5.4 + dos? ( >=games-emulation/dosbox-0.74_p20160629 ) + gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] ) + mono? ( app-emulation/wine-mono:4.7.1 ) + perl? ( + dev-lang/perl + dev-perl/XML-Simple + ) + pulseaudio? ( + realtime? ( sys-auth/rtkit ) + ) + samba? ( >=net-fs/samba-3.0.25[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 ) +" + +# tools/make_requests requires perl +DEPEND="${COMMON_DEPEND} + dev-util/patchbin + dev-lang/perl + dev-perl/XML-Simple + >=sys-devel/flex-2.5.33 + >=sys-kernel/linux-headers-2.6 + virtual/pkgconfig + virtual/yacc + X? ( x11-base/xorg-proto ) + prelink? ( sys-devel/prelink ) + xinerama? ( x11-base/xorg-proto )" + +S="${WORKDIR}/${MY_P}" +[[ "${MY_PV}" == "9999" ]] && EGIT_CHECKOUT_DIR="${S}" + +wine_env_vcs_variable_prechecks() { + local pn_live_variable="${MY_PN//[-+]/_}_LIVE_COMMIT" + local pn_live_value="${!pn_live_variable}" + local env_error=0 + + [[ ! -z ${EGIT_COMMIT} || ! -z ${EGIT_BRANCH} ]] \ + && env_error=1 + if (( env_error )); then + eerror "Git commit (and branch) overrides must now be specified" + eerror "using ONE of following the environmental variables:" + eerror " EGIT_WINE_COMMIT or EGIT_WINE_BRANCH (Wine)" + eerror + return 1 + fi +} + +wine_build_environment_prechecks() { + [[ "${MERGE_TYPE}" = "binary" ]] && return 0 + + local using_gcc using_clang gcc_major_version gcc_minor_version clang_major_version clang_minor_version + using_gcc=$(tc-is-gcc) + using_clang=$(tc-is-clang) + gcc_major_version=$(gcc-major-version) + gcc_minor_version=$(gcc-minor-version) + clang_major_version=$(clang-major-version) + clang_minor_version=$(clang-minor-version) + + if use abi_x86_64; then + if (( using_gcc && ( gcc_major_version < 4 || (gcc_major_version == 4 && gcc_minor_version < 4) ) )); then + eerror "You need >=sys-devel/gcc-4.4.x to compile 64-bit Wine" + die "wine_build_environment_prechecks() failed" + elif (( using_clang && ( clang_major_version < 3 || (clang_major_version == 3 && clang_minor_version < 8) ) )); then + eerror "You need >=sys-devel/clang-3.8 to compile 64-bit wine" + die "wine_build_environment_prechecks() failed" + fi + if (( using_gcc && (gcc_major_version == 5 && gcc_minor_version <= 3) )); then + ewarn "=sys-devel/gcc-5.0.x ... =sys-devel/gcc-5.3.x - introduced compilation bugs" + ewarn "and are no longer supported byGentoo's Toolchain Team." + ewarn "If your ebuild fails the compiler checks in the src-configure phase then:" + ewarn "update your compiler, switch to =sys-devel/gcc-5.4.x" + ewarn "See https://bugs.gentoo.org/610752" + fi + if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2>/dev/null)" == "intel" ]]; then + eerror "You cannot build wine with USE=+opencl because dev-util/intel-ocl-sdk is 64-bit only." + eerror "See https://bugs.gentoo.org/487864" + eerror + return 1 + fi + fi +} + +wine_gcc_specific_pretests() { + ( [[ "${MERGE_TYPE}" = "binary" ]] || ! tc-is-gcc ) && return 0 + + local using_abi_x86_64 gcc_major_version gcc_minor_version + using_abi_x86_64=$(use abi_x86_64) + gcc_major_version=$(gcc-major-version) + gcc_minor_version=$(gcc-minor-version) + + #549768 sys-devel/gcc-5 miscompiles ms_abi functions (breaks app-emulation/wine) + if (( using_abi_x86_64 && (gcc_major_version == 5 && gcc_minor_version <= 2) )); then + ebegin "(subshell): checking for =sys-devel/gcc-5.1.x , =sys-devel/gcc-5.2.0 MS X86_64 ABI compiler bug ..." + $(tc-getCC) -O2 "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/files/pr66838.c" -o "${T}/pr66838" \ + || die "cc compilation failed: pr66838 test" + # Run in a subshell to prevent "Aborted" message + ( "${T}"/pr66838 || false ) >/dev/null 2>&1 \ + || { + eerror "(subshell): =sys-devel/gcc-5.1.x , =sys-devel/gcc-5.2.0 MS X86_64 ABI compiler bug detected." + eerror "64-bit wine cannot be built with =sys-devel/gcc-5.1 or initial patchset of =sys-devel/gcc-5.2.0." + eerror "Please re-emerge wine using an unaffected version of gcc or apply" + eerror "Re-emerge the latest =sys-devel/gcc-5.2.0 ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/549768" + eerror + return 1 + } + fi + + #574044 sys-devel/gcc-5.3.0 miscompiles app-emulation/wine + if (( using_abi_x86_64 && (gcc_major_version == 5) && (gcc_minor_version == 3) )); then + ebegin "(subshell): checking for =sys-devel/gcc-5.3.0 X86_64 misaligned stack compiler bug ..." + # Compile in a subshell to prevent "Aborted" message + ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/files/pr69140.c" -o "${T}/pr69140" ) >/dev/null 2>&1 \ + || { + eerror "(subshell): =sys-devel/gcc-5.3.0 X86_64 misaligned stack compiler bug detected." + eerror "Please re-emerge the latest =sys-devel/gcc-5.3.0 ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/574044" + eerror + return 1 + } + fi +} + +wine_generic_compiler_pretests() { + [[ "${MERGE_TYPE}" = "binary" ]] && return 0 + + if use abi_x86_64; then + ebegin "(subshell): checking compiler support for (64-bit) builtin_ms_va_list ..." + # Compile in a subshell to prevent "Aborted" message + ( $(tc-getCC) -O2 "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/files/builtin_ms_va_list.c" -o "${T}/builtin_ms_va_list" >/dev/null 2>&1 ) \ + || { + eerror "(subshell): $(tc-getCC) does not support builtin_ms_va_list." + eerror "Please re-emerge using a compiler (version) that supports building 64-bit Wine." + eerror "Use >=sys-devel/gcc-4.4 or >=sys-devel/clang-3.8 to build ${CATEGORY}/${PN}." + eerror + return 1 + } + fi +} + +pkg_pretend() { + if use oss && ! use kernel_FreeBSD && ! has_version '>=media-sound/oss-4'; then + eerror "You cannot build ${CATEGORY}/${PN} with USE=+oss without having support from a FreeBSD kernel" + eerror "or >=media-sound/oss-4 (only available through an Overlay)." + die "USE=+oss currently unsupported on this system." + fi +} + +pkg_setup() { + wine_env_vcs_variable_prechecks || die "wine_env_vcs_variable_prechecks() failed" + wine_build_environment_prechecks || die "wine_build_environment_prechecks() failed" + + WINE_VARIANT="${PN#wine}-${PV}" + WINE_VARIANT="${WINE_VARIANT#-}" + MY_PREFIX="${EPREFIX%/}/usr/lib/wine-${WINE_VARIANT}" + MY_DATAROOTDIR="${EPREFIX%/}/usr/share/wine-${WINE_VARIANT}" + MY_DATADIR="${MY_DATAROOTDIR}" + MY_DOCDIR="${EPREFIX%/}/usr/share/doc/${PF}" + MY_INCLUDEDIR="${EPREFIX%/}/usr/include/wine-${WINE_VARIANT}" + MY_LIBEXECDIR="${EPREFIX%/}/usr/libexec/wine-${WINE_VARIANT}" + MY_LOCALSTATEDIR="${EPREFIX%/}/var/wine-${WINE_VARIANT}" + MY_MANDIR="${MY_DATADIR}/man" +} + +src_unpack() { + # Fully Mirror git tree, Wine, so we can access commits in all branches + [[ "${MY_PV}" == "9999" ]] && EGIT_MIN_CLONE_TYPE="mirror" + + default + + [[ "${MY_PV}" == "9999" ]] && wine_git_unpack + + l10n_find_plocales_changes "${S}/po" "" ".po" +} + +src_prepare() { + + eapply_bin() { + local patch + # shellcheck disable=SC2068 + for patch in ${PATCHES_BIN[@]}; do + patchbin --nogit < "${patch}" || die "patchbin failed" + done + } + + local md5hash + md5hash="$(md5sum server/protocol.def)" || die "md5sum failed" + [[ ! -z "${STABLE_PREFIX}" ]] && sed -i -e 's/[\-\.[:alnum:]]\+$/'"${MY_PV}"'/' "${S}/VERSION" + local -a PATCHES PATCHES_BIN + PATCHES+=( + "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/patches/${MY_PN}-1.8_winecfg_detailed_version.patch" + "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726 + "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/patches/${MY_PN}-1.6-memset-O3.patch" #480508 + "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/patches/${MY_PN}-1.8-multislot-apploader.patch" #310611 + ) + + [[ "${MY_PV}" == "9999" ]] && sieve_patchset_array_by_git_commit "${S}" "PATCHES" "PATCHES_BIN" + + #395615 - run bash/sed script, combining both versions of the multilib-portage.patch + ebegin "(subshell) script: \"${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/scripts/${MY_PN}-multilib-portage-sed.sh\" ..." + ( + # shellcheck disable=SC1090 + source "${WORKDIR}/${GENTOO_WINE_EBUILD_COMMON_P%/}/scripts/${MY_PN}-multilib-portage-sed.sh" + ) + eend + + disable_man_file() { + (($# == 3)) || die "invalid number of arguments: ${#} (3)" + + # Not all manpages are translated - so always install all English locale manpages + [[ "${3}" = "en" ]] && return + + local makefile="${1}" man_file="${2}" locale="\\.${3}\\.UTF-8" + sed -i -e "\\|${man_file}${locale}\\.man\\.in|d" "${makefile}" || die "sed failed" + } + + #617864 Generate wine64 man pages for 64-bit bit only installation + if use abi_x86_64 && ! use abi_x86_32; then + find "${S%/}/loader" -type f -name "wine.*man.in" -exec sh -c 'mv "${1}" "${1/\/wine./\/wine64.}"' sh "{}" \; \ + || die "find (mv) failed" + sed -i -e '\|wine\.[^[:blank:]]*man\.in|{s|wine\.|wine64\.|g}' "${S%/}/loader/Makefile.in" \ + || die "sed failed" + fi + + #469418 Respect LINGUAS/L10N when building man pages + local makefile_in + find "${S}" -type f -name "Makefile.in" -exec egrep -q "^MANPAGES" "{}" \; -printf '%p\0' 2>/dev/null \ + | while IFS= read -r -d '' makefile_in; do + l10n_for_each_disabled_locale_do disable_man_file "${makefile_in}" "" + done + + # Don't build winedump,winemaker if not using perl + if ! use perl; then + # winedump calls function_grep.pl, and winemaker is a perl script + local tools + for tool in "winedump" "winemaker"; do + sed -i -e '\|WINE_CONFIG_TOOL(tools/'"${tool}"',[^[:blank:]]*)$|d' "${S%/}/configure.ac" \ + || die "sed failed" + done + fi + + #551124 Only build wineconsole, if either of X or ncurses is installed + if ! use X && ! use ncurses; then + sed -i -e '\|WINE_CONFIG_PROGRAM(wineconsole,[^[:blank:]]*)$|d' "${S%/}/configure.ac" \ + || die "sed failed" + fi + + default + + eapply_bin + eautoreconf + + # Modification of the server protocol requires regenerating the server requests + if ! md5sum -c - <<<"${md5hash}" >/dev/null 2>&1; then + einfo "server/protocol.def was patched; running tools/make_requests" + tools/make_requests || die "tools/make_requests failed" #432348 + fi + sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die "sed failed" + if use run-exes; then + sed -i '\:^Exec=:{s:wine :wine-'"${WINE_VARIANT}"' :}' "${S}/loader/wine.desktop" || die "sed failed" + else + sed -i '/^MimeType/d' "${S}/loader/wine.desktop" || die "sed failed" #117785 + fi + + #472990 use hi-res default icon, https://bugs.winehq.org/show_bug.cgi?id=24652 + cp "${EROOT%/}/usr/share/wine/icons/oic_winlogo.ico" dlls/user32/resources/ || die "cp failed" + + l10n_get_locales > "${S}/po/LINGUAS" || die "l10n_get_locales failed" # Make Wine respect LINGUAS +} + +src_configure() { + wine_gcc_specific_pretests || die "wine_gcc_specific_pretests() failed" + wine_generic_compiler_pretests || die "wine_generic_compiler_pretests() failed" + + export LDCONFIG="/bin/true" + use custom-cflags || strip-flags + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=( + "--prefix=${MY_PREFIX}" + "--datarootdir=${MY_DATAROOTDIR}" + "--datadir=${MY_DATADIR}" + "--docdir=${MY_DOCDIR}" + "--includedir=${MY_INCLUDEDIR}" + "--libdir=${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" + "--libexecdir=${MY_LIBEXECDIR}" + "--localstatedir=${MY_LOCALSTATEDIR}" + "--mandir=${MY_MANDIR}" + "--sysconfdir=/etc/wine" + "$(use_with alsa)" + "$(use_with capi)" + "$(use_with lcms cms)" + "$(use_with cups)" + "$(use_with ncurses curses)" + "$(use_with fontconfig)" + "$(use_with ssl gnutls)" + "$(use_enable gecko mshtml)" + "$(use_with gphoto2 gphoto)" + "$(use_with gsm)" + "$(use_with gstreamer)" + --without-hal + "$(use_with jpeg)" + "$(use_with kerberos krb5)" + "$(use_with ldap)" + "$(use_enable mono mscoree)" + "$(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 pcap)" + "$(use_with png)" + "$(use_with pulseaudio pulse)" + "$(use_with threads pthread)" + "$(use_with scanner sane)" + "$(use_enable test tests)" + "$(use_with truetype freetype)" + "$(use_with udev)" + "$(use_with udisks dbus)" + "$(use_with v4l)" + "$(use_with X x)" + "$(use_with X xfixes)" + "$(use_with xcomposite)" + "$(use_with xinerama)" + "$(use_with xml)" + "$(use_with xml xslt)" + ) + + local PKG_CONFIG AR RANLIB + #472038 Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64 + #483342 set AR and RANLIB to make QA scripts happy + tc-export PKG_CONFIG AR RANLIB + + if use amd64; then + if [[ "${ABI}" == "amd64" ]]; then + myconf+=( --enable-win64 ) + else + myconf+=( --disable-win64 ) + fi + + # Note: using --with-wine64 results in problems with multilib.eclass + # CC/LD hackery. We're using separate tools instead. + fi + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" + emake depend +} + +multilib_src_test() { + # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" + if [[ "${ABI}" == "x86" ]]; then + if [[ "$(id -u)" == "0" ]]; then + ewarn "Skipping tests since they cannot be run under the root user." + ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" + return + fi + WINEPREFIX="${T}/.wine-${ABI}" \ + Xemake test + fi +} + +multilib_src_install_all() { + DOCS=( "ANNOUNCE" "AUTHORS" "README" ) + add_locale_docs() { + local locale_doc="documentation/README.${1}" + [[ ! -e "S{S}/${locale_doc}" ]] || DOCS+=( "${locale_doc}" ) + } + l10n_for_each_locale_do add_locale_docs + + einstalldocs + unset -v DOCS + + prune_libtool_files --all + + use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}/bin/wine"{,-preloader} #255055 + use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}/bin/wine64"{,-preloader} #255055 + + if use abi_x86_64 && ! use abi_x86_32; then + #404331 + dosym "wine64" "${MY_PREFIX}/bin/wine" + dosym "wine64-preloader" "${MY_PREFIX}/bin/wine-preloader" + + # Symlink wine manpage - for all active locales + local manpage manpage_target="wine64.1" + while IFS= read -r -d '' manpage; do + dosym "${manpage_target}" "${manpage/%${manpage_target}/${manpage_target/64/}}" + done < <(find "${MY_MANDIR}" -type f -name "${manpage_target}" -printf '%p\0' 2>/dev/null) + fi + + # Make wrappers for binaries for handling multiple variants + local binary_file binary_file_base binary_file_extension + while IFS= read -r -d '' binary_file; do + binary_file_base="${binary_file%%.*}" + binary_file_extension="${binary_file#${binary_file_base}}" + make_wrapper "${binary_file_base}-${WINE_VARIANT}${binary_file_extension}" "${MY_PREFIX}/bin/${binary_file}" + done < <(find "${D%/}${MY_PREFIX}/bin" -mindepth 1 -maxdepth 1 \( -type f -o -type l \) -printf '%f\0' 2>/dev/null) +} + +pkg_postinst() { + local wine_git_commit wine_git_date + + if [[ "${MY_PV}" == "9999" ]]; then + pushd "${S}" || die "pushd failed" + wine_git_commit="$(git rev-parse HEAD)" || die "git rev-parse failed" + wine_git_date="$(git show -s --format=%cd "${wine_git_commit}")" || die "git show failed" + popd || die "popd failed" + fi + + # shellcheck disable=SC2086,SC2090 + eselect wine register ${wine_git_commit:+--commit=}"${wine_git_commit}" ${wine_git_date:+--date=}"${wine_git_date}" \ + --verbose --wine --vanilla "${P}" \ + || die "eselect wine register --wine --vanilla \"${P}\" failed" + eselect wine set --force --verbose --wine --vanilla --if-unset "${P}" \ + || die "eselect wine set --force --wine --vanilla --if-unset \"${P}\" failed" + + xdg_mimeinfo_database_update + + if ! use gecko; then + ewarn "Without Wine Gecko, Wineprefixes will not have a default" + ewarn "implementation of iexplore. Many older windows applications" + ewarn "rely upon the existence of an iexplore implementation, so" + ewarn "you will likely need to install an external one, using winetricks." + fi + if ! use mono; then + ewarn "Without Wine Mono, Wineprefixes will not have a default" + ewarn "implementation of .NET. Many windows applications rely upon" + ewarn "the existence of a .NET implementation, so you will likely need" + ewarn "to install an external one, using winetricks." + fi +} + +pkg_prerm() { + eselect wine deregister --force --verbose --wine --vanilla "${P}" \ + || die "eselect wine deregister --force --wine --vanilla \"${P}\" failed" +} + +pkg_postrm() { + xdg_mimeinfo_database_update +} diff --git a/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2_p1.ebuild b/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2_p1.ebuild new file mode 120000 index 00000000..8a10d825 --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-3.0.3_rc2_p1.ebuild @@ -0,0 +1 @@ +wine-vanilla-3.0.3_rc2.ebuild \ No newline at end of file