[oe-commits] [openembedded-core] 01/01: package_rpm/archiver: Apply bandaid to src.rpm creation

git at git.openembedded.org git at git.openembedded.org
Tue Feb 5 13:54:14 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch master
in repository openembedded-core.

commit a10020ace4c3cd863c782760f7cbecea557ec6e7
Author: Richard Purdie <richard.purdie at linuxfoundation.org>
AuthorDate: Tue Feb 5 13:33:37 2019 +0000

    package_rpm/archiver: Apply bandaid to src.rpm creation
    
    | error: create archive failed on file /media/build1/poky/build/tmp/work/all-poky-linux/xcursor-transparent-theme/0.1.1+gitAUTOINC+23c8af5ba4-r0/deploy-sources/allarch-poky-linux/xcursor-transparent-theme-0.1.1+gitAUTOINC+23c8af5ba4-r0/xcursor-transparent-theme-0.1.1+git0+23c8af5ba4-r0.src.rpm: cpio: read failed - No such file or directory
    | Building target platforms: noarch-poky-linux
    | Building for target noarch-poky-linux
    
    This is caused by:
    
    $ cat log.task_order
    
    do_cleansstate (24289): log.do_cleansstate.24289
    do_deploy_archives_setscene (24395): log.do_deploy_archives_setscene.24395
    do_fetch (24407): log.do_fetch.24407
    [..]
    do_package_write_rpm (25448): log.do_package_write_rpm.25448
    do_package_qa (25451): log.do_package_qa.25451
    
    So do_deploy_archives can run from sstate, created a .src.rpm in WORKDIR/deploy-sources,
    then it was removed when rpm was running. This leads to a broken Source line in the
    spec file as the original file was found by the os.listdir().
    
    This fix is just a bandaid over much more fundamental problems sadly.
    
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/package_rpm.bbclass | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
index 21ada34..5dafb3e 100644
--- a/meta/classes/package_rpm.bbclass
+++ b/meta/classes/package_rpm.bbclass
@@ -113,6 +113,10 @@ python write_specfile () {
             source_list = os.listdir(ar_outdir)
             source_number = 0
             for source in source_list:
+                # do_deploy_archives may have already run (from sstate) meaning a .src.rpm may already 
+                # exist in ARCHIVER_OUTDIR so skip if present.
+                if source.endswith(".src.rpm"):
+                    continue
                 # The rpmbuild doesn't need the root permission, but it needs
                 # to know the file's user and group name, the only user and
                 # group in fakeroot is "root" when working in fakeroot.

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list