[OE-core] why would a recipe have both do_install() and do_install_append()?

Richard Purdie richard.purdie at linuxfoundation.org
Wed Jul 4 11:29:50 UTC 2012


On Wed, 2012-07-04 at 06:16 -0400, Robert P. J. Day wrote:
> On Wed, 4 Jul 2012, Andreas Oberritter wrote:
> 
> > On 04.07.2012 08:32, Khem Raj wrote:
> > > On Tue, Jul 3, 2012 at 7:22 PM, Robert P. J. Day <rpjday at crashcourse.ca> wrote:
> > >>
> > >>   i'm probably just misreading something, but what is the point of a
> > >> recipe having both a do_install() and do_install_append() function?
> > >> for example, here's part of e2fsprogs_1.42.1.bb:
> > >>
> > >> do_install () {
> > >>         oe_runmake 'DESTDIR=${D}' install
> > >>         oe_runmake 'DESTDIR=${D}' install-libs
> > >>         # We use blkid from util-linux now so remove from here
> > >>         rm -f ${D}${base_libdir}/libblkid*
> > >>         rm -rf ${D}${includedir}/blkid
> > >>         rm -f ${D}${base_libdir}/pkgconfig/blkid.pc
> > >> }
> > >>
> > >> do_install_append () {
> > >>         # e2initrd_helper and the pkgconfig files belong in libdir
> > >>         if [ ! ${D}${libdir} -ef ${D}${base_libdir} ]; then
> > >>                 install -d ${D}${libdir}
> > >>                 mv ${D}${base_libdir}/e2initrd_helper ${D}${libdir}
> > >>                 mv ${D}${base_libdir}/pkgconfig ${D}${libdir}
> > >>         fi
> > >> }
> > >>
> > >>   how does that differ from simply defining a single do_install()
> > >> routine?  i'm willing for this to be a dumb question.
> > >
> > > it does not. I think it could be arguably done in same do_install
> >
> > Yes.
> >
> > > but it does have some logical separation where the append operation is
> > > moving files from /lib to /usr/lib
> >
> > It would be better to just use a comment and/or empty line for logical
> > separation.
> >
> > > in theory another use of it is that you can override do_install_append
> > > in a .bbappend file
> > > and still reuse the do_install.
> >
> > AFAICT, you can't override an append. Both appends, the original and the
> > bbappended, would get executed.
> 
>   ok, now i *definitely* want to know whether this would work or not
> since there are a few recipes that define both do_install() and
> do_install_append().

Andreas is correct, you can't override a do_install_append (), both
would just get appended.

Cheers,

Richard





More information about the Openembedded-core mailing list