diff options
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/image.bbclass | 4 | ||||
-rw-r--r-- | meta/classes/multilib.bbclass | 5 | ||||
-rw-r--r-- | meta/classes/package_ipk.bbclass | 31 | ||||
-rw-r--r-- | meta/classes/package_rpm.bbclass | 37 | ||||
-rw-r--r-- | meta/classes/rootfs_ipk.bbclass | 3 | ||||
-rw-r--r-- | meta/classes/rootfs_rpm.bbclass | 3 |
6 files changed, 42 insertions, 41 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 05f43314b5..48b78da79b 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -5,8 +5,7 @@ inherit imagetest-${IMAGETEST} LICENSE = "MIT" PACKAGES = "" -MULTILIB_IMAGE_INSTALL ?= "" -RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${MULTILIB_IMAGE_INSTALL} ${NORMAL_FEATURE_INSTALL}" +RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_INSTALL}" RRECOMMENDS += "${NORMAL_FEATURE_INSTALL_OPTIONAL}" INHIBIT_DEFAULT_DEPS = "1" @@ -54,7 +53,6 @@ IMAGE_INSTALL ?= "" IMAGE_INSTALL[type] = "list" IMAGE_BASENAME[export] = "1" export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${FEATURE_INSTALL}" -export MULTILIB_PACKAGE_INSTALL ?= "${MULTILIB_IMAGE_INSTALL}" PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}" # Images are generally built explicitly, do not need to be part of world. diff --git a/meta/classes/multilib.bbclass b/meta/classes/multilib.bbclass index 1aed2a9f97..6eb3bc3756 100644 --- a/meta/classes/multilib.bbclass +++ b/meta/classes/multilib.bbclass @@ -56,9 +56,8 @@ python __anonymous () { map_dependencies("PACKAGE_INSTALL", d) map_dependencies("LINGUAS_INSTALL", d) map_dependencies("RDEPENDS", d) - pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True) + " " + d.getVar("MULTILIB_PACKAGE_INSTALL", False) - d.setVar("MULTILIB_PACKAGE_INSTALL", pinstall) - d.setVar("PACKAGE_INSTALL", "") + pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True) + d.setVar("PACKAGE_INSTALL", pinstall) d.setVar("LINGUAS_INSTALL", "") # FIXME, we need to map this to something, not delete it! d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "") diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index c97e36eeb2..d41b40d2c5 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass @@ -86,12 +86,34 @@ package_tryout_install_multilib_ipk() { fi done } + +split_multilib_packages() { + INSTALL_PACKAGES_NORMAL_IPK="" + INSTALL_PACKAGES_MULTILIB_IPK="" + for pkg in ${INSTALL_PACKAGES_IPK}; do + is_multilib=0 + for item in ${MULTILIB_VARIANTS}; do + local pkgname_prefix="${item}-" + if [ ${pkg:0:${#pkgname_prefix}} == ${pkgname_prefix} ]; then + is_multilib=1 + break + fi + done + + if [ ${is_multilib} = 0 ]; then + INSTALL_PACKAGES_NORMAL_IPK="${INSTALL_PACKAGES_NORMAL_IPK} ${pkg}" + else + INSTALL_PACKAGES_MULTILIB_IPK="${INSTALL_PACKAGES_MULTILIB_IPK} ${pkg}" + fi + done +} + # # 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_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 @@ -100,12 +122,15 @@ 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_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}" - local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}" local task="${INSTALL_TASK_IPK}" + split_multilib_packages + + local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" + local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}" + mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite" diff --git a/meta/classes/package_rpm.bbclass b/meta/classes/package_rpm.bbclass index 7f425837be..df5a2db8a1 100644 --- a/meta/classes/package_rpm.bbclass +++ b/meta/classes/package_rpm.bbclass @@ -154,7 +154,7 @@ resolve_package_rpm () { # INSTALL_PLATFORM_RPM - main platform # INSTALL_PLATFORM_EXTRA_RPM - extra platform # INSTALL_CONFBASE_RPM - configuration file base name -# INSTALL_PACKAGES_NORMAL_RPM - packages to be installed +# INSTALL_PACKAGES_RPM - packages to be installed # INSTALL_PACKAGES_ATTEMPTONLY_RPM - packages attemped to be installed only # INSTALL_PACKAGES_LINGUAS_RPM - additional packages for uclibc # INSTALL_PROVIDENAME_RPM - content for provide name @@ -166,8 +166,7 @@ package_install_internal_rpm () { local platform="${INSTALL_PLATFORM_RPM}" local platform_extra="${INSTALL_PLATFORM_EXTRA_RPM}" local confbase="${INSTALL_CONFBASE_RPM}" - local package_to_install="${INSTALL_PACKAGES_NORMAL_RPM}" - local multilib_to_install="${INSTALL_PACKAGES_MULTILIB_RPM}" + local package_to_install="${INSTALL_PACKAGES_RPM}" local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_RPM}" local package_linguas="${INSTALL_PACKAGES_LINGUAS_RPM}" local providename="${INSTALL_PROVIDENAME_RPM}" @@ -211,12 +210,14 @@ package_install_internal_rpm () { echo "Processing $pkg..." archvar=base_archs + manifest=install.manifest ml_prefix=`echo ${pkg} | cut -d'-' -f1` ml_pkg=$pkg for i in ${MULTILIB_PREFIX_LIST} ; do if [ ${ml_prefix} == ${i} ]; then ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,") archvar=ml_archs + manifest=install_multilib.manifest break fi done @@ -226,7 +227,7 @@ package_install_internal_rpm () { echo "Unable to find package $pkg ($ml_pkg)!" exit 1 fi - echo $pkg_name >> ${target_rootfs}/install/install.manifest + echo $pkg_name >> ${target_rootfs}/install/${manifest} done fi fi @@ -235,12 +236,14 @@ package_install_internal_rpm () { echo "Processing $pkg..." archvar=base_archs + manifest=install.manifest ml_prefix=`echo ${pkg} | cut -d'-' -f1` ml_pkg=$pkg for i in ${MULTILIB_PREFIX_LIST} ; do if [ ${ml_prefix} == ${i} ]; then ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,") archvar=ml_archs + manifest=install_multilib.manifest break fi done @@ -250,7 +253,7 @@ package_install_internal_rpm () { echo "Unable to find package $pkg ($ml_pkg)!" exit 1 fi - echo $pkg_name >> ${target_rootfs}/install/install.manifest + echo $pkg_name >> ${target_rootfs}/install/${manifest} done fi @@ -356,29 +359,7 @@ package_install_internal_rpm () { touch ${target_rootfs}/install/install_multilib_solution.manifest - if [ ! -z "${multilib_to_install}" ]; then - for pkg in ${multilib_to_install} ; do - echo "Processing $pkg..." - - archvar=base_archs - ml_prefix=`echo ${pkg} | cut -d'-' -f1` - ml_pkg=$pkg - for i in ${MULTILIB_PREFIX_LIST} ; do - if [ ${ml_prefix} == ${i} ]; then - ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,") - archvar=ml_archs - break - fi - done - - pkg_name=$(resolve_package_rpm ${confbase}-${archvar}.conf ${ml_pkg}) - if [ -z "$pkg_name" ]; then - echo "Unable to find package $pkg ($ml_pkg)!" - exit 1 - fi - echo $pkg_name >> ${target_rootfs}/install/install_multilib.manifest - done - + if [ -e "${target_rootfs}/install/install_multilib.manifest" ]; then # multilib package installation # Generate an install solution by doing a --justdb install, then recreate it with diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index 3094c1ac5f..ffc4a72c06 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass @@ -58,8 +58,7 @@ fakeroot rootfs_ipk_do_rootfs () { export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" - export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" - export INSTALL_PACKAGES_MULTILIB_IPK="${MULTILIB_PACKAGE_INSTALL}" + export INSTALL_PACKAGES_IPK="${PACKAGE_INSTALL}" package_install_internal_ipk diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index dd370b263a..9f50764886 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass @@ -57,8 +57,7 @@ fakeroot rootfs_rpm_do_rootfs () { export INSTALL_ROOTFS_RPM="${IMAGE_ROOTFS}" export INSTALL_PLATFORM_RPM="${TARGET_ARCH}" export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}" - export INSTALL_PACKAGES_NORMAL_RPM="${PACKAGE_INSTALL}" - export INSTALL_PACKAGES_MULTILIB_RPM="${MULTILIB_PACKAGE_INSTALL}" + export INSTALL_PACKAGES_RPM="${PACKAGE_INSTALL}" export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${PACKAGE_INSTALL_ATTEMPTONLY}" export INSTALL_PACKAGES_LINGUAS_RPM="${LINGUAS_INSTALL}" export INSTALL_PROVIDENAME_RPM="" |