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 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@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core




_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to