[OE-core] [PATCH 0/5] refactor the archive*.bbcalss

Robert Yang liezhi.yang at windriver.com
Wed Jan 22 10:13:37 UTC 2014


On 01/22/2014 10:59 AM, Robert Yang wrote:
>
>
> On 01/21/2014 08:37 PM, Martin Jansa wrote:
>> On Tue, Jan 21, 2014 at 06:41:04PM +0800, Robert Yang wrote:
>>>
>>> Hi Martin,
>>>

I've talked with Martin, the difference is that he tried it on dylan,
this is only for master, I'd like to backport if for dora, we may also
backport it for dylan, but this may need more discussions.

// Robert


>>> I've tested the archiver.bbclass with rm_work.bbclasss again, it works for me,
>>> it seems that you only downloaded the archiver.bbclass was not enough, would
>>> you please try this PULL? It is based on oe-core and on oe-core-contrib now:-)
>>> And if the error occurs, would you please show the configuration and error
>>> logs ?
>>
>> I've tried to enable "everything" to test it properly, so my config
>> looks like this (BTW: it would be nice to show in local.conf.sample
>> what are the default values):
>>
>> # Create source archive for complience with the licenses
>> # Enable all to properly test newer archiver backported from oe-core/master
>> INHERIT_DISTRO += "archiver"
>
> I changed it to INHERIT += "archiver" since the INHERIT_DISTRO will override
> this:
>
> meta/conf/distro/defaultsetup.conf:INHERIT_DISTRO ?= "debian devshell sstate
> license"
>
> Everything works fine to me, I'm afraid that set INHERIT_DISTRO += "archiver"
> may override other INHERIT_DISTRO's settings.
>
> I also added INHERIT += "rm_work"
>
> And please see my comments below.
>
>> ARCHIVER_MODE[src] = "prepatch"
>> ARCHIVER_MODE[diff] = "1"
>> ARCHIVER_MODE[diff-exclude] ?= ".pc autom4te.cache patches"
>> ARCHIVER_MODE[dumpdata] = "1"
>> ARCHIVER_MODE[recipe] = "1"
>> ARCHIVER_MODE[log] = "1"
>>
>> And error in do_patch:
>>
>> NOTE: recipe perf-1.0-r8: task do_patch: Started
>> ERROR: Error executing a python function in
>> /OE/openembedded-core/meta/recipes-kernel/perf/perf.bb:
>> OSError: [Errno 2] No such file or directory:
>> '/OE/tmp-eglibc/sysroots/qemux86/usr/src'
>
> The perf's ${S} is sysroots/qemux86/usr/src/kernel, but the problem is that why
> the /OE/tmp-eglibc/sysroots/qemux86/usr/src doesn't exist ? The rm_work doesn't
> remove it, no matter how many times I tried, it still works.
>
> So, please:
>
> 1) Check whether your other INHERIT_DISTRO settings have been overrided or not,
>     and try to use INHERIT rather than INHERIT_DISTRO ?
>
> 2) If it still fails, would you please provide more info ? For example, how to
>     reproduce it, exactly ?
>
> 3) It would be great if we can talk oneline, how about gtalk ? I will try to
>     reach you there.
>
> 4) It would be great if others can help me to test it.
>
> // Robert
>
>>
>> ERROR: The stack trace of python calls that resulted in this exception/failure
>> was:
>> ERROR:   File "do_ar_prepatch", line 6, in <module>
>> ERROR:
>> ERROR:   File "do_ar_prepatch", line 3, in do_ar_prepatch
>> ERROR:
>> ERROR:   File "archiver.bbclass", line 17, in create_tarball
>> ERROR:
>> ERROR: The code that was being executed was:
>> ERROR:      0002:def do_ar_prepatch(d):
>> ERROR:      0003:    create_tarball(d, d.getVar('S', True), 'prepatch')
>> ERROR:      0004:
>> ERROR:      0005:
>> ERROR:  *** 0006:do_ar_prepatch(d)
>> ERROR:      0007:
>> ERROR: [From file: 'do_ar_prepatch', lineno: 6, function: <module>]
>> ERROR:      0001:
>> ERROR:      0002:def do_ar_prepatch(d):
>> ERROR:  *** 0003:    create_tarball(d, d.getVar('S', True), 'prepatch')
>> ERROR:      0004:
>> ERROR:      0005:
>> ERROR:      0006:do_ar_prepatch(d)
>> ERROR:      0007:
>> ERROR: [From file: 'do_ar_prepatch', lineno: 3, function: do_ar_prepatch]
>> ERROR:      0013:    srcdir = srcdir.rstrip('/')
>> ERROR:      0014:    dirname = os.path.dirname(srcdir)
>> ERROR:      0015:    basename = os.path.basename(srcdir)
>> ERROR:      0016:    olddir = os.getcwd()
>> ERROR:  *** 0017:    os.chdir(dirname)
>> ERROR:      0018:    bb.note("Creating %s" % tarname)
>> ERROR:      0019:    if (len(os.listdir(basename))) != 0:
>> ERROR:      0020:        tar = tarfile.open(tarname, "w:gz")
>> ERROR:      0021:        tar.add(basename)
>> ERROR: [From file: 'archiver.bbclass', lineno: 17, function: create_tarball]
>> ERROR: Function failed: do_ar_prepatch
>> ERROR: Logfile of failure stored in:
>> /OE/tmp-eglibc/work/i586-oe-linux/perf/1.0-r8/temp/log.do_patch.28364
>> NOTE: recipe perf-1.0-r8: task do_patch: Failed
>> ERROR: Task 20159 (/OE/openembedded-core/meta/recipes-kernel/perf/perf.bb,
>> do_patch) failed with exit code '1'
>>
>>> git://git.openembedded.org/openembedded-core-contrib rbt/archiver
>>>
>>> // Robert
>>>
>>> On 01/18/2014 08:26 PM, Martin Jansa wrote:
>>>> On Thu, Jan 16, 2014 at 05:33:20PM +0800, Robert Yang wrote:
>>>>>
>>>>>
>>>>> On 01/16/2014 05:25 PM, Martin Jansa wrote:
>>>>>> On Thu, Jan 16, 2014 at 10:14:30AM +0800, Robert Yang wrote:
>>>>>>>
>>>>>>>
>>>>>>> On 01/16/2014 12:55 AM, Martin Jansa wrote:
>>>>>>>> On Tue, Jan 14, 2014 at 12:20:14AM +0800, Robert Yang wrote:
>>>>>>>>> * The archive*.bbclass didn't work, and there were a few problems, for
>>>>>>>>>       example:
>>>>>>>>>       1) There were a few duplicated code
>>>>>>>>>       2) There was no src_dir.org (or orig), but the diff command still
>>>>>>>>> use
>>>>>>>>>          it, and it is not easy to fix this issue if we don't change a lot
>>>>>>>>>          of the code.
>>>>>>>>>       3) It didn't archive the source for the native or gcc
>>>>>>>>>       4) The work flow is not very well
>>>>>>>>>       5) The "subprocess.call('fakeroot cp xxxx'" should be removed
>>>>>>>>>       6) And others ...
>>>>>>>>>
>>>>>>>>> * So that we have to refactor it, the benefits are:
>>>>>>>>>       1) Fix the problems and make it work well.
>>>>>>>>>       2) Reduce more than 400 lines in total.
>>>>>>>>>       3) Make it easy to use.
>>>>>>>>>
>>>>>>>>> // Robert
>>>>>>>>>
>>>>>>>>> The following changes since commit
>>>>>>>>> 1b636173ca88e5ccca1992f9a12367a1189fa674:
>>>>>>>>>
>>>>>>>>>       bitbake: toaster: Toaster GUI, generic search, filter and order
>>>>>>>>> (2014-01-10 15:20:26 +0000)
>>>>>>>>>
>>>>>>>>> are available in the git repository at:
>>>>>>>>>
>>>>>>>>>       git://git.pokylinux.org/poky-contrib rbt/archiver
>>>>>>>>>       http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=rbt/archiver
>>>>>>>>
>>>>>>>> Can you send pull-request for oe-core?
>>>>>>>>
>>>>>>>
>>>>>>> Here it is:
>>>>>>> git://git.pokylinux.org/poky-contrib rbt/ar_oe
>>>>>>> http://git.yoctoproject.org/cgit/cgit.cgi/poky-contrib/log/?h=rbt/ar_oe
>>>>>>
>>>>>> This still looks like poky-contrib (so it will download whole
>>>>>> poky-contrib when I add it as remote to oe-core repo).
>>>>>>
>>>>>
>>>>> Sorry, I can't create repo on oe-contrib, seems that I lost my key.
>>>>
>>>> That's sad, you should send new one to khem to replace it, before
>>>> someone else finds your old key.
>>>>
>>>>> How about:
>>>>>
>>>>> git fetch git://git.pokylinux.org/poky-contrib rbt/ar_oe
>>>>
>>>> That still fetches whole poky repo I'm not interested in.
>>>>
>>>> So I've downloaded just archiver.bbclass manually and tested it on my
>>>> use-case, I can confirm that it doesn't remove required file anymore,
>>>> but it seems that there is something terribly broken when used in
>>>> combination with rm_work or multimachine builds.
>>>>
>>>> I haven't debugged it yet, but 2nd build (in the same directory) with
>>>> this new archiver included almost every recipe failed in do_patch task.
>>>>
>>>>>>> // Robert
>>>>>>>
>>>>>>>>> Robert Yang (5):
>>>>>>>>>       classes/archive*.bbclass: remove archive-*-source.bbclass
>>>>>>>>>       archiver.bbclass: refactor it
>>>>>>>>>       package_rpm.bbclass: archive the source to srpm package
>>>>>>>>>       archiver.bbclass: move a few code to copyleft_compliance.bbclass
>>>>>>>>>       local.conf.sample.extended: update for the archiver
>>>>>>>>>
>>>>>>>>>      meta-yocto/conf/local.conf.sample.extended     |  72 +--
>>>>>>>>>      meta/classes/archive-configured-source.bbclass |  65 ---
>>>>>>>>>      meta/classes/archive-original-source.bbclass   |  65 ---
>>>>>>>>>      meta/classes/archive-patched-source.bbclass    |  65 ---
>>>>>>>>>      meta/classes/archiver.bbclass                  | 723
>>>>>>>>> ++++++++-----------------
>>>>>>>>>      meta/classes/copyleft_compliance.bbclass       |  55 +-
>>>>>>>>>      meta/classes/package_rpm.bbclass               |  31 +-
>>>>>>>>>      7 files changed, 316 insertions(+), 760 deletions(-)
>>>>>>>>>      delete mode 100644 meta/classes/archive-configured-source.bbclass
>>>>>>>>>      delete mode 100644 meta/classes/archive-original-source.bbclass
>>>>>>>>>      delete mode 100644 meta/classes/archive-patched-source.bbclass
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 1.8.3.1
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Openembedded-core mailing list
>>>>>>>>> Openembedded-core at lists.openembedded.org
>>>>>>>>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>>>>>>>
>>>>>>
>>>>
>>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>



More information about the Openembedded-core mailing list