Don't add binutils to images when GPLv3 in INCOMPATIBLE_LICENSE v2
cover Don't add binutils to images when GPLv3 in INCOMPATIBLE_LICENSE v2
This second version has slightly tidier code per Richard's suggestions.
Cheers,
Joshua
The following changes since commit 746e8ffa66850bf9050cd6baf94eb76c492eb535:
uclibc-git: Update to latest RC (2012-01-25 14:33:52 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib josh/stuff
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=josh/stuff
Joshua Lock (1):
linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE
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(-)
Signature · 1 line
1.7.7.6
PATCH 1/1 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]
--- 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(-)
meta/recipes-kernel/linux/linux-tools.inc +18 -9
@@ -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}"
meta/recipes-kernel/linux/linux-yocto_2.6.37.bb +1 -1
@@ -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"
meta/recipes-kernel/linux/linux-yocto_3.0.bb +1 -1
@@ -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"
Signature · 1 line
1.7.7.6
Re: [PATCH 1/1] linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE
Quoted 3 lines · Joshua Lock
-PERFDEPENDS_libc-uclibc = ""
PERFRDEPENDS = "python perl elfutils"
-PERFRDEPENDS_libc-uclibc = ""
now how will PERFDEPENDS be cleared for uclibc ?
Re: [PATCH 1/1] linux-tools: don't build perf when GPLv3 in INCOMPATIBLE_LICENSE
Quoted 6 lines · Khem Raj
meta/recipes-kernel/linux/linux-tools.inc do_compile_perf[umask] = 022 · line 28
Quoted 3 lines · Joshua Lock
meta/recipes-kernel/linux/linux-tools.inc +0
-2-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
Signature · 3 lines
Joshua Lock
Yocto Project "Johannes factotum"
Intel Open Source Technology CentreQuoted 13 lines · Joshua Lock
This second version has slightly tidier code per Richard's suggestions.
Cheers,
JoshuaThe following changes since commit
746e8ffa66850bf9050cd6baf94eb76c492eb535:uclibc-git: Update to latest RC (2012-01-25 14:33:52 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contribjosh/stuff
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=josh/stuff
Quoted 7 lines
Joshua Lock (1):
linux-tools: don't build perf when GPLv3 inINCOMPATIBLE_LICENSEmeta/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(-)
Updated version merged to master, thanks.
Richard