From 8c1a2fae9a64790f709c4b7d83d353474e93f390 Mon Sep 17 00:00:00 2001 From: Joshua Lock Date: Tue, 24 Jan 2012 14:10:30 -0800 Subject: linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE As binutils is required by perf to build and is GPLv3 licensed adding GPLv3 to INCOMPATIBLE_LICENSE will cause linux-yocto to be skipped. Long term we should look at moving perf to a separate recipe but as a short term solution this patch will ensure that when GPLv3 is in INCOMPATIBLE_LICENSE perf is not built and it's dependencies are not added to build. Fixes [YOCTO #1879] (From OE-Core rev: ce61f9031b54067bffa304dab90c31278631dcdf) Signed-off-by: Joshua Lock Signed-off-by: Richard Purdie --- meta/recipes-kernel/linux/linux-tools.inc | 25 ++++++++++++++++++------- meta/recipes-kernel/linux/linux-yocto_2.6.37.bb | 2 +- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc index aa45dba306..b667421fb1 100644 --- a/meta/recipes-kernel/linux/linux-tools.inc +++ b/meta/recipes-kernel/linux/linux-tools.inc @@ -1,17 +1,27 @@ # included by kernel recipes if they want to build/provide # perf functionality from their tree. -do_compile_perf_libc-uclibc () { - : -} -do_install_perf_libc-uclibc () { - : + +BUILDPERF = "yes" +BUILDPERF_libc-uclibc = "no" +# perf requires binutils which is GPLv3 licensed, don't prevent the entire kernel +# being built if GPLv3 is in INCOMPATIBLE_LICENSE +python () { + if ((d.getVar("INCOMPATIBLE_LICENSE", True) or "").find("GPLv3") != -1): + # GPLv3, drop perf + d.setVar("BUILDPERF", "no") + d.setVar("PERFDEPENDS", "") } -do_compile_perf() { + +do_compile_perf () { + if [ "${BUILDPERF}" = "yes" ]; then oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} NO_NEWT=1 NO_DWARF=1 + fi } -fakeroot do_install_perf() { +fakeroot do_install_perf () { + if [ "${BUILDPERF}" = "yes" ]; then oe_runmake -C ${S}/tools/perf CC="${CC}" LD="${LD}" prefix=${prefix} DESTDIR=${D} install NO_NEWT=1 NO_DWARF=1 + fi } @@ -26,5 +36,6 @@ PERFDEPENDS = "virtual/${MLPREFIX}libc:do_populate_sysroot ${MLPREFIX}elfutils:d PERFDEPENDS_libc-uclibc = "" PERFRDEPENDS = "python perl elfutils" PERFRDEPENDS_libc-uclibc = "" + do_compile_perf[depends] = "${PERFDEPENDS}" RDEPENDS_perf += "${PERFRDEPENDS}" diff --git a/meta/recipes-kernel/linux/linux-yocto_2.6.37.bb b/meta/recipes-kernel/linux/linux-yocto_2.6.37.bb index 34e563cffd..ce7139352c 100644 --- a/meta/recipes-kernel/linux/linux-yocto_2.6.37.bb +++ b/meta/recipes-kernel/linux/linux-yocto_2.6.37.bb @@ -20,7 +20,7 @@ SRCREV_machine_qemux86-64 = "af2bfbe5f757361b5b027a24d67a93bfdfaaf33c" SRCREV_machine = "4ae8f8605c81c39b959948e23f7123294a5dfb3f" SRCREV_meta = "aeea99683c7283f1f3320bf2ee7085ee252d4e7e" -PR = "r21" +PR = "r22" PV = "${LINUX_VERSION}+git${SRCPV}" SRC_URI = "git://git.yoctoproject.org/linux-yocto-2.6.37;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta" -- cgit 1.2.3-korg