All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <sgw@linux.intel.com>
To: Robert Yang <liezhi.yang@windriver.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [PATCH 1/3] insane/package: let package.bbclass inherit insane.bbclass
Date: Wed, 15 May 2013 11:12:42 +0300	[thread overview]
Message-ID: <5193437A.9090808@linux.intel.com> (raw)
In-Reply-To: <85e2938623fec682acb72bc6288a7528c94adca7.1368425946.git.liezhi.yang@windriver.com>

On 05/13/2013 12:09 PM, Robert Yang wrote:
> RP's comment:
> "What we're trying to do is move everything to use a standard mechanism
> for reporting issues of this type (do_package). With insane.bbclass, you
> can elect whether a given type of error is a warning or error and fails
> the task."
>
> * The package.bbclass had used package_qa_handle_error() which is from
>    insane.bbclass, and we will use it for handling other warnings and
>    errors, so let package.bbclass inherit insane.bbclass, this change will
>    make the insane as a requirement (always included).
>
> * Change the "PACKAGEFUNCS ?=" to "+=", otherwise there would be an
>    error like:
>    Exception: variable SUMMARY references itself!
>
Robert,

Did you test this with a multilib build?  I am seeing this error with 
your change set on the Autobuilder.

Below is from the world build, you can see more examples of this failure 
in the nightly-multilib

http://autobuilder.yoctoproject.org:8011/builders/nightly-multilib/builds/138/steps/Building%20Images/logs/stdio

Sau!


