Patchwork [1/1] linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE

login
register
mail settings
Submitter Joshua Lock
Date Jan. 25, 2012, 11:05 p.m.
Message ID <f00a625276ad52a6a80e9b23e4cefa382c83f306.1327532550.git.josh@linux.intel.com>
Download mbox | patch
Permalink /patch/20167/
State New
Headers show

Comments

Joshua Lock - Jan. 25, 2012, 11:05 p.m.
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]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 meta/recipes-kernel/linux/linux-tools.inc       |   27 +++++++++++++++-------
 meta/recipes-kernel/linux/linux-yocto_2.6.37.bb |    2 +-
 meta/recipes-kernel/linux/linux-yocto_3.0.bb    |    2 +-
 3 files changed, 20 insertions(+), 11 deletions(-)
Khem Raj - Jan. 25, 2012, 11:55 p.m.
On Wed, Jan 25, 2012 at 3:05 PM, Joshua Lock <josh@linux.intel.com> wrote:
> -PERFDEPENDS_libc-uclibc = ""
>  PERFRDEPENDS = "python perl elfutils"
> -PERFRDEPENDS_libc-uclibc = ""

now how will PERFDEPENDS be cleared for uclibc ?
Joshua Lock - Jan. 26, 2012, 1:10 a.m.
On 25/01/12 15:55, Khem Raj wrote:
> On Wed, Jan 25, 2012 at 3:05 PM, Joshua Lock<josh@linux.intel.com>  wrote:
>> -PERFDEPENDS_libc-uclibc = ""
>>   PERFRDEPENDS = "python perl elfutils"
>> -PERFRDEPENDS_libc-uclibc = ""
>
> now how will PERFDEPENDS be cleared for uclibc ?

Whoops, little over zealous there... Updated patch in the same place.

Cheers,
Joshua

Patch

diff --git a/meta/recipes-kernel/linux/linux-tools.inc b/meta/recipes-kernel/linux/linux-tools.inc
index aa45dba..9b06495 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
 }
 
 
@@ -23,8 +33,7 @@  do_compile_perf[umask] = 022
 do_install_perf[umask] = 022
 
 PERFDEPENDS = "virtual/${MLPREFIX}libc:do_populate_sysroot ${MLPREFIX}elfutils:do_populate_sysroot ${MLPREFIX}binutils:do_populate_sysroot"
-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 34e563c..ce71393 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"
diff --git a/meta/recipes-kernel/linux/linux-yocto_3.0.bb b/meta/recipes-kernel/linux/linux-yocto_3.0.bb
index 10859e7..9d51bd0 100644
--- a/meta/recipes-kernel/linux/linux-yocto_3.0.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_3.0.bb
@@ -21,7 +21,7 @@  SRCREV_machine_qemux86-64 ?= "3551fd0412965b1f6b0b2f6ba35f7fecdaddb58a"
 SRCREV_machine ?= "6f5b11830deba4a6262c8c4abf67e608924f649e"
 SRCREV_meta ?= "665fea1c249b4f335cb1c9a46a9f2c138d611f1a"
 
-PR = "r2"
+PR = "r3"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta"