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

Submitted by Kang Kai on Jan. 22, 2013, 11:30 a.m.

Details

Message ID 0d6ea9677eea7e35d709f802f646a8dbf5971250.1358853878.git.kai.kang@windriver.com
State New
Headers show

Commit Message

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(-)

Patch hide | download patch | download mbox

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)}"

Comments

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)}"
>>
>