[OE-core] [PATCH 16/22] populate_sdk: Fix the introduction of sdknative packages

Richard Purdie richard.purdie at linuxfoundation.org
Mon Aug 1 13:06:55 UTC 2011


On Mon, 2011-08-01 at 00:36 -0700, Saul Wold wrote:
> From: Mark Hatle <mark.hatle at windriver.com>
> 
> The sdknative packages were not being introduced into the list of available
> packages properly.  Fix this by always introducing it and avoiding a sed of
> one type to another.
> 
> Also fix a number of minor issues with the RPM behavior when building sdk
> images.

I'm afraid this change looks wrong to me. Firstly, all arch packages are
"all", not "all-nativesdk". You're also cutting down the arch list to a
single sdk entry rather than the intended package_archs list.

"all" == "all-nativesdk" as things stand might be wrong for various
other reasons I can think of but it is what would currently be
generated.

All things considered, this issue needs more work.

Cheers,

Richard



> Signed-off-by: Mark Hatle <mark.hatle at windriver.com>
> ---
>  meta/classes/package_rpm.bbclass      |   19 +++++++++----------
>  meta/classes/populate_sdk_deb.bbclass |   11 ++---------
>  meta/classes/populate_sdk_rpm.bbclass |   11 ++---------
>  3 files changed, 13 insertions(+), 28 deletions(-)
> 
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 0377100..856dfb0 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -32,14 +32,12 @@ package_update_index_rpm () {
>  		eval archs=\${${archvar}}
>  		packagedirs=""
>  		packagedirs_sdk=""
> -		for arch in $archs; do
> -			sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'`
> -			extension="-nativesdk"
> -			if [ "$sdkarch" = "all" -o "$sdkarch" = "any" -o "$sdkarch" = "noarch" ]; then
> -			    extension=""
> -			fi
> +		if [ "${SDK_ARCH}-nativesdk" != "-nativesdk" ]; then
> +			packagedirs_sdk="${DEPLOY_DIR_RPM}/${SDK_ARCH}-nativesdk"
> +		fi
> +		for arch in $archs ; do
>  			packagedirs="${DEPLOY_DIR_RPM}/$arch $packagedirs"
> -			packagedirs_sdk="${DEPLOY_DIR_RPM}/$sdkarch$extension $packagedirs_sdk"
> +			packagedirs_sdk="${DEPLOY_DIR_RPM}/$arch $packagedirs_sdk"
>  
>  			rm -rf ${DEPLOY_DIR_RPM}/$arch/solvedb
>  			rm -rf ${DEPLOY_DIR_RPM}/$sdkarch$extension/solvedb
> @@ -95,6 +93,7 @@ package_update_index_rpm () {
>  #
>  package_generate_rpm_conf () {
>  	printf "_solve_dbpath " > ${RPMCONF_TARGET_BASE}.macro
> +	printf "_solve_dbpath " > ${RPMCONF_HOST_BASE}.macro
>  	o_colon_t=false
>  	o_colon_h=false
>  
> @@ -238,7 +237,7 @@ package_install_internal_rpm () {
>  					echo "Unable to find package $pkg ($ml_pkg)!"
>  					exit 1
>  				fi
> -				echo $pkg_name >> ${IMAGE_ROOTFS}/install/install.manifest
> +				echo $pkg_name >> ${target_rootfs}/install/install.manifest
>  			done
>  		fi
>  	fi
> @@ -258,7 +257,7 @@ package_install_internal_rpm () {
>  				echo "Unable to find package $pkg ($ml_pkg)!"
>  				exit 1
>  			fi
> -			echo $pkg_name >> ${IMAGE_ROOTFS}/install/install.manifest
> +			echo $pkg_name >> ${target_rootfs}/install/install.manifest
>  		done
>  	fi
>  
> @@ -303,7 +302,7 @@ package_install_internal_rpm () {
>  		# Dump the full set of recommends...
>  		${RPM} --predefine "_rpmds_sysinfo_path ${target_rootfs}/etc/rpm/sysinfo" \
>  			--predefine "_rpmrc_platform_path ${target_rootfs}/etc/rpm/platform" \
> -			-D "_dbpath ${IMAGE_ROOTFS}/install" -D "`cat ${confbase}.macro`" \
> +			-D "_dbpath ${target_rootfs}/install" -D "`cat ${confbase}.macro`" \
>  			-D "__dbi_txn create nofsync private" \
>  			-qa --qf "[%{RECOMMENDS}\n]" | sort -u > ${target_rootfs}/install/recommend
>  		# Did we add more to the list?
> diff --git a/meta/classes/populate_sdk_deb.bbclass b/meta/classes/populate_sdk_deb.bbclass
> index a5b6384..9acc52d 100644
> --- a/meta/classes/populate_sdk_deb.bbclass
> +++ b/meta/classes/populate_sdk_deb.bbclass
> @@ -34,16 +34,9 @@ fakeroot populate_sdk_deb () {
>  	export INSTALL_ROOTFS_DEB="${SDK_OUTPUT}"
>  	export INSTALL_BASEARCH_DEB="${SDK_ARCH}"
>  	export INSTALL_PACKAGES_NORMAL_DEB="${TOOLCHAIN_HOST_TASK}"
> -	INSTALL_ARCHS_DEB=""
> +	INSTALL_ARCHS_DEB="${SDK_ARCH}-nativesdk"
>  	for arch in ${PACKAGE_ARCHS}; do
> -		sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'`
> -		extension="-nativesdk"
> -		if [ "$sdkarch" = "all" -o "$sdkarch" = "any" -o "$sdkarch" = "noarch" ]; then
> -		    extension=""
> -		fi
> -		if [ -e ${DEPLOY_DIR_DEB}/$sdkarch$extension ]; then
> -			INSTALL_ARCHS_DEB="$INSTALL_ARCHS_DEB $sdkarch$extension"
> -		fi
> +		INSTALL_ARCHS_DEB="$INSTALL_ARCHS_DEB $arch"
>  	done
>  	export INSTALL_ARCHS_DEB
>  
> diff --git a/meta/classes/populate_sdk_rpm.bbclass b/meta/classes/populate_sdk_rpm.bbclass
> index da308c1..8196542 100644
> --- a/meta/classes/populate_sdk_rpm.bbclass
> +++ b/meta/classes/populate_sdk_rpm.bbclass
> @@ -53,16 +53,9 @@ fakeroot populate_sdk_rpm () {
>  	export INSTALL_PLATFORM_RPM="${SDK_ARCH}"
>  	export INSTALL_CONFBASE_RPM="${RPMCONF_HOST_BASE}"
>  	export INSTALL_PACKAGES_NORMAL_RPM="${TOOLCHAIN_HOST_TASK}"
> -	export INSTALL_PLATFORM_EXTRA_RPM=""
> +	export INSTALL_PLATFORM_EXTRA_RPM="${SDK_ARCH}-nativesdk"
>  	for arch in ${PACKAGE_ARCHS}; do
> -		sdkarch=`echo $arch | sed -e 's/${HOST_ARCH}/${SDK_ARCH}/'`
> -		extension="-nativesdk"
> -		if [ "$sdkarch" = "all" -o "$sdkarch" = "any" -o "$sdkarch" = "noarch" ]; then
> -		    extension=""
> -		fi
> -		if [ -e ${DEPLOY_DIR_RPM}/$sdkarch$extension ]; then
> -			INSTALL_PLATFORM_EXTRA_RPM="$sdkarch $INSTALL_PLATFORM_EXTRA_RPM"
> -		fi
> +		INSTALL_PLATFORM_EXTRA_RPM="$arch $INSTALL_PLATFORM_EXTRA_RPM"
>  	done
>  	export INSTALL_PLATFORM_EXTRA_RPM
>  






More information about the Openembedded-core mailing list