commit:     640cf35776ca65ffd65eafda8543cb069d57fdac
Author:     NP-Hardass <NP-Hardass <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 22 22:36:35 2018 +0000
Commit:     NP Hardass <np-hardass <AT> gentoo <DOT> org>
CommitDate: Mon Jan 22 22:36:35 2018 +0000
URL:        https://gitweb.gentoo.org/repo/proj/wine.git/commit/?id=640cf357

app-emulation/wine-vanilla: Clean up manpage fixes

Use estack eclass to avoid dealing with specifics of shopt usage
Change implementation to handle any manpage from any locale
Remove linguas references, finishing l10n switch

Closes: https://bugs.gentoo.org/645238
Bug: https://bugs.gentoo.org/617864
Closes: https://bugs.gentoo.org/643576
Package-Manager: Portage-2.3.19, Repoman-2.3.6

 app-emulation/wine-vanilla/Manifest                |  2 +-
 .../wine-vanilla/wine-vanilla-2.0-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.0.1-r1.ebuild      | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.0.2-r1.ebuild      | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.0.3.ebuild         | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.0.4.ebuild         | 54 +++++++++++-----------
 app-emulation/wine-vanilla/wine-vanilla-2.0.ebuild | 52 ++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.1-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.10-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.11-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.12-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.13-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.14-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.15-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.16-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.17-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.18-r2.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.19-r1.ebuild       | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.2-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.20.ebuild          | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.21.ebuild          | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.22.ebuild          | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.3-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.4-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.5-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.6-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.7-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.8-r1.ebuild        | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-2.9-r1.ebuild        | 54 +++++++++++-----------
 app-emulation/wine-vanilla/wine-vanilla-3.0.ebuild | 54 +++++++++++-----------
 .../wine-vanilla/wine-vanilla-9999.ebuild          | 54 +++++++++++-----------
 31 files changed, 810 insertions(+), 810 deletions(-)

diff --git a/app-emulation/wine-vanilla/Manifest 
b/app-emulation/wine-vanilla/Manifest
index 6dc7dd9..e066695 100644
--- a/app-emulation/wine-vanilla/Manifest
+++ b/app-emulation/wine-vanilla/Manifest
@@ -1,4 +1,4 @@
-DIST gentoo-wine-patches-20180119.tar.xz 58688 SHA256 
bb8f634241e7a4ba528bb6e0db78512889c4d25773773e87d76a2452dde72360 SHA512 
3e605bf613dca333e501b5578d9c92a42d351a23f8d7d9d6a545a7dc043dcc4c7f52918e6ad46db63a6f00f3ace4b77055f8343176afb976e6a04590dcee64b7
 WHIRLPOOL 
46dfe36cce8e46a916b5e6f49e6674d9f9612b6ebbd3fd1ba47e6ff34bc68d95a916b76d1a61b0b25ddf97840dd78dffa2d7d0239e6fc0d3cbd74cc0c1868e9a
+DIST gentoo-wine-patches-20180120.tar.xz 58672 SHA256 
2708673a6a2da2546a0089c9fea93de81758546c2f9081fdac9ef81243f57b40 SHA512 
5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
 WHIRLPOOL 
585563761161a14f0d435a3cee6e55216730d9fd46f7c930e7554c00a48f9c807bed8aa869a8f4aec4031abc2c18330ec98cbe0fe7d40b828b423f99acf40e37
 DIST wine-2.0.1.tar.xz 18845444 SHA256 
6cfb4eaae566dc7afb7ac0f1f2db2c0d69969952acab0debf084ee8f7b071583 SHA512 
b32d07443655898768383b7409c21093b60c028fef166a596dad5dfab5a329b9fce4552e612c6d182e4f67eb1f28ed497fe2ed6af55d0000d3e96a124547722d
 WHIRLPOOL 
0fbaf53504e4e40db6227f45f5b92ac388c2bf23d4f573e4d3b60ccaaadeeccb5a696226d1bd4aa8b245f21c8d6a13aac423ead3f4692ebc1e8e613714168501
 DIST wine-2.0.2.tar.xz 18854952 SHA256 
f71884f539928877f4b415309f582825d3d3c9976104e43d566944c710713c9a SHA512 
3f37080a951819304cd3475f6012f1d6b5a94879b137cdf816cac4c8fde68ddc777905e92277ec5dce96437d8c32c43d55d3750b582781a9f9774b118f1a5b90
 WHIRLPOOL 
cf21a899c60749c37353abc4ba974b3d6cc369769ace70fde899ff1cb5ac8a97828165cf2dbfbcf0915f5196ac58974948fe3e5b2c9854296a5eea75f8023ae5
 DIST wine-2.0.3.tar.xz 18864648 SHA256 
a811c664f870a3a01449443a93a6fcee41aea2e912e58f72742eb7924962be56 SHA512 
e20dbcb3a48ecb3526eba075d4baebab2529dfc50b7a6d5e18294704470f61db386013f457118c270274b911f9643d203110f46558d23e84e6a6c2d78e237dbb
 WHIRLPOOL 
36928e816b6e4dec2173c424042c3e9da83be4a8fb3847bc90606d92858c66d4f1f41d4e1477d797e19d955d21a01710f1c3149f72da7011fae186705529f29c

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0-r1.ebuild
index 4232455..b6970b1 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0.1-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0.1-r1.ebuild
index 1c0daca..f19e2fe 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0.1-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0.1-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0.2-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0.2-r1.ebuild
index 1c0daca..f19e2fe 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0.2-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0.2-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0.3.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0.3.ebuild
index 2aad417..dd5dfa1 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0.3.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0.3.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -155,7 +155,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -336,29 +336,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -491,16 +492,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0.4.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0.4.ebuild
index f9492b1..c2b9e49 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0.4.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0.4.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -155,7 +155,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -336,29 +336,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -491,16 +492,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.0.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.0.ebuild
index ba65d4d..ce76f5a 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.0.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.0.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -330,29 +330,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -485,16 +486,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.1-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.1-r1.ebuild
index 4023a49..e2fb4fb 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.1-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.1-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.10-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.10-r1.ebuild
index 776fe0f..7fd4362 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.10-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.10-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.11-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.11-r1.ebuild
index 776fe0f..7fd4362 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.11-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.11-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.12-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.12-r1.ebuild
index 776fe0f..7fd4362 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.12-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.12-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.13-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.13-r1.ebuild
index 776fe0f..7fd4362 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.13-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.13-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.14-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.14-r1.ebuild
index a145ec2..323a372 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.14-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.14-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.15-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.15-r1.ebuild
index a145ec2..323a372 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.15-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.15-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.16-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.16-r1.ebuild
index a145ec2..323a372 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.16-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.16-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.17-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.17-r1.ebuild
index a145ec2..323a372 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.17-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.17-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.18-r2.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.18-r2.ebuild
index d2d94ec..58b4060 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.18-r2.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.18-r2.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -156,7 +156,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -337,29 +337,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -493,16 +494,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.19-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.19-r1.ebuild
index d2d94ec..58b4060 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.19-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.19-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -156,7 +156,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -337,29 +337,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -493,16 +494,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.2-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.2-r1.ebuild
index 4023a49..e2fb4fb 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.2-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.2-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.20.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.20.ebuild
index d1fca61..55dd4ba 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.20.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.20.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -338,29 +338,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.21.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.21.ebuild
index d1fca61..55dd4ba 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.21.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.21.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -338,29 +338,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.22.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.22.ebuild
index d1fca61..55dd4ba 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.22.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.22.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -338,29 +338,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.3-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.3-r1.ebuild
index 4023a49..e2fb4fb 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.3-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.3-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.4-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.4-r1.ebuild
index ae3ec89..fec8f09 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.4-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.4-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.5-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.5-r1.ebuild
index ae3ec89..fec8f09 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.5-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.5-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.6-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.6-r1.ebuild
index ae3ec89..fec8f09 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.6-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.6-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.7-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.7-r1.ebuild
index ae3ec89..fec8f09 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.7-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.7-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.8-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.8-r1.ebuild
index ae3ec89..fec8f09 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.8-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.8-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -340,29 +340,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-2.9-r1.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-2.9-r1.ebuild
index 776fe0f..7fd4362 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-2.9-r1.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-2.9-r1.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -158,7 +158,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
        "${PATCHDIR}/patches/freetype-2.8.1-segfault.patch" #631676
        "${PATCHDIR}/patches/freetype-2.8.1-drop-glyphs.patch" #631376
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=(
        "${PATCHDIR}/patches/freetype-2.8.1-patch-fonts.patch" #631376
@@ -341,29 +341,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -497,16 +498,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-3.0.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-3.0.ebuild
index e4a4223..cda136e 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-3.0.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-3.0.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -338,29 +338,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

diff --git a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild 
b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
index d1fca61..55dd4ba 100644
--- a/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
+++ b/app-emulation/wine-vanilla/wine-vanilla-9999.ebuild
@@ -6,7 +6,7 @@ EAPI=6
 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 eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
+inherit autotools estack eutils flag-o-matic gnome2-utils l10n multilib 
multilib-minimal pax-utils toolchain-funcs virtualx versionator xdg-utils
 
 MY_PN="${PN%%-*}"
 MY_P="${MY_PN}-${PV}"
@@ -24,7 +24,7 @@ else
 fi
 S="${WORKDIR}/${MY_P}"
 
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, without external 
patchsets"
@@ -157,7 +157,7 @@ PATCHES=(
        "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615
        "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508
        "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611
-       
"${PATCHDIR}/patches/${MY_PN}-2.0-prevent-build-of-localized-manpages.patch" 
#469418 #617864
+       "${PATCHDIR}/patches/${MY_PN}-2.0-rearrange-manpages.patch" #469418 
#617864
 )
 PATCHES_BIN=()
 
@@ -338,29 +338,30 @@ src_prepare() {
        l10n_get_locales > po/LINGUAS || die # otherwise wine doesn't respect 
LINGUAS
 
        # Fix manpage generation for locales #469418 and abi_x86_64 #617864
-       # Depends on wine-2.0-prevent-build-of-localized-manpages.patch"
-       # Duplicate manpages input for wine64
-       local man
-       for man in loader/*.man.in; do
-               cp ${man} ${man/wine/wine64} || die
+       # Requires wine-2.0-rearrange-manpages.patch
+
+       # Duplicate manpages input files for wine64
+       local f
+       for f in loader/*.man.in; do
+               cp ${f} ${f/wine/wine64} || die
        done
-       # Add in proper manpages to Makefile
-       local search_text="wine.man.in"
+       # Add wine64 manpages to Makefile
        if use abi_x86_64; then
-               sed -i "/${search_text}/i \
-                       "$'\\\t'"wine64.man.in "$'\\\\' loader/Makefile.in || 
die
+               sed -i "/wine.man.in/i \
+                       \\\twine64.man.in \\\\" loader/Makefile.in || die
+               sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\
+\164\2/' loader/Makefile.in || die
        fi
-       local l
-       for l in de fr pl; do
-               if has ${l} ${LINGUAS-${l}}; then
-                       sed -i "/${search_text}/i \
-                               "$'\\\t'"wine.${l}.UTF-8.man.in "$'\\\\' 
loader/Makefile.in || die
-                       if use abi_x86_64; then
-                               sed -i "/${search_text}/i \
-                                       "$'\\\t'"wine64.${l}.UTF-8.man.in 
"$'\\\\' loader/Makefile.in || die
-                       fi
-               fi
-       done
+
+       rm_man_file(){
+               local file="${1}"
+               loc=${2}
+               sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die
+       }
+
+       while read f; do
+               l10n_for_each_disabled_locale_do rm_man_file "${f}"
+       done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; 
-print)
 }
 
 src_configure() {
@@ -495,16 +496,15 @@ multilib_src_install_all() {
                dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader
        fi
 
-       # Failglob for bin and man loops
-       local glob_state=$(shopt -p failglob)
-       shopt -s failglob
-
+       # Failglob for binloops, shouldn't be necessary, but including to stay 
safe
+       eshopts_push -s failglob #615218
        # Make wrappers for binaries for handling multiple variants
        # Note: wrappers instead of symlinks because some are shell which use 
basename
        local b
        for b in "${D%/}${MY_PREFIX}"/bin/*; do
                make_wrapper "${b##*/}-${WINE_VARIANT}" 
"${MY_PREFIX}/bin/${b##*/}"
        done
+       eshopts_pop
 }
 
 pkg_postinst() {

Reply via email to