diff options
author | Lianhao Lu <lianhao.lu@intel.com> | 2011-01-30 12:56:40 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-02-01 23:59:37 +0000 |
commit | b94f9ccd05a339a5e3e8ec4c7bd8c727ca575871 (patch) | |
tree | 83d59d1829f85fbc3ea176f2dffa4badc1c580b0 | |
parent | f23e67f172c4e5d39b91edd3c91a55bfcf346192 (diff) | |
download | openembedded-core-b94f9ccd05a339a5e3e8ec4c7bd8c727ca575871.tar.gz openembedded-core-b94f9ccd05a339a5e3e8ec4c7bd8c727ca575871.tar.bz2 openembedded-core-b94f9ccd05a339a5e3e8ec4c7bd8c727ca575871.zip |
rootfs_ipk/package_ipk.bbclass: Move func from rootfs_ipk to package_ipk
package_ipk.bbclass:
Added new function package_install_internal_ipk() to install a list of
ipk packages to a specified root directory, with the specified package
architecutre information.
rootfs_ipk.bbclass:
Used the above new functions to install rootfs.
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
-rw-r--r-- | meta/classes/package_ipk.bbclass | 43 | ||||
-rw-r--r-- | meta/classes/rootfs_ipk.bbclass | 25 |
2 files changed, 52 insertions, 16 deletions
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index ba768746ca..3c2472bc10 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -61,6 +61,49 @@ python package_ipk_install () { raise bb.build.FuncFailed } +# +# install a bunch of packages using opkg +# the following shell variables needs to be set before calling this func: +# INSTALL_ROOTFS_IPK - install root dir +# INSTALL_CONF_IPK - configuration file +# INSTALL_PACKAGES_NORMAL_IPK - packages to be installed +# INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only +# INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc +# INSTALL_TASK_IPK - task name + +package_install_internal_ipk() { + + local target_rootfs="${INSTALL_ROOTFS_IPK}" + local conffile="${INSTALL_CONF_IPK}" + local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" + local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" + local package_lingusa="${INSTALL_PACKAGES_LINGUAS_IPK}" + local task="${INSTALL_TASK_IPK}" + + mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ + + local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite" + + opkg-cl ${ipkg_args} update + + # Uclibc builds don't provide this stuff... + if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then + if [ ! -z "${package_lingusa}" ]; then + for i in ${package_lingusa}; do + opkg-cl ${ipkg_args} install $i + done + fi + fi + + if [ ! -z "${package_to_install}" ]; then + opkg-cl ${ipkg_args} install ${package_to_install} + fi + + if [ ! -z "${package_attemptonly}" ]; then + opkg-cl ${ipkg_args} install ${package_attemptonly} > "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true + fi +} + ipk_log_check() { target="$1" lf_path="$2" diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index 07c114e3ab..5727d1502b 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass @@ -29,26 +29,19 @@ fakeroot rootfs_ipk_do_rootfs () { ${OPKG_PREPROCESS_COMMANDS} mkdir -p ${T}/ - mkdir -p ${IMAGE_ROOTFS}${opkglibdir} - opkg-cl ${IPKG_ARGS} update + #install + export INSTALL_PACKAGES_ATTEMPTONLY_IPK="${PACKAGE_INSTALL_ATTEMPTONLY}" + export INSTALL_PACKAGES_LINGUAS_IPK="${LINGUAS_INSTALL}" + export INSTALL_TASK_IPK="rootfs" - # Uclibc builds don't provide this stuff... - if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then - if [ ! -z "${LINGUAS_INSTALL}" ]; then - for i in ${LINGUAS_INSTALL}; do - opkg-cl ${IPKG_ARGS} install $i - done - fi - fi - if [ ! -z "${PACKAGE_INSTALL}" ]; then - opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL} - fi + export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" + export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" + export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" - if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then - opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL_ATTEMPTONLY} > "${WORKDIR}/temp/log.do_rootfs_attemptonly.${PID}" || true - fi + package_install_internal_ipk + #post install export D=${IMAGE_ROOTFS} export OFFLINE_ROOT=${IMAGE_ROOTFS} export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} |