commit:     42a2669dacc28c4614cfb7f810ff22e64cf44087
Author:     NP-Hardass <NP-Hardass <AT> gentoo <DOT> org>
AuthorDate: Mon Jan 22 22:48:56 2018 +0000
Commit:     NP Hardass <np-hardass <AT> gentoo <DOT> org>
CommitDate: Mon Jan 22 22:51:16 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=42a2669d

app-emulation/wine-staging: Sync from ::wine

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-staging/Manifest                |  2 +-
 .../wine-staging/wine-staging-2.0-r1.ebuild        | 54 +++++++++++-----------
 .../wine-staging/wine-staging-2.19.ebuild          | 54 +++++++++++-----------
 .../wine-staging/wine-staging-2.20.ebuild          | 54 +++++++++++-----------
 .../wine-staging/wine-staging-2.21.ebuild          | 54 +++++++++++-----------
 .../wine-staging/wine-staging-9999.ebuild          | 54 +++++++++++-----------
 6 files changed, 136 insertions(+), 136 deletions(-)

diff --git a/app-emulation/wine-staging/Manifest 
b/app-emulation/wine-staging/Manifest
index 9956a41d65b..66bfe168421 100644
--- a/app-emulation/wine-staging/Manifest
+++ b/app-emulation/wine-staging/Manifest
@@ -1,4 +1,4 @@
-DIST gentoo-wine-patches-20180119.tar.xz 58688 BLAKE2B 
e7d44906f3c81c69fd3016ac6a7e2b8e68cc82762cc0a6b469e572d9b2edfd04ce9353e151c07dac11f82b1d108517fc86862d724e83ee8c4e938d64f3f9b934
 SHA512 
3e605bf613dca333e501b5578d9c92a42d351a23f8d7d9d6a545a7dc043dcc4c7f52918e6ad46db63a6f00f3ace4b77055f8343176afb976e6a04590dcee64b7
+DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 
84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6
 SHA512 
5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2
 DIST wine-2.0.tar.bz2 23662707 BLAKE2B 
1d485c1359ce8a0395a9f6378c1f8be33ea2836b80390d1eb1095057a0acedd21708daab16e1851a315391b9f9b0a360879b9d98c73bcc8371c5023e9a8037f5
 SHA512 
b0a57ba8202d9fc396e5bfb7a7718d6bababbed8f3351e7fdc36afa37f35a871e04903757618f73427aeb71a52b2d323977d79e48f8b38d636f23fd404441186
 DIST wine-2.19.tar.xz 19549464 BLAKE2B 
86d130cc43d7d674d2f478365952962b2792fd585b8d074564108bc7e9f4f7690337e4758b9a24e54fe8fd60187d3a96496a5ffc454ba674b02ecdde68efd3bb
 SHA512 
83558231bdc592b1f69cfedf6c689063df7bd9fecdfafba6fb7f6a2c7fa7783973efb85a6a49305afc18b1aa268209ee5b9c0655756e05d7550468698dfa51ae
 DIST wine-2.20.tar.xz 19597556 BLAKE2B 
80a9886fa77e5788b143521288f7d83c92754610c9426e58c759d2c33767bd23f7d2a44a17ceeec0bfe9065264393e0aa1087a0827ea7d438ffd938ba2eb2fb5
 SHA512 
d8d374d1e690ce9d3964fc81054fb7f4cd56cbae6bc44ebbf80b7dc7f04524baa2bd831e0be8f00de4cb0e14c1cb71780d424f5dcb9851fcaed9fb22f5ce5d23

diff --git a/app-emulation/wine-staging/wine-staging-2.0-r1.ebuild 
b/app-emulation/wine-staging/wine-staging-2.0-r1.ebuild
index f47c6e1f34c..22f656f5a5d 100644
--- a/app-emulation/wine-staging/wine-staging-2.0-r1.ebuild
+++ b/app-emulation/wine-staging/wine-staging-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}"
@@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}"
 
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging 
patchset"
@@ -182,7 +182,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
@@ -406,29 +406,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() {
@@ -567,16 +568,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-staging/wine-staging-2.19.ebuild 
b/app-emulation/wine-staging/wine-staging-2.19.ebuild
index 4e29daa68e0..bc670878271 100644
--- a/app-emulation/wine-staging/wine-staging-2.19.ebuild
+++ b/app-emulation/wine-staging/wine-staging-2.19.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}"
@@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}"
 
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging 
patchset"
@@ -181,7 +181,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=()
 
@@ -403,29 +403,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() {
@@ -565,16 +566,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-staging/wine-staging-2.20.ebuild 
b/app-emulation/wine-staging/wine-staging-2.20.ebuild
index 3985d3c668f..9454c3d09a9 100644
--- a/app-emulation/wine-staging/wine-staging-2.20.ebuild
+++ b/app-emulation/wine-staging/wine-staging-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}"
@@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}"
 
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging 
patchset"
@@ -182,7 +182,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=()
 
@@ -404,29 +404,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() {
@@ -567,16 +568,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-staging/wine-staging-2.21.ebuild 
b/app-emulation/wine-staging/wine-staging-2.21.ebuild
index 3985d3c668f..9454c3d09a9 100644
--- a/app-emulation/wine-staging/wine-staging-2.21.ebuild
+++ b/app-emulation/wine-staging/wine-staging-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}"
@@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}"
 
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging 
patchset"
@@ -182,7 +182,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=()
 
@@ -404,29 +404,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() {
@@ -567,16 +568,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-staging/wine-staging-9999.ebuild 
b/app-emulation/wine-staging/wine-staging-9999.ebuild
index 3985d3c668f..9454c3d09a9 100644
--- a/app-emulation/wine-staging/wine-staging-9999.ebuild
+++ b/app-emulation/wine-staging/wine-staging-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}"
@@ -26,7 +26,7 @@ S="${WORKDIR}/${MY_P}"
 
 STAGING_P="wine-staging-${PV}"
 STAGING_DIR="${WORKDIR}/${STAGING_P}"
-GWP_V="20180119"
+GWP_V="20180120"
 PATCHDIR="${WORKDIR}/gentoo-wine-patches"
 
 DESCRIPTION="Free implementation of Windows(tm) on Unix, with Wine-Staging 
patchset"
@@ -182,7 +182,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=()
 
@@ -404,29 +404,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() {
@@ -567,16 +568,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