On systems without locale support, such as uclibc when configure without it, boost fails to build. And yet there is a configuration option in boost's build system that allows you to disable locale: --without-locale. It is a simple matter to expose this option to the user: --- boost-1.49.0-r1.ebuild.orig 2012-09-25 19:38:54.000000000 -0400 +++ boost-1.49.0-r1.ebuild 2012-09-25 18:41:26.000000000 -0400 @@ -18,7 +18,7 @@ LICENSE="Boost-1.0" SLOT="$(get_version_component_range 1-2)" KEYWORDS="~alpha amd64 arm hppa ~ia64 ~mips ppc ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd" -IUSE="debug doc +eselect icu mpi python static-libs test tools" +IUSE="debug doc +eselect icu +locale mpi python static-libs test tools" RDEPEND="icu? ( >=dev-libs/icu-3.3 ) mpi? ( || ( sys-cluster/openmpi[cxx] sys-cluster/mpich2[cxx,threads] ) ) @@ -143,6 +143,7 @@ use icu && OPTIONS+=" -sICU_PATH=/usr" use icu || OPTIONS+=" --disable-icu boost.locale.icu=off" + use locale || OPTIONS+=" --without-locale" use mpi || OPTIONS+=" --without-mpi" use python || OPTIONS+=" --without-python"
Two other points: 1) locale is a local use flag and needs to be added to metadata.xml 2) If there is a good reason to force locale on for glibc, then we can add logic to check if has_version sys-libs/glibc and then act accordingly.
Boost.Locale library was introduced in Boost 1.48. Maybe modularization would better solve this this bug.
There is no reason to use has_version, we should just use package.use.force.
*** Bug 440684 has been marked as a duplicate of this bug. ***
Fixed, the USE flag is nls and is present in 1.52.0-r2.