[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#884553: Foreign architecture package support for linux kernel flavours patch



On Tue, 12 Mar 2019, adrian15 wrote:
> Is it ok for merging in Debian GIT or is there anything that I can improve?

I think it's OK if this was tested and if it doesn't break anything.
Do you have commit rights to apply it yourself?

If not, you might want to submit a merge request. You might want to
improve the commit's description to explain why it's enough to accept
the arch qualifier... i.e. other parts of the code already deal with
it properly.

Cheers,

> Date: Fri, 15 Dec 2017 17:22:57 +0000
> Subject: [PATCH] Fixed foreign architecture package support to linux kernel
>  flavours
> 
> This problem originated in Stretch where amd64 kernel is not part of i386 repo.
> So it needs to be fetched from amd64 repo.
> 
> So first of all you need to enable amd64 foreign architecture in your i386 system
> thanks to:
> 
> dpkg --add-architecture amd64
> apt-get update
> .
> 
> Once you have done this thanks to this commit
> now you can set linux flavours ( --linux-flavours ) as:
> 
> "686 amd64:amd64"
> 
> in a i386 system and it will install the amd64 kernel alongside the i386 system's 686 kernel.
> ---
>  functions/defaults.sh            | 24 ++++++++++++++++--------
>  manpages/en/lb_config.1          |  2 +-
>  scripts/build/chroot_linux-image |  2 +-
>  scripts/build/config             |  6 +++---
>  4 files changed, 21 insertions(+), 13 deletions(-)
> 
> diff --git a/functions/defaults.sh b/functions/defaults.sh
> index c48955104..c1ca10258 100755
> --- a/functions/defaults.sh
> +++ b/functions/defaults.sh
> @@ -407,27 +407,27 @@ Set_defaults ()
>  	# Setting linux flavour string
>  	case "${LB_ARCHITECTURES}" in
>  		arm64)
> -			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-arm64}"
> +			LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-arm64}"
>  			;;
>  
>  		armel)
>  			# armel will have special images: one rootfs image and many additional kernel images.
>  			# therefore we default to all available armel flavours
> -			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-marvell}"
> +			LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-marvell}"
>  			;;
>  
>  		armhf)
>  			# armhf will have special images: one rootfs image and many additional kernel images.
>  			# therefore we default to all available armhf flavours
> -			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-armmp armmp-lpae}"
> +			LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-armmp armmp-lpae}"
>  			;;
>  
>  		amd64)
> -			LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-amd64}"
> +			LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-amd64}"
>  			;;
>  
>  		i386)
> -                        LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-686-pae}"
> +                        LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-686-pae}"
>  			;;
>  
>  		ia64)
> @@ -438,7 +438,7 @@ Set_defaults ()
>  					;;
>  
>  				*)
> -					LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-itanium}"
> +					LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-itanium}"
>  					;;
>  			esac
>  			;;
> @@ -451,7 +451,7 @@ Set_defaults ()
>  					;;
>  
>  				*)
> -					LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc64 powerpc}"
> +					LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-powerpc64 powerpc}"
>  					;;
>  			esac
>  			;;
> @@ -464,7 +464,7 @@ Set_defaults ()
>  					;;
>  
>  				*)
> -					LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-s390x}"
> +					LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-s390x}"
>  					;;
>  			esac
>  			;;
> @@ -475,6 +475,14 @@ Set_defaults ()
>  			;;
>  	esac
>  
> +	LB_LINUX_FLAVOURS=""
> +	for FLAVOUR in ${LB_LINUX_FLAVOURS_WITH_ARCH}
> +	do
> +		ARCH_FILTERED_FLAVOUR="$(echo ${FLAVOUR} | awk -F':' '{print $1}')"
> +		LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS} ${ARCH_FILTERED_FLAVOUR}"
> +	done
> +
> +
>  	# Set linux packages
>  	LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES:-linux-image}"
>  
> diff --git a/manpages/en/lb_config.1 b/manpages/en/lb_config.1
> index ac562d209..e46331ec7 100644
> --- a/manpages/en/lb_config.1
> +++ b/manpages/en/lb_config.1
> @@ -360,7 +360,7 @@ sets the eraseblock size for a JFFS2 (Second Journaling Flash File System) files
>  .IP "\fB\-\-keyring\-packages\fR \fIPACKAGE\fI|""\fIPACKAGES\fR""" 4
>  sets the keyring package or additional keyring packages. By default this is set to debian\-archive\-keyring.
>  .IP "\-k|\fB\-\-linux\-flavours\fR \fIFLAVOUR\fR|""\fIFLAVOURS\fR""" 4
> -sets the kernel flavours to be installed. Note that in case you specify more than that the first will be configured the default kernel that gets booted.
> +sets the kernel flavours to be installed. Note that in case you specify more than that the first will be configured the default kernel that gets booted. Optionally you can use an architecture qualifier, e.g. amd64:amd64. Given an i386 system you can enable amd64 foreign architecture thanks to the commands: "dpkg \-\-add\-architecture amd64 ; apt\-get update". This enables you to use "686 amd64:amd64" as a linux flavour. The amd64 kernel will be installed alongside the i386's 686 kernel.
>  .IP "\fB\-\-linux\-packages\fR ""\fIPACKAGES\fR""" 4
>  sets the internal name of the kernel packages naming scheme. If you use debian kernel packages, you will not have to adjust it. If you decide to use custom kernel packages that do not follow the debian naming scheme, remember to set this option to the stub of the packages only (for debian this is linux\-image\-2.6), so that \fISTUB\fR-\fIFLAVOUR\fR results in a valid package name (for debian e.g. linux\-image\-686\-pae). Preferably you use the meta package name, if any, for the stub, so that your configuration is ABI independent. Also don't forget that you have to include stubs of the binary modules packages for unionfs or aufs, and squashfs if you built them out-of-tree.
>  .IP "\fB\-\-losetup\fR losetup|losetup.orig" 4
> diff --git a/scripts/build/chroot_linux-image b/scripts/build/chroot_linux-image
> index a96c4e529..e34743c1c 100755
> --- a/scripts/build/chroot_linux-image
> +++ b/scripts/build/chroot_linux-image
> @@ -48,7 +48,7 @@ Create_lockfile .lock
>  #		;;
>  #esac
>  
> -for FLAVOUR in ${LB_LINUX_FLAVOURS}
> +for FLAVOUR in ${LB_LINUX_FLAVOURS_WITH_ARCH}
>  do
>  	for PACKAGE in ${LB_LINUX_PACKAGES}
>  	do
> diff --git a/scripts/build/config b/scripts/build/config
> index 6c2ab3b7b..896a1acb5 100755
> --- a/scripts/build/config
> +++ b/scripts/build/config
> @@ -453,7 +453,7 @@ Local_arguments ()
>  				;;
>  
>  			-k|--linux-flavours)
> -				LB_LINUX_FLAVOURS="${2}"
> +				LB_LINUX_FLAVOURS_WITH_ARCH="${2}"
>  				shift 2
>  				;;
>  
> @@ -1131,9 +1131,9 @@ LB_INTERACTIVE="${LB_INTERACTIVE}"
>  # (Default: empty)
>  LB_KEYRING_PACKAGES="${LB_KEYRING_PACKAGES}"
>  
> -# \$LB_LINUX_FLAVOURS: set kernel flavour to use
> +# \$LB_LINUX_FLAVOURS_WITH_ARCH: set kernel flavour to use (with arch)
>  # (Default: autodetected)
> -LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS}"
> +LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH}"
>  
>  # \$LB_LINUX_PACKAGES: set kernel packages to use
>  # (Default: autodetected)


-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: https://www.freexian.com/services/debian-lts.html
Learn to master Debian: https://debian-handbook.info/get/


Reply to: