diff options
author | Phil Blundell <philb@gnu.org> | 2004-08-01 23:35:36 +0000 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2004-08-01 23:35:36 +0000 |
commit | c171a36102eae73b7c6306a2292ec92f2414d764 (patch) | |
tree | 2ad2197485a4cee44776d22f068a025ca88e3a49 /glibc | |
parent | ddb152cb0ff4388e98818d9586856005590a4534 (diff) |
Merge bk://openembedded@openembedded.bkbits.net/packages
into stealth.(none):/home/pb/oe/oe-packages
2004/08/02 00:35:23+01:00 (none)!pb
create ${libdir}/locale
BKrev: 410d7e48EyJljphD675FuST0BcqlAg
Diffstat (limited to 'glibc')
-rw-r--r-- | glibc/glibc-package.oe | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/glibc/glibc-package.oe b/glibc/glibc-package.oe index e69de29bb2..041ba028cd 100644 --- a/glibc/glibc-package.oe +++ b/glibc/glibc-package.oe @@ -0,0 +1,105 @@ +do_install() { + oe_runmake install_root=${D} install + for r in ${rpcsvc}; do + h=`echo $r|sed -e's,\.x$,.h,'` + install -m 0644 ${S}/sunrpc/rpcsvc/$h ${D}/${includedir}/rpcsvc/ + done + install -m 0644 ${WORKDIR}/etc/ld.so.conf ${D}/${sysconfdir}/ + install -d ${D}${libdir}/locale + make -f ${WORKDIR}/generate-supported.mk IN="${S}/localedata/SUPPORTED" OUT="${WORKDIR}/SUPPORTED" +} + +locale_base_postinst() { +#!/bin/sh + +localedef --add-to-archive --inputfile=${datadir}/locales/%s --charmap=${datadir}/charmaps/%s.gz +} + +locale_base_postrm() { +#!/bin/sh + +localedef --delete-from-archive --inputfile=${datadir}/locales/%s --charmap=${datadir}/charmaps/%s.gz +} + +python package_do_split_gconvs () { + import os, re + if (oe.data.getVar('PACKAGE_NO_GCONV', d, 1) == '1'): + oe.note("package requested not splitting gconvs") + return + + if not oe.data.getVar('PACKAGES', d, 1): + return + + libdir = oe.data.getVar('libdir', d, 1) + if not libdir: + oe.error("libdir not defined") + return + datadir = oe.data.getVar('datadir', d, 1) + if not datadir: + oe.error("datadir not defined") + return + + gconv_libdir = os.path.join(libdir, "gconv") + charmap_dir = os.path.join(datadir, "i18n", "charmaps") + locales_dir = os.path.join(datadir, "i18n", "locales") + + do_split_packages(d, gconv_libdir, file_regex='^(.*)\.so$', output_pattern='glibc-gconv-%s', description='gconv module for character set %s') + + do_split_packages(d, charmap_dir, file_regex='^(.*)\.gz$', output_pattern='glibc-charmap-%s', description='character map for %s encoding') + + do_split_packages(d, locales_dir, file_regex='(.*)', output_pattern='glibc-localedata-%s', description='locale definition for %s') + + oe.data.setVar('PACKAGES', oe.data.getVar('PACKAGES', d) + ' glibc-gconv', d) + + f = open(os.path.join(oe.data.getVar('WORKDIR', d, 1), "SUPPORTED"), "r") + supported = f.readlines() + f.close() + + dot_re = re.compile("(.*)\.(.*)") + + # Collate the locales by base and encoding + encodings = {} + for l in supported: + l = l[:-1] + (locale, charset) = l.split(" ") + m = dot_re.match(locale) + if m: + locale = m.group(1) + if not encodings.has_key(locale): + encodings[locale] = [] + encodings[locale].append(charset) + + def output_locale(name, locale, encoding): + pkgname = 'locale-base-' + legitimize_package_name(name) + + oe.data.setVar('RDEPENDS_%s' % pkgname, 'localedef glibc-localedata-%s glibc-charmap-%s' % (legitimize_package_name(locale), legitimize_package_name(encoding)), d) + rprovides = 'virtual-locale-%s' % legitimize_package_name(name) + m = re.match("(.*)_(.*)", name) + if m: + rprovides += ' virtual-locale-%s' % m.group(1) + oe.data.setVar('RPROVIDES_%s' % pkgname, rprovides, d) + oe.data.setVar('PACKAGES', '%s %s' % (pkgname, oe.data.getVar('PACKAGES', d, 1)), d) + oe.data.setVar('ALLOW_EMPTY_%s' % pkgname, '1', d) + oe.data.setVar('pkg_postinst_%s' % pkgname, oe.data.getVar('locale_base_postinst', d, 1) % (locale, encoding), d) + oe.data.setVar('pkg_postrm_%s' % pkgname, oe.data.getVar('locale_base_postrm', d, 1) % (locale, encoding), d) + + # Reshuffle names so that UTF-8 is preferred over other encodings + for l in encodings.keys(): + if len(encodings[l]) == 1: + output_locale(l, l, encodings[l][0]) + else: + if "UTF-8" in encodings[l]: + output_locale(l, l, "UTF-8") + encodings[l].remove("UTF-8") + for e in encodings[l]: + output_locale('%s-%s' % (l, e), l, e) +} + +# We want to do this indirection so that we can safely 'return' +# from the called function even though we're prepending +python populate_packages_prepend () { + if oe.data.getVar('DEBIAN_NAMES', d, 1): + oe.data.setVar('PKG_glibc', 'libc6', d) + oe.data.setVar('PKG_glibc-dev', 'libc6-dev', d) + oe.build.exec_func('package_do_split_gconvs', d) +} |