/[gentoo-x86]/app-emulation/wine/wine-1.7.15-r1.ebuild
Gentoo

Contents of /app-emulation/wine/wine-1.7.15-r1.ebuild

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Sat Jul 11 07:54:37 2015 UTC (3 years, 9 months ago) by np-hardass
Branch: MAIN
CVS Tags: HEAD
Fixes bugs #548100, #539830, #543446, update to new multilib dependency code, and unify ebuild code/build system

(Portage version: 2.2.20/cvs/Linux x86_64, signed Manifest commit with key 18F89C67)

1 # Copyright 1999-2015 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
4
5 EAPI="5"
6
7 AUTOTOOLS_AUTORECONF=1
8 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"
9 PLOCALE_BACKUP="en"
10
11 inherit autotools-utils eutils fdo-mime flag-o-matic gnome2-utils l10n multilib multilib-minimal pax-utils toolchain-funcs virtualx
12
13 if [[ ${PV} == "9999" ]] ; then
14 EGIT_REPO_URI="git://source.winehq.org/git/wine.git http://source.winehq.org/git/wine.git"
15 EGIT_BRANCH="master"
16 inherit git-r3
17 SRC_URI=""
18 #KEYWORDS=""
19 else
20 MY_P="${PN}-${PV/_/-}"
21 SRC_URI="mirror://sourceforge/${PN}/Source/${MY_P}.tar.bz2"
22 KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
23 S=${WORKDIR}/${MY_P}
24 fi
25
26 GV="2.24"
27 MV="4.5.2"
28 PULSE_PATCHES="winepulse-patches-1.7.12"
29 WINE_GENTOO="wine-gentoo-2015.03.07"
30 DESCRIPTION="Free implementation of Windows(tm) on Unix"
31 HOMEPAGE="http://www.winehq.org/"
32 SRC_URI="${SRC_URI}
33 gecko? (
34 abi_x86_32? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86.msi )
35 abi_x86_64? ( mirror://sourceforge/${PN}/Wine%20Gecko/${GV}/wine_gecko-${GV}-x86_64.msi )
36 )
37 mono? ( mirror://sourceforge/${PN}/Wine%20Mono/${MV}/wine-mono-${MV}.msi )
38 pulseaudio? ( http://dev.gentoo.org/~tetromino/distfiles/${PN}/${PULSE_PATCHES}.tar.bz2 )
39 http://dev.gentoo.org/~tetromino/distfiles/${PN}/${WINE_GENTOO}.tar.bz2"
40
41 LICENSE="LGPL-2.1"
42 SLOT="0"
43 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"
44 REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 )
45 test? ( abi_x86_32 )
46 elibc_glibc? ( threads )
47 mono? ( abi_x86_32 )
48 osmesa? ( opengl )" #286560
49
50 # FIXME: the test suite is unsuitable for us; many tests require net access
51 # or fail due to Xvfb's opengl limitations.
52 RESTRICT="test"
53
54 COMMON_DEPEND="
55 truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] )
56 capi? ( net-dialup/capi4k-utils )
57 ncurses? ( >=sys-libs/ncurses-5.2:=[${MULTILIB_USEDEP}] )
58 udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] )
59 fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] )
60 gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] )
61 openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] )
62 gstreamer? (
63 media-libs/gstreamer:0.10[${MULTILIB_USEDEP}]
64 media-libs/gst-plugins-base:0.10[${MULTILIB_USEDEP}]
65 )
66 X? (
67 x11-libs/libXcursor[${MULTILIB_USEDEP}]
68 x11-libs/libXext[${MULTILIB_USEDEP}]
69 x11-libs/libXrandr[${MULTILIB_USEDEP}]
70 x11-libs/libXi[${MULTILIB_USEDEP}]
71 x11-libs/libXxf86vm[${MULTILIB_USEDEP}]
72 )
73 xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] )
74 alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] )
75 cups? ( net-print/cups:=[${MULTILIB_USEDEP}] )
76 opencl? ( virtual/opencl[${MULTILIB_USEDEP}] )
77 opengl? (
78 virtual/glu[${MULTILIB_USEDEP}]
79 virtual/opengl[${MULTILIB_USEDEP}]
80 )
81 gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] )
82 jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] )
83 ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] )
84 lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] )
85 mp3? ( >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] )
86 netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] )
87 nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] )
88 odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] )
89 osmesa? ( media-libs/mesa[osmesa,${MULTILIB_USEDEP}] )
90 pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] )
91 xml? (
92 dev-libs/libxml2[${MULTILIB_USEDEP}]
93 dev-libs/libxslt[${MULTILIB_USEDEP}]
94 )
95 scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] )
96 ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] )
97 png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] )
98 v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] )
99 xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] )
100 abi_x86_32? (
101 !app-emulation/emul-linux-x86-baselibs[-abi_x86_32(-)]
102 !<app-emulation/emul-linux-x86-baselibs-20140508-r14
103 !app-emulation/emul-linux-x86-db[-abi_x86_32(-)]
104 !<app-emulation/emul-linux-x86-db-20140508-r3
105 !app-emulation/emul-linux-x86-medialibs[-abi_x86_32(-)]
106 !<app-emulation/emul-linux-x86-medialibs-20140508-r6
107 !app-emulation/emul-linux-x86-opengl[-abi_x86_32(-)]
108 !<app-emulation/emul-linux-x86-opengl-20140508-r1
109 !app-emulation/emul-linux-x86-sdl[-abi_x86_32(-)]
110 !<app-emulation/emul-linux-x86-sdl-20140508-r1
111 !app-emulation/emul-linux-x86-soundlibs[-abi_x86_32(-)]
112 !<app-emulation/emul-linux-x86-soundlibs-20140508
113 !app-emulation/emul-linux-x86-xlibs[-abi_x86_32(-)]
114 !<app-emulation/emul-linux-x86-xlibs-20140508
115 )"
116
117 RDEPEND="${COMMON_DEPEND}
118 dos? ( games-emulation/dosbox )
119 perl? ( dev-lang/perl dev-perl/XML-Simple )
120 samba? ( >=net-fs/samba-3.0.25 )
121 selinux? ( sec-policy/selinux-wine )
122 udisks? ( sys-fs/udisks:2 )
123 pulseaudio? ( realtime? ( sys-auth/rtkit ) )"
124
125 DEPEND="${COMMON_DEPEND}
126 X? (
127 x11-proto/inputproto
128 x11-proto/xextproto
129 x11-proto/xf86vidmodeproto
130 )
131 xinerama? ( x11-proto/xineramaproto )
132 prelink? ( sys-devel/prelink )
133 >=sys-kernel/linux-headers-2.6
134 virtual/pkgconfig
135 virtual/yacc
136 sys-devel/flex"
137
138 # These use a non-standard "Wine" category, which is provided by
139 # /etc/xdg/applications-merged/wine.menu
140 QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop
141 usr/share/applications/wine-notepad.desktop
142 usr/share/applications/wine-uninstaller.desktop
143 usr/share/applications/wine-winecfg.desktop"
144
145 wine_build_environment_check() {
146 [[ ${MERGE_TYPE} = "binary" ]] && return 0
147
148 # bug #549768
149 if [[ $(gcc-major-version) = 5 ]]; then
150 eerror "You need gcc-4.x to build wine; see https://bugs.gentoo.org/549768"
151 eerror
152 return 1
153 fi
154
155 if use abi_x86_64 && [[ $(( $(gcc-major-version) * 100 + $(gcc-minor-version) )) -lt 404 ]]; then
156 eerror "You need gcc-4.4+ to build 64-bit wine"
157 eerror
158 return 1
159 fi
160
161 if use abi_x86_32 && use opencl && [[ x$(eselect opencl show 2> /dev/null) = "xintel" ]]; then
162 eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only."
163 eerror "See https://bugs.gentoo.org/487864 for more details."
164 eerror
165 return 1
166 fi
167 }
168
169 pkg_pretend() {
170 wine_build_environment_check || die
171 }
172
173 pkg_setup() {
174 wine_build_environment_check || die
175 }
176
177 src_unpack() {
178 if [[ ${PV} == "9999" ]] ; then
179 git-r3_src_unpack
180 else
181 unpack ${MY_P}.tar.bz2
182 fi
183
184 use pulseaudio && unpack "${PULSE_PATCHES}.tar.bz2"
185 unpack "${WINE_GENTOO}.tar.bz2"
186
187 l10n_find_plocales_changes "${S}/po" "" ".po"
188 }
189
190 src_prepare() {
191 local md5="$(md5sum server/protocol.def)"
192 local PATCHES=(
193 "${FILESDIR}"/${PN}-1.5.26-winegcc.patch #260726
194 "${FILESDIR}"/${PN}-1.4_rc2-multilib-portage.patch #395615
195 "${FILESDIR}"/${PN}-1.7.12-osmesa-check.patch #429386
196 "${FILESDIR}"/${PN}-1.6-memset-O3.patch #480508
197 "${FILESDIR}"/${PN}-gcc-4.9-null-pointer.patch #543446
198 )
199 use pulseaudio && PATCHES+=(
200 "../${PULSE_PATCHES}"/*.patch #421365
201 )
202
203 autotools-utils_src_prepare
204
205 # Modification of the server protocol requires regenerating the server requests
206 if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then
207 einfo "server/protocol.def was patched; running tools/make_requests"
208 tools/make_requests || die #432348
209 fi
210 sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die
211 if ! use run-exes; then
212 sed -i '/^MimeType/d' tools/wine.desktop || die #117785
213 fi
214
215 # hi-res default icon, #472990, http://bugs.winehq.org/show_bug.cgi?id=24652
216 cp "${WORKDIR}"/${WINE_GENTOO}/icons/oic_winlogo.ico dlls/user32/resources/ || die
217
218 l10n_get_locales > po/LINGUAS # otherwise wine doesn't respect LINGUAS
219 }
220
221 src_configure() {
222 export LDCONFIG=/bin/true
223 use custom-cflags || strip-flags
224
225 multilib-minimal_src_configure
226 }
227
228 multilib_src_configure() {
229 local myconf=(
230 --sysconfdir=/etc/wine
231 $(use_with alsa)
232 $(use_with capi)
233 $(use_with lcms cms)
234 $(use_with cups)
235 $(use_with ncurses curses)
236 $(use_with udisks dbus)
237 $(use_with fontconfig)
238 $(use_with ssl gnutls)
239 $(use_enable gecko mshtml)
240 $(use_with gphoto2 gphoto)
241 $(use_with gsm)
242 $(use_with gstreamer)
243 --without-hal
244 $(use_with jpeg)
245 $(use_with ldap)
246 $(use_enable mono mscoree)
247 $(use_with mp3 mpg123)
248 $(use_with netapi)
249 $(use_with nls gettext)
250 $(use_with openal)
251 $(use_with opencl)
252 $(use_with opengl)
253 $(use_with osmesa)
254 $(use_with oss)
255 $(use_with png)
256 $(use_with threads pthread)
257 $(use_with scanner sane)
258 $(use_enable test tests)
259 $(use_with truetype freetype)
260 $(use_with v4l)
261 $(use_with X x)
262 $(use_with xcomposite)
263 $(use_with xinerama)
264 $(use_with xml)
265 $(use_with xml xslt)
266 )
267
268 use pulseaudio && myconf+=( --with-pulse )
269
270 local PKG_CONFIG AR RANLIB
271 # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038
272 # set AR and RANLIB to make QA scripts happy; #483342
273 tc-export PKG_CONFIG AR RANLIB
274
275 if use amd64; then
276 if [[ ${ABI} == amd64 ]]; then
277 myconf+=( --enable-win64 )
278 else
279 myconf+=( --disable-win64 )
280 fi
281
282 # Note: using --with-wine64 results in problems with multilib.eclass
283 # CC/LD hackery. We're using separate tools instead.
284 fi
285
286 ECONF_SOURCE=${S} \
287 econf "${myconf[@]}"
288 emake depend
289 }
290
291 multilib_src_test() {
292 # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader"
293 if [[ ${ABI} == x86 ]]; then
294 if [[ $(id -u) == 0 ]]; then
295 ewarn "Skipping tests since they cannot be run under the root user."
296 ewarn "To run the test ${PN} suite, add userpriv to FEATURES in make.conf"
297 return
298 fi
299
300 WINEPREFIX="${T}/.wine-${ABI}" \
301 Xemake test
302 fi
303 }
304
305 multilib_src_install_all() {
306 local DOCS=( ANNOUNCE AUTHORS README )
307 local l
308 add_locale_docs() {
309 local locale_doc="documentation/README.$1"
310 [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} )
311 }
312 l10n_for_each_locale_do add_locale_docs
313
314 einstalldocs
315 prune_libtool_files --all
316
317 emake -C "../${WINE_GENTOO}" install DESTDIR="${D}" EPREFIX="${EPREFIX}"
318 if use gecko ; then
319 insinto /usr/share/wine/gecko
320 use abi_x86_32 && doins "${DISTDIR}"/wine_gecko-${GV}-x86.msi
321 use abi_x86_64 && doins "${DISTDIR}"/wine_gecko-${GV}-x86_64.msi
322 fi
323 if use mono ; then
324 insinto /usr/share/wine/mono
325 doins "${DISTDIR}"/wine-mono-${MV}.msi
326 fi
327 if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script
328 rm "${D}"usr/bin/{wine{dump,maker},function_grep.pl} "${D}"usr/share/man/man1/wine{dump,maker}.1 || die
329 fi
330
331 use abi_x86_32 && pax-mark psmr "${D}"usr/bin/wine{,-preloader} #255055
332 use abi_x86_64 && pax-mark psmr "${D}"usr/bin/wine64{,-preloader}
333
334 if use abi_x86_64 && ! use abi_x86_32; then
335 dosym /usr/bin/wine{64,} # 404331
336 dosym /usr/bin/wine{64,}-preloader
337 fi
338
339 # respect LINGUAS when installing man pages, #469418
340 for l in de fr pl; do
341 use linguas_${l} || rm -r "${D}"usr/share/man/${l}*
342 done
343 }
344
345 pkg_preinst() {
346 gnome2_icon_savelist
347 }
348
349 pkg_postinst() {
350 gnome2_icon_cache_update
351 fdo-mime_desktop_database_update
352
353 if ! use gecko; then
354 ewarn "Without Wine Gecko, wine prefixes will not have a default"
355 ewarn "implementation of iexplore. Many older windows applications"
356 ewarn "rely upon the existence of an iexplore implementation, so"
357 ewarn "you will likely need to install an external one, like via winetricks"
358 fi
359 if ! use mono; then
360 ewarn "Without Wine Mono, wine prefixes will not have a default"
361 ewarn "implementation of .NET. Many windows applications rely upon"
362 ewarn "the existence of a .NET implementation, so you will likely need"
363 ewarn "to install an external one, like via winetricks"
364 fi
365 }
366
367 pkg_postrm() {
368 gnome2_icon_cache_update
369 fdo-mime_desktop_database_update
370 }

  ViewVC Help
Powered by ViewVC 1.1.20