Patchwork [2/2] external-python-tarball: code refactoring

login
register
mail settings
Submitter Kang Kai
Date Jan. 22, 2013, 11:30 a.m.
Message ID <0d6ea9677eea7e35d709f802f646a8dbf5971250.1358853878.git.kai.kang@windriver.com>
Download mbox | patch
Permalink /patch/43167/
State New
Headers show

Comments

Kang Kai - Jan. 22, 2013, 11:30 a.m.
external-python-tarball only can be built when inherit package_ipk now.
Update it to reuse existed populate sdk code that it could be built for
rpm and deb too.

[Yocto 3006]

Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
 meta/recipes-core/meta/external-python-tarball.bb |   69 ++-------------------
 1 files changed, 6 insertions(+), 63 deletions(-)
Saul Wold - Jan. 22, 2013, 4:58 p.m.
On 01/22/2013 03:30 AM, Kang Kai wrote:
> external-python-tarball only can be built when inherit package_ipk now.
> Update it to reuse existed populate sdk code that it could be built for
> rpm and deb too.
>
> [Yocto 3006]
>
> Signed-off-by: Kang Kai <kai.kang@windriver.com>
> ---
>   meta/recipes-core/meta/external-python-tarball.bb |   69 ++-------------------
>   1 files changed, 6 insertions(+), 63 deletions(-)
>
> diff --git a/meta/recipes-core/meta/external-python-tarball.bb b/meta/recipes-core/meta/external-python-tarball.bb
> index 2085acc..186bf50 100644
> --- a/meta/recipes-core/meta/external-python-tarball.bb
> +++ b/meta/recipes-core/meta/external-python-tarball.bb
> @@ -3,19 +3,16 @@ LICENSE = "MIT"
>   LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
>                       file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
>
> -DEPENDS = "opkg-native opkg-utils-native virtual/fakeroot-native sed-native"
> +DEPENDS = "virtual/fakeroot-native sed-native"
>
> -PR = "r1"
> +PR = "r2"
>
>   inherit meta
> +inherit populate_sdk
>
> -SDK_DIR = "${WORKDIR}/sdk"
> -SDK_OUTPUT = "${SDK_DIR}/image"
> -SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
> +TOOLCHAIN_TARGET_TASK = ""
>
> -IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
> -
> -TOOLCHAIN_HOST_TASK ?= "\
> +TOOLCHAIN_HOST_TASK = "\
>       nativesdk-python-core \
>       nativesdk-python-textutils \
>       nativesdk-python-sqlite3 \
> @@ -37,62 +34,8 @@ TOOLCHAIN_HOST_TASK ?= "\
>       nativesdk-chrpath \
>       "
>
> -TOOLCHAIN_OUTPUTNAME ?= "python-nativesdk-standalone-${SDKMACHINE}"
> +TOOLCHAIN_OUTPUTNAME = "python-nativesdk-standalone-${SDKMACHINE}"
>
Why are you changing the above two from being overriden to straight 
assignments?  Don't we want these to possibly be overriden with 
additional TASK info or allow the name to change?

This is not explained in the commit message


Sau!

