package.bbclass: Reverse runtime symlinks should be tied to package generation
authorOtavio Salvador <otavio@ossystems.com.br>
Sun, 5 Oct 2014 15:14:22 +0000 (12:14 -0300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Mon, 6 Oct 2014 14:15:52 +0000 (15:15 +0100)
In case a package is not generated (is empty and does not has allow
empty flag set) the package data regarding reverse runtime dependency
shouldn't be done.

This were causing a false-positive in the meta-fsl-arm layer, when
building mesa, as:

,----[ Error during build of MX53 in meta-fsl-arm ]
| ERROR: The recipe mesa is trying to install files into a shared area
|  when those files already exist. Those files and their manifest
|  location are:
|    /.../build/build/tmp/sysroots/imx53qsb/pkgdata/runtime-reverse/libopenvg-dev
|    Matched in manifest-imx53qsb-amd-gpu-x11-bin-mx51.packagedata
| Please verify which recipe should provide the above files.
`----

Fixes [YOCTO: #6795]

(From OE-Core rev: 9ef8728514b02dd2e18e87645298d9ec2e8a785a)

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/package.bbclass

index a877d28..f17c8d5 100644 (file)
@@ -1241,10 +1241,6 @@ python emit_pkgdata() {
         sf.write('%s_%s: %d\n' % ('PKGSIZE', pkg, total_size))
         sf.close()
 
-        # Symlinks needed for reverse lookups (from the final package name)
-        subdata_sym = pkgdatadir + "/runtime-reverse/%s" % pkgval
-        oe.path.symlink("../runtime/%s" % pkg, subdata_sym, True)
-        
         # Symlinks needed for rprovides lookup
         if rprov:
             for p in rprov.strip().split():
@@ -1259,6 +1255,10 @@ python emit_pkgdata() {
         os.chdir(root)
         g = glob('*')
         if g or allow_empty == "1":
+            # Symlinks needed for reverse lookups (from the final package name)
+            subdata_sym = pkgdatadir + "/runtime-reverse/%s" % pkgval
+            oe.path.symlink("../runtime/%s" % pkg, subdata_sym, True)
+
             packagedfile = pkgdatadir + '/runtime/%s.packaged' % pkg
             open(packagedfile, 'w').close()