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 |