[OE-core] [RFC][v2] [PATCH 1/1] package-index.bb: add support for deb and rpm.

Saul Wold sgw at linux.intel.com
Fri May 13 22:23:50 UTC 2011


On 05/13/2011 02:53 AM, Dexuan Cui wrote:
> From: Dexuan Cui<dexuan.cui at intel.com>
>
> [YOCTO #1024]
> Currently package-index.bb only supports ipk. This commit addes the support
> for rpm and deb, too.
>
> ------------------------------
> How to generate and use repos:
>
> 1) run "bitbake package-index" after building some target,
> e.g., core-image-sato-sdk;
>
> 2) export ${DEPLOY_DIR_RPM}, ${DEPLOY_DIR_IPK} and ${DEPLOY_DIR_DEB} by a
> webserver on the host, assuming the host IP is 192.168.7.1, at
> http://192.168.7.1/rpm
> http://192.168.7.1/ipk
> http://192.168.7.1/deb
>
> 3) inside the target, according to the packaging system (rpm, ipk or deb) used
> when we generate the target image, we can use different ways to manage
> packages:
>
> 3.1) RPM
>      run "zypper addrepo http://192.168.7.1/rpm main; zypper refresh"
>      to retrieve info about the repo; next, we can use "zypper install/remove"
>      to manage packages.
>
> 3.2) IPK
>      add the repo info into opkg config file, i.e., in
>      /etc/opkg/arch.conf, we can add something like
>      "src i586 http://192.168.7.1/ipk/i586", and next, we run "opkg update" to
>      make opkg update the list of available packages. And later, we can use
>      "opkg install/remove" to manage packages.
>
> 3.3) DEB
>      Currently in target, some important config files, like
> /etc/apt/sources.list, for deb/apt are missing. So we can't install/remove package
> in target at present.
>
> Signed-off-by: Dexuan Cui<dexuan.cui at intel.com>
> ---
>   meta/classes/package_deb.bbclass        |    9 +++++++++
>   meta/classes/package_ipk.bbclass        |   12 ++++++++++++
>   meta/classes/package_rpm.bbclass        |    7 +++++++
>   meta/recipes-core/meta/package-index.bb |    8 --------
>   4 files changed, 28 insertions(+), 8 deletions(-)
>
> diff --git a/meta/classes/package_deb.bbclass b/meta/classes/package_deb.bbclass
> index 4faeb4a..4cc0b69 100644
> --- a/meta/classes/package_deb.bbclass
> +++ b/meta/classes/package_deb.bbclass
> @@ -431,3 +431,12 @@ python do_package_write_deb () {
>   do_package_write_deb[dirs] = "${PKGWRITEDIRDEB}"
>   addtask package_write_deb before do_package_write after do_package
>
> +
> +do_package_index[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot"
> +do_package_index[recrdeptask] += "package_update_index_deb"
> +
> +do_package_index() {
> +   set -ex
> +   package_update_index_deb
> +   set +ex
> +}

Why do you continue to include the do_package_index here, it's no longer 
needed with the setting of do_package_index[recrdeptask], this is true 
below also.

> diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
> index 3c2472b..2a2d9c3 100644
> --- a/meta/classes/package_ipk.bbclass
> +++ b/meta/classes/package_ipk.bbclass
> @@ -386,3 +386,15 @@ python do_package_write_ipk () {
>   }
>   do_package_write_ipk[dirs] = "${PKGWRITEDIRIPK}"
>   addtask package_write_ipk before do_package_write after do_package
> +
> +
> +do_package_index[depends] += "opkg-utils-native:do_populate_sysroot"
> +do_package_index[depends] += "opkg-native:do_populate_sysroot"
> +do_package_index[recrdeptask] += "package_update_index_ipk"
> +
> +do_package_index() {
> +   set -ex
> +   package_update_index_ipk
> +   set +ex
> +}

The do_package_index() function is not needed any longer here

> +
> diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass
> index 70170d1..d9470d6 100644
> --- a/meta/classes/package_rpm.bbclass
> +++ b/meta/classes/package_rpm.bbclass
> @@ -814,3 +814,10 @@ python do_package_write_rpm () {
>   do_package_write_rpm[dirs] = "${PKGWRITEDIRRPM}"
>   addtask package_write_rpm before do_package_write after do_package
>
> +do_package_index[depends] += "createrepo-native:do_populate_sysroot"
> +do_package_index() {
> +    set -ex
> +    package_update_index_rpm
> +    createrepo "${DEPLOY_DIR_RPM}"
> +    set +ex
> +}

Nor this do_package_index() function, why no 
do_package_index[recrdeptask] setting in RPM?  If you need a special 
function here them call it do_package_index_rpm() and set the 
do_package_index[recrdeptask] to that function.



> diff --git a/meta/recipes-core/meta/package-index.bb b/meta/recipes-core/meta/package-index.bb
> index 3c642cb..3f1caea 100644
> --- a/meta/recipes-core/meta/package-index.bb
> +++ b/meta/recipes-core/meta/package-index.bb
> @@ -19,14 +19,6 @@ do_package_write_deb[noexec] = "1"
>   do_populate_sysroot[noexec] = "1"
>
>   do_package_index[nostamp] = "1"
> -do_package_index[dirs] = "${DEPLOY_DIR_IPK}"
Does the dirs need to be saved or moved to the packagers?

> -do_package_index[depends] += "opkg-utils-native:do_populate_sysroot"
> -do_package_index[depends] += "opkg-native:do_populate_sysroot"
>
> -do_package_index() {
> -	set -ex
> -	package_update_index_ipk
> -	set +ex
> -}
>   addtask do_package_index before do_build
>   EXCLUDE_FROM_WORLD = "1"





More information about the Openembedded-core mailing list