Hi Jay, On Wednesday 04 September 2013 22:10:10 JC wrote: > On 04/09/2013 21:58, JC wrote: > > On 04/09/2013 20:58, JC wrote: > >> Hi, > >> > >> In my project, we have our own rpm repository and we use smartpm on > >> the target. > >> In order to have the target setup with the repo out of the box, we of > >> course have added "package-management" in IMAGE_FEATURES. Now I'd > >> like the target to have our repo address already configured. > >> > >> The best way I found was to create a recipe in my overlay and hacking > >> the system a little bit this way : > >> do_install() { > >> > >> if > >> > >> ${@base_contains('IMAGE_FEATURES','package-management','true','false',d)} > >> ; > >> then > >> > >> install -d ${D}/${sysconfdir} > >> install -m 644 ${WORKDIR}/config.in ${D}/var/lib/smart/config > >> > >> fi > >> > >> } > >> > >> where "config.in" is a simple copy of the non-human readable version > >> of smartpm config file, generated manually on the target. > >> > >> I was wondering if there would be a better way such as do not test in > >> the do_install, but rather make the recipe dependent on the > >> "package-management" image feature ? (so that do_install wouldn't > >> even be considered if the option is not set), or any other smarter idea. > > > > Actually I _need_ a better idea because mine doesn't work: it actually > > creates what I want (/var/lib/smart/config) but since do_rootfs also > > uses this directory to install packages, it wipes it out at the end of > > the process... so my installation is removed :( > > > > I'm sure someone else did something like this (but succeeded) ? > > The guilty line is in /sources/poky/meta/classes/rootfs_rpm.bbclass > > 145: rm -rf ${IMAGE_ROOTFS}/var/lib/smart > > :( > > Whatever I want to do with packages, It'll be removed. There's probably > an alternate way :(
Unfortunately we have to have a fixed configuration for smart during do_rootfs, so it has to be written to. I think though that rather than trying to install a configuration file for smart using a separate recipe, I would suggest modifying the smart configuration at the end of do_rootfs to add the configuration elements you need. The way to do this would be to define a shell function that you can add a call to in ROOTFS_POSTPROCESS_COMMAND that will run smart: add_extra_smart_config() { smart --data-dir=${IMAGE_ROOTFS}/var/lib/smart channel --add rpmsys type=rpm-sys -y } ROOTFS_POSTPROCESS_COMMAND += "add_extra_smart_config; " You can put the above in the image recipe itself or in a class that your image recipe inherits. Cheers, Paul -- Paul Eggleton Intel Open Source Technology Centre _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto