[oe] [oe-commits] Richard Purdie : package_rpm: Add custom extension support for spec generation.

Hongxu Jia hongxu.jia at windriver.com
Wed Sep 3 01:51:32 UTC 2014


Build failure:
https://autobuilder.yoctoproject.org/main/builders/poky-tiny/builds/30/steps/BuildImages/logs/stdio
...

ERROR: Error executing a python function in /home/pokybuild/yocto-autobuilder/yocto-worker/poky-tiny/build/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.16.bb:

The stack trace of python calls that resulted in this exception/failure was:
File: 'write_specfile', lineno: 554, function: <module>
      0550:
      0551:    specfile.close()
      0552:
      0553:
  *** 0554:write_specfile(d)
      0555:
File: 'write_specfile', lineno: 420, function: write_specfile
      0416:            bb.note("Not creating empty RPM package for %s" % splitname)
      0417:        else:
      0418:            spec_files_bottom.append('%%files -n %s' % splitname)
      0419:            if extra_pkgdata:
  *** 0420:                package_rpm_extra_pkgdata(splitname, spec_files_bottom, localdata)
      0421:            spec_files_bottom.append('%defattr(-,-,-,-)')
      0422:            if file_list:
      0423:                bb.note("Creating RPM package for %s" % splitname)
      0424:                spec_files_bottom.extend(file_list)
Exception: NameError: global name 'package_rpm_extra_pkgdata' is not defined

...

//Hongxu

On 09/02/2014 09:50 PM, git at opal.openembedded.org wrote:
> Module: openembedded-core.git
> Branch: master-next
> Commit: 4b42982b8e6d859315c0f95dc0d6e4bcadf9a785
> URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=4b42982b8e6d859315c0f95dc0d6e4bcadf9a785
>
> Author: Richard Purdie <richard.purdie at linuxfoundation.org>
> Date:   Mon Sep  1 17:32:26 2014 +0100
>
> package_rpm: Add custom extension support for spec generation.
>
> Add hooks to allow customisation of the rpm spec files. Since python functions
> aren't visible in the data store, one variable is used to trigger the call to
> a separately named function. A dummy function is not provided since this then
> triggers various class ordering complexities which are best avoided.
>
> Ultimately this will be replaced by a refactor of the code to generate the
> spec file using a python class.
>
> This allows the tizen layer to add hooks for the security manifests for
> example.
>
> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
>
> ---
>
>   meta/classes/package_rpm.bbclass | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 0a32b3e..65b4463 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -293,6 +293,7 @@ python write_specfile () {
>       spec_files_bottom = []
>   
>       perfiledeps = (d.getVar("MERGEPERFILEDEPS", True) or "0") == "0"
> +    extra_pkgdata = (d.getVar("RPM_EXTRA_PKGDATA", True) or "0") == "0"
>   
>       for pkg in packages.split():
>           localdata = bb.data.createCopy(d)
> @@ -373,6 +374,8 @@ python write_specfile () {
>               else:
>                   bb.note("Creating RPM package for %s" % splitname)
>                   spec_files_top.append('%files')
> +                if extra_pkgdata:
> +                    package_rpm_extra_pkgdata(splitname, spec_files_top, localdata)
>                   spec_files_top.append('%defattr(-,-,-,-)')
>                   if file_list:
>                       bb.note("Creating RPM package for %s" % splitname)
> @@ -479,6 +482,8 @@ python write_specfile () {
>               bb.note("Not creating empty RPM package for %s" % splitname)
>           else:
>               spec_files_bottom.append('%%files -n %s' % splitname)
> +            if extra_pkgdata:
> +                package_rpm_extra_pkgdata(splitname, spec_files_bottom, localdata)
>               spec_files_bottom.append('%defattr(-,-,-,-)')
>               if file_list:
>                   bb.note("Creating RPM package for %s" % splitname)
>




More information about the Openembedded-devel mailing list