app-emulation/qemu: use l10n.eclass to respect LINGUAS #577814
authorMike Frysinger <vapier@gentoo.org>
Mon, 28 Mar 2016 21:38:33 +0000 (17:38 -0400)
committerMike Frysinger <vapier@gentoo.org>
Mon, 28 Mar 2016 21:41:10 +0000 (17:41 -0400)
app-emulation/qemu/qemu-2.5.0-r2.ebuild
app-emulation/qemu/qemu-9999.ebuild

index 5621047e90ba8443066de701fe122ca1e39c7ddc..072691e8cc097593719f941076787823c2fcf918 100644 (file)
@@ -7,8 +7,10 @@ EAPI=5
 PYTHON_COMPAT=( python2_7 )
 PYTHON_REQ_USE="ncurses,readline"
 
+PLOCALES="de_DE fr_FR hu it tr zh_CN"
+
 inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
-       user udev fcaps readme.gentoo pax-utils
+       user udev fcaps readme.gentoo pax-utils l10n
 
 BACKPORTS=
 
@@ -295,6 +297,29 @@ check_targets() {
        popd >/dev/null
 }
 
+handle_locales() {
+       # Make sure locale list is kept up-to-date.
+       local detected sorted
+       detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
+       sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
+       if [[ ${sorted} != "${detected}" ]] ; then
+               eerror "The ebuild needs to be kept in sync."
+               eerror "PLOCALES: ${sorted}"
+               eerror " po/*.po: ${detected}"
+               die "sync PLOCALES"
+       fi
+
+       # Deal with selective install of locales.
+       if use nls ; then
+               # Delete locales the user does not want. #577814
+               rm_loc() { rm po/$1.po || die; }
+               l10n_for_each_disabled_locale_do rm_loc
+       else
+               # Cheap hack to disable gettext .mo generation.
+               rm -f po/*.po
+       fi
+}
+
 src_prepare() {
        check_targets IUSE_SOFTMMU_TARGETS softmmu
        check_targets IUSE_USER_TARGETS linux-user
@@ -304,9 +329,6 @@ src_prepare() {
                -e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
                Makefile Makefile.target || die
 
-       # Cheap hack to disable gettext .mo generation.
-       use nls || rm -f po/*.po
-
        epatch "${FILESDIR}"/qemu-2.5.0-cflags.patch
        [[ -n ${BACKPORTS} ]] && \
                EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
@@ -337,6 +359,9 @@ src_prepare() {
        MAKEOPTS+=" V=1"
 
        epatch_user
+
+       # Run after we've applied all patches.
+       handle_locales
 }
 
 ##
index 70f595ea5b5c396f1ed18fba78c7497f81b8c29a..acecad8c9d37fc65d92f560f9e13d3e9ab2f541a 100644 (file)
@@ -7,8 +7,10 @@ EAPI=5
 PYTHON_COMPAT=( python2_7 )
 PYTHON_REQ_USE="ncurses,readline"
 
+PLOCALES="de_DE fr_FR hu it tr zh_CN"
+
 inherit eutils flag-o-matic linux-info toolchain-funcs multilib python-r1 \
-       user udev fcaps readme.gentoo pax-utils
+       user udev fcaps readme.gentoo pax-utils l10n
 
 BACKPORTS=
 
@@ -295,6 +297,29 @@ check_targets() {
        popd >/dev/null
 }
 
+handle_locales() {
+       # Make sure locale list is kept up-to-date.
+       local detected sorted
+       detected=$(echo $(cd po && printf '%s\n' *.po | grep -v messages.po | sed 's:.po$::' | sort -u))
+       sorted=$(echo $(printf '%s\n' ${PLOCALES} | sort -u))
+       if [[ ${sorted} != "${detected}" ]] ; then
+               eerror "The ebuild needs to be kept in sync."
+               eerror "PLOCALES: ${sorted}"
+               eerror " po/*.po: ${detected}"
+               die "sync PLOCALES"
+       fi
+
+       # Deal with selective install of locales.
+       if use nls ; then
+               # Delete locales the user does not want. #577814
+               rm_loc() { rm po/$1.po || die; }
+               l10n_for_each_disabled_locale_do rm_loc
+       else
+               # Cheap hack to disable gettext .mo generation.
+               rm -f po/*.po
+       fi
+}
+
 src_prepare() {
        check_targets IUSE_SOFTMMU_TARGETS softmmu
        check_targets IUSE_USER_TARGETS linux-user
@@ -304,9 +329,6 @@ src_prepare() {
                -e 's/^(C|OP_C|HELPER_C)FLAGS=/\1FLAGS+=/' \
                Makefile Makefile.target || die
 
-       # Cheap hack to disable gettext .mo generation.
-       use nls || rm -f po/*.po
-
        epatch "${FILESDIR}"/qemu-2.5.0-cflags.patch
        [[ -n ${BACKPORTS} ]] && \
                EPATCH_FORCE=yes EPATCH_SUFFIX="patch" EPATCH_SOURCE="${S}/patches" \
@@ -319,6 +341,9 @@ src_prepare() {
        MAKEOPTS+=" V=1"
 
        epatch_user
+
+       # Run after we've applied all patches.
+       handle_locales
 }
 
 ##