diff options
| -rw-r--r-- | meta/classes/base.bbclass | 102 | ||||
| -rw-r--r-- | meta/classes/insane.bbclass | 2 | ||||
| -rw-r--r-- | meta/classes/package.bbclass | 20 | ||||
| -rw-r--r-- | meta/classes/package_deb.bbclass | 4 | ||||
| -rw-r--r-- | meta/classes/package_ipk.bbclass | 4 | ||||
| -rw-r--r-- | meta/classes/packagedata.bbclass | 82 | ||||
| -rw-r--r-- | meta/packages/libidl/libidl-native_0.8.12.bb (renamed from meta/packages/libidl/libidl-native_0.8.3.bb) | 0 | ||||
| -rw-r--r-- | meta/packages/libidl/libidl_0.8.12.bb (renamed from meta/packages/libidl/libidl_0.8.3.bb) | 0 |
8 files changed, 98 insertions, 116 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index b7eb62c01a..e801fd12a9 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
| @@ -946,108 +946,6 @@ addtask build after do_populate_staging | |||
| 946 | do_build = "" | 946 | do_build = "" |
| 947 | do_build[func] = "1" | 947 | do_build[func] = "1" |
| 948 | 948 | ||
| 949 | # Functions that update metadata based on files outputted | ||
| 950 | # during the build process. | ||
| 951 | |||
| 952 | def explode_deps(s): | ||
| 953 | r = [] | ||
| 954 | l = s.split() | ||
| 955 | flag = False | ||
| 956 | for i in l: | ||
| 957 | if i[0] == '(': | ||
| 958 | flag = True | ||
| 959 | j = [] | ||
| 960 | if flag: | ||
| 961 | j.append(i) | ||
| 962 | if i.endswith(')'): | ||
| 963 | flag = False | ||
| 964 | r[-1] += ' ' + ' '.join(j) | ||
| 965 | else: | ||
| 966 | r.append(i) | ||
| 967 | return r | ||
| 968 | |||
| 969 | def packaged(pkg, d): | ||
| 970 | import os, bb | ||
| 971 | return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK) | ||
| 972 | |||
| 973 | def read_pkgdatafile(fn): | ||
| 974 | pkgdata = {} | ||
| 975 | |||
| 976 | def decode(str): | ||
| 977 | import codecs | ||
| 978 | c = codecs.getdecoder("string_escape") | ||
| 979 | return c(str)[0] | ||
| 980 | |||
| 981 | import os | ||
| 982 | if os.access(fn, os.R_OK): | ||
| 983 | import re | ||
| 984 | f = file(fn, 'r') | ||
| 985 | lines = f.readlines() | ||
| 986 | f.close() | ||
| 987 | r = re.compile("([^:]+):\s*(.*)") | ||
| 988 | for l in lines: | ||
| 989 | m = r.match(l) | ||
| 990 | if m: | ||
| 991 | pkgdata[m.group(1)] = decode(m.group(2)) | ||
| 992 | |||
| 993 | return pkgdata | ||
| 994 | |||
| 995 | def get_subpkgedata_fn(pkg, d): | ||
| 996 | import bb, os | ||
| 997 | archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ") | ||
| 998 | archs.reverse() | ||
| 999 | pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d) | ||
| 1000 | targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d) | ||
| 1001 | for arch in archs: | ||
| 1002 | fn = pkgdata + arch + targetdir + pkg | ||
| 1003 | if os.path.exists(fn): | ||
| 1004 | return fn | ||
| 1005 | return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d) | ||
| 1006 | |||
| 1007 | def has_subpkgdata(pkg, d): | ||
| 1008 | import bb, os | ||
| 1009 | return os.access(get_subpkgedata_fn(pkg, d), os.R_OK) | ||
| 1010 | |||
| 1011 | def read_subpkgdata(pkg, d): | ||
| 1012 | import bb | ||
| 1013 | return read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
| 1014 | |||
| 1015 | def has_pkgdata(pn, d): | ||
| 1016 | import bb, os | ||
| 1017 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
| 1018 | return os.access(fn, os.R_OK) | ||
| 1019 | |||
| 1020 | def read_pkgdata(pn, d): | ||
| 1021 | import bb | ||
| 1022 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
| 1023 | return read_pkgdatafile(fn) | ||
| 1024 | |||
| 1025 | python read_subpackage_metadata () { | ||
| 1026 | import bb | ||
| 1027 | data = read_pkgdata(bb.data.getVar('PN', d, 1), d) | ||
| 1028 | |||
| 1029 | for key in data.keys(): | ||
| 1030 | bb.data.setVar(key, data[key], d) | ||
| 1031 | |||
| 1032 | for pkg in bb.data.getVar('PACKAGES', d, 1).split(): | ||
| 1033 | sdata = read_subpkgdata(pkg, d) | ||
| 1034 | for key in sdata.keys(): | ||
| 1035 | bb.data.setVar(key, sdata[key], d) | ||
| 1036 | } | ||
| 1037 | |||
| 1038 | |||
| 1039 | # | ||
| 1040 | # Collapse FOO_pkg variables into FOO | ||
| 1041 | # | ||
| 1042 | def read_subpkgdata_dict(pkg, d): | ||
| 1043 | import bb | ||
| 1044 | ret = {} | ||
| 1045 | subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
| 1046 | for var in subd: | ||
| 1047 | newvar = var.replace("_" + pkg, "") | ||
| 1048 | ret[newvar] = subd[var] | ||
| 1049 | return ret | ||
| 1050 | |||
| 1051 | # Make sure MACHINE isn't exported | 949 | # Make sure MACHINE isn't exported |
| 1052 | # (breaks binutils at least) | 950 | # (breaks binutils at least) |
| 1053 | MACHINE[unexport] = "1" | 951 | MACHINE[unexport] = "1" |
diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass index 1f136d78ce..2b0c284775 100644 --- a/meta/classes/insane.bbclass +++ b/meta/classes/insane.bbclass | |||
| @@ -439,7 +439,7 @@ def package_qa_check_rdepends(pkg, workdir, d): | |||
| 439 | bb.data.update_data(localdata) | 439 | bb.data.update_data(localdata) |
| 440 | 440 | ||
| 441 | # Now check the RDEPENDS | 441 | # Now check the RDEPENDS |
| 442 | rdepends = explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "") | 442 | rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS', localdata, True) or "") |
| 443 | 443 | ||
| 444 | 444 | ||
| 445 | # Now do the sanity check!!! | 445 | # Now do the sanity check!!! |
diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass index 282315567f..df870142f1 100644 --- a/meta/classes/package.bbclass +++ b/meta/classes/package.bbclass | |||
| @@ -2,6 +2,8 @@ | |||
| 2 | # General packaging help functions | 2 | # General packaging help functions |
| 3 | # | 3 | # |
| 4 | 4 | ||
| 5 | inherit packagedata | ||
| 6 | |||
| 5 | PKGDEST = "${WORKDIR}/install" | 7 | PKGDEST = "${WORKDIR}/install" |
| 6 | 8 | ||
| 7 | def legitimize_package_name(s): | 9 | def legitimize_package_name(s): |
| @@ -208,7 +210,7 @@ def runtime_mapping_rename (varname, d): | |||
| 208 | #bb.note("%s before: %s" % (varname, bb.data.getVar(varname, d, 1))) | 210 | #bb.note("%s before: %s" % (varname, bb.data.getVar(varname, d, 1))) |
| 209 | 211 | ||
| 210 | new_depends = [] | 212 | new_depends = [] |
| 211 | for depend in explode_deps(bb.data.getVar(varname, d, 1) or ""): | 213 | for depend in bb.utils.explode_deps(bb.data.getVar(varname, d, 1) or ""): |
| 212 | # Have to be careful with any version component of the depend | 214 | # Have to be careful with any version component of the depend |
| 213 | split_depend = depend.split(' (') | 215 | split_depend = depend.split(' (') |
| 214 | new_depend = get_package_mapping(split_depend[0].strip(), d) | 216 | new_depend = get_package_mapping(split_depend[0].strip(), d) |
| @@ -438,7 +440,7 @@ python populate_packages () { | |||
| 438 | dangling_links[pkg].append(os.path.normpath(target)) | 440 | dangling_links[pkg].append(os.path.normpath(target)) |
| 439 | 441 | ||
| 440 | for pkg in package_list: | 442 | for pkg in package_list: |
| 441 | rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "") | 443 | rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or "") |
| 442 | for l in dangling_links[pkg]: | 444 | for l in dangling_links[pkg]: |
| 443 | found = False | 445 | found = False |
| 444 | bb.debug(1, "%s contains dangling link %s" % (pkg, l)) | 446 | bb.debug(1, "%s contains dangling link %s" % (pkg, l)) |
| @@ -868,7 +870,7 @@ python package_do_pkgconfig () { | |||
| 868 | python read_shlibdeps () { | 870 | python read_shlibdeps () { |
| 869 | packages = bb.data.getVar('PACKAGES', d, 1).split() | 871 | packages = bb.data.getVar('PACKAGES', d, 1).split() |
| 870 | for pkg in packages: | 872 | for pkg in packages: |
| 871 | rdepends = explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") | 873 | rdepends = bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 0) or bb.data.getVar('RDEPENDS', d, 0) or "") |
| 872 | for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": | 874 | for extension in ".shlibdeps", ".pcdeps", ".clilibdeps": |
| 873 | depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d) | 875 | depsfile = bb.data.expand("${PKGDEST}/" + pkg + extension, d) |
| 874 | if os.access(depsfile, os.R_OK): | 876 | if os.access(depsfile, os.R_OK): |
| @@ -901,7 +903,7 @@ python package_depchains() { | |||
| 901 | def pkg_adddeprrecs(pkg, base, suffix, getname, depends, d): | 903 | def pkg_adddeprrecs(pkg, base, suffix, getname, depends, d): |
| 902 | 904 | ||
| 903 | #bb.note('depends for %s is %s' % (base, depends)) | 905 | #bb.note('depends for %s is %s' % (base, depends)) |
| 904 | rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") | 906 | rreclist = bb.utils.explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") |
| 905 | 907 | ||
| 906 | for depend in depends: | 908 | for depend in depends: |
| 907 | if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'): | 909 | if depend.find('-native') != -1 or depend.find('-cross') != -1 or depend.startswith('virtual/'): |
| @@ -922,7 +924,7 @@ python package_depchains() { | |||
| 922 | def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d): | 924 | def pkg_addrrecs(pkg, base, suffix, getname, rdepends, d): |
| 923 | 925 | ||
| 924 | #bb.note('rdepends for %s is %s' % (base, rdepends)) | 926 | #bb.note('rdepends for %s is %s' % (base, rdepends)) |
| 925 | rreclist = explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") | 927 | rreclist = bb.utils.explode_deps(bb.data.getVar('RRECOMMENDS_' + pkg, d, 1) or bb.data.getVar('RRECOMMENDS', d, 1) or "") |
| 926 | 928 | ||
| 927 | for depend in rdepends: | 929 | for depend in rdepends: |
| 928 | if depend.find('virtual-locale-') != -1: | 930 | if depend.find('virtual-locale-') != -1: |
| @@ -946,15 +948,15 @@ python package_depchains() { | |||
| 946 | list.append(dep) | 948 | list.append(dep) |
| 947 | 949 | ||
| 948 | depends = [] | 950 | depends = [] |
| 949 | for dep in explode_deps(bb.data.getVar('DEPENDS', d, 1) or ""): | 951 | for dep in bb.utils.explode_deps(bb.data.getVar('DEPENDS', d, 1) or ""): |
| 950 | add_dep(depends, dep) | 952 | add_dep(depends, dep) |
| 951 | 953 | ||
| 952 | rdepends = [] | 954 | rdepends = [] |
| 953 | for dep in explode_deps(bb.data.getVar('RDEPENDS', d, 1) or ""): | 955 | for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS', d, 1) or ""): |
| 954 | add_dep(rdepends, dep) | 956 | add_dep(rdepends, dep) |
| 955 | 957 | ||
| 956 | for pkg in packages.split(): | 958 | for pkg in packages.split(): |
| 957 | for dep in explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or ""): | 959 | for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + pkg, d, 1) or ""): |
| 958 | add_dep(rdepends, dep) | 960 | add_dep(rdepends, dep) |
| 959 | 961 | ||
| 960 | #bb.note('rdepends is %s' % rdepends) | 962 | #bb.note('rdepends is %s' % rdepends) |
| @@ -987,7 +989,7 @@ python package_depchains() { | |||
| 987 | pkg_addrrecs(pkg, base, suffix, func, rdepends, d) | 989 | pkg_addrrecs(pkg, base, suffix, func, rdepends, d) |
| 988 | else: | 990 | else: |
| 989 | rdeps = [] | 991 | rdeps = [] |
| 990 | for dep in explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or ""): | 992 | for dep in bb.utils.explode_deps(bb.data.getVar('RDEPENDS_' + base, d, 1) or bb.data.getVar('RDEPENDS', d, 1) or ""): |
| 991 | add_dep(rdeps, dep) | 993 | add_dep(rdeps, dep) |
| 992 | pkg_addrrecs(pkg, base, suffix, func, rdeps, d) | 994 | pkg_addrrecs(pkg, base, suffix, func, rdeps, d) |
| 993 | } | 995 | } |
diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass index 28e67fcc9b..d90939fdb6 100644 --- a/meta/classes/package_deb.bbclass +++ b/meta/classes/package_deb.bbclass | |||
| @@ -194,9 +194,9 @@ python do_package_deb () { | |||
| 194 | 194 | ||
| 195 | bb.build.exec_func("mapping_rename_hook", localdata) | 195 | bb.build.exec_func("mapping_rename_hook", localdata) |
| 196 | 196 | ||
| 197 | rdepends = explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or "")) | 197 | rdepends = bb.utils.explode_deps(unicode(bb.data.getVar("RDEPENDS", localdata, 1) or "")) |
| 198 | rdepends = [dep for dep in rdepends if not '*' in dep] | 198 | rdepends = [dep for dep in rdepends if not '*' in dep] |
| 199 | rrecommends = explode_deps(unicode(bb.data.getVar("RRECOMMENDS", localdata, 1) or "")) | 199 | rrecommends = bb.utils.explode_deps(unicode(bb.data.getVar("RRECOMMENDS", localdata, 1) or "")) |
| 200 | rrecommends = [rec for rec in rrecommends if not '*' in rec] | 200 | rrecommends = [rec for rec in rrecommends if not '*' in rec] |
| 201 | rsuggests = (unicode(bb.data.getVar("RSUGGESTS", localdata, 1) or "")).split() | 201 | rsuggests = (unicode(bb.data.getVar("RSUGGESTS", localdata, 1) or "")).split() |
| 202 | rprovides = (unicode(bb.data.getVar("RPROVIDES", localdata, 1) or "")).split() | 202 | rprovides = (unicode(bb.data.getVar("RPROVIDES", localdata, 1) or "")).split() |
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index c4f53046f5..1aa2c814bb 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass | |||
| @@ -235,8 +235,8 @@ python do_package_ipk () { | |||
| 235 | 235 | ||
| 236 | bb.build.exec_func("mapping_rename_hook", localdata) | 236 | bb.build.exec_func("mapping_rename_hook", localdata) |
| 237 | 237 | ||
| 238 | rdepends = explode_deps(bb.data.getVar("RDEPENDS", localdata, 1) or "") | 238 | rdepends = bb.utils.explode_deps(bb.data.getVar("RDEPENDS", localdata, 1) or "") |
| 239 | rrecommends = explode_deps(bb.data.getVar("RRECOMMENDS", localdata, 1) or "") | 239 | rrecommends = bb.utils.explode_deps(bb.data.getVar("RRECOMMENDS", localdata, 1) or "") |
| 240 | rsuggests = (bb.data.getVar("RSUGGESTS", localdata, 1) or "").split() | 240 | rsuggests = (bb.data.getVar("RSUGGESTS", localdata, 1) or "").split() |
| 241 | rprovides = (bb.data.getVar("RPROVIDES", localdata, 1) or "").split() | 241 | rprovides = (bb.data.getVar("RPROVIDES", localdata, 1) or "").split() |
| 242 | rreplaces = (bb.data.getVar("RREPLACES", localdata, 1) or "").split() | 242 | rreplaces = (bb.data.getVar("RREPLACES", localdata, 1) or "").split() |
diff --git a/meta/classes/packagedata.bbclass b/meta/classes/packagedata.bbclass new file mode 100644 index 0000000000..c9d64d6da2 --- /dev/null +++ b/meta/classes/packagedata.bbclass | |||
| @@ -0,0 +1,82 @@ | |||
| 1 | def packaged(pkg, d): | ||
| 2 | import os, bb | ||
| 3 | return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK) | ||
| 4 | |||
| 5 | def read_pkgdatafile(fn): | ||
| 6 | pkgdata = {} | ||
| 7 | |||
| 8 | def decode(str): | ||
| 9 | import codecs | ||
| 10 | c = codecs.getdecoder("string_escape") | ||
| 11 | return c(str)[0] | ||
| 12 | |||
| 13 | import os | ||
| 14 | if os.access(fn, os.R_OK): | ||
| 15 | import re | ||
| 16 | f = file(fn, 'r') | ||
| 17 | lines = f.readlines() | ||
| 18 | f.close() | ||
| 19 | r = re.compile("([^:]+):\s*(.*)") | ||
| 20 | for l in lines: | ||
| 21 | m = r.match(l) | ||
| 22 | if m: | ||
| 23 | pkgdata[m.group(1)] = decode(m.group(2)) | ||
| 24 | |||
| 25 | return pkgdata | ||
| 26 | |||
| 27 | def get_subpkgedata_fn(pkg, d): | ||
| 28 | import bb, os | ||
| 29 | archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ") | ||
| 30 | archs.reverse() | ||
| 31 | pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d) | ||
| 32 | targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d) | ||
| 33 | for arch in archs: | ||
| 34 | fn = pkgdata + arch + targetdir + pkg | ||
| 35 | if os.path.exists(fn): | ||
| 36 | return fn | ||
| 37 | return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d) | ||
| 38 | |||
| 39 | def has_subpkgdata(pkg, d): | ||
| 40 | import bb, os | ||
| 41 | return os.access(get_subpkgedata_fn(pkg, d), os.R_OK) | ||
| 42 | |||
| 43 | def read_subpkgdata(pkg, d): | ||
| 44 | import bb | ||
| 45 | return read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
| 46 | |||
| 47 | def has_pkgdata(pn, d): | ||
| 48 | import bb, os | ||
| 49 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
| 50 | return os.access(fn, os.R_OK) | ||
| 51 | |||
| 52 | def read_pkgdata(pn, d): | ||
| 53 | import bb | ||
| 54 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
| 55 | return read_pkgdatafile(fn) | ||
| 56 | |||
| 57 | python read_subpackage_metadata () { | ||
| 58 | import bb | ||
| 59 | data = read_pkgdata(bb.data.getVar('PN', d, 1), d) | ||
| 60 | |||
| 61 | for key in data.keys(): | ||
| 62 | bb.data.setVar(key, data[key], d) | ||
| 63 | |||
| 64 | for pkg in bb.data.getVar('PACKAGES', d, 1).split(): | ||
| 65 | sdata = read_subpkgdata(pkg, d) | ||
| 66 | for key in sdata.keys(): | ||
| 67 | bb.data.setVar(key, sdata[key], d) | ||
| 68 | } | ||
| 69 | |||
| 70 | |||
| 71 | # | ||
| 72 | # Collapse FOO_pkg variables into FOO | ||
| 73 | # | ||
| 74 | def read_subpkgdata_dict(pkg, d): | ||
| 75 | import bb | ||
| 76 | ret = {} | ||
| 77 | subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
| 78 | for var in subd: | ||
| 79 | newvar = var.replace("_" + pkg, "") | ||
| 80 | ret[newvar] = subd[var] | ||
| 81 | return ret | ||
| 82 | |||
diff --git a/meta/packages/libidl/libidl-native_0.8.3.bb b/meta/packages/libidl/libidl-native_0.8.12.bb index ce59fd4b86..ce59fd4b86 100644 --- a/meta/packages/libidl/libidl-native_0.8.3.bb +++ b/meta/packages/libidl/libidl-native_0.8.12.bb | |||
diff --git a/meta/packages/libidl/libidl_0.8.3.bb b/meta/packages/libidl/libidl_0.8.12.bb index ac10a2422f..ac10a2422f 100644 --- a/meta/packages/libidl/libidl_0.8.3.bb +++ b/meta/packages/libidl/libidl_0.8.12.bb | |||
