linux-yocto: consolidated pull request
cover linux-yocto: consolidated pull request
Richard/Saul,
Here's the latest consolidated kernel pull request. The patches are as follows:
3/3 is the kernel updates:
- v3.0.23 stable update
- v3.2.9 stable update
- 3.0/3.2: fri2 updates (pch + configuration changes) from Darren Hart
- 3.0: pvr merge from Kishore Bodke
- linux-yocto/rt: update to 3.0.23-rt38
- linux-yocto/rt: update to 3.2.9-rt15
These have been built for all qemu targets, and built for the appropriate hardware platforms.
2/3 is the switch to use the 'bareclone' option that I had previously sent to be added to bitbake. Using this, the management of the linux-yocto branches in the build directory is much easier, and it removes the remaining restrictions around bare vs non-bare clones.
1/3 is linux-yocto: respect FILESPATH directories. This came from debugging the patching issues found with the linux-korg recipe. The solution (outside of re-writing the entire routine to python .. which I will do shortly) was to add a new routine that returns both the absolute patch source and the url's subdirectory. Using this all patches in WORKDIR, regardless of where they are on FILESPATH can be found. I tested linux-korg, and patching of all the kernels with this in place.
All three changes are isolated, so you can pick them up in any order that makes sense.
Cheers,
Bruce
The following changes since commit a439d32dd843d10a9f65cc858b02422fac7deb50:
soc-family.inc: to be included in machine.conf to add SOC_FAMILY to MACHINEOVERRIDE (2012-03-04 05:41:11 -0800)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib zedd/kernel-oe
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-oe
Bruce Ashfield (3):
linux-yocto: respect FILESPATH directories
linux-yocto: use bareclone option
linux-yocto: v3.2.9, v3.0.23 + fixes and updates
meta/classes/kernel-yocto.bbclass | 30 ++++++++++++++++++--- meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 12 ++++---- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 13 ++++----- meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb | 10 +++--- meta/recipes-kernel/linux/linux-yocto_2.6.37.bb | 4 +- meta/recipes-kernel/linux/linux-yocto_3.0.bb | 20 +++++++------- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 21 +++++++------- 7 files changed, 65 insertions(+), 45 deletions(-)
Signature · 1 line
1.7.4.1
PATCH 1/3 linux-yocto: respect FILESPATH directories
During the work to enhance the ability to specify out of tree kernel features, an assumption was made about PN being part of a patch path. This assumption is incorrect, since patches can be anywhere in the valid FILESPATH.
To make locating the patches in WORKDIR simple, we can just query patch.bbclass and return both the absolute directory of the patch and the subdirectory as it was specified on the src_uri.
--- meta/classes/kernel-yocto.bbclass | 30 ++++++++++++++++++++++++++---- 1 files changed, 26 insertions(+), 4 deletions(-)
meta/classes/kernel-yocto.bbclass +26 -4
@@ -1,6 +1,8 @@ S = "${WORKDIR}/linux" +# returns local (absolute) path names for all valid patches in the +# src_uri def find_patches(d): patches=src_patches(d) patch_list=[]
@@ -10,6 +12,7 @@ def find_patches(d): return patch_list +# returns all the elements from the src uri that are .scc files def find_sccs(d): sources=src_patches(d, True) sources_list=[]
@@ -20,6 +23,22 @@ def find_sccs(d): return sources_list +# this is different from find_patches, in that it returns a colon separated +# list of <patches>:<subdir> instead of just a list of patches +def find_urls(d): + patches=src_patches(d) + fetch = bb.fetch2.Fetch([], d) + patch_list=[] + for p in patches: + _, _, local, _, _, _ = bb.decodeurl(p) + for url in fetch.urls: + urldata = fetch.ud[url] + if urldata.localpath == local: + patch_list.append(local+':'+urldata.path) + + return patch_list + + do_patch() { cd ${S} if [ -f ${WORKDIR}/defconfig ]; then
@@ -51,8 +70,8 @@ do_patch() { exit 1 fi - patches="${@" ".join(find_patches(d))}" sccs="${@" ".join(find_sccs(d))}" + patches_and_dirs="${@" ".join(find_urls(d))}" # This loops through all patches, and looks for directories that do # not already have feature descriptions. If a directory doesn't have
@@ -66,14 +85,16 @@ do_patch() { # to be repeated on the SRC_URI line .. which is more intutive set +e patch_dirs= - for p in ${patches}; do + for pp in ${patches_and_dirs}; do + p=`echo $pp | cut -f1 -d:` + wp=`echo $pp | cut -f2 -d:` pdir=`dirname ${p}` pname=`basename ${p}` scc=`find ${pdir} -maxdepth 1 -name '*.scc'` if [ -z "${scc}" ]; then # there is no scc file. We need to switch to someplace that we know # we can create content (the workdir) - workdir_subdir=`echo ${pdir} | sed "s%^.*/${PN}%%" | sed 's%^/%%'` + workdir_subdir=`dirname ${wp}` suggested_dir="${WORKDIR}/${workdir_subdir}" echo ${gen_feature_dirs} | grep -q ${suggested_dir} if [ $? -ne 0 ]; then
@@ -82,7 +103,8 @@ do_patch() { # we call the file *.scc_tmp, so the test above will continue to find # that patches from a common subdirectory don't have a scc file and # they'll be placed in order, into this file. We'll rename it later. - echo "patch ${pname}" >> ${suggested_dir}/gen_${workdir_subdir}_desc.scc_tmp + gen_feature_name="gen_`echo ${workdir_subdir} | sed 's%/%%g'`_desc.scc_tmp" + echo "patch ${pname}" >> ${WORKDIR}/${workdir_subdir}/${gen_feature_name} else suggested_dir="${pdir}" fi
Signature · 1 line
1.7.4.1
PATCH 2/3 linux-yocto: use bareclone option
In reply to Bruce AshfieldInstead of specifying nocheckout=1, it provides a better workflow if the linux-yocto recipes use the new bareclone=1 option to get a mirrored copy of the source repository. This allows all local and remote branches to be available during the kernel build and development cycle.
--- meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto_2.6.37.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto_3.0.bb | 4 ++-- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb +2 -2
@@ -18,10 +18,10 @@ SRCREV_machine ?= "03705f7f066d83b4cd3a6088781d47e3b9e45b71" SRCREV_machine_qemuppc ?= "c8b184e8171f6f5a8017be4c5bf1e7a38c3f3002" SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" -PR = "r1" +PR = "r2" PV = "${LINUX_VERSION}+git${SRCPV}" -SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0.git;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0.git;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" # Omit broken machines from COMPATIBLE_MACHINE # qemuppc hangs at boot
meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb +2 -2
@@ -19,10 +19,10 @@ SRCREV_machine_qemuppc ?= "470deb222a704f84f3acf3a013a19d2da399d511" SRCREV_meta ?= "4c648bbbc7d2204d1b24f444aebb10f91c4ecae3" -PR = "r0" +PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}" -SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.2.git;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.2.git;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" # Omit broken machines from COMPATIBLE_MACHINE # qemuppc hangs at boot
meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb +2 -2
@@ -10,10 +10,10 @@ LINUX_VERSION ?= "3.0.22" SRCREV_machine ?= "c578f3a1f357142a6e02a1df4ae9aa16f45094d6" SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" -PR = "r1" +PR = "r2" 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 \ +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta \ file://core.cfg \ file://serial.cfg \ file://ext2.cfg \
meta/recipes-kernel/linux/linux-yocto_2.6.37.bb +2 -2
@@ -20,10 +20,10 @@ SRCREV_machine_qemux86-64 = "af2bfbe5f757361b5b027a24d67a93bfdfaaf33c" SRCREV_machine = "4ae8f8605c81c39b959948e23f7123294a5dfb3f" SRCREV_meta = "aeea99683c7283f1f3320bf2ee7085ee252d4e7e" -PR = "r22" +PR = "r23" 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" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-2.6.37;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
meta/recipes-kernel/linux/linux-yocto_3.0.bb +2 -2
@@ -20,10 +20,10 @@ SRCREV_machine_qemux86-64 ?= "14fe1742198bd5a85fbcf6e53d336838ff87b2ef" SRCREV_machine ?= "c578f3a1f357142a6e02a1df4ae9aa16f45094d6" SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" -PR = "r3" +PR = "r4" 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" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.0;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
meta/recipes-kernel/linux/linux-yocto_3.2.bb +2 -2
@@ -26,10 +26,10 @@ SRCREV_machine_qemux86-64 ?= "f54af84c64408a0259a919d1fd2405c0115c0a0b" SRCREV_machine ?= "21ab5dca134a6bf1316aa59f69f9ee9e091d5702" SRCREV_meta ?= "4c648bbbc7d2204d1b24f444aebb10f91c4ecae3" -PR = "r0" +PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}" -SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.2;protocol=git;nocheckout=1;branch=${KBRANCH},meta;name=machine,meta" +SRC_URI = "git://git.yoctoproject.org/linux-yocto-3.2;protocol=git;bareclone=1;branch=${KBRANCH},meta;name=machine,meta" COMPATIBLE_MACHINE = "(qemuarm|qemux86|qemuppc|qemumips|qemux86-64)"
Signature · 1 line
1.7.4.1
PATCH 3/3 linux-yocto: v3.2.9, v3.0.23 + fixes and updates
In reply to Bruce AshfieldThis is an update of the linux-yocto 3.0 and 3.2 SRCREVs to bring in the following updates:
- v3.0.23 stable update
- v3.2.9 stable update
- 3.0/3.2: fri2 updates (pch + configuration changes) from Darren Hart
- 3.0: pvr merge from Kishore Bodke
- linux-yocto/rt: update to 3.0.23-rt38
- linux-yocto/rt: update to 3.2.9-rt15
These have been built for all qemu targets, and built for the appropriate hardware platforms.
--- meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 8 ++++---- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 9 ++++----- meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb | 6 +++--- meta/recipes-kernel/linux/linux-yocto_3.0.bb | 18 +++++++++--------- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 19 +++++++++---------- 5 files changed, 29 insertions(+), 31 deletions(-)
meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb +4 -4
@@ -11,12 +11,12 @@ KMACHINE_qemumips = "mti-malta32-be" KBRANCH = "yocto/standard/preempt-rt/base" KBRANCH_qemuppc = "yocto/standard/preempt-rt/qemu-ppc32" -LINUX_VERSION ?= "3.0.22" +LINUX_VERSION ?= "3.0.23" LINUX_KERNEL_TYPE = "preempt-rt" -SRCREV_machine ?= "03705f7f066d83b4cd3a6088781d47e3b9e45b71" -SRCREV_machine_qemuppc ?= "c8b184e8171f6f5a8017be4c5bf1e7a38c3f3002" -SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" +SRCREV_machine ?= "49d1d57f98a9ac378a1f12f5d23301c11495a5df" +SRCREV_machine_qemuppc ?= "7b3162e269c49c6a4653d43292c62c188add8d67" +SRCREV_meta ?= "e559129b4a6f39f68b75141096b2d516cf7a7f35" PR = "r2" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb +4 -5
@@ -11,13 +11,12 @@ KMACHINE_qemumips = "mti-malta32-be" KBRANCH = "standard/preempt-rt/base" KBRANCH_qemuppc = "standard/preempt-rt/qemu-ppc32" -LINUX_VERSION ?= "3.2.8" +LINUX_VERSION ?= "3.2.9" LINUX_KERNEL_TYPE = "preempt-rt" -SRCREV_machine ?= "6ab03c43328172425a6f632bff694a8da6c99f0e" -SRCREV_machine_qemuppc ?= "470deb222a704f84f3acf3a013a19d2da399d511" -SRCREV_meta ?= "4c648bbbc7d2204d1b24f444aebb10f91c4ecae3" - +SRCREV_machine ?= "3652b606f1ab7769a7ecc86c70d22db4ef99fb2a" +SRCREV_machine_qemuppc ?= "0c8f5214bc15699b41369751cdecea45f717c79c" +SRCREV_meta ?= "fa83c7b0b47d1aa3e25594ddbcd125a1108d3aaa" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb +3 -3
@@ -5,10 +5,10 @@ require recipes-kernel/linux/linux-yocto.inc KMACHINE = "yocto/standard/base" KBRANCH = "${KMACHINE}" -LINUX_VERSION ?= "3.0.22" +LINUX_VERSION ?= "3.0.23" -SRCREV_machine ?= "c578f3a1f357142a6e02a1df4ae9aa16f45094d6" -SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" +SRCREV_machine ?= "8fd24b3570ab995848e4123ef13bac64e2c924be" +SRCREV_meta ?= "e559129b4a6f39f68b75141096b2d516cf7a7f35" PR = "r2" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.0.bb +9 -9
@@ -10,15 +10,15 @@ KMACHINE_qemuarm = "yocto/standard/arm-versatile-926ejs" KBRANCH = "${KMACHINE}" -LINUX_VERSION ?= "3.0.22" - -SRCREV_machine_qemuarm ?= "6d4d3334bf648b97a0d44b7833060f4da40840d5" -SRCREV_machine_qemumips ?= "1d8d58d120c92510be8a97b0ed493a25a3010d6c" -SRCREV_machine_qemuppc ?= "804aff4612bb7a53ac4679412c2a78bc06e3c4ce" -SRCREV_machine_qemux86 ?= "7b0476fde681e828417d8fa86c47b0ca539ade70" -SRCREV_machine_qemux86-64 ?= "14fe1742198bd5a85fbcf6e53d336838ff87b2ef" -SRCREV_machine ?= "c578f3a1f357142a6e02a1df4ae9aa16f45094d6" -SRCREV_meta ?= "d7b46785d6781e2c23d754f35f09bebd3b74b5bb" +LINUX_VERSION ?= "3.0.23" + +SRCREV_machine_qemuarm ?= "927c56dcc7dc9199923a86cc0dac741b6b080953" +SRCREV_machine_qemumips ?= "b1f7eb611a30a46692c11ea1164d17f0d44e911b" +SRCREV_machine_qemuppc ?= "16f1ebf66ce2b58cbfc0ff7c8883c91c883e216a" +SRCREV_machine_qemux86 ?= "bc2cb6560d3dedf8337b5df8228a6e8002b6a98c" +SRCREV_machine_qemux86-64 ?= "b9cbe895ce0c259b4684355ea1602402b2653ca5" +SRCREV_machine ?= "8fd24b3570ab995848e4123ef13bac64e2c924be" +SRCREV_meta ?= "e559129b4a6f39f68b75141096b2d516cf7a7f35" PR = "r4" PV = "${LINUX_VERSION}+git${SRCPV}"
meta/recipes-kernel/linux/linux-yocto_3.2.bb +9 -10
@@ -15,16 +15,15 @@ KBRANCH_qemuppc = "standard/default/qemu-ppc32" KBRANCH_qemumips = "standard/default/mti-malta32-be" KBRANCH_qemuarm = "standard/default/arm-versatile-926ejs" -LINUX_VERSION ?= "3.2.8" - - -SRCREV_machine_qemuarm ?= "2fdc18ce2b9bf95519a02640cb45930ae7587dd4" -SRCREV_machine_qemumips ?= "2b2a6bad57fe403f1180c4b9021210da87d02c20" -SRCREV_machine_qemuppc ?= "eabeabc4c8a17822772895d3ba22989ae18a58c3" -SRCREV_machine_qemux86 ?= "ea5bd45e564520ca4ecdb10f7af63263d5fe33f7" -SRCREV_machine_qemux86-64 ?= "f54af84c64408a0259a919d1fd2405c0115c0a0b" -SRCREV_machine ?= "21ab5dca134a6bf1316aa59f69f9ee9e091d5702" -SRCREV_meta ?= "4c648bbbc7d2204d1b24f444aebb10f91c4ecae3" +LINUX_VERSION ?= "3.2.9" + +SRCREV_machine_qemuarm ?= "a4d4d3dd9a69611bd1915626d1f2e9f2b1571b39" +SRCREV_machine_qemumips ?= "79a0a4c9872ebc70af688f9b09f6be4e4d2249e0" +SRCREV_machine_qemuppc ?= "74364f1062a219eb242d7cb300a404516c297601" +SRCREV_machine_qemux86 ?= "ea0a62d6821aede782c2b9457639f1ca7f2ddc07" +SRCREV_machine_qemux86-64 ?= "626165edf65281d9b933a6129e935c7a73ab63a7" +SRCREV_machine ?= "6f164ae4ef5aeec2bef40a1b936ac1f9b9db46ba" +SRCREV_meta ?= "fa83c7b0b47d1aa3e25594ddbcd125a1108d3aaa" PR = "r1" PV = "${LINUX_VERSION}+git${SRCPV}"
Signature · 1 line
1.7.4.1
Saul Wold
AppliedQuoted 51 lines · Bruce Ashfield
Richard/Saul,
Here's the latest consolidated kernel pull request. The patches are as follows:
3/3 is the kernel updates:
- v3.0.23 stable update
- v3.2.9 stable update
- 3.0/3.2: fri2 updates (pch + configuration changes) from Darren Hart
- 3.0: pvr merge from Kishore Bodke
- linux-yocto/rt: update to 3.0.23-rt38
- linux-yocto/rt: update to 3.2.9-rt15These have been built for all qemu targets, and built for the appropriate hardware platforms.
2/3 is the switch to use the 'bareclone' option that I had previously sent to be added to bitbake. Using this, the management of the linux-yocto branches in the build directory is much easier, and it removes the remaining restrictions around bare vs non-bare clones.
1/3 is linux-yocto: respect FILESPATH directories. This came from debugging the patching issues found with the linux-korg recipe. The solution (outside of re-writing the entire routine to python .. which I will do shortly) was to add a new routine that returns both the absolute patch source and the url's subdirectory. Using this all patches in WORKDIR, regardless of where they are on FILESPATH can be found. I tested linux-korg, and patching of all the kernels with this in place.
All three changes are isolated, so you can pick them up in any order that makes sense.
Cheers,
Bruce
cc Darren Hart<[email protected]>cc Kishore Bodke<[email protected]>The following changes since commit
a439d32dd843d10a9f65cc858b02422fac7deb50:soc-family.inc: to be included in machine.conf to add SOC_FAMILY to MACHINEOVERRIDE (2012-03-04 05:41:11 -0800)are available in the git repository at:
git://git.pokylinux.org/poky-contribzedd/kernel-oe
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel-oeBruce Ashfield (3):
linux-yocto: respect FILESPATH directories
linux-yocto: use bareclone option
linux-yocto: v3.2.9, v3.0.23 + fixes and updates
Quoted 9 lines
meta/classes/kernel-yocto.bbclass | 30 ++++++++++++++++++--- meta/recipes-kernel/linux/linux-yocto-rt_3.0.bb | 12 ++++---- meta/recipes-kernel/linux/linux-yocto-rt_3.2.bb | 13 ++++----- meta/recipes-kernel/linux/linux-yocto-tiny_3.0.bb | 10 +++--- meta/recipes-kernel/linux/linux-yocto_2.6.37.bb | 4 +- meta/recipes-kernel/linux/linux-yocto_3.0.bb | 20 +++++++------- meta/recipes-kernel/linux/linux-yocto_3.2.bb | 21 +++++++------- 7 files changed, 65 insertions(+), 45 deletions(-)
Merged into OE-Core
Thanks
Sau!