* [gentoo-dev] RFC: l10n.eclass @ 2012-07-19 6:45 Ben de Groot 2012-07-19 13:14 ` Ralph Sennhauser 2012-07-19 22:44 ` Mike Gilbert 0 siblings, 2 replies; 36+ messages in thread From: Ben de Groot @ 2012-07-19 6:45 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1193 bytes --] Today I would like to present to you my proposal for a new eclass with helper functions for treating localizations: l10n.eclass (see the attached file or [1]). Its functionality can be used in other eclasses (such as qt4-r2 and cmake-utils) as well as directly in ebuilds. In order to keep the code simple, and prevent double loops and extra variables (such as currently used in the media-video/smplayer ebuild), I am proposing that we should add any missing long-form locales to profiles/desc/linguas.desc (e.g. 'de_DE' in addition to short 'de'). This also means that users may have to expand their LINGUAS setting in make.conf (e.g. LINGUAS="de en" -> LINGUAS="de de_DE en en_US") to cover the different variants used in packages. If you have any comments, spot any mistakes, or have proposals for improvement, I would love to hear it! I would especially love from maintainers of complicated packages such as libreoffice-l10n, if there is any additional functionality that we could include in this eclass to make their job simpler. 1: https://gitorious.org/gentoo-qt/qt/blobs/master/eclass/l10n.eclass -- Cheers, Ben | yngwin Gentoo developer Gentoo Qt project lead, Gentoo Wiki admin [-- Attachment #2: l10n.eclass --] [-- Type: application/octet-stream, Size: 3917 bytes --] # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # @ECLASS: l10n.eclass # @MAINTAINER: # Ben de Groot <yngwin@gentoo.org> # @BLURB: convenience functions to handle localizations # @DESCRIPTION: # The l10n (localization) eclass offers a number of functions to more # conveniently handle localizations (translations) offered by packages. # These are meant to prevent code duplication for such boring tasks as # determining the cross-section between the user's set LINGUAS and what # is offered by the package; and generating the right list of linguas_* # USE flags. # @ECLASS-VARIABLE: PLOCALES # @DEFAULT_UNSET # @DESCRIPTION: # Variable listing the locales for which localizations are offered by # the package. Check profiles/desc/linguas.desc to see if the locales # are listed there. Add any missing ones there. # # Example: PLOCALES="cy de el_GR en_US pt_BR vi zh_CN" # @ECLASS-VARIABLE: PLOCALE_BACKUP # @DEFAULT_UNSET # @DESCRIPTION: # In some cases the package fails when none of the offered PLOCALES are # selected by the user. In that case this variable should be set to a # default locale (usually 'en' or 'en_US') as backup. # # Example: PLOCALE_BACKUP="en_US" # Add linguas useflags [[ -n "${PLOCALES}" ]] && IUSE+=" $(printf 'linguas_%s ' ${PLOCALES})" # @FUNCTION: l10n_for_each_locale_do # @USAGE: <function> # @DESCRIPTION: # Convenience function for processing localizations. The parameter should # be a function (defined in the consuming eclass or ebuild) which takes # an individual localization as (last) parameter. # # Example: l10n_for_each_locale_do install_locale l10n_for_each_locale_do() { local xlocs= xlocs=$(l10n_get_linguas_crosssection) if [[ -n "${xlocs}" ]]; then local x for x in ${xlocs}; do ${@} ${x} || die "failed to process ${x} locale" done fi } # @FUNCTION: l10n_for_each_unselected_locale_do # @USAGE: <function> # @DESCRIPTION: # Complementary to l10n_for_each_locale_do, this function will process # locales that are not selected. This could be used for example to remove # locales from a Makefile, to prevent them from being built needlessly. l10n_for_each_unselected_locale_do() { local o= x= o=$(join -v 1 <(echo "${PLOCALES// /$'\n'}") <(echo "${LINGUAS// /$'\n'}") ) o=${o//$'\n'/' '} einfo "Unselected locales are: ${o}" if [[ -n "${o}" ]]; then for x in ${o}; do ${@} ${x} || die "failed to process unselected ${x} locale" done fi } # @FUNCTION: l10n_find_plocales_changes # @USAGE: <translations dir> <filename pre pattern> <filename post pattern> # @DESCRIPTION: # Ebuild maintenance helper function to find changes in package offered # locales when doing a version bump. This could be added for example to # src_prepare # # Example: l10n_find_plocales_changes "${S}/src/translations" "${PN}_" '.ts' l10n_find_plocales_changes() { [[ $# -ne 3 ]] && die "Exactly 3 arguments are needed!" einfo "Looking in ${1} for new locales ..." pushd "${1}" >/dev/null || die "Cannot access ${1}" local current= x= for x in ${2}*${3} ; do x=${x#"${2}"} x=${x%"${3}"} current+="${x} " done popd >/dev/null if [[ ${PLOCALES} != ${current%[[:space:]]} ]] ; then einfo "There are changes in locales! This ebuild should be updated to:" einfo "PLOCALES=\"${current%[[:space:]]}\"" fi } # @FUNCTION: l10n_get_linguas_crosssection # @DESCRIPTION: # Determine the cross-section of user-set LINGUAS and the locales which # the package offers (listed in PLOCALES), and return them. In case no # locales are selected, fall back on PLOCALE_BACKUP. This function is # normally used internally in this eclass, not by l10n.eclass consumers. l10n_get_linguas_crosssection() { local lang= loc= xloc= for lang in ${LINGUAS}; do for loc in ${PLOCALES}; do [[ ${lang} == ${loc} ]] && xloc+="${loc} " done done xloc=${xloc:-$PLOCALE_BACKUP} printf "%s" "${xloc}" } ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 6:45 [gentoo-dev] RFC: l10n.eclass Ben de Groot @ 2012-07-19 13:14 ` Ralph Sennhauser 2012-07-19 15:37 ` Ben de Groot ` (2 more replies) 2012-07-19 22:44 ` Mike Gilbert 1 sibling, 3 replies; 36+ messages in thread From: Ralph Sennhauser @ 2012-07-19 13:14 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1912 bytes --] On Thu, 19 Jul 2012 14:45:39 +0800 Ben de Groot <yngwin@gentoo.org> wrote: > Today I would like to present to you my proposal for a new eclass with > helper functions for treating localizations: l10n.eclass (see the > attached file or [1]). Its functionality can be used in other eclasses > (such as qt4-r2 and cmake-utils) as well as directly in ebuilds. > > In order to keep the code simple, and prevent double loops and extra > variables (such as currently used in the media-video/smplayer ebuild), > I am proposing that we should add any missing long-form locales to > profiles/desc/linguas.desc (e.g. 'de_DE' in addition to short 'de'). > This also means that users may have to expand their LINGUAS setting in > make.conf (e.g. LINGUAS="de en" -> LINGUAS="de de_DE en en_US") to > cover the different variants used in packages. > > If you have any comments, spot any mistakes, or have proposals for > improvement, I would love to hear it! I would especially love from > maintainers of complicated packages such as libreoffice-l10n, if there > is any additional functionality that we could include in this eclass > to make their job simpler. > > 1: https://gitorious.org/gentoo-qt/qt/blobs/master/eclass/l10n.eclass I assume the P in PLOCALS stands for package. Not that obvious if you ask me. L10N_LOCALS would at least tell me which eclass this variable belongs to. Instead of using LINGUAS you should make use of the use function to get your cross sections. ie. for locale in ${PLOCALES}; do if use linguas_${locale}; then enabled_locales+=" ${locale}" else disabled_locales+=" ${locale}" fi done First, this is guaranteed by PMS and so independent of package manager and second, you do not have to care about locales in LINGUAS which are invalid for the package. Could be that Portage re-exports a sanitized LINGUAS tough, but I doubt it. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 13:14 ` Ralph Sennhauser @ 2012-07-19 15:37 ` Ben de Groot 2012-07-20 7:33 ` Ralph Sennhauser 2012-07-19 16:15 ` Ciaran McCreesh 2012-07-19 21:13 ` Zac Medico 2 siblings, 1 reply; 36+ messages in thread From: Ben de Groot @ 2012-07-19 15:37 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1254 bytes --] On 19 July 2012 21:14, Ralph Sennhauser <sera@gentoo.org> wrote: > > I assume the P in PLOCALS stands for package. Not that obvious if you > ask me. L10N_LOCALS would at least tell me which eclass this variable > belongs to. Yes, as P is widely used to refer to the package. I wanted something to reflect that these are the locales offered by the package. > Instead of using LINGUAS you should make use of the use function to get > your cross sections. ie. > > for locale in ${PLOCALES}; do > if use linguas_${locale}; then > enabled_locales+=" ${locale}" > else > disabled_locales+=" ${locale}" > fi > done > > First, this is guaranteed by PMS and so independent of package manager > and second, you do not have to care about locales in LINGUAS which are > invalid for the package. Could be that Portage re-exports a sanitized > LINGUAS tough, but I doubt it. This is a good suggestion, as it makes things simpler and more along expected lines. I got a few more suggestions on IRC, and I have updated the eclass accordingly. Please check the attached new version, also available at https://gitorious.org/gentoo-qt/qt/blobs/master/eclass/l10n.eclass -- Cheers, Ben | yngwin Gentoo developer Gentoo Qt project lead, Gentoo Wiki admin [-- Attachment #2: l10n.eclass --] [-- Type: application/octet-stream, Size: 4059 bytes --] # Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ # @ECLASS: l10n.eclass # @MAINTAINER: # Ben de Groot <yngwin@gentoo.org> # @BLURB: convenience functions to handle localizations # @DESCRIPTION: # The l10n (localization) eclass offers a number of functions to more # conveniently handle localizations (translations) offered by packages. # These are meant to prevent code duplication for such boring tasks as # determining the cross-section between the user's set LINGUAS and what # is offered by the package; and generating the right list of linguas_* # USE flags. # @ECLASS-VARIABLE: PLOCALES # @DEFAULT_UNSET # @DESCRIPTION: # Variable listing the locales for which localizations are offered by # the package. Check profiles/desc/linguas.desc to see if the locales # are listed there. Add any missing ones there. # # Example: PLOCALES="cy de el_GR en_US pt_BR vi zh_CN" # @ECLASS-VARIABLE: PLOCALE_BACKUP # @DEFAULT_UNSET # @DESCRIPTION: # In some cases the package fails when none of the offered PLOCALES are # selected by the user. In that case this variable should be set to a # default locale (usually 'en' or 'en_US') as backup. # # Example: PLOCALE_BACKUP="en_US" # Add linguas useflags if [[ -n "${PLOCALES}" ]]; then for u in ${PLOCALES}; do IUSE+=" linguas_${u}" done fi # @FUNCTION: l10n_for_each_locale_do # @USAGE: <function> # @DESCRIPTION: # Convenience function for processing localizations. The parameter should # be a function (defined in the consuming eclass or ebuild) which takes # an individual localization as (last) parameter. # # Example: l10n_for_each_locale_do install_locale l10n_for_each_locale_do() { local locs x locs=$(l10n_get_locales) if [[ -n "${locs}" ]]; then for x in ${locs}; do ${@} ${x} || die "failed to process enabled ${x} locale" done fi } # @FUNCTION: l10n_for_each_disabled_locale_do # @USAGE: <function> # @DESCRIPTION: # Complementary to l10n_for_each_locale_do, this function will process # locales that are disabled. This could be used for example to remove # locales from a Makefile, to prevent them from being built needlessly. l10n_for_each_disabled_locale_do() { local locs x locs=$(l10n_get_locales disabled) if [[ -n "${locs}" ]]; then for x in ${locs}; do ${@} ${x} || die "failed to process disabled ${x} locale" done fi } # @FUNCTION: l10n_find_plocales_changes # @USAGE: <translations dir> <filename pre pattern> <filename post pattern> # @DESCRIPTION: # Ebuild maintenance helper function to find changes in package offered # locales when doing a version bump. This could be added for example to # src_prepare # # Example: l10n_find_plocales_changes "${S}/src/translations" "${PN}_" '.ts' l10n_find_plocales_changes() { [[ $# -ne 3 ]] && die "Exactly 3 arguments are needed!" einfo "Looking in ${1} for new locales ..." pushd "${1}" >/dev/null || die "Cannot access ${1}" local current= x= for x in ${2}*${3} ; do x=${x#"${2}"} x=${x%"${3}"} current+="${x} " done popd >/dev/null if [[ ${PLOCALES} != ${current%[[:space:]]} ]] ; then einfo "There are changes in locales! This ebuild should be updated to:" einfo "PLOCALES=\"${current%[[:space:]]}\"" else einfo "Done" fi } # @FUNCTION: l10n_get_locales # @USAGE: [disabled] # @DESCRIPTION: # Determine which LINGUAS USE flags the user has enabled that are offered # by the package, as listed in PLOCALES, and return them. In case no # locales are selected, fall back on PLOCALE_BACKUP. When the disabled # argument is given, return the disabled useflags instead of the enabled # ones. This function is normally used internally in this eclass, not by # l10n.eclass consumers. l10n_get_locales() { local disabled_locales enabled_locales loc locs for loc in ${PLOCALES}; do if use linguas_${loc}; then enabled_locales+="${loc} " else disabled_locales+="${loc} " fi done if [[ ${1} == disabled ]]; then locs=${disabled_locales} else locs=${enabled_locales:-$PLOCALE_BACKUP} fi printf "%s" "${locs}" } ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 15:37 ` Ben de Groot @ 2012-07-20 7:33 ` Ralph Sennhauser 2012-07-23 12:29 ` Ben de Groot 0 siblings, 1 reply; 36+ messages in thread From: Ralph Sennhauser @ 2012-07-20 7:33 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1334 bytes --] On Thu, 19 Jul 2012 23:37:32 +0800 Ben de Groot <yngwin@gentoo.org> wrote: > I got a few more suggestions on IRC, and I have updated the eclass > accordingly. Please check the attached new version, also available at > https://gitorious.org/gentoo-qt/qt/blobs/master/eclass/l10n.eclass Pseudo inlining > # Add linguas useflags > if [[ -n "${PLOCALES}" ]]; then > for u in ${PLOCALES}; do > IUSE+=" linguas_${u}" > done > fi no need to guard the loop against empty $PLOCALES. > l10n_for_each_locale_do() { > local locs x > locs=$(l10n_get_locales) > if [[ -n "${locs}" ]]; then > for x in ${locs}; do > ${@} ${x} || die "failed to process enabled > ${x} locale" done > fi > } same here, no guarding required and "${@}" should be quoted as it may contain args with spaces. Also in l10n_for_each_disabled_locale_do. > # ones. This function is normally used internally in this eclass, not > by # l10n.eclass consumers. > l10n_get_locales() { I'd mark this function @INTERNAL then, at least until someone can presents a use case. If you are sufficiently sure this function shouldn't be used by consumers you could remove the function in favour of 'use linguas_${x} || continue' in l10n_for_each_locale_do resp 'use linguas_${x} && continue' in l10n_for_each_disabled_locale_do. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 7:33 ` Ralph Sennhauser @ 2012-07-23 12:29 ` Ben de Groot 2012-07-23 15:22 ` Ralph Sennhauser 0 siblings, 1 reply; 36+ messages in thread From: Ben de Groot @ 2012-07-23 12:29 UTC (permalink / raw To: gentoo-dev On 20 July 2012 15:33, Ralph Sennhauser <sera@gentoo.org> wrote: > On Thu, 19 Jul 2012 23:37:32 +0800 > Ben de Groot <yngwin@gentoo.org> wrote: > >> I got a few more suggestions on IRC, and I have updated the eclass >> accordingly. Please check the attached new version, also available at >> https://gitorious.org/gentoo-qt/qt/blobs/master/eclass/l10n.eclass > > Pseudo inlining > >> # Add linguas useflags >> if [[ -n "${PLOCALES}" ]]; then >> for u in ${PLOCALES}; do >> IUSE+=" linguas_${u}" >> done >> fi > > no need to guard the loop against empty $PLOCALES. > >> l10n_for_each_locale_do() { >> local locs x >> locs=$(l10n_get_locales) >> if [[ -n "${locs}" ]]; then >> for x in ${locs}; do >> ${@} ${x} || die "failed to process enabled >> ${x} locale" done >> fi >> } > > same here, no guarding required and "${@}" should be quoted as it may > contain args with spaces. Also in l10n_for_each_disabled_locale_do. Okay, I will make those changes. >> # ones. This function is normally used internally in this eclass, not >> by # l10n.eclass consumers. >> l10n_get_locales() { > > I'd mark this function @INTERNAL then, at least until someone can > presents a use case. > If you are sufficiently sure this function shouldn't be used by > consumers you could remove the function There are use cases, e.g. net-im/qtwitter-0.10.0-r1 for which I have an editted -r10 revision in my dev overlay. I'm sure it could be handled with l10n_for_each_locale_do, but the migration is more straight-forward by simply using l10n_get_locales in this case. This is why I worded it "normally" instead of "only". Maybe the wording could be improved? -- Cheers, Ben | yngwin Gentoo developer Gentoo Qt project lead, Gentoo Wiki admin ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-23 12:29 ` Ben de Groot @ 2012-07-23 15:22 ` Ralph Sennhauser 0 siblings, 0 replies; 36+ messages in thread From: Ralph Sennhauser @ 2012-07-23 15:22 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1453 bytes --] On Mon, 23 Jul 2012 20:29:44 +0800 Ben de Groot <yngwin@gentoo.org> wrote: > >> # ones. This function is normally used internally in this eclass, > >> not by # l10n.eclass consumers. > >> l10n_get_locales() { > > > > I'd mark this function @INTERNAL then, at least until someone can > > presents a use case. > > If you are sufficiently sure this function shouldn't be used by > > consumers you could remove the function > > There are use cases, e.g. net-im/qtwitter-0.10.0-r1 for which I have > an editted -r10 revision in my dev overlay. I'm sure it could be > handled with l10n_for_each_locale_do, but the migration is more > straight-forward by simply using l10n_get_locales in this case. > > This is why I worded it "normally" instead of "only". Maybe the > wording could be improved? The primary concern should be expressiveness. That said, qttwitter looks like a good example use case. You have convinced me. src_configure() { qmake4 PREFIX="/usr" LANGS="$(l10n_get_locales)" } Maybe l10n_get_enabled_locales would read even more natural here? Either way I'd drop the internal entirely as it also provides a simple way to "sanitize" LINGUAS without relying on the package manager. ie. setting 'LINGUAS="$(l10n_get_locales)"' in an ebuild would enable the possible EAPI 5 behaviour described later in this thread, which would allow direct use of LINGUAS. The only difference being the backup locale. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 13:14 ` Ralph Sennhauser 2012-07-19 15:37 ` Ben de Groot @ 2012-07-19 16:15 ` Ciaran McCreesh 2012-07-19 21:13 ` Zac Medico 2 siblings, 0 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-19 16:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 455 bytes --] On Thu, 19 Jul 2012 15:14:22 +0200 Ralph Sennhauser <sera@gentoo.org> wrote: > First, this is guaranteed by PMS and so independent of package manager > and second, you do not have to care about locales in LINGUAS which are > invalid for the package. Could be that Portage re-exports a sanitized > LINGUAS tough, but I doubt it. With EAPI 5, LINGUAS will be intersected with IUSE (but with the linguas_ bit stripped off). -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 13:14 ` Ralph Sennhauser 2012-07-19 15:37 ` Ben de Groot 2012-07-19 16:15 ` Ciaran McCreesh @ 2012-07-19 21:13 ` Zac Medico 2012-07-19 22:34 ` Mike Gilbert 2 siblings, 1 reply; 36+ messages in thread From: Zac Medico @ 2012-07-19 21:13 UTC (permalink / raw To: gentoo-dev On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: > Could be that Portage re-exports a sanitized > LINGUAS tough, but I doubt it. Portage does sanitize it if there are any linguas_* flags in IUSE, otherwise it lets the variable pass through without sanitizing it. -- Thanks, Zac ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 21:13 ` Zac Medico @ 2012-07-19 22:34 ` Mike Gilbert 2012-07-20 6:54 ` Ciaran McCreesh 0 siblings, 1 reply; 36+ messages in thread From: Mike Gilbert @ 2012-07-19 22:34 UTC (permalink / raw To: gentoo-dev On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> wrote: > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: >> Could be that Portage re-exports a sanitized >> LINGUAS tough, but I doubt it. > > Portage does sanitize it if there are any linguas_* flags in IUSE, > otherwise it lets the variable pass through without sanitizing it. That's good; we definitely don't want to "sanitize" it if there are no linuguas_* flags in IUSE. This would break LINUGUAS support for many autotools/gettext based packages, where the autotools code parses LINGUAS directly and the ebuild does nothing with it. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 22:34 ` Mike Gilbert @ 2012-07-20 6:54 ` Ciaran McCreesh 2012-07-20 16:39 ` Mike Gilbert 2012-07-20 17:55 ` Mike Gilbert 0 siblings, 2 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 6:54 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 917 bytes --] On Thu, 19 Jul 2012 18:34:41 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> > wrote: > > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: > >> Could be that Portage re-exports a sanitized > >> LINGUAS tough, but I doubt it. > > > > Portage does sanitize it if there are any linguas_* flags in IUSE, > > otherwise it lets the variable pass through without sanitizing it. > > That's good; we definitely don't want to "sanitize" it if there are no > linuguas_* flags in IUSE. This would break LINUGUAS support for many > autotools/gettext based packages, where the autotools code parses > LINGUAS directly and the ebuild does nothing with it. If there aren't any linguas_* flags in IUSE, LINGUAS should be empty, and will be in future EAPIs. Without that, USE dependencies on USE_EXPAND variables don't work. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 6:54 ` Ciaran McCreesh @ 2012-07-20 16:39 ` Mike Gilbert 2012-07-20 17:09 ` Ciaran McCreesh 2012-07-20 17:44 ` Michał Górny 2012-07-20 17:55 ` Mike Gilbert 1 sibling, 2 replies; 36+ messages in thread From: Mike Gilbert @ 2012-07-20 16:39 UTC (permalink / raw To: gentoo-dev On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote: > On Thu, 19 Jul 2012 18:34:41 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> >> wrote: >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: >> >> Could be that Portage re-exports a sanitized >> >> LINGUAS tough, but I doubt it. >> > >> > Portage does sanitize it if there are any linguas_* flags in IUSE, >> > otherwise it lets the variable pass through without sanitizing it. >> >> That's good; we definitely don't want to "sanitize" it if there are no >> linuguas_* flags in IUSE. This would break LINUGUAS support for many >> autotools/gettext based packages, where the autotools code parses >> LINGUAS directly and the ebuild does nothing with it. > > If there aren't any linguas_* flags in IUSE, LINGUAS should be empty, > and will be in future EAPIs. Without that, USE dependencies on > USE_EXPAND variables don't work. How do you figure that? The current portage behavior works well enough; if linugas_* is in IUSE, LINGUAS is treated as a USE_EXPAND, and use-deps should work fine. Otherwise, it is treated just like a normal environment variable, and portage doesn't touch it. For most gettext packages, there is absolutely no reason that the ebuild maintainer should have to keep track of every translation available in a given package across version bumps. If you change this behavior in a future EAPI, you will break this. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 16:39 ` Mike Gilbert @ 2012-07-20 17:09 ` Ciaran McCreesh 2012-07-20 17:29 ` Mike Gilbert 2012-07-20 17:43 ` Alexandre Rostovtsev 2012-07-20 17:44 ` Michał Górny 1 sibling, 2 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 17:09 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1934 bytes --] On Fri, 20 Jul 2012 12:39:21 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh > <ciaran.mccreesh@googlemail.com> wrote: > > On Thu, 19 Jul 2012 18:34:41 -0400 > > Mike Gilbert <floppym@gentoo.org> wrote: > >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> > >> wrote: > >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: > >> >> Could be that Portage re-exports a sanitized > >> >> LINGUAS tough, but I doubt it. > >> > > >> > Portage does sanitize it if there are any linguas_* flags in > >> > IUSE, otherwise it lets the variable pass through without > >> > sanitizing it. > >> > >> That's good; we definitely don't want to "sanitize" it if there > >> are no linuguas_* flags in IUSE. This would break LINUGUAS support > >> for many autotools/gettext based packages, where the autotools > >> code parses LINGUAS directly and the ebuild does nothing with it. > > > > If there aren't any linguas_* flags in IUSE, LINGUAS should be > > empty, and will be in future EAPIs. Without that, USE dependencies > > on USE_EXPAND variables don't work. > > How do you figure that? If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, what happens? > The current portage behavior works well enough; if linugas_* is in > IUSE, LINGUAS is treated as a USE_EXPAND, and use-deps should work > fine. > > Otherwise, it is treated just like a normal environment variable, and > portage doesn't touch it. It's not a normal environment variable, and it never has been. > For most gettext packages, there is absolutely no reason that the > ebuild maintainer should have to keep track of every translation > available in a given package across version bumps. If you change this > behavior in a future EAPI, you will break this. Don't use a USE_EXPAND variable if you don't want USE_EXPAND behaviour. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:09 ` Ciaran McCreesh @ 2012-07-20 17:29 ` Mike Gilbert 2012-07-20 17:35 ` Ciaran McCreesh 2012-07-20 17:43 ` Alexandre Rostovtsev 1 sibling, 1 reply; 36+ messages in thread From: Mike Gilbert @ 2012-07-20 17:29 UTC (permalink / raw To: gentoo-dev On Fri, Jul 20, 2012 at 1:09 PM, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote: > On Fri, 20 Jul 2012 12:39:21 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: >> On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh >> <ciaran.mccreesh@googlemail.com> wrote: >> > On Thu, 19 Jul 2012 18:34:41 -0400 >> > Mike Gilbert <floppym@gentoo.org> wrote: >> >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> >> >> wrote: >> >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: >> >> >> Could be that Portage re-exports a sanitized >> >> >> LINGUAS tough, but I doubt it. >> >> > >> >> > Portage does sanitize it if there are any linguas_* flags in >> >> > IUSE, otherwise it lets the variable pass through without >> >> > sanitizing it. >> >> >> >> That's good; we definitely don't want to "sanitize" it if there >> >> are no linuguas_* flags in IUSE. This would break LINUGUAS support >> >> for many autotools/gettext based packages, where the autotools >> >> code parses LINGUAS directly and the ebuild does nothing with it. >> > >> > If there aren't any linguas_* flags in IUSE, LINGUAS should be >> > empty, and will be in future EAPIs. Without that, USE dependencies >> > on USE_EXPAND variables don't work. >> >> How do you figure that? > > If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, what > happens? > Firstly, if there are no linugas_ flags in IUSE, I can't see any point in such a dependency. Given the current behavior, I believe the dependency would always satisfied due to the (+). That seems fine to me. >> The current portage behavior works well enough; if linugas_* is in >> IUSE, LINGUAS is treated as a USE_EXPAND, and use-deps should work >> fine. >> >> Otherwise, it is treated just like a normal environment variable, and >> portage doesn't touch it. > > It's not a normal environment variable, and it never has been. > It was a normal variable before someone added it to USE_EXPAND. From cvs, it looks like that happened in 2005 or so. >> For most gettext packages, there is absolutely no reason that the >> ebuild maintainer should have to keep track of every translation >> available in a given package across version bumps. If you change this >> behavior in a future EAPI, you will break this. > > Don't use a USE_EXPAND variable if you don't want USE_EXPAND behaviour. > I beleive LINGUAS originates from the autoconf macros (po.m4) provided by the gettext package. I believe we added it to USE_EXPAND some time after it was implemented in gettext. This "just works" given the current portage behavior. Perhaps we need to provide a cleaner way for ebuilds to specify if a given variable should be treated as a USE_EXPAND or not. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:29 ` Mike Gilbert @ 2012-07-20 17:35 ` Ciaran McCreesh 0 siblings, 0 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 17:35 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1782 bytes --] On Fri, 20 Jul 2012 13:29:24 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > > If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, > > what happens? > > > > Firstly, if there are no linugas_ flags in IUSE, I can't see any point > in such a dependency. If linguas_ is in IUSE for some versions and not others. You know, as (+) dependencies always expect. > > It's not a normal environment variable, and it never has been. > > It was a normal variable before someone added it to USE_EXPAND. From > cvs, it looks like that happened in 2005 or so. ...which is plenty long enough to have dealt with the consequences. > >> For most gettext packages, there is absolutely no reason that the > >> ebuild maintainer should have to keep track of every translation > >> available in a given package across version bumps. If you change > >> this behavior in a future EAPI, you will break this. > > > > Don't use a USE_EXPAND variable if you don't want USE_EXPAND > > behaviour. > > I beleive LINGUAS originates from the autoconf macros (po.m4) provided > by the gettext package. I believe we added it to USE_EXPAND some time > after it was implemented in gettext. This "just works" given the > current portage behavior. The problem with "just works" is that it "just works unless you look closely or unless you try to do something slightly non-trivial". We're not dealing with a small system here, so we need to move beyond "just works (sort of)" to "correct". We can't provide people with the features they're asking for without that. > Perhaps we need to provide a cleaner way for ebuilds to specify if a > given variable should be treated as a USE_EXPAND or not. USE_EXPAND isn't a per ebuild setting. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:09 ` Ciaran McCreesh 2012-07-20 17:29 ` Mike Gilbert @ 2012-07-20 17:43 ` Alexandre Rostovtsev 2012-07-20 17:46 ` Alexandre Rostovtsev 2012-07-20 17:54 ` Ciaran McCreesh 1 sibling, 2 replies; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 17:43 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 2778 bytes --] On Fri, 2012-07-20 at 18:09 +0100, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 12:39:21 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: > > On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh > > <ciaran.mccreesh@googlemail.com> wrote: > > > On Thu, 19 Jul 2012 18:34:41 -0400 > > > Mike Gilbert <floppym@gentoo.org> wrote: > > >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> > > >> wrote: > > >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: > > >> >> Could be that Portage re-exports a sanitized > > >> >> LINGUAS tough, but I doubt it. > > >> > > > >> > Portage does sanitize it if there are any linguas_* flags in > > >> > IUSE, otherwise it lets the variable pass through without > > >> > sanitizing it. > > >> > > >> That's good; we definitely don't want to "sanitize" it if there > > >> are no linuguas_* flags in IUSE. This would break LINUGUAS support > > >> for many autotools/gettext based packages, where the autotools > > >> code parses LINGUAS directly and the ebuild does nothing with it. > > > > > > If there aren't any linguas_* flags in IUSE, LINGUAS should be > > > empty, and will be in future EAPIs. Without that, USE dependencies > > > on USE_EXPAND variables don't work. > > > > How do you figure that? > > If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, what > happens? Fatal error. If a package installs its translations implicitly via gettext's rules depending on the value of LINGUAS at configure time, then obviously other packages must rely on that package having installed any particular translation. > > The current portage behavior works well enough; if linugas_* is in > > IUSE, LINGUAS is treated as a USE_EXPAND, and use-deps should work > > fine. > > > > Otherwise, it is treated just like a normal environment variable, and > > portage doesn't touch it. > > It's not a normal environment variable, and it never has been. LINGUAS has been an environment variable with a special meaning for gettext-based build systems, which are rather popular in the free software world, since, oh, at least the year 2002 or so, when gettext-0.11 was released. Maybe even earlier. > > For most gettext packages, there is absolutely no reason that the > > ebuild maintainer should have to keep track of every translation > > available in a given package across version bumps. If you change this > > behavior in a future EAPI, you will break this. > > Don't use a USE_EXPAND variable if you don't want USE_EXPAND behaviour. Thousands of packages rely on a particular interpretation of LINGUAS that has been standard across all distros for a decade. If that behavior changed in EAPI5, then EAPI5 is not suitable for adoption in Gentoo. -Alexandre. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:43 ` Alexandre Rostovtsev @ 2012-07-20 17:46 ` Alexandre Rostovtsev 2012-07-20 17:54 ` Ciaran McCreesh 1 sibling, 0 replies; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 17:46 UTC (permalink / raw To: gentoo-dev Sorry, bad typo: On Fri, 2012-07-20 at 13:43 -0400, Alexandre Rostovtsev wrote: > then obviously other packages must rely on that package having installed > any particular translation. Should read "then obviously other packages must *not* rely" -Alexandre ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:43 ` Alexandre Rostovtsev 2012-07-20 17:46 ` Alexandre Rostovtsev @ 2012-07-20 17:54 ` Ciaran McCreesh 2012-07-20 18:37 ` Alexandre Rostovtsev 2012-07-20 19:05 ` Ian Stakenvicius 1 sibling, 2 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 17:54 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1893 bytes --] On Fri, 20 Jul 2012 13:43:15 -0400 Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, > > what happens? > > Fatal error. If a package installs its translations implicitly via > gettext's rules depending on the value of LINGUAS at configure time, > then obviously other packages must rely on that package having > installed any particular translation. Uh, the entire point of the (+) is that it's *not* a fatal error if you have a default. > > > Otherwise, it is treated just like a normal environment variable, > > > and portage doesn't touch it. > > > > It's not a normal environment variable, and it never has been. > > LINGUAS has been an environment variable with a special meaning for > gettext-based build systems, which are rather popular in the free > software world, since, oh, at least the year 2002 or so, when > gettext-0.11 was released. Maybe even earlier. And? Gentoo has decided to handle it otherwise. > > > For most gettext packages, there is absolutely no reason that the > > > ebuild maintainer should have to keep track of every translation > > > available in a given package across version bumps. If you change > > > this behavior in a future EAPI, you will break this. > > > > Don't use a USE_EXPAND variable if you don't want USE_EXPAND > > behaviour. > > Thousands of packages rely on a particular interpretation of LINGUAS > that has been standard across all distros for a decade. If that > behavior changed in EAPI5, then EAPI5 is not suitable for adoption in > Gentoo. The feature was already approved by the Council for the EAPI originally known as 3. It's necessary to make use dependency defaults work correctly for USE_EXPAND variables (which they currently do not, due to it being omitted from what became EAPI 4). -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:54 ` Ciaran McCreesh @ 2012-07-20 18:37 ` Alexandre Rostovtsev 2012-07-20 18:41 ` Ciaran McCreesh 2012-07-20 19:05 ` Ian Stakenvicius 1 sibling, 1 reply; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 18:37 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1108 bytes --] On Fri, 2012-07-20 at 18:54 +0100, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 13:43:15 -0400 > Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > > If you dep upon foo[linguas_en(+)] and linguas_en isn't in IUSE, > > > what happens? > > > > Fatal error. If a package installs its translations implicitly via > > gettext's rules depending on the value of LINGUAS at configure time, > > then obviously other packages must rely on that package having > > installed any particular translation. > > Uh, the entire point of the (+) is that it's *not* a fatal error if you > have a default. That suggests that the EAPI ought to define a second category of USE_EXPAND flags, one that has a different treatment of (+)/(-). Something like the following: A dependency on $foo[linguas_bar(+)] would be considered satisfied by an ebuild X matching $foo iff: 1. X has linguas_bar in IUSE and enabled; or 2. X does not have linguas_bar in IUSE, but there exists an ebuild Y (which may or may not equal X) matching $foo such that Y has at least one linguas_* flag in IUSE. -Alexandre. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 18:37 ` Alexandre Rostovtsev @ 2012-07-20 18:41 ` Ciaran McCreesh 2012-07-20 19:15 ` Alexandre Rostovtsev 0 siblings, 1 reply; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 18:41 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 722 bytes --] On Fri, 20 Jul 2012 14:37:19 -0400 Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > That suggests that the EAPI ought to define a second category of > USE_EXPAND flags, one that has a different treatment of (+)/(-). > > Something like the following: > > A dependency on $foo[linguas_bar(+)] would be considered satisfied by > an ebuild X matching $foo iff: > 1. X has linguas_bar in IUSE and enabled; or > 2. X does not have linguas_bar in IUSE, but there exists an ebuild Y > (which may or may not equal X) matching $foo such that Y has at least > one linguas_* flag in IUSE. That's sensitive to old versions ebuilds being removed from the tree, so it's utterly unworkable. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 18:41 ` Ciaran McCreesh @ 2012-07-20 19:15 ` Alexandre Rostovtsev 2012-07-20 19:17 ` Ciaran McCreesh 0 siblings, 1 reply; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 19:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1209 bytes --] On Fri, 2012-07-20 at 19:41 +0100, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 14:37:19 -0400 > Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > That suggests that the EAPI ought to define a second category of > > USE_EXPAND flags, one that has a different treatment of (+)/(-). > > > > Something like the following: > > > > A dependency on $foo[linguas_bar(+)] would be considered satisfied by > > an ebuild X matching $foo iff: > > 1. X has linguas_bar in IUSE and enabled; or > > 2. X does not have linguas_bar in IUSE, but there exists an ebuild Y > > (which may or may not equal X) matching $foo such that Y has at least > > one linguas_* flag in IUSE. > > That's sensitive to old versions ebuilds being removed from the tree, so > it's utterly unworkable. I do not see why you think it's unworkable. Ebuilds already have dependencies that can be broken by removing an old version; if wombat depends on foo[bar], and you removed the only version of foo that had bar in IUSE, you broke wombat. Adding special LINGUAS handling would not change the fact that before deleting an ebuild, you need to verify that you did not render other ebuilds' dependencies unsatisfiable. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:15 ` Alexandre Rostovtsev @ 2012-07-20 19:17 ` Ciaran McCreesh 2012-07-20 19:48 ` Alexandre Rostovtsev 0 siblings, 1 reply; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 19:17 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 841 bytes --] On Fri, 20 Jul 2012 15:15:31 -0400 Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > That's sensitive to old versions ebuilds being removed from the > > tree, so it's utterly unworkable. > > I do not see why you think it's unworkable. Ebuilds already have > dependencies that can be broken by removing an old version; if wombat > depends on foo[bar], and you removed the only version of foo that had > bar in IUSE, you broke wombat. Adding special LINGUAS handling would > not change the fact that before deleting an ebuild, you need to > verify that you did not render other ebuilds' dependencies > unsatisfiable. That's not how undefaulted use dependencies work. If wombat depends upon foo[bar], it is an error if there is *any* version of foo *ever* that doesn't have bar in IUSE_EFFECTIVE. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:17 ` Ciaran McCreesh @ 2012-07-20 19:48 ` Alexandre Rostovtsev 2012-07-20 20:02 ` Ciaran McCreesh 2012-07-20 20:11 ` Ian Stakenvicius 0 siblings, 2 replies; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 19:48 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1473 bytes --] On Fri, 2012-07-20 at 20:17 +0100, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 15:15:31 -0400 > Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > > That's sensitive to old versions ebuilds being removed from the > > > tree, so it's utterly unworkable. > > > > I do not see why you think it's unworkable. Ebuilds already have > > dependencies that can be broken by removing an old version; if wombat > > depends on foo[bar], and you removed the only version of foo that had > > bar in IUSE, you broke wombat. Adding special LINGUAS handling would > > not change the fact that before deleting an ebuild, you need to > > verify that you did not render other ebuilds' dependencies > > unsatisfiable. > > That's not how undefaulted use dependencies work. If wombat depends > upon foo[bar], it is an error if there is *any* version of foo *ever* > that doesn't have bar in IUSE_EFFECTIVE. Very odd; AFAICT neither portage nor repoman treats that situation as an error. I am guessing that this is another case where paludis does things differently? Be that as it may, even with paludis, the foo maintainer could easily break wombat if wombat depended on foo:bar, and the last ebuild matching foo:bar got removed; or on foo[bar,baz], and the only remaining versions of foo in the tree have REQUIRED_USE="^^ ( bar baz )"; or on foo[bar], when the only remaining versions of foo in the tree have bar disabled via profiles/base/package.use.mask. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:48 ` Alexandre Rostovtsev @ 2012-07-20 20:02 ` Ciaran McCreesh 2012-07-20 20:10 ` Alexandre Rostovtsev 2012-07-20 20:11 ` Ian Stakenvicius 1 sibling, 1 reply; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 20:02 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1962 bytes --] On Fri, 20 Jul 2012 15:48:34 -0400 Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > On Fri, 2012-07-20 at 20:17 +0100, Ciaran McCreesh wrote: > > On Fri, 20 Jul 2012 15:15:31 -0400 > > Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > > > > That's sensitive to old versions ebuilds being removed from the > > > > tree, so it's utterly unworkable. > > > > > > I do not see why you think it's unworkable. Ebuilds already have > > > dependencies that can be broken by removing an old version; if > > > wombat depends on foo[bar], and you removed the only version of > > > foo that had bar in IUSE, you broke wombat. Adding special > > > LINGUAS handling would not change the fact that before deleting > > > an ebuild, you need to verify that you did not render other > > > ebuilds' dependencies unsatisfiable. > > > > That's not how undefaulted use dependencies work. If wombat depends > > upon foo[bar], it is an error if there is *any* version of foo > > *ever* that doesn't have bar in IUSE_EFFECTIVE. > > Very odd; AFAICT neither portage nor repoman treats that situation as > an error. I am guessing that this is another case where paludis does > things differently? Paludis yells. Portage silently ignores the error and does something unexpected. The spec is clear that it is an error, though. > Be that as it may, even with paludis, the foo maintainer could easily > break wombat if wombat depended on foo:bar, and the last ebuild > matching foo:bar got removed; or on foo[bar,baz], and the only > remaining versions of foo in the tree have REQUIRED_USE="^^ ( bar baz > )"; or on foo[bar], when the only remaining versions of foo in the > tree have bar disabled via profiles/base/package.use.mask. Which is why it's policy that you check every dependent before making changes to a package. You *do* follow that policy, and not just assume that repoman passing means it's fine, right? -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 20:02 ` Ciaran McCreesh @ 2012-07-20 20:10 ` Alexandre Rostovtsev 2012-07-20 20:15 ` Ciaran McCreesh 0 siblings, 1 reply; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 20:10 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 576 bytes --] On Fri, 2012-07-20 at 21:02 +0100, Ciaran McCreesh wrote: > Which is why it's policy that you check every dependent before making > changes to a package. You *do* follow that policy, and not just assume > that repoman passing means it's fine, right? Excellent. So we are finally in agreement that one *already* needs to check every dependent before making changes to a package - in other words, that implementing my LINGUAS proposal would not change that part of the required workflow for an ebuild maintainer. It's good to see us finally agree on something :) [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 20:10 ` Alexandre Rostovtsev @ 2012-07-20 20:15 ` Ciaran McCreesh 0 siblings, 0 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 20:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 722 bytes --] On Fri, 20 Jul 2012 16:10:58 -0400 Alexandre Rostovtsev <tetromino@gentoo.org> wrote: > On Fri, 2012-07-20 at 21:02 +0100, Ciaran McCreesh wrote: > > Which is why it's policy that you check every dependent before > > making changes to a package. You *do* follow that policy, and not > > just assume that repoman passing means it's fine, right? > > Excellent. So we are finally in agreement that one *already* needs to > check every dependent before making changes to a package - in other > words, that implementing my LINGUAS proposal would not change that > part of the required workflow for an ebuild maintainer. It would, though, because ebuilds exist in VDB and in overlays too. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:48 ` Alexandre Rostovtsev 2012-07-20 20:02 ` Ciaran McCreesh @ 2012-07-20 20:11 ` Ian Stakenvicius 1 sibling, 0 replies; 36+ messages in thread From: Ian Stakenvicius @ 2012-07-20 20:11 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 20/07/12 03:48 PM, Alexandre Rostovtsev wrote: > On Fri, 2012-07-20 at 20:17 +0100, Ciaran McCreesh wrote: >> On Fri, 20 Jul 2012 15:15:31 -0400 Alexandre Rostovtsev >> <tetromino@gentoo.org> wrote: >>>> That's sensitive to old versions ebuilds being removed from >>>> the tree, so it's utterly unworkable. >>> >>> I do not see why you think it's unworkable. Ebuilds already >>> have dependencies that can be broken by removing an old >>> version; if wombat depends on foo[bar], and you removed the >>> only version of foo that had bar in IUSE, you broke wombat. >>> Adding special LINGUAS handling would not change the fact that >>> before deleting an ebuild, you need to verify that you did not >>> render other ebuilds' dependencies unsatisfiable. >> >> That's not how undefaulted use dependencies work. If wombat >> depends upon foo[bar], it is an error if there is *any* version >> of foo *ever* that doesn't have bar in IUSE_EFFECTIVE. > > Very odd; AFAICT neither portage nor repoman treats that situation > as an error. I am guessing that this is another case where paludis > does things differently? After discussion in #-dev I would tend to agree. For instance, a dep on app-cat/foo[flag(-)] resolves identically in portage to app-cat/foo[flag] (this means btw that the '(-)' only has meaning when using a negated use dep, ie: app-cat/foo[-flag(-)] does something useful, otherwise it doesnt) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iF4EAREIAAYFAlAJu3YACgkQ2ugaI38ACPA1ngD9FVbdMb+2jw/+yj/0NIQ28mdz YYmXytaoefN0NaBM4bAA/jFmkgkcvrqbtQARbHUaqfFBgJHLVlM1cjk35KE+gKMS =KZJc -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:54 ` Ciaran McCreesh 2012-07-20 18:37 ` Alexandre Rostovtsev @ 2012-07-20 19:05 ` Ian Stakenvicius 2012-07-20 19:13 ` Ciaran McCreesh 1 sibling, 1 reply; 36+ messages in thread From: Ian Stakenvicius @ 2012-07-20 19:05 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 20/07/12 01:54 PM, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 13:43:15 -0400 Alexandre Rostovtsev > <tetromino@gentoo.org> wrote: >>> If you dep upon foo[linguas_en(+)] and linguas_en isn't in >>> IUSE, what happens? >> >> Fatal error. If a package installs its translations implicitly >> via gettext's rules depending on the value of LINGUAS at >> configure time, then obviously other packages must rely on that >> package having installed any particular translation. > > Uh, the entire point of the (+) is that it's *not* a fatal error if > you have a default. > If this doesn't work (assuming foo provides whatever this package needs it to have for linguas_en), then the dep is wrong in the first place and either (+) shouldn't be set or the use-dep on foo shouldn't exist to begin with. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iF4EAREIAAYFAlAJq/4ACgkQ2ugaI38ACPDIrgEAlPMn/3pSM/GK3BbCozQgGpxc 9aSnmtIXlOsr7HZ7QcUA/1dbtqqt6B/ClgriFHvHcVpZEiz5QiQh6RJ2t4Mr5jgk =ai7O -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:05 ` Ian Stakenvicius @ 2012-07-20 19:13 ` Ciaran McCreesh 2012-07-20 20:08 ` Ian Stakenvicius 0 siblings, 1 reply; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 19:13 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Fri, 20 Jul 2012 15:05:35 -0400 Ian Stakenvicius <axs@gentoo.org> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA256 > On 20/07/12 01:54 PM, Ciaran McCreesh wrote: > > On Fri, 20 Jul 2012 13:43:15 -0400 Alexandre Rostovtsev > > <tetromino@gentoo.org> wrote: > >>> If you dep upon foo[linguas_en(+)] and linguas_en isn't in > >>> IUSE, what happens? > >> > >> Fatal error. If a package installs its translations implicitly > >> via gettext's rules depending on the value of LINGUAS at > >> configure time, then obviously other packages must rely on that > >> package having installed any particular translation. > > > > Uh, the entire point of the (+) is that it's *not* a fatal error if > > you have a default. > > If this doesn't work (assuming foo provides whatever this package > needs it to have for linguas_en), then the dep is wrong in the first > place and either (+) shouldn't be set or the use-dep on foo shouldn't > exist to begin with. ...but (+) exists precisely because developers wanted a way of not having fatal errors when using use dependencies. Non-defaulted use dependencies are supposed to give errors if there's no match in IUSE_EFFECTIVE, but unfortunately Portage chose not to make it as strict as the Council-approved wording required. - -- Ciaran McCreesh -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iEYEARECAAYFAlAJrfgACgkQ96zL6DUtXhGjGACfdsaHwmKKq13EtlS9Jna0ueSj vc4An3xifK/Y2V2SwPc2k19kYmLlHZUk =eIrd -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 19:13 ` Ciaran McCreesh @ 2012-07-20 20:08 ` Ian Stakenvicius 0 siblings, 0 replies; 36+ messages in thread From: Ian Stakenvicius @ 2012-07-20 20:08 UTC (permalink / raw To: gentoo-dev -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 20/07/12 03:13 PM, Ciaran McCreesh wrote: > On Fri, 20 Jul 2012 15:05:35 -0400 Ian Stakenvicius > <axs@gentoo.org> wrote: >> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 20/07/12 01:54 >> PM, Ciaran McCreesh wrote: >>> On Fri, 20 Jul 2012 13:43:15 -0400 Alexandre Rostovtsev >>> <tetromino@gentoo.org> wrote: >>>>> If you dep upon foo[linguas_en(+)] and linguas_en isn't in >>>>> IUSE, what happens? >>>> >>>> Fatal error. If a package installs its translations >>>> implicitly via gettext's rules depending on the value of >>>> LINGUAS at configure time, then obviously other packages must >>>> rely on that package having installed any particular >>>> translation. >>> >>> Uh, the entire point of the (+) is that it's *not* a fatal >>> error if you have a default. > >> If this doesn't work (assuming foo provides whatever this >> package needs it to have for linguas_en), then the dep is wrong >> in the first place and either (+) shouldn't be set or the use-dep >> on foo shouldn't exist to begin with. > > ...but (+) exists precisely because developers wanted a way of not > having fatal errors when using use dependencies. Non-defaulted use > dependencies are supposed to give errors if there's no match in > IUSE_EFFECTIVE, but unfortunately Portage chose not to make it as > strict as the Council-approved wording required. > non-fatal doesn't work in this case, because in the situation you described, the dep 'foo' -must- have linguas_en existing and enabled to work. IF foo doesn't -need- to have linguas_en existing and enabled to work, ie, if linguas_en doesn't exist but foo installed the relevant bits anyways, then foo[linguas_en(+)] is valid and works fine. Otherwise, the dep specified is wrong and it SHOULD be a fatal error. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iF4EAREIAAYFAlAJuqAACgkQ2ugaI38ACPApyQD/dtMj1l0KeJByIXXIhS+Y3Xst pj2/eoQ7q1ze2vhfPgQBALA+UatwFysIXRuFCiXrVt4vK0OlMNa58GIRpsonzGMz =cPuz -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 16:39 ` Mike Gilbert 2012-07-20 17:09 ` Ciaran McCreesh @ 2012-07-20 17:44 ` Michał Górny 2012-07-20 18:03 ` Alexandre Rostovtsev 1 sibling, 1 reply; 36+ messages in thread From: Michał Górny @ 2012-07-20 17:44 UTC (permalink / raw To: gentoo-dev; +Cc: floppym [-- Attachment #1: Type: text/plain, Size: 529 bytes --] On Fri, 20 Jul 2012 12:39:21 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > For most gettext packages, there is absolutely no reason that the > ebuild maintainer should have to keep track of every translation > available in a given package across version bumps. If you change this > behavior in a future EAPI, you will break this. Either he has to do that, or he should just remove the pointless, useless and unmaintained LINGUAS from his ebuild and just install everything. -- Best regards, Michał Górny [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 316 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:44 ` Michał Górny @ 2012-07-20 18:03 ` Alexandre Rostovtsev 0 siblings, 0 replies; 36+ messages in thread From: Alexandre Rostovtsev @ 2012-07-20 18:03 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1024 bytes --] On Fri, 2012-07-20 at 19:44 +0200, Michał Górny wrote: > On Fri, 20 Jul 2012 12:39:21 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: > > > For most gettext packages, there is absolutely no reason that the > > ebuild maintainer should have to keep track of every translation > > available in a given package across version bumps. If you change this > > behavior in a future EAPI, you will break this. > > Either he has to do that, or he should just remove the pointless, > useless and unmaintained LINGUAS from his ebuild and just install > everything. Currently, "install everything" is treated as a bug - see https://bugs.gentoo.org/show_bug.cgi?id=405485 If you ignore LINGUAS and install everything, you break the long-established convention for what LINGUAS does, make users angry, waste disk space, and increase build time for packages with lots of translations - all for no good reason other than forcing uniform USE_EXPAND conventions in a place where they aren't wanted. -Alexandre. [-- Attachment #2: This is a digitally signed message part --] [-- Type: application/pgp-signature, Size: 490 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 6:54 ` Ciaran McCreesh 2012-07-20 16:39 ` Mike Gilbert @ 2012-07-20 17:55 ` Mike Gilbert 2012-07-20 18:03 ` Ciaran McCreesh 1 sibling, 1 reply; 36+ messages in thread From: Mike Gilbert @ 2012-07-20 17:55 UTC (permalink / raw To: gentoo-dev On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote: > On Thu, 19 Jul 2012 18:34:41 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> >> wrote: >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: >> >> Could be that Portage re-exports a sanitized >> >> LINGUAS tough, but I doubt it. >> > >> > Portage does sanitize it if there are any linguas_* flags in IUSE, >> > otherwise it lets the variable pass through without sanitizing it. >> >> That's good; we definitely don't want to "sanitize" it if there are no >> linuguas_* flags in IUSE. This would break LINUGUAS support for many >> autotools/gettext based packages, where the autotools code parses >> LINGUAS directly and the ebuild does nothing with it. > > If there aren't any linguas_* flags in IUSE, LINGUAS should be empty, > and will be in future EAPIs. Without that, USE dependencies on > USE_EXPAND variables don't work. > Do you mean that LINGUAS will be empty, or unset (undefined) in an ebuild context? The difference is significant here. ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 17:55 ` Mike Gilbert @ 2012-07-20 18:03 ` Ciaran McCreesh 2012-07-20 18:09 ` Mike Gilbert 0 siblings, 1 reply; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 18:03 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 1651 bytes --] On Fri, 20 Jul 2012 13:55:46 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh > <ciaran.mccreesh@googlemail.com> wrote: > > On Thu, 19 Jul 2012 18:34:41 -0400 > > Mike Gilbert <floppym@gentoo.org> wrote: > >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> > >> wrote: > >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: > >> >> Could be that Portage re-exports a sanitized > >> >> LINGUAS tough, but I doubt it. > >> > > >> > Portage does sanitize it if there are any linguas_* flags in > >> > IUSE, otherwise it lets the variable pass through without > >> > sanitizing it. > >> > >> That's good; we definitely don't want to "sanitize" it if there > >> are no linuguas_* flags in IUSE. This would break LINUGUAS support > >> for many autotools/gettext based packages, where the autotools > >> code parses LINGUAS directly and the ebuild does nothing with it. > > > > If there aren't any linguas_* flags in IUSE, LINGUAS should be > > empty, and will be in future EAPIs. Without that, USE dependencies > > on USE_EXPAND variables don't work. > > Do you mean that LINGUAS will be empty, or unset (undefined) in an > ebuild context? The difference is significant here. For EAPIs before 5, LINGUAS contains *at least* the things in IUSE intersected with the ones the user has enabled, with the linguas_ stripped. It's not just "the environment variable in make.conf", since a user might put linguas_en in package.use. For EAPIs 5 and onwards, LINGUAS contains only those things, and definitely won't contain anything else. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 18:03 ` Ciaran McCreesh @ 2012-07-20 18:09 ` Mike Gilbert 2012-07-20 18:15 ` Ciaran McCreesh 0 siblings, 1 reply; 36+ messages in thread From: Mike Gilbert @ 2012-07-20 18:09 UTC (permalink / raw To: gentoo-dev On Fri, Jul 20, 2012 at 2:03 PM, Ciaran McCreesh <ciaran.mccreesh@googlemail.com> wrote: > On Fri, 20 Jul 2012 13:55:46 -0400 > Mike Gilbert <floppym@gentoo.org> wrote: >> On Fri, Jul 20, 2012 at 2:54 AM, Ciaran McCreesh >> <ciaran.mccreesh@googlemail.com> wrote: >> > On Thu, 19 Jul 2012 18:34:41 -0400 >> > Mike Gilbert <floppym@gentoo.org> wrote: >> >> On Thu, Jul 19, 2012 at 5:13 PM, Zac Medico <zmedico@gentoo.org> >> >> wrote: >> >> > On 07/19/2012 06:14 AM, Ralph Sennhauser wrote: >> >> >> Could be that Portage re-exports a sanitized >> >> >> LINGUAS tough, but I doubt it. >> >> > >> >> > Portage does sanitize it if there are any linguas_* flags in >> >> > IUSE, otherwise it lets the variable pass through without >> >> > sanitizing it. >> >> >> >> That's good; we definitely don't want to "sanitize" it if there >> >> are no linuguas_* flags in IUSE. This would break LINUGUAS support >> >> for many autotools/gettext based packages, where the autotools >> >> code parses LINGUAS directly and the ebuild does nothing with it. >> > >> > If there aren't any linguas_* flags in IUSE, LINGUAS should be >> > empty, and will be in future EAPIs. Without that, USE dependencies >> > on USE_EXPAND variables don't work. >> >> Do you mean that LINGUAS will be empty, or unset (undefined) in an >> ebuild context? The difference is significant here. > > For EAPIs before 5, LINGUAS contains *at least* the things in IUSE > intersected with the ones the user has enabled, with the linguas_ > stripped. It's not just "the environment variable in make.conf", since a > user might put linguas_en in package.use. > > For EAPIs 5 and onwards, LINGUAS contains only those things, and > definitely won't contain anything else. Let me rephrase my question: If the user has not enabled any of the linguas flags via make.conf or package.use, will the LINGUAS variable be empty or unset in the ebuild environment? ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-20 18:09 ` Mike Gilbert @ 2012-07-20 18:15 ` Ciaran McCreesh 0 siblings, 0 replies; 36+ messages in thread From: Ciaran McCreesh @ 2012-07-20 18:15 UTC (permalink / raw To: gentoo-dev [-- Attachment #1: Type: text/plain, Size: 304 bytes --] On Fri, 20 Jul 2012 14:09:28 -0400 Mike Gilbert <floppym@gentoo.org> wrote: > Let me rephrase my question: If the user has not enabled any of the > linguas flags via make.conf or package.use, will the LINGUAS variable > be empty or unset in the ebuild environment? Empty. -- Ciaran McCreesh [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 198 bytes --] ^ permalink raw reply [flat|nested] 36+ messages in thread
* Re: [gentoo-dev] RFC: l10n.eclass 2012-07-19 6:45 [gentoo-dev] RFC: l10n.eclass Ben de Groot 2012-07-19 13:14 ` Ralph Sennhauser @ 2012-07-19 22:44 ` Mike Gilbert 1 sibling, 0 replies; 36+ messages in thread From: Mike Gilbert @ 2012-07-19 22:44 UTC (permalink / raw To: gentoo-dev On Thu, Jul 19, 2012 at 2:45 AM, Ben de Groot <yngwin@gentoo.org> wrote: > Today I would like to present to you my proposal for a new eclass with > helper functions for treating localizations: l10n.eclass (see the > attached file or [1]). Its functionality can be used in other eclasses > (such as qt4-r2 and cmake-utils) as well as directly in ebuilds. > In a previous thread, I proposed that the linguas_* use flags should default to enabled (IUSE="+linguas_en_US ..."). This would cause LINGUAS use-expand behavior to more closely mimic the behavior of the gettext autoconf macros (/usr/share/aclocal/po.m4). If LINGUAS is unset, all translations are installed. If LINGUAS is set a subset of translations are install. If LINGUAS is set to the empty string, no translations are installed. ^ permalink raw reply [flat|nested] 36+ messages in thread
end of thread, other threads:[~2012-07-23 15:23 UTC | newest] Thread overview: 36+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2012-07-19 6:45 [gentoo-dev] RFC: l10n.eclass Ben de Groot 2012-07-19 13:14 ` Ralph Sennhauser 2012-07-19 15:37 ` Ben de Groot 2012-07-20 7:33 ` Ralph Sennhauser 2012-07-23 12:29 ` Ben de Groot 2012-07-23 15:22 ` Ralph Sennhauser 2012-07-19 16:15 ` Ciaran McCreesh 2012-07-19 21:13 ` Zac Medico 2012-07-19 22:34 ` Mike Gilbert 2012-07-20 6:54 ` Ciaran McCreesh 2012-07-20 16:39 ` Mike Gilbert 2012-07-20 17:09 ` Ciaran McCreesh 2012-07-20 17:29 ` Mike Gilbert 2012-07-20 17:35 ` Ciaran McCreesh 2012-07-20 17:43 ` Alexandre Rostovtsev 2012-07-20 17:46 ` Alexandre Rostovtsev 2012-07-20 17:54 ` Ciaran McCreesh 2012-07-20 18:37 ` Alexandre Rostovtsev 2012-07-20 18:41 ` Ciaran McCreesh 2012-07-20 19:15 ` Alexandre Rostovtsev 2012-07-20 19:17 ` Ciaran McCreesh 2012-07-20 19:48 ` Alexandre Rostovtsev 2012-07-20 20:02 ` Ciaran McCreesh 2012-07-20 20:10 ` Alexandre Rostovtsev 2012-07-20 20:15 ` Ciaran McCreesh 2012-07-20 20:11 ` Ian Stakenvicius 2012-07-20 19:05 ` Ian Stakenvicius 2012-07-20 19:13 ` Ciaran McCreesh 2012-07-20 20:08 ` Ian Stakenvicius 2012-07-20 17:44 ` Michał Górny 2012-07-20 18:03 ` Alexandre Rostovtsev 2012-07-20 17:55 ` Mike Gilbert 2012-07-20 18:03 ` Ciaran McCreesh 2012-07-20 18:09 ` Mike Gilbert 2012-07-20 18:15 ` Ciaran McCreesh 2012-07-19 22:44 ` Mike Gilbert
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox