On Thu, Jun 18, 2020 at 5:52 AM Richard Purdie
<[email protected]> wrote:
>
> On Thu, 2020-06-18 at 15:57 +0800, Xu, Yanfei wrote:
> > From: Yanfei Xu <[email protected]>
> >
> > Some filesystems don't support symlink, then you will get failure when
> > you install or update the kernel rpm package. Now we use a copied iamge
> > for these filesystems instead of symlink.
> >
> > Suggested-by: Bruce Ashfield <[email protected]>
> > Signed-off-by: Yanfei Xu <[email protected]>
> > ---
> >  meta/classes/kernel.bbclass | 10 +++++++++-
> >  1 file changed, 9 insertions(+), 1 deletion(-)
> >
> > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> > index 41101a64a0..749d1a0f29 100644
> > --- a/meta/classes/kernel.bbclass
> > +++ b/meta/classes/kernel.bbclass
> > @@ -94,6 +94,14 @@ python __anonymous () {
> >          d.appendVar('RDEPENDS_%s-image' % kname, ' %s-image-%s' % (kname, 
> > typelower))
> >          d.setVar('PKG_%s-image-%s' % (kname,typelower), 
> > '%s-image-%s-${KERNEL_VERSION_PKG_NAME}' % (kname, typelower))
> >          d.setVar('ALLOW_EMPTY_%s-image-%s' % (kname, typelower), '1')
> > +        d.setVar('pkg_postinst_ontarget_%s-image-%s' % (kname,typelower), 
> > """
> > +set +e
> > +ln -sf %s-${KERNEL_VERSION} ${KERNEL_IMAGEDEST}/%s > /dev/null 2>&1
> > +if [ $? -ne 0 ]; then
> > +    echo "Filesystem on ${KERNEL_IMAGEDEST}/ doesn't support symlinks, 
> > falling back to copied image (%s)."
> > +fi
> > +set -e
> > +""" % (type, type, type))
> >
> >      image = d.getVar('INITRAMFS_IMAGE')
> >      # If the INTIRAMFS_IMAGE is set but the INITRAMFS_IMAGE_BUNDLE is set 
> > to 0,
> > @@ -386,7 +394,7 @@ kernel_do_install() {
> >       for imageType in ${KERNEL_IMAGETYPES} ; do
> >               install -m 0644 ${KERNEL_OUTPUT_DIR}/${imageType} 
> > ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION}
> >               if [ "${KERNEL_PACKAGE_NAME}" = "kernel" ]; then
> > -                     ln -sf ${imageType}-${KERNEL_VERSION} 
> > ${D}/${KERNEL_IMAGEDEST}/${imageType}
> > +                     install -m 0644 
> > ${D}/${KERNEL_IMAGEDEST}/${imageType}-${KERNEL_VERSION} 
> > ${D}/${KERNEL_IMAGEDEST}/${imageType}
> >               fi
> >       done
> >       install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
>
> I am a bit concerned about this since whilst it solves one problem,
> doesn't having two copies of the same file around significantly
> increase the size of the packages and the update payloads updating such
> systems would need? Are these two copies of the file in the same
> package or not?
>
> Perhaps the symlink creation should fall back to a copy on device
> rather than having the copy at build time (as I understand it)?

This was my question in v1 as well, looks like we've consolidated on
that option now :D

Bruce

>
> Cheers,
>
> Richard
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#139642): 
https://lists.openembedded.org/g/openembedded-core/message/139642
Mute This Topic: https://lists.openembedded.org/mt/74954288/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub  
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to