[OE-core] [PATCH] Revert "kernel: Fix symlinks"
Andreas Oberritter
obi at opendreambox.org
Fri Apr 21 11:30:34 UTC 2017
On Fri, 21 Apr 2017 13:02:51 +0200
Andrea Adami <andrea.adami at gmail.com> wrote:
> On Fri, Apr 21, 2017 at 12:39 PM, Andreas Oberritter
> <obi at opendreambox.org> wrote:
> > This reverts commit c7bc46b9bc29dd0953ab8d63b50fa105bb66892e.
> >
> > It broke dpkg's update-alternatives, which requires absolute paths.
>
> This is really uncommon.
Actually it's not. Try it on any Debian or Ubuntu system.
> I had already expressed my negative opinion about absolute paths for kernel [1].
> Personally, I had to patch the bootloader (kexecboot).
>
> So please try some workaround instead of changing it back.
Well, there's no workaround. Other than opkg's update-alternatives, dpkg's maintains
an alternatives database in /etc/alternatives, so the symlink is going to point to
an absolute path outside of /boot anyway.
To fix your problem, kernel.bbclass should be changed to not use update-alternatives
at all. But it's definitely wrong to break the original u-a by using invalid command-
line arguments.
Regards,
Andreas
> Cheers
> Andrea
>
> [1] http://lists.openembedded.org/pipermail/openembedded-core/2014-July/093988.html
>
> >
> > | update-alternatives: error: alternative path is not absolute as it should be
> >
> > Signed-off-by: Andreas Oberritter <obi at opendreambox.org>
> > ---
> > meta/classes/kernel.bbclass | 6 +++---
> > meta/recipes-kernel/linux/linux-dtb.inc | 4 ++--
> > 2 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> > index 12a748d..8cf357f 100644
> > --- a/meta/classes/kernel.bbclass
> > +++ b/meta/classes/kernel.bbclass
> > @@ -49,11 +49,10 @@ python __anonymous () {
> >
> > for type in types.split():
> > typelower = type.lower()
> > - imagedest = d.getVar('KERNEL_IMAGEDEST')
> >
> > d.appendVar('PACKAGES', ' ' + 'kernel-image-' + typelower)
> >
> > - d.setVar('FILES_kernel-image-' + typelower, '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME}')
> > + d.setVar('FILES_kernel-image-' + typelower, '/boot/' + type + '-${KERNEL_VERSION_NAME}')
> >
> > d.appendVar('RDEPENDS_kernel-image', ' ' + 'kernel-image-' + typelower)
> >
> > @@ -61,8 +60,9 @@ python __anonymous () {
> >
> > d.setVar('ALLOW_EMPTY_kernel-image-' + typelower, '1')
> >
> > + imagedest = d.getVar('KERNEL_IMAGEDEST')
> > priority = d.getVar('KERNEL_PRIORITY')
> > - postinst = '#!/bin/sh\n' + 'update-alternatives --install /' + imagedest + '/' + type + ' ' + type + ' ' + type + '-${KERNEL_VERSION_NAME} ' + priority + ' || true' + '\n'
> > + postinst = '#!/bin/sh\n' + 'update-alternatives --install /' + imagedest + '/' + type + ' ' + type + ' ' + '/' + imagedest + '/' + type + '-${KERNEL_VERSION_NAME} ' + priority + ' || true' + '\n'
> > d.setVar('pkg_postinst_kernel-image-' + typelower, postinst)
> >
> > postrm = '#!/bin/sh\n' + 'update-alternatives --remove' + ' ' + type + ' ' + type + '-${KERNEL_VERSION_NAME} || true' + '\n'
> > diff --git a/meta/recipes-kernel/linux/linux-dtb.inc b/meta/recipes-kernel/linux/linux-dtb.inc
> > index 22e374f..41aad7c 100644
> > --- a/meta/recipes-kernel/linux/linux-dtb.inc
> > +++ b/meta/recipes-kernel/linux/linux-dtb.inc
> > @@ -63,7 +63,7 @@ pkg_postinst_kernel-devicetree () {
> > DTB_EXT=${DTB##*.}
> > DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
> > DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
> > - update-alternatives --install /${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT} ${DTB_BASE_NAME}.${DTB_EXT} devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
> > + update-alternatives --install /${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT} ${DTB_BASE_NAME}.${DTB_EXT} /boot/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
> > done
> > done
> > }
> > @@ -76,7 +76,7 @@ pkg_postrm_kernel-devicetree () {
> > DTB_EXT=${DTB##*.}
> > DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
> > DTB_SYMLINK_NAME=`echo ${symlink_name} | sed "s/${MACHINE}/${DTB_BASE_NAME}/g"`
> > - update-alternatives --remove ${DTB_BASE_NAME}.${DTB_EXT} devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
> > + update-alternatives --remove ${DTB_BASE_NAME}.${DTB_EXT} /boot/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT} ${KERNEL_PRIORITY} || true
> > done
> > done
> > }
> > --
> > 2.7.4
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core at lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core
More information about the Openembedded-core
mailing list