>   RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
>
>   EXCLUDE_FROM_WORLD = "1"
> -
> -do_populate_sdk() {
> -	rm -rf ${SDK_OUTPUT}
> -	mkdir -p ${SDK_OUTPUT}
> -	mkdir -p ${SDK_OUTPUT}${localstatedir}/lib/opkg/
> -
> -	rm -f ${IPKGCONF_TARGET}
> -	touch ${IPKGCONF_TARGET}
> -	rm -f ${IPKGCONF_SDK}
> -	touch ${IPKGCONF_SDK}
> -
> -	package_update_index_ipk
> -	package_generate_ipkg_conf
> -
> -	for arch in ${PACKAGE_ARCHS}; do
> -		revipkgarchs="$arch $revipkgarchs"
> -	done
> -
> -	${IPKG_HOST} update
> -	${IPKG_HOST} install ${TOOLCHAIN_HOST_TASK}
> -
> -	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg
> -	mv ${SDK_OUTPUT}/var/lib/opkg/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg/
> -	rm -Rf ${SDK_OUTPUT}/var
> -
> -	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
> -	install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
> -
> -	rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
> -
> -	# Link the ld.so.cache file into the hosts filesystem
> -	ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
> -
> -	# Add version information
> -	versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
> -	touch $versionfile
> -	echo 'Distro: ${DISTRO}' >> $versionfile
> -	echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
> -	echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
> -	echo 'Timestamp: ${DATETIME}' >> $versionfile
> -
> -	# Package it up
> -	mkdir -p ${SDK_DEPLOY}
> -	cd ${SDK_OUTPUT}
> -	tar  --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
> -}
> -
> -do_populate_sdk[nostamp] = "1"
> -do_populate_sdk[recrdeptask] = "do_package_write"
> -addtask populate_sdk before do_build after do_install
> -
> -inherit blacklist
> -
> -PNBLACKLIST[external-python-tarball] = "${@base_contains('PACKAGE_CLASSES', 'package_ipk', '', 'This recipe requires \'package_ipk\' support to be enabled in PACKAGE_CLASSES.', d)}"
>
Kang Kai - Jan. 23, 2013, 2:35 a.m.
On 2013?01?23? 00:58, Saul Wold wrote:
> On 01/22/2013 03:30 AM, Kang Kai wrote:
>> external-python-tarball only can be built when inherit package_ipk now.
>> Update it to reuse existed populate sdk code that it could be built for
>> rpm and deb too.
>>
>> [Yocto 3006]
>>
>> Signed-off-by: Kang Kai <kai.kang@windriver.com>
>> ---
>> meta/recipes-core/meta/external-python-tarball.bb | 69 
>> ++-------------------
>> 1 files changed, 6 insertions(+), 63 deletions(-)
>>
>> diff --git a/meta/recipes-core/meta/external-python-tarball.bb 
>> b/meta/recipes-core/meta/external-python-tarball.bb
>> index 2085acc..186bf50 100644
>> --- a/meta/recipes-core/meta/external-python-tarball.bb
>> +++ b/meta/recipes-core/meta/external-python-tarball.bb
>> @@ -3,19 +3,16 @@ LICENSE = "MIT"
>> LIC_FILES_CHKSUM = 
>> "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
>> file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
>>
>> -DEPENDS = "opkg-native opkg-utils-native virtual/fakeroot-native 
>> sed-native"
>> +DEPENDS = "virtual/fakeroot-native sed-native"
>>
>> -PR = "r1"
>> +PR = "r2"
>>
>> inherit meta
>> +inherit populate_sdk
>>
>> -SDK_DIR = "${WORKDIR}/sdk"
>> -SDK_OUTPUT = "${SDK_DIR}/image"
>> -SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
>> +TOOLCHAIN_TARGET_TASK = ""
>>
>> -IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
>> -
>> -TOOLCHAIN_HOST_TASK ?= "\
>> +TOOLCHAIN_HOST_TASK = "\
>> nativesdk-python-core \
>> nativesdk-python-textutils \
>> nativesdk-python-sqlite3 \
>> @@ -37,62 +34,8 @@ TOOLCHAIN_HOST_TASK ?= "\
>> nativesdk-chrpath \
>> "
>>
>> -TOOLCHAIN_OUTPUTNAME ?= "python-nativesdk-standalone-${SDKMACHINE}"
>> +TOOLCHAIN_OUTPUTNAME = "python-nativesdk-standalone-${SDKMACHINE}"
>>
> Why are you changing the above two from being overriden to straight 
> assignments? Don't we want these to possibly be overriden with 
> additional TASK info or allow the name to change?

Hi Saul,

Vars TOOLCHAIN_OUTPUTNAME TOOLCHAIN_HOST_TASK and TOOLCHAIN_TARGET_TASK 
are also defined with ?= in populate_sdk_base.bbclass, so I simply 
thought to override them in external-python-tarball.bb with '='.
Sorry for that, I'll update with inheriting bbclasses at the end of .bb 
file.

Regards,
Kai

