Bug 4958

Summary: No documentation about source compatibility
Product: [Documentation] Reference Reporter: Laszlo Papp <lpapp>
Component: handbookAssignee: Scott Rifenbark <srifenbark>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium CC: bluelightning, poky.doc.watcher, poky.watcher, sgw, srifenbark
Version: unspecified   
Target Milestone: 1.7   
Hardware: x86   
OS: Multiple   
Whiteboard: 22 July 2014: RESOLVED
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: Done (doc changes complete)

Description Laszlo Papp 2013-07-30 16:23:19 UTC
After upgrading to dylan, I am getting this with a busybox version very similar to danny:

ERROR: Error executing a python function in /home/lpapp/Projects/Yocto/poky-dylan-9.0.1/meta-foo/recipes-core/busybox/busybox_1.20.2.bb:
NameError: global name 'process_deps' is not defined

ERROR: The stack trace of python calls that resulted in this exception/failure was:
ERROR:   File "package_do_filedeps", line 85, in <module>
ERROR: 
ERROR:   File "package_do_filedeps", line 69, in package_do_filedeps
ERROR: 
ERROR: The code that was being executed was:
ERROR:      0081:    # Store the new provides
ERROR:      0082:    d.setVar('FILERPROVIDES_%s_%s' % (f_busybox, pkg), filerprovides)
ERROR:      0083:
ERROR:      0084:
ERROR:  *** 0085:package_do_filedeps(d)
ERROR:      0086:
ERROR: [From file: 'package_do_filedeps', lineno: 85, function: <module>]
ERROR:      0065:    filerprovides = d.getVar('FILERPROVIDES_%s_%s' % (f_busybox, pkg), True) or ""
ERROR:      0066:
ERROR:      0067:    dep_pipe = os.popen('sed -e "s,^,%s/%s%s Provides: ," %s/%s%s' % (pkgdest, pkg, f_busybox, pkgdest, pkg, f_busybox_links))
ERROR:      0068:
ERROR:  *** 0069:    process_deps(dep_pipe, pkg, provides_files, requires_files)
ERROR:      0070:
ERROR:      0071:    # Add the new set
ERROR:      0072:    filerprovides += d.getVar('FILERPROVIDES_%s_%s' % (f_busybox, pkg), True) or ""
ERROR:      0073:
ERROR: [From file: 'package_do_filedeps', lineno: 69, function: package_do_filedeps]
ERROR: Function failed: package_do_filedeps
ERROR: Logfile of failure stored in: /home/lpapp/Projects/Yocto/poky-dylan-9.0.1/build/tmp/work/armv5te-foo-linux-gnueabi/busybox/1.20.2-r0/temp/log.do_package.8995
ERROR: Task 854 (/home/lpapp/Projects/Yocto/poky-dylan-9.0.1/meta-foo/recipes-core/busybox/busybox_1.20.2.bb, do_package) failed with exit code '1'

====================================================================

This one is the offending commit: d81aa06ece4e5dcae5f91ab0ae8958d58cd3419f

The documentation should be clear that forking a package might end up source incompatible change between certain poky/yocto/oe-core versions. Users need to understand what compatibility promises they have in place.
Comment 1 Scott Rifenbark 2013-07-30 19:12:46 UTC
We have a section in the YP Reference Manual that discusses migration issues.  I will place a note in this section advising the user that they should not copy .inc or recipe files.  And, that the preferred method is to use .bbappend files that override.

Scott
Comment 2 Paul Eggleton 2013-08-01 10:46:37 UTC
I think we need to be careful about generalising this particular issue to apply to all recipes. Most do not call internal functions as the older version of the busybox .inc file did.
Comment 3 Scott Rifenbark 2013-10-31 18:17:08 UTC
I put the target for this bug to 1.6 and the state back to NEEDINFO.  I was not sure what to do with it as it seemed to be a specific migration issue.  The suggestion I posed was confronted with caution so I did not pursue it for 1.5.

Bottom line - I don't know what to do with this bug.
Comment 4 Laszlo Papp 2013-11-01 11:04:27 UTC
I think it would be nice to give a hint to the end users that forking packages that use internal functions should be taken with extra care.

It may break anytime.
Comment 5 Laszlo Papp 2014-04-10 09:40:57 UTC
I think one sentence would be enough in the documentation in the "upgrade" section for instance. I would add a quick note that further issues may come with forked packages when updating, so "be careful when doing that".
Comment 6 Scott Rifenbark 2014-04-10 20:22:43 UTC
Laszlo, 

I added an additional bullet in the upgrading section regarding packaging.  See http://www.yoctoproject.org/docs/1.6/ref-manual/ref-manual.html#migration-1.6-packaging-changes.

Let me know if this satisfies this bug's doc points.

Thanks, 
Scott
Comment 7 Laszlo Papp 2014-04-10 20:23:36 UTC
Looks good, thanks. :)
Comment 8 Paul Eggleton 2014-04-11 09:20:15 UTC
I'm concerned that as written this statement isn't particularly meaningful. Will all readers understand what is meant by a "forked package"?

The other concern is this is in no way specific to the 1.6 release; if we want to document this kind of thing I think we should have a separate general migration section in which we mention this and other general migration tasks (such as updating bbappends) or alternatively repeat this subsection under every release migration section.
Comment 9 Scott Rifenbark 2014-04-21 23:46:20 UTC
Hi, 

I am going to push this out to 1.7 and see if we can find a more permanent area to let users know about this issue.  As Paul pointed out, it really is not a migration issue for 1.6 but rather a more general issue. So, I pulled that last item from the docs.

I apologize for babbling back and forth on this bug...

I will take it up again after the 1.6 release.

Thanks, 
Scott
Comment 10 Scott Rifenbark 2014-05-05 19:52:58 UTC
Pushed the target milestone to 1.7.
Comment 11 Scott Rifenbark 2014-06-16 18:19:09 UTC
Hi, 

I have added a new section at the top of the migration chapter called "General Migration Considerations".  This section holds points to consider for migrating to a newer release when the points are not tied to a specific release.  You can see the section at http://www.yoctoproject.org/docs/1.7/ref-manual/ref-manual.html#general-migration-considerations.

The section is under review.

Scott
Comment 12 Scott Rifenbark 2014-07-22 08:14:37 UTC
Hi, 

No comments in over 30 days.  I am marking this issue as RESOLVED and resetting the documentation flag to "Done."

Thanks, 
Scott
Comment 13 Scott Rifenbark 2014-07-22 08:16:08 UTC
Forgot to set the status to RESOLVED.

Scott