From patchwork Thu Mar 24 16:14:24 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATCHv2] kernel/module-base: Append PR to MACHINE_KERNEL_PR Date: Thu, 24 Mar 2011 16:14:24 -0000 From: Andreas Oberritter X-Patchwork-Id: 1787 Message-Id: <1300983264-16652-1-git-send-email-obi@opendreambox.org> To: openembedded-devel@lists.openembedded.org Cc: Denis Dydychkin Based on http://comments.gmane.org/gmane.comp.handhelds.openembedded/42905 Signed-off-by: Andreas Oberritter CC: Denis Dydychkin CC: Frans Meulenbroeks --- v2: Move code to machine-kernel-pr.bbclass, to avoid duplication and to allow other recipes to inherit it. This is useful for tasks which depend on different kernel modules for different kernel versions, e.g. madwifi-ng for old kernels, but ath5k for new kernels. classes/kernel.bbclass | 7 ++----- classes/machine-kernel-pr.bbclass | 15 +++++++++++++++ classes/module-base.bbclass | 11 ++--------- 3 files changed, 19 insertions(+), 14 deletions(-) create mode 100644 classes/machine-kernel-pr.bbclass diff --git a/classes/kernel.bbclass b/classes/kernel.bbclass index 0109ce6..0187fb3 100644 --- a/classes/kernel.bbclass +++ b/classes/kernel.bbclass @@ -20,13 +20,10 @@ python __anonymous () { image = bb.data.getVar('INITRAMFS_IMAGE', d, True) if image: bb.data.setVar('INITRAMFS_TASK', '${INITRAMFS_IMAGE}:do_rootfs', d) - - machine_kernel_pr = bb.data.getVar('MACHINE_KERNEL_PR', d, True) - - if machine_kernel_pr: - bb.data.setVar('PR', machine_kernel_pr, d) } +inherit machine-kernel-pr + INITRAMFS_IMAGE ?= "" INITRAMFS_TASK ?= "" diff --git a/classes/machine-kernel-pr.bbclass b/classes/machine-kernel-pr.bbclass new file mode 100644 index 0000000..a72a0c0 --- /dev/null +++ b/classes/machine-kernel-pr.bbclass @@ -0,0 +1,15 @@ +# A machine.conf or local.conf can increase MACHINE_KERNEL_PR to force +# rebuilds for kernel and external modules +python __anonymous () { + machine_kernel_pr = bb.data.getVar('MACHINE_KERNEL_PR', d, True) + if machine_kernel_pr: + # Append + # a) .X, if the recipe's PR is rX, or + # b) +${PR}, if the recipe's PR doesn't begin with r + pr = bb.data.getVar('PR', d, True) + if pr.startswith('r'): + suffix = '.' + pr[1:] + else: + suffix = '+' + pr + bb.data.setVar('PR', machine_kernel_pr + suffix, d) +} diff --git a/classes/module-base.bbclass b/classes/module-base.bbclass index 9aaaa4e..1a97955 100644 --- a/classes/module-base.bbclass +++ b/classes/module-base.bbclass @@ -2,18 +2,11 @@ inherit module_strip inherit kernel-arch +inherit machine-kernel-pr + export OS = "${TARGET_OS}" export CROSS_COMPILE = "${TARGET_PREFIX}" -# A machine.conf or local.conf can increase MACHINE_KERNEL_PR to force -# rebuilds for kernel and external modules -python __anonymous () { - machine_kernel_pr = bb.data.getVar('MACHINE_KERNEL_PR', d, True) - - if machine_kernel_pr: - bb.data.setVar('PR', machine_kernel_pr, d) -} - export KERNEL_VERSION = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion')}" export KERNEL_SOURCE = "${@base_read_file('${STAGING_KERNEL_DIR}/kernel-source')}" KERNEL_OBJECT_SUFFIX = "${@[".o", ".ko"][base_read_file('${STAGING_KERNEL_DIR}/kernel-abiversion') > "2.6.0"]}"