Copy manifest file into ${PKGDEST} 47/29347/1
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 24 Oct 2014 14:21:18 +0000 (16:21 +0200)
committerKévin THIERRY <kevin.thierry@open.eurogiciel.org>
Fri, 24 Oct 2014 14:32:11 +0000 (16:32 +0200)
If running do_package_write_rpm with a build from sstate, it can rely on
the output of do_package being present, it cannot rely on the presence
of ${S} any longer. This patch copyies the manifests into ${PKGDEST}
which is stored output of do_package and hence preserved, fixing the
build failure you'd otherwise see if you force a build of
do_package_write_rpm from sstate.

[kevin.thierry: add manifest.bbclass to automatically copy the manifest
when a recipe inherits manifest.]

Bug-Tizen: BTY-59
Change-Id: I34f6d3ec53e40d64958da8587501380e47121729
Signed-off-by: Kévin THIERRY <kevin.thierry@open.eurogiciel.org>
classes/manifest.bbclass [new file with mode: 0644]
classes/metatizen.bbclass

diff --git a/classes/manifest.bbclass b/classes/manifest.bbclass
new file mode 100644 (file)
index 0000000..cee0d98
--- /dev/null
@@ -0,0 +1,3 @@
+do_package_prepend() {
+    bb.build.exec_func('tizen_copy_manifest', d)
+}
index 9ca3d4f..d8e2861 100644 (file)
@@ -17,5 +17,17 @@ RPM_EXTRA_PKGDATA = "1"
 
 def package_rpm_extra_pkgdata(splitname, spec_file, d):
     if d.getVar('MANIFESTFILES', True):
-        spec_file.append('%%manifest %s' % d.getVar('MANIFESTFILES', True))
+        spec_file.append('%%manifest %s' % (d.getVar('MANIFESTFILES', True)))
 
+python tizen_copy_manifest () {
+    dest = d.getVar('S', True)
+    dvar = d.getVar('PKGDEST', True)
+
+    # Start by package population by taking a copy of the installed
+    # files to operate on
+    # Preserve sparse files and hard links
+    cmd = 'cp %s/*.manifest %s' % (dest, dvar)
+    (retval, output) = oe.utils.getstatusoutput(cmd)
+    if retval:
+        bb.fatal("file copy failed with exit code %s (cmd was %s)%s" % (retval, cmd, ":\n%s" % output if output else ""))
+}