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 /meta/classes | |
| parent | f23e67f172c4e5d39b91edd3c91a55bfcf346192 (diff) | |
| download | poky-b94f9ccd05a339a5e3e8ec4c7bd8c727ca575871.tar.gz | |
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>
Diffstat (limited to 'meta/classes')
| -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 () { | |||
| 61 | raise bb.build.FuncFailed | 61 | raise bb.build.FuncFailed |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | # | ||
| 65 | # install a bunch of packages using opkg | ||
| 66 | # the following shell variables needs to be set before calling this func: | ||
| 67 | # INSTALL_ROOTFS_IPK - install root dir | ||
| 68 | # INSTALL_CONF_IPK - configuration file | ||
| 69 | # INSTALL_PACKAGES_NORMAL_IPK - packages to be installed | ||
| 70 | # INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only | ||
| 71 | # INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc | ||
| 72 | # INSTALL_TASK_IPK - task name | ||
| 73 | |||
| 74 | package_install_internal_ipk() { | ||
| 75 | |||
| 76 | local target_rootfs="${INSTALL_ROOTFS_IPK}" | ||
| 77 | local conffile="${INSTALL_CONF_IPK}" | ||
| 78 | local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" | ||
| 79 | local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" | ||
| 80 | local package_lingusa="${INSTALL_PACKAGES_LINGUAS_IPK}" | ||
| 81 | local task="${INSTALL_TASK_IPK}" | ||
| 82 | |||
| 83 | mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ | ||
| 84 | |||
| 85 | local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite" | ||
| 86 | |||
| 87 | opkg-cl ${ipkg_args} update | ||
| 88 | |||
| 89 | # Uclibc builds don't provide this stuff... | ||
| 90 | if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then | ||
| 91 | if [ ! -z "${package_lingusa}" ]; then | ||
| 92 | for i in ${package_lingusa}; do | ||
| 93 | opkg-cl ${ipkg_args} install $i | ||
| 94 | done | ||
| 95 | fi | ||
| 96 | fi | ||
| 97 | |||
| 98 | if [ ! -z "${package_to_install}" ]; then | ||
| 99 | opkg-cl ${ipkg_args} install ${package_to_install} | ||
| 100 | fi | ||
| 101 | |||
| 102 | if [ ! -z "${package_attemptonly}" ]; then | ||
| 103 | opkg-cl ${ipkg_args} install ${package_attemptonly} > "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true | ||
| 104 | fi | ||
| 105 | } | ||
| 106 | |||
| 64 | ipk_log_check() { | 107 | ipk_log_check() { |
| 65 | target="$1" | 108 | target="$1" |
| 66 | lf_path="$2" | 109 | 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 () { | |||
| 29 | ${OPKG_PREPROCESS_COMMANDS} | 29 | ${OPKG_PREPROCESS_COMMANDS} |
| 30 | 30 | ||
| 31 | mkdir -p ${T}/ | 31 | mkdir -p ${T}/ |
| 32 | mkdir -p ${IMAGE_ROOTFS}${opkglibdir} | ||
| 33 | 32 | ||
| 34 | opkg-cl ${IPKG_ARGS} update | 33 | #install |
| 34 | export INSTALL_PACKAGES_ATTEMPTONLY_IPK="${PACKAGE_INSTALL_ATTEMPTONLY}" | ||
| 35 | export INSTALL_PACKAGES_LINGUAS_IPK="${LINGUAS_INSTALL}" | ||
| 36 | export INSTALL_TASK_IPK="rootfs" | ||
| 35 | 37 | ||
| 36 | # Uclibc builds don't provide this stuff... | 38 | export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" |
| 37 | if [ x${TARGET_OS} = "xlinux" ] || [ x${TARGET_OS} = "xlinux-gnueabi" ] ; then | 39 | export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" |
| 38 | if [ ! -z "${LINGUAS_INSTALL}" ]; then | 40 | export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" |
| 39 | for i in ${LINGUAS_INSTALL}; do | ||
| 40 | opkg-cl ${IPKG_ARGS} install $i | ||
| 41 | done | ||
| 42 | fi | ||
| 43 | fi | ||
| 44 | if [ ! -z "${PACKAGE_INSTALL}" ]; then | ||
| 45 | opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL} | ||
| 46 | fi | ||
| 47 | 41 | ||
| 48 | if [ ! -z "${PACKAGE_INSTALL_ATTEMPTONLY}" ]; then | 42 | package_install_internal_ipk |
| 49 | opkg-cl ${IPKG_ARGS} install ${PACKAGE_INSTALL_ATTEMPTONLY} > "${WORKDIR}/temp/log.do_rootfs_attemptonly.${PID}" || true | ||
| 50 | fi | ||
| 51 | 43 | ||
| 44 | #post install | ||
| 52 | export D=${IMAGE_ROOTFS} | 45 | export D=${IMAGE_ROOTFS} |
| 53 | export OFFLINE_ROOT=${IMAGE_ROOTFS} | 46 | export OFFLINE_ROOT=${IMAGE_ROOTFS} |
| 54 | export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} | 47 | export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} |
