[yocto] Multiple packages from single recipe file

Bipnesh, Abhinav (Abhinav) abhinavbipnesh at avaya.com
Mon Feb 9 08:43:28 PST 2015


Hi,

We have done on similar line for one of the package. We have to write another recipe for a package in which we need to just create packages and delivery it.
But we need to do it for couple of directories i.e. let say 10 directories.
Previously we have an script which perform some conversion and then create package in loop i.e. creating RPM in loop for such package.
Now we want to achieve the same using a recipe.
One of the solution is to write 10 such recipe and creating a package, But it means we need to check-out 10 times the code and then create the package.
But we are looking for some optimize way to do so as below
1. Check out all 10 directories in one shot.
2. Write small shell script code and call do_install() passing ${S} and ${D} as argument to create the package. Here we are also looking for package name for each such call different say package-1-ro.rpm package-2.r0.rpm etc.
3. Also avoid calling do_compile() as there is no makefile its plain file repo which need to be packaged.

So any thoughts how to do such job.

Thanks,
Abhinav
________________________________________
From: Anders Darander [anders at chargestorm.se]
Sent: Monday, February 09, 2015 7:43 PM
To: Bipnesh, Abhinav (Abhinav)
Cc: Victor Rodriguez; yocto at yoctoproject.org
Subject: Re: [yocto] Multiple packages from single recipe file

* Bipnesh, Abhinav (Abhinav) <abhinavbipnesh at avaya.com> [150209 14:26]:
> In case of writing the spec file for RPM we need to create first the
> directory layout and then putting the files using cp or other commands
> and then perform %file etc. stuff. But when I take a look to some of
> the recipe file present under poky sometime I see FILES_${PN} and it
> didn’t specify from where to pick the files.

> May be the case is that these project use Auto tools for building. But
> in our case we have plain Makefile for building and then collecting
> files from different location and putting in package.  So I was
> thinking can be use such shortcut method for such job.

In your case, add a do_install() function and make install all your
files into ${D}. See e.g. the setserial recipe:
https://urldefense.proofpoint.com/v2/url?u=http-3A__git.openembedded.org_openembedded-2Dcore_tree_meta_recipes-2Dbsp_setserial_setserial-5F2.17.bb&d=AwIFaQ&c=BFpWQw8bsuKpl1SgiZH64Q&r=geJ1wB7xRIMmteYB2Fo8esL32BOWvwP1HmY0YuLEB4E&m=aZjRWREP73CkvukWYDIq6EBYm-V9PXDui-fbP3IIRjI&s=jDlPZCpV9O0A6xPnqSw-Ee2XPHnFTU1O_vV-YNexwKk&e=

Cheers,
Anders


> -----Original Message-----
> From: Victor Rodriguez [mailto:vm.rod25 at gmail.com]
> Sent: Monday, February 09, 2015 18:46
> To: Bipnesh, Abhinav (Abhinav)
> Cc: yocto at yoctoproject.org
> Subject: Re: [yocto] Multiple packages from single recipe file

> On Mon, Feb 9, 2015 at 4:51 AM, Bipnesh, Abhinav (Abhinav) <abhinavbipnesh at avaya.com> wrote:
> > Hi,



> > I was looking further into the document to find a way to define
> > multiple packages from a single recipe file. As in current recipe I
> > have written a
> > do_install() function for putting files in particular directories. So
> > it copies files from ${S} to ${D}.

> > But some of the documents talk about multiple package something as
> > below



> > FILES_${PN} = "\

> >     ${bindir}/* \

> >     ${sbindir}/* \

> >     ${libexecdir}/* \

> >     ${libdir}/lib*.so.* \

> >     ${sysconfdir} \

> >     ${sharedstatedir} \

> >     ${localstatedir} \

> >     /bin/* \

> >     /sbin/* \

> >     /lib/*.so* \

> >     ${datadir}/${PN} \

> >     ${libdir}/${PN}/* \

> >     ${datadir}/pixmaps \

> >     ${datadir}/applications \

> >     ${datadir}/idl \

> >     ${datadir}/omf \

> >     ${datadir}/sounds \

> >     ${libdir}/bonobo/servers"



> > FILES_${PN}-dbg = "\

> >     ${bindir}/.debug \

> >     ${sbindir}/.debug \

> >     ${libexecdir}/.debug \

> >     ${libdir}/.debug \

> >     /bin/.debug \

> >     /sbin/.debug \

> >     /lib/.debug \

> >     ${libdir}/${PN}/.debug"



> > But I am not getting how the source for such file will be determine as
> > in our project files will be present in different directories and need
> > to be placed in some predefined paths.



> > So how we can achieve the same.



> > Thanks,

> > Abhinav
--
Anders Darander
ChargeStorm AB / eStorm AB



More information about the yocto mailing list