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 5f83af1fa3..1f280a0dc5 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -935,108 +935,6 @@ addtask build after do_populate_staging | |||
935 | do_build = "" | 935 | do_build = "" |
936 | do_build[func] = "1" | 936 | do_build[func] = "1" |
937 | 937 | ||
938 | # Functions that update metadata based on files outputted | ||
939 | # during the build process. | ||
940 | |||
941 | def explode_deps(s): | ||
942 | r = [] | ||
943 | l = s.split() | ||
944 | flag = False | ||
945 | for i in l: | ||
946 | if i[0] == '(': | ||
947 | flag = True | ||
948 | j = [] | ||
949 | if flag: | ||
950 | j.append(i) | ||
951 | if i.endswith(')'): | ||
952 | flag = False | ||
953 | r[-1] += ' ' + ' '.join(j) | ||
954 | else: | ||
955 | r.append(i) | ||
956 | return r | ||
957 | |||
958 | def packaged(pkg, d): | ||
959 | import os, bb | ||
960 | return os.access(get_subpkgedata_fn(pkg, d) + '.packaged', os.R_OK) | ||
961 | |||
962 | def read_pkgdatafile(fn): | ||
963 | pkgdata = {} | ||
964 | |||
965 | def decode(str): | ||
966 | import codecs | ||
967 | c = codecs.getdecoder("string_escape") | ||
968 | return c(str)[0] | ||
969 | |||
970 | import os | ||
971 | if os.access(fn, os.R_OK): | ||
972 | import re | ||
973 | f = file(fn, 'r') | ||
974 | lines = f.readlines() | ||
975 | f.close() | ||
976 | r = re.compile("([^:]+):\s*(.*)") | ||
977 | for l in lines: | ||
978 | m = r.match(l) | ||
979 | if m: | ||
980 | pkgdata[m.group(1)] = decode(m.group(2)) | ||
981 | |||
982 | return pkgdata | ||
983 | |||
984 | def get_subpkgedata_fn(pkg, d): | ||
985 | import bb, os | ||
986 | archs = bb.data.expand("${PACKAGE_ARCHS}", d).split(" ") | ||
987 | archs.reverse() | ||
988 | pkgdata = bb.data.expand('${TMPDIR}/pkgdata/', d) | ||
989 | targetdir = bb.data.expand('${TARGET_VENDOR}-${TARGET_OS}/runtime/', d) | ||
990 | for arch in archs: | ||
991 | fn = pkgdata + arch + targetdir + pkg | ||
992 | if os.path.exists(fn): | ||
993 | return fn | ||
994 | return bb.data.expand('${PKGDATA_DIR}/runtime/%s' % pkg, d) | ||
995 | |||
996 | def has_subpkgdata(pkg, d): | ||
997 | import bb, os | ||
998 | return os.access(get_subpkgedata_fn(pkg, d), os.R_OK) | ||
999 | |||
1000 | def read_subpkgdata(pkg, d): | ||
1001 | import bb | ||
1002 | return read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
1003 | |||
1004 | def has_pkgdata(pn, d): | ||
1005 | import bb, os | ||
1006 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
1007 | return os.access(fn, os.R_OK) | ||
1008 | |||
1009 | def read_pkgdata(pn, d): | ||
1010 | import bb | ||
1011 | fn = bb.data.expand('${PKGDATA_DIR}/%s' % pn, d) | ||
1012 | return read_pkgdatafile(fn) | ||
1013 | |||
1014 | python read_subpackage_metadata () { | ||
1015 | import bb | ||
1016 | data = read_pkgdata(bb.data.getVar('PN', d, 1), d) | ||
1017 | |||
1018 | for key in data.keys(): | ||
1019 | bb.data.setVar(key, data[key], d) | ||
1020 | |||
1021 | for pkg in bb.data.getVar('PACKAGES', d, 1).split(): | ||
1022 | sdata = read_subpkgdata(pkg, d) | ||
1023 | for key in sdata.keys(): | ||
1024 | bb.data.setVar(key, sdata[key], d) | ||
1025 | } | ||
1026 | |||
1027 | |||
1028 | # | ||
1029 | # Collapse FOO_pkg variables into FOO | ||
1030 | # | ||
1031 | def read_subpkgdata_dict(pkg, d): | ||
1032 | import bb | ||
1033 | ret = {} | ||
1034 | subd = read_pkgdatafile(get_subpkgedata_fn(pkg, d)) | ||
1035 | for var in subd: | ||
1036 | newvar = var.replace("_" + pkg, "") | ||
1037 | ret[newvar] = subd[var] | ||
1038 | return ret | ||
1039 | |||
1040 | # Make sure MACHINE isn't exported | 938 | # Make sure MACHINE isn't exported |
1041 | # (breaks binutils at least) | 939 | # (breaks binutils at least) |
1042 | MACHINE[unexport] = "1" | 940 | 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 a714b08225..fa53b1358c 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 | |||