Merge bk://openembedded@openembedded.bkbits.net/packages
authorPhil Blundell <philb@gnu.org>
Sun, 1 Aug 2004 23:35:36 +0000 (23:35 +0000)
committerPhil Blundell <philb@gnu.org>
Sun, 1 Aug 2004 23:35:36 +0000 (23:35 +0000)
into stealth.(none):/home/pb/oe/oe-packages

2004/08/02 00:35:23+01:00 (none)!pb
create ${libdir}/locale

BKrev: 410d7e48EyJljphD675FuST0BcqlAg

glibc/glibc-package.oe

index e69de29..041ba02 100644 (file)
@@ -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)
+}