> ERROR: Error executing a python function in /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-world/build/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.8.bb:
>
> The stack trace of python calls that resulted in this exception/failure was:
> File: 'write_specfile', lineno: 505, function: <module>
>      0501:
>      0502:    specfile.close()
>      0503:
>      0504:
>  *** 0505:write_specfile(d)
>      0506:
> File: 'write_specfile', lineno: 209, function: write_specfile
>      0205:        conffiles = (localdata.getVar('CONFFILES', True) or "").split()
>      0206:
>      0207:        splitname    = strip_multilib(pkgname, d)
>      0208:
>  *** 0209:        splitsummary = (localdata.getVar('SUMMARY', True) or localdata.getVar('DESCRIPTION', True) or ".")
>      0210:        splitversion = (localdata.getVar('PKGV', True) or "").replace('-', '+')
>      0211:        splitrelease = (localdata.getVar('PKGR', True) or "")
>      0212:        splitepoch   = (localdata.getVar('PKGE', True) or "")
>      0213:        splitlicense = (localdata.getVar('LICENSE', True) or "")
> File: '/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-world/build/bitbake/lib/bb/data_smart.py', lineno: 503, function: getVar
>      0499:        value = self.getVarFlag(var, "_content", False, noweakdefault)
>      0500:
>      0501:        # Call expand() separately to make use of the expand cache
>      0502:        if expand and value:
>  *** 0503:            return self.expand(value, var)
>      0504:        return value
>      0505:
>      0506:    def renameVar(self, key, newkey, **loginfo):
>      0507:        """
> File: '/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-world/build/bitbake/lib/bb/data_smart.py', lineno: 336, function: expand
>      0332:
>      0333:        return varparse
>      0334:
>      0335:    def expand(self, s, varname = None):
>  *** 0336:        return self.expandWithRefs(s, varname).value
>      0337:
>      0338:
>      0339:    def finalize(self, parent = False):
>      0340:        """Performs final steps upon the datastore, including application of overrides"""
> File: '/srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-world/build/bitbake/lib/bb/data_smart.py', lineno: 326, function: expandWithRefs
>      0322:                raise
>      0323:            except bb.parse.SkipPackage:
>      0324:                raise
>      0325:            except Exception as exc:
>  *** 0326:                raise ExpansionError(varname, s, exc)
>      0327:
>      0328:        varparse.value = s
>      0329:
>      0330:        if varname:
> Exception: ExpansionError: Failure expanding variable SUMMARY, expression was ${SUMMARY} - Debugging files which triggered exception Exception: variable SUMMARY references itself!
>
> ERROR: Function failed: write_specfile
> ERROR: Logfile of failure stored in: /srv/home/pokybuild/yocto-autobuilder-new/yocto-slave/nightly-world/build/build/tmp/work/x86-pokymllib32-linux/lib32-linux-libc-headers/3.8-r0/temp/log.do_package_write_rpm.32203


>    This is because we let package.bbclass inherit insane.bbclass, and
>    PACKAGEFUNCS has been set in insane.bbclass, so the "PACKAGEFUNCS ?="
>    will set nothing, then the "emit_pkgdata" doesn't run which will
>    cause this error.
>
> * Add a QA_SANE variable in insane.bbclass, once the error type
>    is ERROR_QA, it will fail the task and stop the build.
>
> [YOCTO #3190]
> [YOCTO #4396]
>
> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
> ---
>   meta/classes/insane.bbclass  |    6 ++++--
>   meta/classes/package.bbclass |    5 ++++-
>   2 files changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/meta/classes/insane.bbclass b/meta/classes/insane.bbclass
> index fb18022..c3e4b1e 100644
> --- a/meta/classes/insane.bbclass
> +++ b/meta/classes/insane.bbclass
> @@ -17,7 +17,6 @@
>   #   files under exec_prefix
>
>
> -inherit package
>   PACKAGE_DEPENDS += "${QADEPENDS}"
>   PACKAGEFUNCS += " do_package_qa "
>
> @@ -26,6 +25,7 @@ PACKAGEFUNCS += " do_package_qa "
>   QADEPENDS = "prelink-native"
>   QADEPENDS_class-native = ""
>   QADEPENDS_class-nativesdk = ""
> +QA_SANE = "True"
>
>   #
>   # dictionary for elf headers
> @@ -133,6 +133,7 @@ def package_qa_handle_error(error_class, error_msg, d):
>       package_qa_write_error(error_msg, d)
>       if error_class in (d.getVar("ERROR_QA", True) or "").split():
>           bb.error("QA Issue: %s" % error_msg)
> +        d.setVar("QA_SANE", False)
>           return False
>       else:
>           bb.warn("QA Issue: %s" % error_msg)
> @@ -821,7 +822,8 @@ python do_package_qa () {
>       if 'libdir' in d.getVar("ALL_QA", True).split():
>           package_qa_check_libdir(d)
>
> -    if not walk_sane or not rdepends_sane or not deps_sane:
> +    qa_sane = d.getVar("QA_SANE", True)
> +    if not walk_sane or not rdepends_sane or not deps_sane or not qa_sane:
>           bb.fatal("QA run found fatal errors. Please consider fixing them.")
>       bb.note("DONE with PACKAGE QA")
>   }
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index 36b3ae5..e9a324e 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -42,6 +42,9 @@ inherit packagedata
>   inherit prserv
>   inherit chrpath
>
> +# Need the package_qa_handle_error() in insane.bbclass
> +inherit insane
> +
>   PKGD    = "${WORKDIR}/package"
>   PKGDEST = "${WORKDIR}/packages-split"
>
> @@ -1814,7 +1817,7 @@ PACKAGESPLITFUNCS ?= " \
>                   package_do_split_locales \
>                   populate_packages"
>   # Functions which process metadata based on split packages
> -PACKAGEFUNCS ?= " \
> +PACKAGEFUNCS += " \
>                   package_fixsymlinks \
>                   package_name_hook \
>                   package_do_filedeps \
>



  reply	other threads:[~2013-05-15  8:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-13  9:09 [PATCH 0/3] insane/package: refactor packaging sanity tests Robert Yang
2013-05-13  9:09 ` [PATCH 1/3] insane/package: let package.bbclass inherit insane.bbclass Robert Yang
2013-05-15  8:12   ` Saul Wold [this message]
2013-05-13  9:09 ` [PATCH 2/3] defaultsetup.conf: remove INHERIT_INSANE Robert Yang
2013-05-13  9:09 ` [PATCH 3/3] insane/package: refactor packaging sanity tests Robert Yang
2013-05-13  9:55 ` [PATCH 0/3] " Martin Jansa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5193437A.9090808@linux.intel.com \
    --to=sgw@linux.intel.com \
    --cc=liezhi.yang@windriver.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.