What do I recompile?

Declan. Moriarty declan.moriarty at ntlworld.ie
Tue Jul 8 04:08:01 PDT 2003


On Tue, Jun 24, 2003 at 11:12:10AM +0200, Erika Pacholleck enlightened
us thusly
> > > (I really refuse to figure that your localedef program is broken,
> > > you know what that means, don't you?).
> > 
> > No, I don't but I presume it's not good.
> 
> Heh, you said it in the end, recompile glibc.
> 
> > > > The locales are there. Permissions are 751 - wouldn't 644 be
> > > > more sensible? Owner & group is root.
> > > 
> > It strikes me then that 751 is stupid, because users can't read
> > them!  I got one other error from this box. Some program in an X
> > terminal laid the blame elsewhere I18N: Operating system doesn't
> > support locale ""
> > 
> > I will do this: chmod -R 444 all the locale files.
>[snip] 
> 
> > Try again.  Recompile glibc-2.2.5 (ouch) and hope nothing breaks.

> 


Where were we? Oh yes, compiling glibc. Well, I rooted out the lfs-3.3
book, and did the following as per instructions:

Unpack glibc-linuxthreads-2.2.5 in /usr/src/glibc-2.2.5
Unset all locales and CFLAGS, & CXXFLAGS

   touch /etc/ld.so.conf &&
   cp malloc/Makefile malloc/Makefile.backup &&
   sed 's%\$(PERL)%/usr/bin/perl%' malloc/Makefile.backup >
malloc/Makefile &&
   cp login/Makefile login/Makefile.backup &&
   sed 's/root/0/' login/Makefile.backup > login/Makefile &&
   mkdir ../glibc-build &&
   cd ../glibc-build &&
   ../glibc-2.2.5/configure --prefix=/usr \
      --enable-add-ons --libexecdir=/usr/bin &&
   echo "cross-compiling = no" > configparms &&
   make

After a few initial stupidities  it  built without error. 


> That's what I wanted to avoid by next diffing the <source
> dir>/localedata/locales/en_GB with the /usr/share/i18n/locales/en_GB.
> They must be identical.  And if they are, you can test a recompiled
> localedef right from the sources <src dir>/locale/programs/localedef
> -i ... without need to over-install glibc. But if they are not, a copy
> (+gzip) would already do.


root:/usr/src/glibc-2.2.5#diff localedata/locales/en_GB \
/usr/share/i18n/locales/en_GB   showed no differences.

I am remarkably shy of doing a 'make install' on glibc. I read somewhere
(mebbe the INSTALL in glibc) about having to present glibc with a virgin
/usr/include directory. 

There is also a 'make localedata/install-locales' target used in the
book. Is that a safer bet ?(BTW, I bet it changes nothing)

> Hey, watch exactely what you have: these are dirs: drwxr-xr-x
> /usr/lib/locale/ 0755 or localedef can't create new ones here
> (localedef is one of the progs I only allow root to execute)
> drwxr-xr-x /usr/lib/locale/en_GB/ drwxr-xr-x
> /usr/lib/locale/en_GB/LC_MESSAGES/ 0555 at least, no read without exec
> (and even root has nothing to write here) these are files -r--r--r--
> /usr/lib/locale/en_GB/LC_TIME -r--r--r--
> /usr/lib/locale/en_GB/LC_MESSAGES/SYS_LC_MESSAGES 0444 only need to
> read them

You have your finger on something.

root:/usr/lib/locale/en_GB#ls
LC_CTYPE  LC_NUMERIC  LC_TIME

Only 3 files. It seems I don't HAVE 
/usr/lib/locale/en_GB/LC_MESSAGES :-O.

(goes off and updates slocate's database after the compile)

I do have /usr/share/locale/en_GB/LC_MESSAGES but no copies of
SYS_LC_MESSAGES or LC_TIME, but only some .mo files which I presume are
different.


This is all a bit beyond me - why have pretty much the same guff in
/usr/share/locale, /usr/lib/locale, /usr/local/share/locale,
usr/local/lib/locale and /usr/share/i18n/locales? Perhaps it was 
failed installs, which I repeated with a different prefix and thought I
had installed over. I was that green back then.  But when I go slocating
SYS_LC_MESSAGES I only find it in my Mandrake 8.0 system, which doesn't
have a glibc directory ( It doesn't have gcc, make or patch either.
Amazing what they let you do with rpms). AFAIK, it was glibc-2.2.1 or
2.2.2


My box is looking like windows:
- 'Will Install Needless Data On Whole System' :-P I have attached a
file locale_stuff.bz2 which is the output of 

slocate LC_MESSAGES > locale_stuff 2>&1

LC_MESSAGES isn't even in the glibc source, as you can see.

How do I find out which directories the system is looking at?
What's happened to my LC_MESSAGES? Are they in some other package I'm
going to find out about? I only have glibc-2.2.5 & glibc-linuxthreads

I did a search for SYS_LC_MESSAGES, and only found it on my legacy
Mandrake 8.0 system with glibc-2.2.2. There is none in the glibc source,
or the build directory. They have locale files in a locales rpm, in
fileutils, in xmms, and about 10 other packages of the tiny system I
have installed there, so I presume they scatter them like confetti.




BTW, I'm not quick to rush to en_IE at euro(my correct locale). That's
created the Irish way: For this section, copy (this) bit; for that
section copy (that) bit; and if one file is awol, you're up the
proverbial creek without a paddle, with a problem that's near impossible
to solve.

-- 

	With best Regards,


	Declan Moriarty.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: locale_stuff.bz2
Type: application/octet-stream
Size: 2039 bytes
Desc: not available
URL: <http://lists.linuxfromscratch.org/pipermail/blfs-support/attachments/20030708/26c39cae/attachment.obj>


More information about the blfs-support mailing list