When applying some patches to WINE these may introduce new server requests which have to be fitting to WINEs version. The requests are automatically generated by running ./tools/make_requests. Patching the build would be much easier using epatch_user if this script was run afterwards as the patches don't need to be changed whenever WINE changes some of their IPC details. I don't think this should break anything if applied without any patches. For an example see the attached link to the RawInput patch for WINE. Right now you always need to create your own overlay with a modified ebuild to apply this patch cleanly. Reproducible: Always
epatch_user returns 1 if no patches are applied, so that situation is easily detected
Is there a specific list of files in the wine source that require tools/make_requests to be run after they are modified?
According to the scripts contents and header, only server/protocol.def
One thing I just noticed though, is that this requires Perl to be installed. Don't know if something like that could or even should be handled using the existing perl use flag. And sorry for the double post. :/
(In reply to comment #4) this would be the user's problem to install perl. not that it really matters since autotools requires perl and is unlikely to missing from the user's system.
Created attachment 321986 [details] proposed wine ebuild Oliver, please check whether the attached ebuild does what you want.
(In reply to comment #6) > Created attachment 321986 [details] > proposed wine ebuild > > Oliver, please check whether the attached ebuild does what you want. Yeah, it worked like a charm and was also skipped when a fitting patch was not existing. Wine was of course still functional. Here's some output: >>> Preparing source in /var/tmp/portage/app-emulation/wine-1.5.11-r999/work/wine-1.5.11 ... * Applying wine-1.1.15-winegcc.patch ... [ ok ] * Applying wine-1.4_rc2-multilib-portage.patch ... [ ok ] * Applying wine-1.5.11-osmesa-check.patch ... [ ok ] * Applying winepulse-2012.06.15.patch ... [ ok ] * Applying user patches from /etc/portage/patches//app-emulation/wine ... * raw3.patch ... [ ok ] * Done with patching * server/protocol.def was patched; running tools/make_requests include/wine/server_protocol.h updated server/trace.c updated server/request.h updated * Running eautoreconf in '/var/tmp/portage/app-emulation/wine-1.5.11-r999/work/wine-1.5.11' ... ... ... >>> Installing (1 of 1) app-emulation/wine-1.5.11-r999 >>> Auto-cleaning packages...
(In reply to comment #6) Thanks, now in portage. > 23 Aug 2012; Alexandre Rostovtsev <tetromino@gentoo.org> wine-1.2.3.ebuild, > wine-1.3.28.ebuild, wine-1.4.ebuild, wine-1.4.1.ebuild, wine-1.5.0.ebuild, > wine-1.5.1.ebuild, wine-1.5.2.ebuild, wine-1.5.3.ebuild, wine-1.5.4.ebuild, > wine-1.5.5.ebuild, wine-1.5.6.ebuild, wine-1.5.7.ebuild, wine-1.5.8.ebuild, > wine-1.5.9.ebuild, wine-1.5.10.ebuild, wine-1.5.11.ebuild, wine-9999.ebuild: > Run tools/make_requests if a user patch modifies the server protocol > definition (bug #432348, thanks to Oliver 'oGGy' Ney).