summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/image.bbclass4
-rw-r--r--meta/classes/multilib.bbclass5
-rw-r--r--meta/classes/package_ipk.bbclass31
-rw-r--r--meta/classes/package_rpm.bbclass37
-rw-r--r--meta/classes/rootfs_ipk.bbclass3
-rw-r--r--meta/classes/rootfs_rpm.bbclass3
6 files changed, 42 insertions, 41 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
index f17e989289..b8ca370e7a 100644
--- a/meta/classes/image.bbclass
+++ b/meta/classes/image.bbclass
@@ -5,8 +5,7 @@ inherit imagetest-${IMAGETEST}
5 5
6LICENSE = "MIT" 6LICENSE = "MIT"
7PACKAGES = "" 7PACKAGES = ""
8MULTILIB_IMAGE_INSTALL ?= "" 8RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${NORMAL_FEATURE_INSTALL}"
9RDEPENDS += "${IMAGE_INSTALL} ${LINGUAS_INSTALL} ${MULTILIB_IMAGE_INSTALL} ${NORMAL_FEATURE_INSTALL}"
10RRECOMMENDS += "${NORMAL_FEATURE_INSTALL_OPTIONAL}" 9RRECOMMENDS += "${NORMAL_FEATURE_INSTALL_OPTIONAL}"
11 10
12INHIBIT_DEFAULT_DEPS = "1" 11INHIBIT_DEFAULT_DEPS = "1"
@@ -54,7 +53,6 @@ IMAGE_INSTALL ?= ""
54IMAGE_INSTALL[type] = "list" 53IMAGE_INSTALL[type] = "list"
55IMAGE_BASENAME[export] = "1" 54IMAGE_BASENAME[export] = "1"
56export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${FEATURE_INSTALL}" 55export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${FEATURE_INSTALL}"
57export MULTILIB_PACKAGE_INSTALL ?= "${MULTILIB_IMAGE_INSTALL}"
58PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}" 56PACKAGE_INSTALL_ATTEMPTONLY ?= "${FEATURE_INSTALL_OPTIONAL}"
59 57
60# Images are generally built explicitly, do not need to be part of world. 58# 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 () {
56 map_dependencies("PACKAGE_INSTALL", d) 56 map_dependencies("PACKAGE_INSTALL", d)
57 map_dependencies("LINGUAS_INSTALL", d) 57 map_dependencies("LINGUAS_INSTALL", d)
58 map_dependencies("RDEPENDS", d) 58 map_dependencies("RDEPENDS", d)
59 pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True) + " " + d.getVar("MULTILIB_PACKAGE_INSTALL", False) 59 pinstall = d.getVar("LINGUAS_INSTALL", True) + " " + d.getVar("PACKAGE_INSTALL", True)
60 d.setVar("MULTILIB_PACKAGE_INSTALL", pinstall) 60 d.setVar("PACKAGE_INSTALL", pinstall)
61 d.setVar("PACKAGE_INSTALL", "")
62 d.setVar("LINGUAS_INSTALL", "") 61 d.setVar("LINGUAS_INSTALL", "")
63 # FIXME, we need to map this to something, not delete it! 62 # FIXME, we need to map this to something, not delete it!
64 d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "") 63 d.setVar("PACKAGE_INSTALL_ATTEMPTONLY", "")
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass
index c0893a6cda..b5319bcbd0 100644
--- a/meta/classes/package_ipk.bbclass
+++ b/meta/classes/package_ipk.bbclass
@@ -83,12 +83,34 @@ package_tryout_install_multilib_ipk() {
83 fi 83 fi
84 done 84 done
85} 85}
86
87split_multilib_packages() {
88 INSTALL_PACKAGES_NORMAL_IPK=""
89 INSTALL_PACKAGES_MULTILIB_IPK=""
90 for pkg in ${INSTALL_PACKAGES_IPK}; do
91 is_multilib=0
92 for item in ${MULTILIB_VARIANTS}; do
93 local pkgname_prefix="${item}-"
94 if [ ${pkg:0:${#pkgname_prefix}} == ${pkgname_prefix} ]; then
95 is_multilib=1
96 break
97 fi
98 done
99
100 if [ ${is_multilib} = 0 ]; then
101 INSTALL_PACKAGES_NORMAL_IPK="${INSTALL_PACKAGES_NORMAL_IPK} ${pkg}"
102 else
103 INSTALL_PACKAGES_MULTILIB_IPK="${INSTALL_PACKAGES_MULTILIB_IPK} ${pkg}"
104 fi
105 done
106}
107
86# 108#
87# install a bunch of packages using opkg 109# install a bunch of packages using opkg
88# the following shell variables needs to be set before calling this func: 110# the following shell variables needs to be set before calling this func:
89# INSTALL_ROOTFS_IPK - install root dir 111# INSTALL_ROOTFS_IPK - install root dir
90# INSTALL_CONF_IPK - configuration file 112# INSTALL_CONF_IPK - configuration file
91# INSTALL_PACKAGES_NORMAL_IPK - packages to be installed 113# INSTALL_PACKAGES_IPK - packages to be installed
92# INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only 114# INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only
93# INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc 115# INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc
94# INSTALL_TASK_IPK - task name 116# INSTALL_TASK_IPK - task name
@@ -97,12 +119,15 @@ package_install_internal_ipk() {
97 119
98 local target_rootfs="${INSTALL_ROOTFS_IPK}" 120 local target_rootfs="${INSTALL_ROOTFS_IPK}"
99 local conffile="${INSTALL_CONF_IPK}" 121 local conffile="${INSTALL_CONF_IPK}"
100 local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}"
101 local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" 122 local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}"
102 local package_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}" 123 local package_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}"
103 local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}"
104 local task="${INSTALL_TASK_IPK}" 124 local task="${INSTALL_TASK_IPK}"
105 125
126 split_multilib_packages
127
128 local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}"
129 local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}"
130
106 mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/ 131 mkdir -p ${target_rootfs}${localstatedir}/lib/opkg/
107 132
108 local ipkg_args="-f ${conffile} -o ${target_rootfs} --force-overwrite" 133 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 () {
154# INSTALL_PLATFORM_RPM - main platform 154# INSTALL_PLATFORM_RPM - main platform
155# INSTALL_PLATFORM_EXTRA_RPM - extra platform 155# INSTALL_PLATFORM_EXTRA_RPM - extra platform
156# INSTALL_CONFBASE_RPM - configuration file base name 156# INSTALL_CONFBASE_RPM - configuration file base name
157# INSTALL_PACKAGES_NORMAL_RPM - packages to be installed 157# INSTALL_PACKAGES_RPM - packages to be installed
158# INSTALL_PACKAGES_ATTEMPTONLY_RPM - packages attemped to be installed only 158# INSTALL_PACKAGES_ATTEMPTONLY_RPM - packages attemped to be installed only
159# INSTALL_PACKAGES_LINGUAS_RPM - additional packages for uclibc 159# INSTALL_PACKAGES_LINGUAS_RPM - additional packages for uclibc
160# INSTALL_PROVIDENAME_RPM - content for provide name 160# INSTALL_PROVIDENAME_RPM - content for provide name
@@ -166,8 +166,7 @@ package_install_internal_rpm () {
166 local platform="${INSTALL_PLATFORM_RPM}" 166 local platform="${INSTALL_PLATFORM_RPM}"
167 local platform_extra="${INSTALL_PLATFORM_EXTRA_RPM}" 167 local platform_extra="${INSTALL_PLATFORM_EXTRA_RPM}"
168 local confbase="${INSTALL_CONFBASE_RPM}" 168 local confbase="${INSTALL_CONFBASE_RPM}"
169 local package_to_install="${INSTALL_PACKAGES_NORMAL_RPM}" 169 local package_to_install="${INSTALL_PACKAGES_RPM}"
170 local multilib_to_install="${INSTALL_PACKAGES_MULTILIB_RPM}"
171 local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_RPM}" 170 local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_RPM}"
172 local package_linguas="${INSTALL_PACKAGES_LINGUAS_RPM}" 171 local package_linguas="${INSTALL_PACKAGES_LINGUAS_RPM}"
173 local providename="${INSTALL_PROVIDENAME_RPM}" 172 local providename="${INSTALL_PROVIDENAME_RPM}"
@@ -211,12 +210,14 @@ package_install_internal_rpm () {
211 echo "Processing $pkg..." 210 echo "Processing $pkg..."
212 211
213 archvar=base_archs 212 archvar=base_archs
213 manifest=install.manifest
214 ml_prefix=`echo ${pkg} | cut -d'-' -f1` 214 ml_prefix=`echo ${pkg} | cut -d'-' -f1`
215 ml_pkg=$pkg 215 ml_pkg=$pkg
216 for i in ${MULTILIB_PREFIX_LIST} ; do 216 for i in ${MULTILIB_PREFIX_LIST} ; do
217 if [ ${ml_prefix} == ${i} ]; then 217 if [ ${ml_prefix} == ${i} ]; then
218 ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,") 218 ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
219 archvar=ml_archs 219 archvar=ml_archs
220 manifest=install_multilib.manifest
220 break 221 break
221 fi 222 fi
222 done 223 done
@@ -226,7 +227,7 @@ package_install_internal_rpm () {
226 echo "Unable to find package $pkg ($ml_pkg)!" 227 echo "Unable to find package $pkg ($ml_pkg)!"
227 exit 1 228 exit 1
228 fi 229 fi
229 echo $pkg_name >> ${target_rootfs}/install/install.manifest 230 echo $pkg_name >> ${target_rootfs}/install/${manifest}
230 done 231 done
231 fi 232 fi
232 fi 233 fi
@@ -235,12 +236,14 @@ package_install_internal_rpm () {
235 echo "Processing $pkg..." 236 echo "Processing $pkg..."
236 237
237 archvar=base_archs 238 archvar=base_archs
239 manifest=install.manifest
238 ml_prefix=`echo ${pkg} | cut -d'-' -f1` 240 ml_prefix=`echo ${pkg} | cut -d'-' -f1`
239 ml_pkg=$pkg 241 ml_pkg=$pkg
240 for i in ${MULTILIB_PREFIX_LIST} ; do 242 for i in ${MULTILIB_PREFIX_LIST} ; do
241 if [ ${ml_prefix} == ${i} ]; then 243 if [ ${ml_prefix} == ${i} ]; then
242 ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,") 244 ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
243 archvar=ml_archs 245 archvar=ml_archs
246 manifest=install_multilib.manifest
244 break 247 break
245 fi 248 fi
246 done 249 done
@@ -250,7 +253,7 @@ package_install_internal_rpm () {
250 echo "Unable to find package $pkg ($ml_pkg)!" 253 echo "Unable to find package $pkg ($ml_pkg)!"
251 exit 1 254 exit 1
252 fi 255 fi
253 echo $pkg_name >> ${target_rootfs}/install/install.manifest 256 echo $pkg_name >> ${target_rootfs}/install/${manifest}
254 done 257 done
255 fi 258 fi
256 259
@@ -356,29 +359,7 @@ package_install_internal_rpm () {
356 359
357 touch ${target_rootfs}/install/install_multilib_solution.manifest 360 touch ${target_rootfs}/install/install_multilib_solution.manifest
358 361
359 if [ ! -z "${multilib_to_install}" ]; then 362 if [ -e "${target_rootfs}/install/install_multilib.manifest" ]; then
360 for pkg in ${multilib_to_install} ; do
361 echo "Processing $pkg..."
362
363 archvar=base_archs
364 ml_prefix=`echo ${pkg} | cut -d'-' -f1`
365 ml_pkg=$pkg
366 for i in ${MULTILIB_PREFIX_LIST} ; do
367 if [ ${ml_prefix} == ${i} ]; then
368 ml_pkg=$(echo ${pkg} | sed "s,^${ml_prefix}-\(.*\),\1,")
369 archvar=ml_archs
370 break
371 fi
372 done
373
374 pkg_name=$(resolve_package_rpm ${confbase}-${archvar}.conf ${ml_pkg})
375 if [ -z "$pkg_name" ]; then
376 echo "Unable to find package $pkg ($ml_pkg)!"
377 exit 1
378 fi
379 echo $pkg_name >> ${target_rootfs}/install/install_multilib.manifest
380 done
381
382 # multilib package installation 363 # multilib package installation
383 364
384 # Generate an install solution by doing a --justdb install, then recreate it with 365 # 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 () {
58 58
59 export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" 59 export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}"
60 export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" 60 export INSTALL_CONF_IPK="${IPKGCONF_TARGET}"
61 export INSTALL_PACKAGES_NORMAL_IPK="${PACKAGE_INSTALL}" 61 export INSTALL_PACKAGES_IPK="${PACKAGE_INSTALL}"
62 export INSTALL_PACKAGES_MULTILIB_IPK="${MULTILIB_PACKAGE_INSTALL}"
63 62
64 package_install_internal_ipk 63 package_install_internal_ipk
65 64
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 () {
57 export INSTALL_ROOTFS_RPM="${IMAGE_ROOTFS}" 57 export INSTALL_ROOTFS_RPM="${IMAGE_ROOTFS}"
58 export INSTALL_PLATFORM_RPM="${TARGET_ARCH}" 58 export INSTALL_PLATFORM_RPM="${TARGET_ARCH}"
59 export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}" 59 export INSTALL_CONFBASE_RPM="${RPMCONF_TARGET_BASE}"
60 export INSTALL_PACKAGES_NORMAL_RPM="${PACKAGE_INSTALL}" 60 export INSTALL_PACKAGES_RPM="${PACKAGE_INSTALL}"
61 export INSTALL_PACKAGES_MULTILIB_RPM="${MULTILIB_PACKAGE_INSTALL}"
62 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${PACKAGE_INSTALL_ATTEMPTONLY}" 61 export INSTALL_PACKAGES_ATTEMPTONLY_RPM="${PACKAGE_INSTALL_ATTEMPTONLY}"
63 export INSTALL_PACKAGES_LINGUAS_RPM="${LINGUAS_INSTALL}" 62 export INSTALL_PACKAGES_LINGUAS_RPM="${LINGUAS_INSTALL}"
64 export INSTALL_PROVIDENAME_RPM="" 63 export INSTALL_PROVIDENAME_RPM=""