Locales mini-HOWTO: Installing everything.

  • Next I installed the dynamic linker:
    
    tar zxf ld.so-1.7.12.tar.gz -C /usr/src
    cd /usr/src/ld.so-1.7.12
    sh instldso.sh
    
  • Next I installed the libc binaries. See release.libc-5.4.17 for more instructions.
    
    rm -f /usr/lib/libc.so /usr/lib/libm.so
    rm -f /usr/include/iolibio.h /usr/include/iostdio.h
    rm -f /usr/include/ld_so_config.h /usr/include/localeinfo.h
    rm -rf /usr/include/netinet /usr/include/net /usr/include/pthread
    tar -xzf libc-5.4.17.bin.tar.gz -C /
    
  • There is a bug that was fixed in libc that breaks make, and some other programs. Here is what I did in order to rebuild and install make.
    
    tar zxf make-3.74.tar.gz -C /usr/src
    cd /usr/src/make-3.74
    patch < /whereever_you_put_it/release.libc-5.4.17
    configure --prefix=/usr
    sh build.sh
     ./make install
    cd ..
    rm -rf make-2.74
    
  • Now localedef can be compiled and installed.
    
    mkdir /usr/src/libc
    tar zxf libc-5.4.17.tar.gz -C /usr/src/libc
    cd /usr/src/libc
    cd include
    ln -s /usr/src/linux/include/asm .
    ln -s /usr/src/linux/include/linux .
    cd ../libc
     ./configure
    # I am not sure if these two makes are necessary, but just to be safe :
    make clean ; make depend
    cd locale
    make programs
    mv localedef /usr/local/bin
    mv locale /usr/local/bin
    
  • Put the charmaps where localedef will find them. This uses the charmaps and locale sources which I down loaded from dkuug.dk ftp site as charmaps.tar, and locales.tar respectively. The older localedef (5.2.18) looked in /usr/share/nls/charmap for charmap sources, but now localedef looks in /usr/share/i18n/charmaps and /usr/share/i18n/locales by default for the charmap and locale sources:
    
    mkdir /usr/share/i18n
    mkdir /usr/share/i18n/charmaps
    mkdir /usr/share/i18n/locales
    tar xf charmaps.tar -C /usr/share/i18n/charmaps
    tar xf locales.tar -C /usr/share/i18n/locales
    

    The newer localedef (5.4.17) has been made smarter and will look for other locale source files when handling the `copy’ statement, whereas the older localedef needed to have the locale objects already created in order to handle the copy statement. This list of commands has the dependencies sorted out and can be used to generate all the locale objects regardless of which libc version is being used, but you should now be able to create only the ones that you wish.

    
    localedef -ci en_DK -f ISO_8859-1:1987 en_DK
    localedef -ci sv_SE -f ISO_8859-1:1987 sv_SE
    localedef -ci fi_FI -f ISO_8859-1:1987 fi_FI
    localedef -ci sv_FI -f ISO_8859-1:1987 sv_FI
    localedef -ci ro_RO -f ISO_8859-1:1987 ro_RO
    localedef -ci pt_PT -f ISO_8859-1:1987 pt_PT
    localedef -ci no_NO -f ISO_8859-1:1987 no_NO
    localedef -ci nl_NL -f ISO_8859-1:1987 nl_NL
    localedef -ci fr_BE -f ISO_8859-1:1987 fr_BE
    localedef -ci nl_BE -f ISO_8859-1:1987 nl_BE
    localedef -ci da_DK -f ISO_8859-1:1987 da_DK
    localedef -ci kl_GL -f ISO_8859-1:1987 kl_GL
    localedef -ci it_IT -f ISO_8859-1:1987 it_IT
    localedef -ci is_IS -f ISO_8859-1:1987 is_IS
    localedef -ci fr_LU -f ISO_8859-1:1987 fr_LU
    localedef -ci fr_FR -f ISO_8859-1:1987 fr_FR
    localedef -ci de_DE -f ISO_8859-1:1987 de_DE
    localedef -ci de_CH -f ISO_8859-1:1987 de_CH
    localedef -ci fr_CH -f ISO_8859-1:1987 fr_CH
    localedef -ci en_CA -f ISO_8859-1:1987 en_CA
    localedef -ci fr_CA -f ISO_8859-1:1987 fr_CA
    localedef -ci fo_FO -f ISO_8859-1:1987 fo_FO
    localedef -ci et_EE -f ISO_8859-1:1987 et_EE
    localedef -ci es_ES -f ISO_8859-1:1987 es_ES
    localedef -ci en_US -f ISO_8859-1:1987 en_US
    localedef -ci en_GB -f ISO_8859-1:1987 en_GB
    localedef -ci en_IE -f ISO_8859-1:1987 en_IE
    localedef -ci de_LU -f ISO_8859-1:1987 de_LU
    localedef -ci de_BE -f ISO_8859-1:1987 de_BE
    localedef -ci de_AT -f ISO_8859-1:1987 de_AT
    localedef -ci sl_SI -f ISO_8859-2:1987 sl_SI
    localedef -ci ru_RU -f ISO_8859-5:1988 ru_RU
    localedef -ci pl_PL -f ISO_8859-2:1987 pl_PL
    localedef -ci lv_LV -f BALTIC lv_LV
    localedef -ci lt_LT -f BALTIC lt_LT
    localedef -ci iw_IL -f ISO_8859-8:1988 iw_IL
    localedef -ci hu_HU -f ISO_8859-2:1987 hu_HU
    localedef -ci hr_HR -f ISO_8859-4:1988 hr_HR
    localedef -ci gr_GR -f ISO_8859-7:1987 gr_GR