diff options
Diffstat (limited to 'meta/classes')
| -rw-r--r-- | meta/classes/package_ipk.bbclass | 51 | ||||
| -rw-r--r-- | meta/classes/rootfs_ipk.bbclass | 2 |
2 files changed, 53 insertions, 0 deletions
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index 0c0f00d579..b7afa835ed 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass | |||
| @@ -61,6 +61,28 @@ python package_ipk_install () { | |||
| 61 | raise bb.build.FuncFailed | 61 | raise bb.build.FuncFailed |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | package_tryout_install_multilib_ipk() { | ||
| 65 | #try install multilib | ||
| 66 | multilib_tryout_dirs="" | ||
| 67 | for arch in ${MULTILIB_ARCHS}; do | ||
| 68 | local target_rootfs="${MULTILIB_TEMP_ROOTFS}/${arch}" | ||
| 69 | local ipkg_args="-f ${INSTALL_CONF_IPK} -o ${target_rootfs} --force_overwrite" | ||
| 70 | local selected_pkg="" | ||
| 71 | #strip the "ml" from package_arch | ||
| 72 | local pkgarch_prefix="${arch:2}-" | ||
| 73 | for pkg in "${INSTALL_PACKAGES_MULTILIB_IPK}"; do | ||
| 74 | if [ ${pkg:0:${#pkgarch_prefix}} == ${pkgarch_prefix} ]; then | ||
| 75 | selected_pkg="${selected_pkg} ${pkg}" | ||
| 76 | fi | ||
| 77 | done | ||
| 78 | if [ ! -z "${selected_pkg}" ]; then | ||
| 79 | mkdir -p ${target_rootfs}/${opkglibdir} | ||
| 80 | opkg-cl ${ipkg_args} update | ||
| 81 | opkg-cl ${ipkg_args} install ${selected_pkg} | ||
| 82 | multilib_tryout_dirs="${multilib_tryout_dirs} ${target_rootfs}" | ||
| 83 | fi | ||
| 84 | done | ||
| 85 | } | ||
| 64 | # | 86 | # |
| 65 | # install a bunch of packages using opkg | 87 | # install a bunch of packages using opkg |
| 66 | # the following shell variables needs to be set before calling this func: | 88 | # the following shell variables needs to be set before calling this func: |
| @@ -78,6 +100,7 @@ package_install_internal_ipk() { | |||
| 78 | local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" | 100 | local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" |
| 79 | local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" | 101 | local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" |
| 80 | local package_lingusa="${INSTALL_PACKAGES_LINGUAS_IPK}" | 102 | local package_lingusa="${INSTALL_PACKAGES_LINGUAS_IPK}" |
| 103 | local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}" | ||
| 81 | local task="${INSTALL_TASK_IPK}" | 104 | local task="${INSTALL_TASK_IPK}" |
| 82 | 105 | ||
| 83 | mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ | 106 | mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ |
| @@ -102,6 +125,14 @@ package_install_internal_ipk() { | |||
| 102 | if [ ! -z "${package_attemptonly}" ]; then | 125 | if [ ! -z "${package_attemptonly}" ]; then |
| 103 | opkg-cl ${ipkg_args} install ${package_attemptonly} > "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true | 126 | opkg-cl ${ipkg_args} install ${package_attemptonly} > "${WORKDIR}/temp/log.do_${task}_attemptonly.${PID}" || true |
| 104 | fi | 127 | fi |
| 128 | |||
| 129 | package_tryout_install_multilib_ipk | ||
| 130 | #sanity check | ||
| 131 | multilib_sanity_check ${target_rootfs} ${multilib_tryout_dirs}|| exit 1 | ||
| 132 | |||
| 133 | if [ ! -z "${package_multilib}" ]; then | ||
| 134 | opkg-cl ${ipkg_args} install ${package_multilib} | ||
| 135 | fi | ||
| 105 | } | 136 | } |
| 106 | 137 | ||
| 107 | ipk_log_check() { | 138 | ipk_log_check() { |
| @@ -142,6 +173,11 @@ package_update_index_ipk () { | |||
| 142 | packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch ${DEPLOY_DIR_IPK}/$sdkarch-nativesdk" | 173 | packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch ${DEPLOY_DIR_IPK}/$sdkarch-nativesdk" |
| 143 | done | 174 | done |
| 144 | 175 | ||
| 176 | multilib_archs="${MULTILIB_ARCHS}" | ||
| 177 | for arch in $multilib_archs; do | ||
| 178 | packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch" | ||
| 179 | done | ||
| 180 | |||
| 145 | for pkgdir in $packagedirs; do | 181 | for pkgdir in $packagedirs; do |
| 146 | if [ -e $pkgdir/ ]; then | 182 | if [ -e $pkgdir/ ]; then |
| 147 | touch $pkgdir/Packages | 183 | touch $pkgdir/Packages |
| @@ -173,6 +209,13 @@ package_generate_ipkg_conf () { | |||
| 173 | echo "src oe-$sdkarch$extension file:${DEPLOY_DIR_IPK}/$sdkarch$extension" >> ${IPKGCONF_SDK} | 209 | echo "src oe-$sdkarch$extension file:${DEPLOY_DIR_IPK}/$sdkarch$extension" >> ${IPKGCONF_SDK} |
| 174 | fi | 210 | fi |
| 175 | done | 211 | done |
| 212 | |||
| 213 | multilib_archs="${MULTILIB_ARCHS}" | ||
| 214 | for arch in $multilib_archs; do | ||
| 215 | if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then | ||
| 216 | echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${IPKGCONF_TARGET} | ||
| 217 | fi | ||
| 218 | done | ||
| 176 | } | 219 | } |
| 177 | 220 | ||
| 178 | package_generate_archlist () { | 221 | package_generate_archlist () { |
| @@ -188,6 +231,14 @@ package_generate_archlist () { | |||
| 188 | echo "arch $sdkarch$extension $priority" >> ${IPKGCONF_SDK} | 231 | echo "arch $sdkarch$extension $priority" >> ${IPKGCONF_SDK} |
| 189 | priority=$(expr $priority + 5) | 232 | priority=$(expr $priority + 5) |
| 190 | done | 233 | done |
| 234 | |||
| 235 | multilib_archs="${MULTILIB_ARCHS}" | ||
| 236 | for arch in $multilib_archs; do | ||
| 237 | echo "arch $arch $priority" >> ${IPKGCONF_TARGET} | ||
| 238 | priority=$(expr $priority + 5) | ||
| 239 | done | ||
| 240 | |||
| 241 | |||
| 191 | } | 242 | } |
| 192 | 243 | ||
| 193 | python do_package_ipk () { | 244 | python do_package_ipk () { |
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index 4fcacc67ec..695bee0296 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass | |||
| @@ -22,6 +22,7 @@ opkglibdir = "${localstatedir}/lib/opkg" | |||
| 22 | 22 | ||
| 23 | # Which packages to not install on the basis of a recommendation | 23 | # Which packages to not install on the basis of a recommendation |
| 24 | BAD_RECOMMENDATIONS ?= "" | 24 | BAD_RECOMMENDATIONS ?= "" |
| 25 | MULTILIBRE_ALLOW_REP = "${opkglibdir}" | ||
| 25 | 26 | ||
| 26 | fakeroot rootfs_ipk_do_rootfs () { | 27 | fakeroot rootfs_ipk_do_rootfs () { |
| 27 | set -x | 28 | set -x |
| @@ -58,6 +59,7 @@ fakeroot rootfs_ipk_do_rootfs () { | |||
| 58 | export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" | 59 | export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" |
| 59 | export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" | 60 | export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" |
| 60 | export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" | 61 | export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" |
| 62 | export INSTALL_PACKAGES_MULTILIB_IPK="${MULTILIB_PACKAGE_INSTALL}" | ||
| 61 | 63 | ||
| 62 | package_install_internal_ipk | 64 | package_install_internal_ipk |
| 63 | 65 | ||
