Hey,

I've been trying to get uclibc running with locale support. In particular, I
need iconv support for pulseaudio to work.

Since installing libiconv is supposedly a Bad Idea, I'm trying to get uclibc's
iconv support working. I'm trying this with uclibc 0.9.29 (using the ebuild from
the gentoo Bugzilla [1]).

My first attempt was to simply enable the iconv use flag. This also meant
removing iconv from /usr/portage/profiles/uclibc/use.mask, but I suspect
(read: hope) that is was only there because there used to be no iconv support
in uclibc before (But apparently, there is also someone else who got something
similar to work [2]).

Anyway, having iconv enabled didn't work. It tries to generate locale data at
compiletime, which fails. It turns out this is not really supported by uclibc.
They strongly recommend to use pregenerated localedata.

So, I also enabled the pregen use flag. This resulted in an even quicker
error, during unpacking. From the ebuild (this holds for both the new 0.9.29
and the older 0.9.28 ebuilds) I find the following.

When nls, pregen and x86 but not userlocales are set,
http://www.uclibc.org/downloads/uClibc-locale-030818.tgz is added to SRC_URI
and is downloaded. This file is actualy available from that location and,
according to uclibc documentation, should be placed in extra/locale before
compilation.

Then, further on, when the iconv use flag is set, both
UCLIBC_PREGENERATED_LOCALE_DATA and UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA
are enabled. The latter option seems irrelevant, since portage will download
the locale data for us.

However, to be able to use the downloaded locale data, it should still be
copied into the extra/locale directory before compilation. There is some code
which does something like that, but I can't see how it would ever work. In
particular, this code only works when iconv and pregen are set. Then,
depending on the userlocales setting, it copies
${DISTDIR}/${MY_P}-user-locale.tar.gz or
${DISTDIR}/${MY_P}-$(tc-arch)-full-locale.tar.gz to
extra/locale/uClibc-locale-030818.tgz

As far as I can see, neither ${MY_P}-user-locale.tar.gz nor
${MYP}-$(tc-arch)-full-locale.tar.gz will ever appearch in $DISTDIR, so these
copies will never work. Nor can I find anything that actually does something
with the uClibc-locale-030818.tgz that is downloaded.

Since I don't really know what is supposed to happen when, I'm at a loss a to
coding a fix. I'll probably see if I can whip up something that helps in my
case, which will probably be something like this: if iconv and pregen are set,
download uClibc-locale-030818.tgz and copy uClibc-locale-030818.tgz into
extra/locale, ignoring all the other copy thingies.

Any suggestions about how this is really supposed to work?

Gr.

Matthijs

[1]: http://bugs.gentoo.org/process_bug.cgi
k2]: http://jeremy.geeo.net/p7120/

Attachment: signature.asc
Description: Digital signature

Reply via email to