Bug 1710 - fetching local files is using downloads (${DL_DIR}) directory as primary source for files
Summary: fetching local files is using downloads (${DL_DIR}) directory as primary sour...
Status: RESOLVED FIXED
Alias: None
Product: BitBake
Classification: Build System, Metadata & Runtime
Component: bitbake (show other bugs)
Version: unspecified
Hardware: All Multiple
: Medium normal
Target Milestone: 1.2
Assignee: Richard Purdie
QA Contact:
URL:
Whiteboard: Final patch out for review on bitbake...
Depends on:
Blocks:
 
Reported: 2011-11-01 13:43 UTC by Martin Jansa
Modified: 2011-11-24 14:15 UTC (History)
3 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Jansa 2011-11-01 13:43:32 UTC
Which is wrong in case we need specific file from our layer, for different machine or when 2 different recipes have both patch with same name!

Here is example how it fails:

foo_1.0.bb with SRC_URI = "file://bar.patch"
with files:
foo-1.0/om-gta02/bar.patch
foo-1.0/nokia900/bar.patch

Then I don't want to use bar.patch from downloads/bar.patch where it's
from om-gta02 build when I'm building nokia900.

And real example:
I have noticed that even local patches are stored in downloads dir,                    
but today I've noticed that wrong file was used later in do_patch.                                                                                            
I have latest oe-core/meta-oe + latest bitbake.                                                   
                                                                                    
Pulseaudio was building here for first time                                                 
                                                                        
downloads/buildfix.patch is from previous build of xf86-video-intel-2.16.0                    
$ head downloads/buildfix.patch                                                             
Newer mesa doesn't provide dri support, just dri2. The intel driver                                                                                           
...                                                                                        
                                                                                                                                                              
pulseaudio has right one:                                                                                                                                   
 $ head /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/buildfix.patch                         
Derived from OE by Dongxiao Xu <dongxiao.xu@intel.com>                                                        
                                                                                                                      
Upstream-Status: Pending                                                                                                
                                                                                                                   
Index: pulseaudio-0.9.11/src/pulsecore/atomic.h                                                            
...                                                                                                           
                                                                                                                        
but while building pulseaudio it's using wrong downloads/buildfix.patch


$ bitbake -e -b /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio_0.9.23.bb | grep ^FILESPATH | sed "s/:/\n/"
FILESPATH="/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23-r5/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/

/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio-0.9.23/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/arm
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/files/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/linux-gnueabi
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/arm

/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/build-linux
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pn-pulseaudio
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/nokia900
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/shr
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/forcevariable
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/libc-glibc
/OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/"

-c cleansstate doesn't help

rm -rf downloads/buildfix.patch* and probably also -c cleanall _does_ help and do_patch finished now OK.


log from first build:
NOTE: Running task 6777 of 7835 (ID: 6734, /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio_0.9.23.bb, do_fetch)
NOTE: package pulseaudio-0.9.23-r5: task do_fetch: Started
NOTE: package pulseaudio-0.9.23-r5: task do_fetch: Succeeded
NOTE: Running task 6778 of 7835 (ID: 6730, /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio_0.9.23.bb, do_unpack)
NOTE: package pulseaudio-0.9.23-r5: task do_unpack: Started
NOTE: package pulseaudio-0.9.23-r5: task do_unpack: Succeeded
NOTE: Running task 6779 of 7835 (ID: 6731, /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio_0.9.23.bb, do_patch)
NOTE: package pulseaudio-0.9.23-r5: task do_patch: Started
ERROR: Error executing a python function in /OE/shr-core/openembedded-core/meta/recipes-multimedia/pulseaudio/pulseaudio_0.9.23.bb:
CmdError: Command Error: exit status: 1  Output:
Applying patch buildfix.patch
can't find file to patch at input line 13
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:

--------------------------
|Newer mesa doesn't provide dri support, just dri2. The intel driver                                                                                          
|hasn't quite caught up and whilst the configure checks work, the                                                                                             
|global includes have not and need manually tweaking.                                                                                                         
|                                                                                                                                                             
|RP 2011/10/12                                                                                                                                                
|                                                                                                                                                             
|Upstream Status: Superceeded                                                                                                                                 
|                                                                                                                                                             
|Index: xf86-video-intel-2.16.0/src/intel.h                                                                                                                   
|===================================================================                                                                                          
|--- xf86-video-intel-2.16.0.orig/src/intel.h   2011-10-12 20:36:18.587187994 +0100                                                                           
|+++ xf86-video-intel-2.16.0/src/intel.h        2011-10-12 20:36:30.717188011 +0100                                                                           
--------------------------
No file to patch.  Skipping patch.
1 out of 1 hunk ignored
Patch buildfix.patch does not apply (enforce with -f)

ERROR: The stack trace of python calls that resulted in this exception/failure was:
ERROR:   File "patch_do_patch", line 136, in <module>
ERROR:
ERROR:   File "patch_do_patch", line 133, in patch_do_patch
ERROR:
ERROR:   File "/OE/shr-core/openembedded-core/meta/lib/oe/patch.py", line 338, in Resolve
ERROR:     raise sys.exc_value
ERROR:
ERROR: The code that was being executed was:
ERROR:      0132:                       raise bb.build.FuncFailed(str(sys.exc_value))
ERROR:      0133:               resolver.Resolve()
ERROR:      0134:
ERROR:      0135:
ERROR:  *** 0136:patch_do_patch(d)
ERROR:      0137:
ERROR: (file: 'patch_do_patch', lineno: 136, function: <module>)

ERROR:      0137:
ERROR: (file: 'patch_do_patch', lineno: 136, function: <module>)
ERROR:      0129:                       patchset.Import({"file":local, "remote":url, "strippath": striplevel}, True)
ERROR:      0130:               except Exception:
ERROR:      0131:                       import sys
ERROR:      0132:                       raise bb.build.FuncFailed(str(sys.exc_value))
ERROR:  *** 0133:               resolver.Resolve()
ERROR:      0134:
ERROR:      0135:
ERROR:      0136:patch_do_patch(d)
ERROR:      0137:
ERROR: (file: 'patch_do_patch', lineno: 133, function: patch_do_patch)
ERROR: Function 'patch_do_patch' failed
ERROR: Logfile of failure stored in: /OE/shr-core/tmp/work/armv7a-vfp-neon-oe-linux-gnueabi/pulseaudio-0.9.23-r5/temp/log.do_patch.28119
Comment 1 Richard Purdie 2011-11-17 06:49:24 UTC
I'm also not seeing this problem locally, patch files don't make it into DL_DIR (*.done files do but not the patch files themselves). I'm therefore wondering if there is something in your configuration that is triggering this...