>
> This is not explained in the commit message
>
>
> Sau!
>
>> RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
>>
>> EXCLUDE_FROM_WORLD = "1"
>> -
>> -do_populate_sdk() {
>> - rm -rf ${SDK_OUTPUT}
>> - mkdir -p ${SDK_OUTPUT}
>> - mkdir -p ${SDK_OUTPUT}${localstatedir}/lib/opkg/
>> -
>> - rm -f ${IPKGCONF_TARGET}
>> - touch ${IPKGCONF_TARGET}
>> - rm -f ${IPKGCONF_SDK}
>> - touch ${IPKGCONF_SDK}
>> -
>> - package_update_index_ipk
>> - package_generate_ipkg_conf
>> -
>> - for arch in ${PACKAGE_ARCHS}; do
>> - revipkgarchs="$arch $revipkgarchs"
>> - done
>> -
>> - ${IPKG_HOST} update
>> - ${IPKG_HOST} install ${TOOLCHAIN_HOST_TASK}
>> -
>> - install -d 
>> ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg
>> - mv ${SDK_OUTPUT}/var/lib/opkg/* 
>> ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg/
>> - rm -Rf ${SDK_OUTPUT}/var
>> -
>> - install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
>> - install -m 0644 ${IPKGCONF_SDK} 
>> ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
>> -
>> - rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
>> -
>> - # Link the ld.so.cache file into the hosts filesystem
>> - ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
>> -
>> - # Add version information
>> - versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
>> - touch $versionfile
>> - echo 'Distro: ${DISTRO}' >> $versionfile
>> - echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
>> - echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
>> - echo 'Timestamp: ${DATETIME}' >> $versionfile
>> -
>> - # Package it up
>> - mkdir -p ${SDK_DEPLOY}
>> - cd ${SDK_OUTPUT}
>> - tar --owner=root --group=root -cj 
>> --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
>> -}
>> -
>> -do_populate_sdk[nostamp] = "1"
>> -do_populate_sdk[recrdeptask] = "do_package_write"
>> -addtask populate_sdk before do_build after do_install
>> -
>> -inherit blacklist
>> -
>> -PNBLACKLIST[external-python-tarball] = 
>> "${@base_contains('PACKAGE_CLASSES', 'package_ipk', '', 'This recipe 
>> requires \'package_ipk\' support to be enabled in PACKAGE_CLASSES.', 
>> d)}"
>>
>

Patch

diff --git a/meta/recipes-core/meta/external-python-tarball.bb b/meta/recipes-core/meta/external-python-tarball.bb
index 2085acc..186bf50 100644
--- a/meta/recipes-core/meta/external-python-tarball.bb
+++ b/meta/recipes-core/meta/external-python-tarball.bb
@@ -3,19 +3,16 @@  LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \
                     file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
-DEPENDS = "opkg-native opkg-utils-native virtual/fakeroot-native sed-native"
+DEPENDS = "virtual/fakeroot-native sed-native"
 
-PR = "r1"
+PR = "r2"
 
 inherit meta
+inherit populate_sdk
 
-SDK_DIR = "${WORKDIR}/sdk"
-SDK_OUTPUT = "${SDK_DIR}/image"
-SDK_DEPLOY = "${TMPDIR}/deploy/sdk"
+TOOLCHAIN_TARGET_TASK = ""
 
-IPKG_HOST = "opkg-cl -f ${IPKGCONF_SDK} -o ${SDK_OUTPUT}"
-
-TOOLCHAIN_HOST_TASK ?= "\
+TOOLCHAIN_HOST_TASK = "\
     nativesdk-python-core \
     nativesdk-python-textutils \
     nativesdk-python-sqlite3 \
@@ -37,62 +34,8 @@  TOOLCHAIN_HOST_TASK ?= "\
     nativesdk-chrpath \
     "
 
-TOOLCHAIN_OUTPUTNAME ?= "python-nativesdk-standalone-${SDKMACHINE}"
+TOOLCHAIN_OUTPUTNAME = "python-nativesdk-standalone-${SDKMACHINE}"
 
 RDEPENDS = "${TOOLCHAIN_HOST_TASK}"
 
 EXCLUDE_FROM_WORLD = "1"
-
-do_populate_sdk() {
-	rm -rf ${SDK_OUTPUT}
-	mkdir -p ${SDK_OUTPUT}
-	mkdir -p ${SDK_OUTPUT}${localstatedir}/lib/opkg/
-
-	rm -f ${IPKGCONF_TARGET}
-	touch ${IPKGCONF_TARGET}
-	rm -f ${IPKGCONF_SDK}
-	touch ${IPKGCONF_SDK}
-
-	package_update_index_ipk
-	package_generate_ipkg_conf
-
-	for arch in ${PACKAGE_ARCHS}; do
-		revipkgarchs="$arch $revipkgarchs"
-	done
-
-	${IPKG_HOST} update
-	${IPKG_HOST} install ${TOOLCHAIN_HOST_TASK}
-
-	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg
-	mv ${SDK_OUTPUT}/var/lib/opkg/* ${SDK_OUTPUT}/${SDKPATHNATIVE}${localstatedir_nativesdk}/lib/opkg/
-	rm -Rf ${SDK_OUTPUT}/var
-
-	install -d ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}
-	install -m 0644 ${IPKGCONF_SDK} ${SDK_OUTPUT}/${SDKPATHNATIVE}/${sysconfdir}/
-
-	rm -f ${SDK_OUTPUT}/${SDKPATHNATIVE}${libdir_nativesdk}/*.la
-
-	# Link the ld.so.cache file into the hosts filesystem
-	ln -s /etc/ld.so.cache ${SDK_OUTPUT}/${SDKPATHNATIVE}/etc/ld.so.cache
-
-	# Add version information
-	versionfile=${SDK_OUTPUT}/${SDKPATH}/version-${MULTIMACH_TARGET_SYS}
-	touch $versionfile
-	echo 'Distro: ${DISTRO}' >> $versionfile
-	echo 'Distro Version: ${DISTRO_VERSION}' >> $versionfile
-	echo 'Metadata Revision: ${METADATA_REVISION}' >> $versionfile
-	echo 'Timestamp: ${DATETIME}' >> $versionfile
-
-	# Package it up
-	mkdir -p ${SDK_DEPLOY}
-	cd ${SDK_OUTPUT}
-	tar  --owner=root --group=root -cj --file=${SDK_DEPLOY}/${TOOLCHAIN_OUTPUTNAME}.tar.bz2 .
-}
-
-do_populate_sdk[nostamp] = "1"
-do_populate_sdk[recrdeptask] = "do_package_write"
-addtask populate_sdk before do_build after do_install
-
-inherit blacklist
-
-PNBLACKLIST[external-python-tarball] = "${@base_contains('PACKAGE_CLASSES', 'package_ipk', '', 'This recipe requires \'package_ipk\' support to be enabled in PACKAGE_CLASSES.', d)}"