diff options
author | Mark Hatle <mark.hatle@windriver.com> | 2010-09-02 13:28:37 -0500 |
---|---|---|
committer | Richard Purdie <rpurdie@linux.intel.com> | 2010-09-03 09:45:29 +0100 |
commit | d6c45f0f1184e94a45381af9813f831aaa9052ef (patch) | |
tree | 5177c7e361c519130c3e8d155805f123ab12a1e4 /meta | |
parent | 2f68de1e88fb196c301039ad994782b1a0c6ac94 (diff) | |
download | poky-d6c45f0f1184e94a45381af9813f831aaa9052ef.tar.gz |
rootfs_rpm: Support install_all_locales
Support installing all locales similarly to how it is done within the ipk
support. This has had basic testing, but it's not a normally used function
so there could still be some flaws.
Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/rootfs_rpm.bbclass | 63 |
1 files changed, 33 insertions, 30 deletions
diff --git a/meta/classes/rootfs_rpm.bbclass b/meta/classes/rootfs_rpm.bbclass index ace9677f06..00da8e514e 100644 --- a/meta/classes/rootfs_rpm.bbclass +++ b/meta/classes/rootfs_rpm.bbclass | |||
@@ -14,9 +14,14 @@ do_rootfs[recrdeptask] += "do_package_write_rpm" | |||
14 | 14 | ||
15 | AWKPOSTINSTSCRIPT = "${POKYBASE}/scripts/rootfs_rpm-extract-postinst.awk" | 15 | AWKPOSTINSTSCRIPT = "${POKYBASE}/scripts/rootfs_rpm-extract-postinst.awk" |
16 | 16 | ||
17 | RPM_PREPROCESS_COMMANDS = "package_update_index_rpm; package_generate_rpm_conf" | 17 | RPM_PREPROCESS_COMMANDS = "package_update_index_rpm; package_generate_rpm_conf; " |
18 | RPM_POSTPROCESS_COMMANDS = "" | 18 | RPM_POSTPROCESS_COMMANDS = "" |
19 | 19 | ||
20 | # To test the install_all_locales.. enable the following... | ||
21 | #RPM_POSTPROCESS_COMMANDS = "install_all_locales; " | ||
22 | # | ||
23 | #IMAGE_LOCALES="en-gb" | ||
24 | |||
20 | rpmlibdir = "/var/lib/rpm" | 25 | rpmlibdir = "/var/lib/rpm" |
21 | opkglibdir = "${localstatedir}/lib/opkg" | 26 | opkglibdir = "${localstatedir}/lib/opkg" |
22 | 27 | ||
@@ -42,7 +47,7 @@ fakeroot rootfs_rpm_do_rootfs () { | |||
42 | for pkg in ${LINGUAS_INSTALL}; do | 47 | for pkg in ${LINGUAS_INSTALL}; do |
43 | echo "Processing $pkg..." | 48 | echo "Processing $pkg..." |
44 | pkg_name=$(resolve_package $pkg) | 49 | pkg_name=$(resolve_package $pkg) |
45 | if [ -z '$pkg_name' ]; then | 50 | if [ -z "$pkg_name" ]; then |
46 | echo "Unable to find package $pkg!" | 51 | echo "Unable to find package $pkg!" |
47 | exit 1 | 52 | exit 1 |
48 | fi | 53 | fi |
@@ -55,7 +60,7 @@ fakeroot rootfs_rpm_do_rootfs () { | |||
55 | for pkg in ${PACKAGE_INSTALL} ; do | 60 | for pkg in ${PACKAGE_INSTALL} ; do |
56 | echo "Processing $pkg..." | 61 | echo "Processing $pkg..." |
57 | pkg_name=$(resolve_package $pkg) | 62 | pkg_name=$(resolve_package $pkg) |
58 | if [ -z '$pkg_name' ]; then | 63 | if [ -z "$pkg_name" ]; then |
59 | echo "Unable to find package $pkg!" | 64 | echo "Unable to find package $pkg!" |
60 | exit 1 | 65 | exit 1 |
61 | fi | 66 | fi |
@@ -75,7 +80,7 @@ fakeroot rootfs_rpm_do_rootfs () { | |||
75 | for pkg in ${PACKAGE_INSTALL_ATTEMPTONLY} ; do | 80 | for pkg in ${PACKAGE_INSTALL_ATTEMPTONLY} ; do |
76 | echo "Processing $pkg..." | 81 | echo "Processing $pkg..." |
77 | pkg_name=$(resolve_package $pkg) | 82 | pkg_name=$(resolve_package $pkg) |
78 | if [ -z '$pkg_name' ]; then | 83 | if [ -z "$pkg_name" ]; then |
79 | echo "Unable to find package $pkg!" | 84 | echo "Unable to find package $pkg!" |
80 | exit 1 | 85 | exit 1 |
81 | fi | 86 | fi |
@@ -109,7 +114,7 @@ fakeroot rootfs_rpm_do_rootfs () { | |||
109 | # Ohh there was a new one, we'll need to loop again... | 114 | # Ohh there was a new one, we'll need to loop again... |
110 | loop=1 | 115 | loop=1 |
111 | echo "Processing $pkg..." | 116 | echo "Processing $pkg..." |
112 | pkg_name=$(resolve_package $pkg || true) | 117 | pkg_name=$(resolve_package $pkg) |
113 | if [ -z "$pkg_name" ]; then | 118 | if [ -z "$pkg_name" ]; then |
114 | echo "Unable to find package $pkg." >> "${WORKDIR}/temp/log.do_rootfs_recommend.${PID}" | 119 | echo "Unable to find package $pkg." >> "${WORKDIR}/temp/log.do_rootfs_recommend.${PID}" |
115 | continue | 120 | continue |
@@ -223,41 +228,39 @@ remove_packaging_data_files() { | |||
223 | # Resolve package names to filepaths | 228 | # Resolve package names to filepaths |
224 | resolve_package() { | 229 | resolve_package() { |
225 | pkg="$1" | 230 | pkg="$1" |
231 | pkg_name="" | ||
226 | for solve in `cat ${DEPLOY_DIR_RPM}/solvedb.conf`; do | 232 | for solve in `cat ${DEPLOY_DIR_RPM}/solvedb.conf`; do |
227 | pkg_name=$(${RPM} -D "_dbpath $solve" -D "_dbi_tags_3 Packages:Name:Basenames:Providename:Nvra" -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" -q --yaml $pkg | grep -i 'Packageorigin' | cut -d : -f 2) | 233 | pkg_name=$(${RPM} -D "_dbpath $solve" -D "_dbi_tags_3 Packages:Name:Basenames:Providename:Nvra" -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync" -q --yaml $pkg | grep -i 'Packageorigin' | cut -d : -f 2) |
228 | if [ -n "$pkg_name" ]; then | 234 | if [ -n "$pkg_name" ]; then |
229 | break; | 235 | break; |
230 | fi | 236 | fi |
231 | done | 237 | done |
232 | if [ -z "$pkg_name" ]; then | ||
233 | return 1 | ||
234 | fi | ||
235 | echo $pkg_name | 238 | echo $pkg_name |
236 | return 0 | ||
237 | } | 239 | } |
238 | 240 | ||
239 | install_all_locales() { | 241 | install_all_locales() { |
240 | echo "install_all_locales: not yet implemented!" | 242 | PACKAGES_TO_INSTALL="" |
241 | exit 1 | 243 | |
242 | 244 | # Generate list of installed packages... | |
243 | PACKAGES_TO_INSTALL="" | 245 | INSTALLED_PACKAGES=$( \ |
244 | 246 | ${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \ | |
245 | INSTALLED_PACKAGES=`grep ^Package: ${IMAGE_ROOTFS}${opkglibdir}/status |sed "s/^Package: //"|egrep -v -- "(-locale-|-dev$|-doc$|^kernel|^glibc|^ttf|^task|^perl|^python)"` | 247 | -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync private" \ |
246 | 248 | -qa --qf "[%{NAME}\n]" | egrep -v -- "(-locale-|-dev$|-doc$|^kernel|^glibc|^ttf|^task|^perl|^python)" \ | |
247 | for pkg in $INSTALLED_PACKAGES | 249 | ) |
248 | do | 250 | |
249 | for lang in ${IMAGE_LOCALES} | 251 | # This would likely be faster if we did it in one transaction |
250 | do | 252 | # but this should be good enough for the few users of this function... |
251 | if [ `opkg-cl ${IPKG_ARGS} info $pkg-locale-$lang | wc -l` -gt 2 ] | 253 | for pkg in $INSTALLED_PACKAGES; do |
252 | then | 254 | for lang in ${IMAGE_LOCALES}; do |
253 | PACKAGES_TO_INSTALL="$PACKAGES_TO_INSTALL $pkg-locale-$lang" | 255 | pkg_name=$(resolve_package $pkg-locale-$lang) |
254 | fi | 256 | if [ -n "$pkg_name" ]; then |
255 | done | 257 | ${RPM} --root ${IMAGE_ROOTFS} -D "_dbpath ${rpmlibdir}" \ |
256 | done | 258 | --noscripts --notriggers --noparentdirs --nolinktos \ |
257 | if [ "$PACKAGES_TO_INSTALL" != "" ] | 259 | -D "__dbi_cdb create mp_mmapsize=128Mb mp_size=1Mb nofsync private" \ |
258 | then | 260 | -Uhv $pkg_name || true |
259 | opkg-cl ${IPKG_ARGS} install $PACKAGES_TO_INSTALL | 261 | fi |
260 | fi | 262 | done |
263 | done | ||
261 | } | 264 | } |
262 | 265 | ||
263 | python () { | 266 | python () { |