diff options
-rw-r--r-- | meta/classes/base.bbclass | 92 | ||||
-rw-r--r-- | meta/classes/ccache.inc | 6 | ||||
-rw-r--r-- | meta/classes/ccdv.bbclass | 12 | ||||
-rw-r--r-- | meta/classes/flow-lossage.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/gettext.bbclass | 18 | ||||
-rw-r--r-- | meta/classes/multimachine.bbclass | 29 | ||||
-rw-r--r-- | meta/classes/update-alternatives.bbclass | 12 | ||||
-rw-r--r-- | meta/classes/update-rc.d.bbclass | 70 |
8 files changed, 132 insertions, 111 deletions
diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass index 299bf7bee2..d8853e5464 100644 --- a/meta/classes/base.bbclass +++ b/meta/classes/base.bbclass | |||
@@ -666,52 +666,56 @@ python read_subpackage_metadata () { | |||
666 | bb.data.setVar(key, sdata[key], d) | 666 | bb.data.setVar(key, sdata[key], d) |
667 | } | 667 | } |
668 | 668 | ||
669 | python __anonymous () { | 669 | def base_after_parse_two(d): |
670 | import exceptions | 670 | import bb |
671 | need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) | 671 | import exceptions |
672 | if need_host: | 672 | need_host = bb.data.getVar('COMPATIBLE_HOST', d, 1) |
673 | import re | 673 | if need_host: |
674 | this_host = bb.data.getVar('HOST_SYS', d, 1) | 674 | import re |
675 | if not re.match(need_host, this_host): | 675 | this_host = bb.data.getVar('HOST_SYS', d, 1) |
676 | raise bb.parse.SkipPackage("incompatible with host %s" % this_host) | 676 | if not re.match(need_host, this_host): |
677 | 677 | raise bb.parse.SkipPackage("incompatible with host %s" % this_host) | |
678 | need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) | 678 | |
679 | if need_machine: | 679 | need_machine = bb.data.getVar('COMPATIBLE_MACHINE', d, 1) |
680 | import re | 680 | if need_machine: |
681 | this_machine = bb.data.getVar('MACHINE', d, 1) | 681 | import re |
682 | if this_machine and not re.match(need_machine, this_machine): | 682 | this_machine = bb.data.getVar('MACHINE', d, 1) |
683 | raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) | 683 | if this_machine and not re.match(need_machine, this_machine): |
684 | 684 | raise bb.parse.SkipPackage("incompatible with machine %s" % this_machine) | |
685 | pn = bb.data.getVar('PN', d, 1) | 685 | |
686 | 686 | pn = bb.data.getVar('PN', d, 1) | |
687 | srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) | 687 | |
688 | if srcdate != None: | 688 | srcdate = bb.data.getVar('SRCDATE_%s' % pn, d, 1) |
689 | bb.data.setVar('SRCDATE', srcdate, d) | 689 | if srcdate != None: |
690 | 690 | bb.data.setVar('SRCDATE', srcdate, d) | |
691 | use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) | 691 | |
692 | if use_nls != None: | 692 | use_nls = bb.data.getVar('USE_NLS_%s' % pn, d, 1) |
693 | bb.data.setVar('USE_NLS', use_nls, d) | 693 | if use_nls != None: |
694 | } | 694 | bb.data.setVar('USE_NLS', use_nls, d) |
695 | |||
696 | def base_after_parse(d): | ||
697 | import bb, os | ||
698 | mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) | ||
699 | old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
700 | if (old_arch == mach_arch): | ||
701 | # Nothing to do | ||
702 | return | ||
703 | if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): | ||
704 | return | ||
705 | paths = [] | ||
706 | for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: | ||
707 | paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) | ||
708 | for s in bb.data.getVar('SRC_URI', d, 1).split(): | ||
709 | local = bb.data.expand(bb.fetch.localpath(s, d), d) | ||
710 | for mp in paths: | ||
711 | if local.startswith(mp): | ||
712 | #bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) | ||
713 | bb.data.setVar('PACKAGE_ARCH', mach_arch, d) | ||
714 | return | ||
695 | 715 | ||
696 | python () { | 716 | python () { |
697 | import bb, os | 717 | base_after_parse_two(d) |
698 | mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1) | 718 | base_after_parse(d) |
699 | old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
700 | if (old_arch == mach_arch): | ||
701 | # Nothing to do | ||
702 | return | ||
703 | if (bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1) == '0'): | ||
704 | return | ||
705 | paths = [] | ||
706 | for p in [ "${FILE_DIRNAME}/${PF}", "${FILE_DIRNAME}/${P}", "${FILE_DIRNAME}/${PN}", "${FILE_DIRNAME}/files", "${FILE_DIRNAME}" ]: | ||
707 | paths.append(bb.data.expand(os.path.join(p, mach_arch), d)) | ||
708 | for s in bb.data.getVar('SRC_URI', d, 1).split(): | ||
709 | local = bb.data.expand(bb.fetch.localpath(s, d), d) | ||
710 | for mp in paths: | ||
711 | if local.startswith(mp): | ||
712 | # bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch)) | ||
713 | bb.data.setVar('PACKAGE_ARCH', mach_arch, d) | ||
714 | return | ||
715 | } | 719 | } |
716 | 720 | ||
717 | # Patch handling | 721 | # Patch handling |
diff --git a/meta/classes/ccache.inc b/meta/classes/ccache.inc index 5e9356104b..d830a1b8fe 100644 --- a/meta/classes/ccache.inc +++ b/meta/classes/ccache.inc | |||
@@ -5,7 +5,7 @@ | |||
5 | CCACHE_DIR_TARGET = "${TMPDIR}/ccache" | 5 | CCACHE_DIR_TARGET = "${TMPDIR}/ccache" |
6 | 6 | ||
7 | python () { | 7 | python () { |
8 | if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d): | 8 | if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d): |
9 | bb.data.setVar('CCACHE_DIR', '${CCACHE_DIR_TARGET}', d) | 9 | bb.data.setVar('CCACHE_DIR', '${CCACHE_DIR_TARGET}', d) |
10 | bb.data.setVarFlag('CCACHE_DIR', 'export', '1', d) | 10 | bb.data.setVarFlag('CCACHE_DIR', 'export', '1', d) |
11 | } | 11 | } |
diff --git a/meta/classes/ccdv.bbclass b/meta/classes/ccdv.bbclass index edd151ef8c..a28ea672e5 100644 --- a/meta/classes/ccdv.bbclass +++ b/meta/classes/ccdv.bbclass | |||
@@ -1,10 +1,10 @@ | |||
1 | python () { | 1 | python () { |
2 | if bb.data.getVar('PN', d, 1) in ['ccdv-native']: | 2 | if bb.data.getVar('PN', d, 1) in ['ccdv-native']: |
3 | if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1): | 3 | if not bb.data.getVar('INHIBIT_DEFAULT_DEPS', d, 1): |
4 | bb.data.setVar("DEPENDS", '%s %s' % ("ccdv-native", bb.data.getVar("DEPENDS", d, 1) or ""), d) | 4 | bb.data.setVar("DEPENDS", '%s %s' % ("ccdv-native", bb.data.getVar("DEPENDS", d, 1) or ""), d) |
5 | bb.data.setVar("CC", '%s %s' % ("ccdv", bb.data.getVar("CC", d, 1) or ""), d) | 5 | bb.data.setVar("CC", '%s %s' % ("ccdv", bb.data.getVar("CC", d, 1) or ""), d) |
6 | bb.data.setVar("BUILD_CC", '%s %s' % ("ccdv", bb.data.getVar("BUILD_CC", d, 1) or ""), d) | 6 | bb.data.setVar("BUILD_CC", '%s %s' % ("ccdv", bb.data.getVar("BUILD_CC", d, 1) or ""), d) |
7 | bb.data.setVar("CCLD", '%s %s' % ("ccdv", bb.data.getVar("CCLD", d, 1) or ""), d) | 7 | bb.data.setVar("CCLD", '%s %s' % ("ccdv", bb.data.getVar("CCLD", d, 1) or ""), d) |
8 | } | 8 | } |
9 | 9 | ||
10 | def quiet_libtool(bb,d): | 10 | def quiet_libtool(bb,d): |
diff --git a/meta/classes/flow-lossage.bbclass b/meta/classes/flow-lossage.bbclass index 3e841e3cae..00e6bf0257 100644 --- a/meta/classes/flow-lossage.bbclass +++ b/meta/classes/flow-lossage.bbclass | |||
@@ -1,5 +1,5 @@ | |||
1 | # gcc-3.4 blows up in gtktext with -frename-registers on arm-linux | 1 | # gcc-3.4 blows up in gtktext with -frename-registers on arm-linux |
2 | python () { | 2 | python () { |
3 | cflags = (bb.data.getVar('CFLAGS', d, 1) or '').replace('-frename-registers', '') | 3 | cflags = (bb.data.getVar('CFLAGS', d, 1) or '').replace('-frename-registers', '') |
4 | bb.data.setVar('CFLAGS', cflags, d) | 4 | bb.data.setVar('CFLAGS', cflags, d) |
5 | } | 5 | } |
diff --git a/meta/classes/gettext.bbclass b/meta/classes/gettext.bbclass index 3785f5acd3..a1e00e72c1 100644 --- a/meta/classes/gettext.bbclass +++ b/meta/classes/gettext.bbclass | |||
@@ -1,11 +1,15 @@ | |||
1 | def gettext_after_parse(d): | ||
2 | import bb | ||
3 | # Remove the NLS bits if USE_NLS is no. | ||
4 | if bb.data.getVar('USE_NLS', d, 1) == 'no': | ||
5 | cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d) | ||
6 | cfg += " --disable-nls" | ||
7 | depends = bb.data.getVar('DEPENDS', d, 1) or "" | ||
8 | bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d) | ||
9 | bb.data.setVar('EXTRA_OECONF', cfg, d) | ||
10 | |||
1 | python () { | 11 | python () { |
2 | # Remove the NLS bits if USE_NLS is no. | 12 | gettext_after_parse(d) |
3 | if bb.data.getVar('USE_NLS', d, 1) == 'no': | ||
4 | cfg = oe_filter_out('^--(dis|en)able-nls$', bb.data.getVar('EXTRA_OECONF', d, 1) or "", d) | ||
5 | cfg += " --disable-nls" | ||
6 | depends = bb.data.getVar('DEPENDS', d, 1) or "" | ||
7 | bb.data.setVar('DEPENDS', oe_filter_out('^(virtual/libiconv|virtual/libintl)$', depends, d), d) | ||
8 | bb.data.setVar('EXTRA_OECONF', cfg, d) | ||
9 | } | 13 | } |
10 | 14 | ||
11 | DEPENDS =+ "gettext-native" | 15 | DEPENDS =+ "gettext-native" |
diff --git a/meta/classes/multimachine.bbclass b/meta/classes/multimachine.bbclass index 4359d6c669..0bd6abe419 100644 --- a/meta/classes/multimachine.bbclass +++ b/meta/classes/multimachine.bbclass | |||
@@ -4,19 +4,24 @@ STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_ARCH}-${TARGET_OS}/kernel" | |||
4 | 4 | ||
5 | # Find any machine specific sub packages and if present, mark the | 5 | # Find any machine specific sub packages and if present, mark the |
6 | # whole package as machine specific for multimachine purposes. | 6 | # whole package as machine specific for multimachine purposes. |
7 | python __anonymous () { | ||
8 | packages = bb.data.getVar('PACKAGES', d, 1).split() | ||
9 | macharch = bb.data.getVar('MACHINE_ARCH', d, 1) | ||
10 | multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
11 | 7 | ||
12 | for pkg in packages: | 8 | def multi_machine_after_parse(d): |
13 | pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1) | 9 | import bb |
10 | packages = bb.data.getVar('PACKAGES', d, 1).split() | ||
11 | macharch = bb.data.getVar('MACHINE_ARCH', d, 1) | ||
12 | multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1) | ||
13 | |||
14 | for pkg in packages: | ||
15 | pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1) | ||
14 | 16 | ||
15 | # We could look for != PACKAGE_ARCH here but how to choose | 17 | # We could look for != PACKAGE_ARCH here but how to choose |
16 | # if multiple differences are present? | 18 | # if multiple differences are present? |
17 | # Look through PACKAGE_ARCHS for the priority order? | 19 | # Look through PACKAGE_ARCHS for the priority order? |
18 | if pkgarch and pkgarch == macharch: | 20 | if pkgarch and pkgarch == macharch: |
19 | multiarch = macharch | 21 | multiarch = macharch |
20 | 22 | ||
21 | bb.data.setVar('MULTIMACH_ARCH', multiarch, d) | 23 | bb.data.setVar('MULTIMACH_ARCH', multiarch, d) |
24 | |||
25 | python __anonymous () { | ||
26 | multi_machine_after_parse(d) | ||
22 | } | 27 | } |
diff --git a/meta/classes/update-alternatives.bbclass b/meta/classes/update-alternatives.bbclass index 6b2b547d5f..c63581c5d1 100644 --- a/meta/classes/update-alternatives.bbclass +++ b/meta/classes/update-alternatives.bbclass | |||
@@ -10,11 +10,15 @@ update_alternatives_postrm() { | |||
10 | update-alternatives --remove ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH} | 10 | update-alternatives --remove ${ALTERNATIVE_NAME} ${ALTERNATIVE_PATH} |
11 | } | 11 | } |
12 | 12 | ||
13 | def update_alternatives_after_parse(d): | ||
14 | import bb | ||
15 | if bb.data.getVar('ALTERNATIVE_NAME', d) == None: | ||
16 | raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_NAME" % bb.data.getVar('FILE', d) | ||
17 | if bb.data.getVar('ALTERNATIVE_PATH', d) == None: | ||
18 | raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_PATH" % bb.data.getVar('FILE', d) | ||
19 | |||
13 | python __anonymous() { | 20 | python __anonymous() { |
14 | if bb.data.getVar('ALTERNATIVE_NAME', d) == None: | 21 | update_alternatives_after_parse(d) |
15 | raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_NAME" % bb.data.getVar('FILE', d) | ||
16 | if bb.data.getVar('ALTERNATIVE_PATH', d) == None: | ||
17 | raise bb.build.FuncFailed, "%s inherits update-alternatives but doesn't set ALTERNATIVE_PATH" % bb.data.getVar('FILE', d) | ||
18 | } | 22 | } |
19 | 23 | ||
20 | python populate_packages_prepend () { | 24 | python populate_packages_prepend () { |
diff --git a/meta/classes/update-rc.d.bbclass b/meta/classes/update-rc.d.bbclass index 0bfba467c1..df0d62c2c5 100644 --- a/meta/classes/update-rc.d.bbclass +++ b/meta/classes/update-rc.d.bbclass | |||
@@ -26,44 +26,48 @@ updatercd_postrm() { | |||
26 | update-rc.d $D ${INITSCRIPT_NAME} remove | 26 | update-rc.d $D ${INITSCRIPT_NAME} remove |
27 | } | 27 | } |
28 | 28 | ||
29 | def update_rc_after_parse(d): | ||
30 | import bb | ||
31 | if bb.data.getVar('INITSCRIPT_PACKAGES', d) == None: | ||
32 | if bb.data.getVar('INITSCRIPT_NAME', d) == None: | ||
33 | raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % bb.data.getVar('FILE', d) | ||
34 | if bb.data.getVar('INITSCRIPT_PARAMS', d) == None: | ||
35 | raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % bb.data.getVar('FILE', d) | ||
36 | |||
29 | python __anonymous() { | 37 | python __anonymous() { |
30 | if bb.data.getVar('INITSCRIPT_PACKAGES', d) == None: | 38 | update_rc_after_parse(d) |
31 | if bb.data.getVar('INITSCRIPT_NAME', d) == None: | ||
32 | raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_NAME" % bb.data.getVar('FILE', d) | ||
33 | if bb.data.getVar('INITSCRIPT_PARAMS', d) == None: | ||
34 | raise bb.build.FuncFailed, "%s inherits update-rc.d but doesn't set INITSCRIPT_PARAMS" % bb.data.getVar('FILE', d) | ||
35 | } | 39 | } |
36 | 40 | ||
37 | python populate_packages_prepend () { | 41 | python populate_packages_prepend () { |
38 | def update_rcd_package(pkg): | 42 | def update_rcd_package(pkg): |
39 | bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg) | 43 | bb.debug(1, 'adding update-rc.d calls to postinst/postrm for %s' % pkg) |
40 | localdata = bb.data.createCopy(d) | 44 | localdata = bb.data.createCopy(d) |
41 | overrides = bb.data.getVar("OVERRIDES", localdata, 1) | 45 | overrides = bb.data.getVar("OVERRIDES", localdata, 1) |
42 | bb.data.setVar("OVERRIDES", "%s:%s" % (pkg, overrides), localdata) | 46 | bb.data.setVar("OVERRIDES", "%s:%s" % (pkg, overrides), localdata) |
43 | bb.data.update_data(localdata) | 47 | bb.data.update_data(localdata) |
44 | 48 | ||
45 | postinst = bb.data.getVar('pkg_postinst', localdata, 1) | 49 | postinst = bb.data.getVar('pkg_postinst', localdata, 1) |
46 | if not postinst: | 50 | if not postinst: |
47 | postinst = '#!/bin/sh\n' | 51 | postinst = '#!/bin/sh\n' |
48 | postinst += bb.data.getVar('updatercd_postinst', localdata, 1) | 52 | postinst += bb.data.getVar('updatercd_postinst', localdata, 1) |
49 | bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) | 53 | bb.data.setVar('pkg_postinst_%s' % pkg, postinst, d) |
50 | prerm = bb.data.getVar('pkg_prerm', localdata, 1) | 54 | prerm = bb.data.getVar('pkg_prerm', localdata, 1) |
51 | if not prerm: | 55 | if not prerm: |
52 | prerm = '#!/bin/sh\n' | 56 | prerm = '#!/bin/sh\n' |
53 | prerm += bb.data.getVar('updatercd_prerm', localdata, 1) | 57 | prerm += bb.data.getVar('updatercd_prerm', localdata, 1) |
54 | bb.data.setVar('pkg_prerm_%s' % pkg, prerm, d) | 58 | bb.data.setVar('pkg_prerm_%s' % pkg, prerm, d) |
55 | postrm = bb.data.getVar('pkg_postrm', localdata, 1) | 59 | postrm = bb.data.getVar('pkg_postrm', localdata, 1) |
56 | if not postrm: | 60 | if not postrm: |
57 | postrm = '#!/bin/sh\n' | 61 | postrm = '#!/bin/sh\n' |
58 | postrm += bb.data.getVar('updatercd_postrm', localdata, 1) | 62 | postrm += bb.data.getVar('updatercd_postrm', localdata, 1) |
59 | bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d) | 63 | bb.data.setVar('pkg_postrm_%s' % pkg, postrm, d) |
60 | 64 | ||
61 | pkgs = bb.data.getVar('INITSCRIPT_PACKAGES', d, 1) | 65 | pkgs = bb.data.getVar('INITSCRIPT_PACKAGES', d, 1) |
62 | if pkgs == None: | 66 | if pkgs == None: |
63 | pkgs = bb.data.getVar('PN', d, 1) | 67 | pkgs = bb.data.getVar('PN', d, 1) |
64 | packages = (bb.data.getVar('PACKAGES', d, 1) or "").split() | 68 | packages = (bb.data.getVar('PACKAGES', d, 1) or "").split() |
65 | if not pkgs in packages and packages != []: | 69 | if not pkgs in packages and packages != []: |
66 | pkgs = packages[0] | 70 | pkgs = packages[0] |
67 | for pkg in pkgs.split(): | 71 | for pkg in pkgs.split(): |
68 | update_rcd_package(pkg) | 72 | update_rcd_package(pkg) |
69 | } | 73 | } |