[OE-core] [PATCH] kernel: Stop using update-alternatives

Saul Wold sgw at linux.intel.com
Fri Sep 1 17:36:56 UTC 2017


On Fri, 2017-09-01 at 10:07 -0700, Saul Wold wrote:
> On Thu, 2017-08-31 at 18:34 -0300, Otavio Salvador wrote:
> > 
> > The update-alternatives where using relative links so not being
> > really
> > in use since December 2016 (see OE-Core:c7bc46b9 "kernel: Fix
> > symlinks") so instead we now generate the relative symlinks during
> > the
> > do_install task and drop the update-alternatives use at all.
> > 
> Is there a reason not to fix the U-A usage of the relative links?
> 
> How will this affect the installation of multiple kernels?
> for example with Haris's patch: http://lists.openembedded.org/piperma
> il
> /openembedded-core/2017-August/140996.html
> 
> Sau!
> 
I chatted with Otavio and we agree this is correct.

Acked-by: Saul Wold <sgw at linux.intel.com>

Sau!

> 
> > 
> > Signed-off-by: Otavio Salvador <otavio at ossystems.com.br>
> > ---
> > 
> >  meta/classes/kernel.bbclass             | 16 +++------------
> >  meta/recipes-kernel/linux/linux-dtb.inc | 36 ++++-----------------
> > --
> > ----------
> >  2 files changed, 7 insertions(+), 45 deletions(-)
> > 
> > diff --git a/meta/classes/kernel.bbclass
> > b/meta/classes/kernel.bbclass
> > index 3cc0432fcf..02a5e961cb 100644
> > --- a/meta/classes/kernel.bbclass
> > +++ b/meta/classes/kernel.bbclass
> > @@ -2,7 +2,7 @@ inherit linux-kernel-base kernel-module-split
> >  
> >  PROVIDES += "virtual/kernel"
> >  DEPENDS += "virtual/${TARGET_PREFIX}binutils
> > virtual/${TARGET_PREFIX}gcc kmod-native bc-native lzop-native"
> > -PACKAGE_WRITE_DEPS += "depmodwrapper-cross virtual/update-
> > alternatives-native"
> > +PACKAGE_WRITE_DEPS += "depmodwrapper-cross"
> >  
> >  do_deploy[depends] += "depmodwrapper-cross:do_populate_sysroot"
> >  
> > @@ -57,7 +57,7 @@ python __anonymous () {
> >  
> >          d.appendVar('PACKAGES', ' ' + 'kernel-image-' + typelower)
> >  
> > -        d.setVar('FILES_kernel-image-' + typelower, '/' +
> > imagedest
> > + '/' + type + '-${KERNEL_VERSION_NAME}')
> > +        d.setVar('FILES_kernel-image-' + typelower, '/' +
> > imagedest
> > + '/' + type + '-${KERNEL_VERSION_NAME}' + ' /' + imagedest + '/' +
> > type)
> >  
> >          d.appendVar('RDEPENDS_kernel-image', ' ' + 'kernel-image-' 
> > +
> > typelower)
> >  
> > @@ -65,13 +65,6 @@ python __anonymous () {
> >  
> >          d.setVar('ALLOW_EMPTY_kernel-image-' + typelower, '1')
> >  
> > -        priority = d.getVar('KERNEL_PRIORITY')
> > -        postinst = '#!/bin/sh\n' + 'update-alternatives --install
> > /'
> > + imagedest + '/' + type + ' ' + type + ' ' + 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'
> > -        d.setVar('pkg_postrm_kernel-image-' + typelower, postrm)
> > -
> >      image = d.getVar('INITRAMFS_IMAGE')
> >      if image:
> >          d.appendVarFlag('do_bundle_initramfs', 'depends', '
> > ${INITRAMFS_IMAGE}:do_image_complete')
> > @@ -137,10 +130,6 @@ export CROSS_COMPILE = "${TARGET_PREFIX}"
> >  export KBUILD_BUILD_USER = "oe-user"
> >  export KBUILD_BUILD_HOST = "oe-host"
> >  
> > -KERNEL_PRIORITY ?= "${@int(d.getVar('PV').split('-
> > ')[0].split('+')[0].split('.')[0]) * 10000 + \
> > -                       int(d.getVar('PV').split('-
> > ')[0].split('+')[0].split('.')[1]) * 100 + \
> > -                       int(d.getVar('PV').split('-
> > ')[0].split('+')[0].split('.')[-1])}"
> > -
> >  KERNEL_RELEASE ?= "${KERNEL_VERSION}"
> >  
> >  # The directory where built kernel lies in the kernel tree
> > @@ -350,6 +339,7 @@ kernel_do_install() {
> >  	install -d ${D}/boot
> >  	for type in ${KERNEL_IMAGETYPES} ; do
> >  		install -m 0644 ${KERNEL_OUTPUT_DIR}/${type}
> > ${D}/${KERNEL_IMAGEDEST}/${type}-${KERNEL_VERSION}
> > +		ln -sf ${type}-${KERNEL_VERSION}
> > ${D}/${KERNEL_IMAGEDEST}/${type}
> >  	done
> >  	install -m 0644 System.map ${D}/boot/System.map-
> > ${KERNEL_VERSION}
> >  	install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}
> > diff --git a/meta/recipes-kernel/linux/linux-dtb.inc
> > b/meta/recipes-
> > kernel/linux/linux-dtb.inc
> > index 0174c80d85..6e6f39e640 100644
> > --- a/meta/recipes-kernel/linux/linux-dtb.inc
> > +++ b/meta/recipes-kernel/linux/linux-dtb.inc
> > @@ -1,7 +1,5 @@
> >  # Support for device tree generation
> > -FILES_kernel-devicetree = "/${KERNEL_IMAGEDEST}/devicetree*"
> > -
> > -PACKAGE_WRITE_DEPS += "virtual/update-alternatives-native"
> > +FILES_kernel-devicetree = "/${KERNEL_IMAGEDEST}/*.dtb
> > /${KERNEL_IMAGEDEST}/*.dtbo"
> >  
> >  python __anonymous () {
> >      d.appendVar("PACKAGES", " kernel-devicetree")
> > @@ -36,12 +34,13 @@ do_install_append() {
> >  	for DTB in ${KERNEL_DEVICETREE}; do
> >  		DTB=`normalize_dtb "${DTB}"`
> >  		DTB_EXT=${DTB##*.}
> > +		DTB_PATH=`get_real_dtb_path_in_kernel "${DTB}"`
> >  		DTB_BASE_NAME=`basename ${DTB} ."${DTB_EXT}"`
> > +		install -m 0644 ${DTB_PATH}
> > ${D}/${KERNEL_IMAGEDEST}/${DTB_BASE_NAME}.${DTB_EXT}
> >  		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
> >  			symlink_name=${type}"-
> > "${KERNEL_IMAGE_SYMLINK_NAME}
> >  			DTB_SYMLINK_NAME=`echo ${symlink_name} |
> > sed
> > "s/${MACHINE}/${DTB_BASE_NAME}/g"`
> > -			DTB_PATH=`get_real_dtb_path_in_kernel
> > "${DTB}"`
> > -			install -m 0644 ${DTB_PATH}
> > ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT}
> > +			ln -sf ${DTB_BASE_NAME}.${DTB_EXT}
> > ${D}/${KERNEL_IMAGEDEST}/devicetree-${DTB_SYMLINK_NAME}.${DTB_EXT}
> >  		done
> >  	done
> >  }
> > @@ -59,33 +58,6 @@ do_deploy_append() {
> >  			DTB_PATH=`get_real_dtb_path_in_kernel
> > "${DTB}"`
> >  			install -d ${DEPLOYDIR}
> >  			install -m 0644 ${DTB_PATH}
> > ${DEPLOYDIR}/${DTB_NAME}.${DTB_EXT}
> > -			ln -sf ${DTB_NAME}.${DTB_EXT}
> > ${DEPLOYDIR}/${DTB_SYMLINK_NAME}.${DTB_EXT}
> > -		done
> > -	done
> > -}
> > -
> > -pkg_postinst_kernel-devicetree () {
> > -	cd /${KERNEL_IMAGEDEST}
> > -	for DTB in ${KERNEL_DEVICETREE}; do
> > -		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
> > -			symlink_name=${type}"-
> > "${KERNEL_IMAGE_SYMLINK_NAME}
> > -			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
> > -		done
> > -	done
> > -}
> > -
> > -pkg_postrm_kernel-devicetree () {
> > -	cd /${KERNEL_IMAGEDEST}
> > -	for DTB in ${KERNEL_DEVICETREE}; do
> > -		for type in ${KERNEL_IMAGETYPE_FOR_MAKE}; do
> > -			symlink_name=${type}"-
> > "${KERNEL_IMAGE_SYMLINK_NAME}
> > -			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
> >  		done
> >  	done
> >  }
> > -- 
> > 2.14.1
> > 



More information about the Openembedded-core mailing list