diff options
Diffstat (limited to 'meta/classes/kernel-yocto.bbclass')
| -rw-r--r-- | meta/classes/kernel-yocto.bbclass | 76 |
1 files changed, 5 insertions, 71 deletions
diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass index 2f9a41f34d..231e08deba 100644 --- a/meta/classes/kernel-yocto.bbclass +++ b/meta/classes/kernel-yocto.bbclass | |||
| @@ -33,6 +33,7 @@ def find_kernel_feature_dirs(d): | |||
| 33 | for url in fetch.urls: | 33 | for url in fetch.urls: |
| 34 | urldata = fetch.ud[url] | 34 | urldata = fetch.ud[url] |
| 35 | parm = urldata.parm | 35 | parm = urldata.parm |
| 36 | type="" | ||
| 36 | if "type" in parm: | 37 | if "type" in parm: |
| 37 | type = parm["type"] | 38 | type = parm["type"] |
| 38 | if "destsuffix" in parm: | 39 | if "destsuffix" in parm: |
| @@ -112,17 +113,6 @@ do_kernel_metadata() { | |||
| 112 | fi | 113 | fi |
| 113 | fi | 114 | fi |
| 114 | 115 | ||
| 115 | # if we have a defined/set meta branch we should not be generating | ||
| 116 | # any meta data. The passed branch has what we need. | ||
| 117 | if [ -n "${KMETA}" ]; then | ||
| 118 | createme_flags="--disable-meta-gen --meta ${KMETA}" | ||
| 119 | fi | ||
| 120 | |||
| 121 | createme -v -v ${createme_flags} ${ARCH} ${machine_branch} | ||
| 122 | if [ $? -ne 0 ]; then | ||
| 123 | bbfatal_log "Could not create ${machine_branch}" | ||
| 124 | fi | ||
| 125 | |||
| 126 | sccs="$sccs ${@" ".join(find_sccs(d))}" | 116 | sccs="$sccs ${@" ".join(find_sccs(d))}" |
| 127 | patches="${@" ".join(find_patches(d))}" | 117 | patches="${@" ".join(find_patches(d))}" |
| 128 | feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" | 118 | feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}" |
| @@ -189,34 +179,18 @@ do_patch() { | |||
| 189 | do_kernel_checkout() { | 179 | do_kernel_checkout() { |
| 190 | set +e | 180 | set +e |
| 191 | 181 | ||
| 192 | # A linux yocto SRC_URI should use the bareclone option. That | ||
| 193 | # ensures that all the branches are available in the WORKDIR version | ||
| 194 | # of the repository. | ||
| 195 | source_dir=`echo ${S} | sed 's%/$%%'` | 182 | source_dir=`echo ${S} | sed 's%/$%%'` |
| 196 | source_workdir="${WORKDIR}/git" | 183 | source_workdir="${WORKDIR}/git" |
| 197 | if [ -d "${WORKDIR}/git/" ] && [ -d "${WORKDIR}/git/.git" ]; then | 184 | if [ -d "${WORKDIR}/git/" ]; then |
| 198 | # case2: the repository is a non-bare clone | 185 | # case: git repository (bare or non-bare) |
| 199 | |||
| 200 | # if S is WORKDIR/git, then we shouldn't be moving or deleting the tree. | 186 | # if S is WORKDIR/git, then we shouldn't be moving or deleting the tree. |
| 201 | if [ "${source_dir}" != "${source_workdir}" ]; then | 187 | if [ "${source_dir}" != "${source_workdir}" ]; then |
| 202 | rm -rf ${S} | 188 | rm -rf ${S} |
| 203 | mv ${WORKDIR}/git ${S} | 189 | mv ${WORKDIR}/git ${S} |
| 204 | fi | 190 | fi |
| 205 | cd ${S} | 191 | cd ${S} |
| 206 | elif [ -d "${WORKDIR}/git/" ] && [ ! -d "${WORKDIR}/git/.git" ]; then | ||
| 207 | # case2: the repository is a bare clone | ||
| 208 | |||
| 209 | # if S is WORKDIR/git, then we shouldn't be moving or deleting the tree. | ||
| 210 | if [ "${source_dir}" != "${source_workdir}" ]; then | ||
| 211 | rm -rf ${S} | ||
| 212 | mkdir -p ${S}/.git | ||
| 213 | mv ${WORKDIR}/git/* ${S}/.git | ||
| 214 | rm -rf ${WORKDIR}/git/ | ||
| 215 | fi | ||
| 216 | cd ${S} | ||
| 217 | git config core.bare false | ||
| 218 | else | 192 | else |
| 219 | # case 3: we have no git repository at all. | 193 | # case: we have no git repository at all. |
| 220 | # To support low bandwidth options for building the kernel, we'll just | 194 | # To support low bandwidth options for building the kernel, we'll just |
| 221 | # convert the tree to a git repo and let the rest of the process work unchanged | 195 | # convert the tree to a git repo and let the rest of the process work unchanged |
| 222 | 196 | ||
| @@ -235,7 +209,6 @@ do_kernel_checkout() { | |||
| 235 | git commit -q -m "baseline commit: creating repo for ${PN}-${PV}" | 209 | git commit -q -m "baseline commit: creating repo for ${PN}-${PV}" |
| 236 | git clean -d -f | 210 | git clean -d -f |
| 237 | fi | 211 | fi |
| 238 | # end debare | ||
| 239 | 212 | ||
| 240 | # convert any remote branches to local tracking ones | 213 | # convert any remote branches to local tracking ones |
| 241 | for i in `git branch -a --no-color | grep remotes | grep -v HEAD`; do | 214 | for i in `git branch -a --no-color | grep remotes | grep -v HEAD`; do |
| @@ -246,24 +219,8 @@ do_kernel_checkout() { | |||
| 246 | fi | 219 | fi |
| 247 | done | 220 | done |
| 248 | 221 | ||
| 249 | # If KMETA is defined, the branch must exist, but a machine branch | ||
| 250 | # can be missing since it may be created later by the tools. | ||
| 251 | if [ -n "${KMETA}" ]; then | ||
| 252 | git show-ref --quiet --verify -- "refs/heads/${KMETA}" | ||
| 253 | if [ $? -eq 1 ]; then | ||
| 254 | bberror "The branch '${KMETA}' is required and was not found" | ||
| 255 | bberror "Ensure that the SRC_URI points to a valid linux-yocto" | ||
| 256 | bbfatal_log "kernel repository" | ||
| 257 | fi | ||
| 258 | fi | ||
| 259 | |||
| 260 | |||
| 261 | # Create a working tree copy of the kernel by checking out a branch | 222 | # Create a working tree copy of the kernel by checking out a branch |
| 262 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" | 223 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
| 263 | git show-ref --quiet --verify -- "refs/heads/${machine_branch}" | ||
| 264 | if [ $? -ne 0 ]; then | ||
| 265 | machine_branch="master" | ||
| 266 | fi | ||
| 267 | 224 | ||
| 268 | # checkout and clobber any unimportant files | 225 | # checkout and clobber any unimportant files |
| 269 | git checkout -f ${machine_branch} | 226 | git checkout -f ${machine_branch} |
| @@ -313,7 +270,7 @@ python do_kernel_configcheck() { | |||
| 313 | kmeta = "." + kmeta | 270 | kmeta = "." + kmeta |
| 314 | 271 | ||
| 315 | pathprefix = "export PATH=%s:%s; " % (d.getVar('PATH', True), "${S}/scripts/util/") | 272 | pathprefix = "export PATH=%s:%s; " % (d.getVar('PATH', True), "${S}/scripts/util/") |
| 316 | cmd = d.expand("cd ${S}; kconf_check -config- %s/meta-series ${S} ${B}" % kmeta) | 273 | cmd = d.expand("cd ${S}; kconf_check -config %s/meta-series ${S} ${B}" % kmeta) |
| 317 | ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) | 274 | ret, result = oe.utils.getstatusoutput("%s%s" % (pathprefix, cmd)) |
| 318 | 275 | ||
| 319 | config_check_visibility = int(d.getVar( "KCONF_AUDIT_LEVEL", True ) or 0) | 276 | config_check_visibility = int(d.getVar( "KCONF_AUDIT_LEVEL", True ) or 0) |
| @@ -351,7 +308,6 @@ python do_kernel_configcheck() { | |||
| 351 | do_validate_branches() { | 308 | do_validate_branches() { |
| 352 | set +e | 309 | set +e |
| 353 | cd ${S} | 310 | cd ${S} |
| 354 | export KMETA=${KMETA} | ||
| 355 | 311 | ||
| 356 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" | 312 | machine_branch="${@ get_machine_branch(d, "${KBRANCH}" )}" |
| 357 | machine_srcrev="${SRCREV_machine}" | 313 | machine_srcrev="${SRCREV_machine}" |
| @@ -377,28 +333,6 @@ do_validate_branches() { | |||
| 377 | force_srcrev=${machine_srcrev} | 333 | force_srcrev=${machine_srcrev} |
| 378 | fi | 334 | fi |
| 379 | 335 | ||
| 380 | ## KMETA branch validation. | ||
| 381 | target_meta_head="${SRCREV_meta}" | ||
| 382 | if [ "${target_meta_head}" = "AUTOINC" ] || [ "${target_meta_head}" = "" ]; then | ||
| 383 | bbnote "SRCREV validation skipped for AUTOREV or empty meta branch" | ||
| 384 | else | ||
| 385 | meta_head=`git show-ref -s --heads ${KMETA}` | ||
| 386 | |||
| 387 | git cat-file -t ${target_meta_head} > /dev/null | ||
| 388 | if [ $? -ne 0 ]; then | ||
| 389 | bberror "${target_meta_head} is not a valid commit ID" | ||
| 390 | bbfatal_log "The kernel source tree may be out of sync" | ||
| 391 | fi | ||
| 392 | if [ "$meta_head" != "$target_meta_head" ]; then | ||
| 393 | bbnote "Setting branch ${KMETA} to ${target_meta_head}" | ||
| 394 | git branch -m ${KMETA} ${KMETA}-orig | ||
| 395 | git checkout -q -b ${KMETA} ${target_meta_head} | ||
| 396 | if [ $? -ne 0 ];then | ||
| 397 | bbfatal_log "Could not checkout ${KMETA} branch from known hash ${target_meta_head}" | ||
| 398 | fi | ||
| 399 | fi | ||
| 400 | fi | ||
| 401 | |||
| 402 | git checkout -q -f ${machine_branch} | 336 | git checkout -q -f ${machine_branch} |
| 403 | if [ -n "${force_srcrev}" ]; then | 337 | if [ -n "${force_srcrev}" ]; then |
| 404 | # see if the branch we are about to patch has been properly reset to the defined | 338 | # see if the branch we are about to patch has been properly reset to the defined |
