Hi,

I think src rpms are not that interesting stuff for a lot of you. I've fixed this by my own by adding a class to my meta-stlinux layer which handles the extra sources and patches within the *.src.rpm.

The idea was taken from the lsof package.

LOCAL_SRC ??= ""

def src_rpm_do_base(d,func):
    bb.build.exec_func(func, d)
    src_uri = d.getVar('SRC_URI')
    d.setVar('SRC_URI', '${LOCAL_SRC}')
    bb.build.exec_func(func, d)
    d.setVar('SRC_URI', src_uri)



python do_unpack () {
    src_rpm_do_base(d,'base_do_unpack')
}

python do_patch () {
    src_rpm_do_base(d,'base_d
}

https://github.com/project-magpie/meta-stlinux/blob/master/classes/src_rpm.bbclass

I hope this is the way things like this should be handled.

regards,

Christian



Hello,

I am interested in how to handle source code inside of a src.rpm package. There had been a patch from Mark Hatle which handles the rpm packages inside the fetcher2. In his patch he suggests to handle Patches inside the rpm in the following way:


file://${WORKDIR}/mypatch.patch

When I tried this inside the SRC_URI declaration I always get en error like this:

NOTE: Running task 439 of 669 (ID: 4, /home/chris/src/poky-denzil/meta-stlinux/recipes-core/stslave/stslave_0.7.bb, do_fetch)
NOTE: package stslave-0.7-r1: task do_fetch: Started
ERROR: Function failed: Fetcher failure for URL: 'file:///home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz'. Unable to fetch URL from any source. ERROR: Logfile of failure stored in: /home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/temp/log.do_fetch.25817
Log data follows:
| DEBUG: Trying PREMIRRORS
| DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['bzr', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['cvs', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['git', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['hg', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['osc', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['p4', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['svk', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}] | DEBUG: For url ['file', '', '/home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz', '', '', {}] comparing ['svn', '.*', '/.*', '', '', {}] to ['http', 'downloads.yoctoproject.org', '/mirror/sources/', '', '', {}]
| DEBUG: Trying Upstream
| ERROR: Function failed: Fetcher failure for URL: 'file:///home/chris/src/poky-denzil/spark7162-build/tmp/work/sh4-poky-linux/stslave-0.7-r1/stslave-0.7.tar.gz'. Unable to fetch URL from any source.

Yes of course I can just let fetcher2 extract all the files an afterwards apply the patches by hand. But I think there should be a more generic way to handle this. I hope I can get some hints how to solve this.




with kind regards,

Christian


_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto



--
~: https://github.com/project-magpie/meta-stlinux :~

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to