diff options
| author | Laurentiu Palcu <laurentiu.palcu@intel.com> | 2014-01-13 10:16:43 +0200 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-02-11 11:53:39 +0000 |
| commit | f52391a919ec4969d3a0254513d4e0c971dd611f (patch) | |
| tree | d6ab2af1f45a39cd5056934a15f86feed612df2d | |
| parent | 31906d8e916f72da8493655672bd6731e46b20f5 (diff) | |
| download | poky-f52391a919ec4969d3a0254513d4e0c971dd611f.tar.gz | |
Cleanup image,rootfs_ipk,package_ipk bbclass files
This commit cleans up the functions that were ported to python.
(From OE-Core rev: d950ef40a3eae4b54cc62828e66d84a62d78c447)
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
| -rw-r--r-- | meta/classes/image.bbclass | 38 | ||||
| -rw-r--r-- | meta/classes/package_ipk.bbclass | 197 | ||||
| -rw-r--r-- | meta/classes/rootfs_ipk.bbclass | 109 |
3 files changed, 4 insertions, 340 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 0b35c719fd..ffe05c9040 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass | |||
| @@ -287,44 +287,6 @@ MULTILIBRE_ALLOW_REP =. "${base_bindir}|${base_sbindir}|${bindir}|${sbindir}|${l | |||
| 287 | MULTILIB_CHECK_FILE = "${WORKDIR}/multilib_check.py" | 287 | MULTILIB_CHECK_FILE = "${WORKDIR}/multilib_check.py" |
| 288 | MULTILIB_TEMP_ROOTFS = "${WORKDIR}/multilib" | 288 | MULTILIB_TEMP_ROOTFS = "${WORKDIR}/multilib" |
| 289 | 289 | ||
| 290 | multilib_generate_python_file() { | ||
| 291 | cat >${MULTILIB_CHECK_FILE} <<EOF | ||
| 292 | import sys, os, os.path | ||
| 293 | import re,filecmp | ||
| 294 | |||
| 295 | allow_rep=re.compile(re.sub("\|$","","${MULTILIBRE_ALLOW_REP}")) | ||
| 296 | error_prompt="Multilib check error:" | ||
| 297 | |||
| 298 | files={} | ||
| 299 | dirs=raw_input() | ||
| 300 | for dir in dirs.split(): | ||
| 301 | for root, subfolders, subfiles in os.walk(dir): | ||
| 302 | for file in subfiles: | ||
| 303 | item=os.path.join(root,file) | ||
| 304 | key=str(os.path.join("/",os.path.relpath(item,dir))) | ||
| 305 | |||
| 306 | valid=True; | ||
| 307 | if key in files: | ||
| 308 | #check whether the file is allow to replace | ||
| 309 | if allow_rep.match(key): | ||
| 310 | valid=True | ||
| 311 | else: | ||
| 312 | if not filecmp.cmp(files[key],item): | ||
| 313 | valid=False | ||
| 314 | print("%s duplicate files %s %s is not the same\n" % (error_prompt, item, files[key])) | ||
| 315 | sys.exit(1) | ||
| 316 | |||
| 317 | #pass the check, add to list | ||
| 318 | if valid: | ||
| 319 | files[key]=item | ||
| 320 | EOF | ||
| 321 | } | ||
| 322 | |||
| 323 | multilib_sanity_check() { | ||
| 324 | multilib_generate_python_file | ||
| 325 | echo $@ | python ${MULTILIB_CHECK_FILE} | ||
| 326 | } | ||
| 327 | |||
| 328 | # This function is intended to disallow empty root password if 'debug-tweaks' is not in IMAGE_FEATURES. | 290 | # This function is intended to disallow empty root password if 'debug-tweaks' is not in IMAGE_FEATURES. |
| 329 | zap_empty_root_password () { | 291 | zap_empty_root_password () { |
| 330 | if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then | 292 | if [ -e ${IMAGE_ROOTFS}/etc/shadow ]; then |
diff --git a/meta/classes/package_ipk.bbclass b/meta/classes/package_ipk.bbclass index 73446d6c59..68c8580761 100644 --- a/meta/classes/package_ipk.bbclass +++ b/meta/classes/package_ipk.bbclass | |||
| @@ -10,207 +10,12 @@ PKGWRITEDIRIPK = "${WORKDIR}/deploy-ipks" | |||
| 10 | # Program to be used to build opkg packages | 10 | # Program to be used to build opkg packages |
| 11 | OPKGBUILDCMD ??= "opkg-build" | 11 | OPKGBUILDCMD ??= "opkg-build" |
| 12 | 12 | ||
| 13 | OPKG_ARGS = "-f $INSTALL_CONF_IPK -o $INSTALL_ROOTFS_IPK --force_postinstall --prefer-arch-to-version" | 13 | OPKG_ARGS = "--force_postinstall --prefer-arch-to-version" |
| 14 | OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}" | 14 | OPKG_ARGS += "${@['', '--no-install-recommends'][d.getVar("NO_RECOMMENDATIONS", True) == "1"]}" |
| 15 | OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE', True) or "").split())][(d.getVar("PACKAGE_EXCLUDE", True) or "") != ""]}" | 15 | OPKG_ARGS += "${@['', '--add-exclude ' + ' --add-exclude '.join((d.getVar('PACKAGE_EXCLUDE', True) or "").split())][(d.getVar("PACKAGE_EXCLUDE", True) or "") != ""]}" |
| 16 | 16 | ||
| 17 | OPKGLIBDIR = "${localstatedir}/lib" | 17 | OPKGLIBDIR = "${localstatedir}/lib" |
| 18 | 18 | ||
| 19 | package_tryout_install_multilib_ipk() { | ||
| 20 | #try install multilib | ||
| 21 | multilib_tryout_dirs="" | ||
| 22 | for item in ${MULTILIB_VARIANTS}; do | ||
| 23 | local target_rootfs="${MULTILIB_TEMP_ROOTFS}/${item}" | ||
| 24 | local ipkg_args="${OPKG_ARGS}" | ||
| 25 | local selected_pkg="" | ||
| 26 | local pkgname_prefix="${item}-" | ||
| 27 | local pkgname_len=${#pkgname_prefix} | ||
| 28 | for pkg in ${INSTALL_PACKAGES_MULTILIB_IPK}; do | ||
| 29 | local pkgname=$(echo $pkg | awk -v var=$pkgname_len '{ pkgname=substr($1, 1, var); print pkgname; }' ) | ||
| 30 | if [ ${pkgname} = ${pkgname_prefix} ]; then | ||
| 31 | selected_pkg="${selected_pkg} ${pkg}" | ||
| 32 | fi | ||
| 33 | done | ||
| 34 | if [ ! -z "${selected_pkg}" ]; then | ||
| 35 | rm -f ${target_rootfs} | ||
| 36 | mkdir -p ${target_rootfs}/${opkglibdir} | ||
| 37 | opkg-cl ${ipkg_args} update | ||
| 38 | opkg-cl ${ipkg_args} install ${selected_pkg} | ||
| 39 | multilib_tryout_dirs="${multilib_tryout_dirs} ${target_rootfs}" | ||
| 40 | fi | ||
| 41 | done | ||
| 42 | } | ||
| 43 | |||
| 44 | split_multilib_packages() { | ||
| 45 | INSTALL_PACKAGES_NORMAL_IPK="" | ||
| 46 | INSTALL_PACKAGES_MULTILIB_IPK="" | ||
| 47 | for pkg in ${INSTALL_PACKAGES_IPK}; do | ||
| 48 | is_multilib=0 | ||
| 49 | for item in ${MULTILIB_VARIANTS}; do | ||
| 50 | local pkgname_prefix="${item}-" | ||
| 51 | local pkgname_len=${#pkgname_prefix} | ||
| 52 | local pkgname=$(echo $pkg | awk -v var=$pkgname_len '{ pkgname=substr($1, 1, var); print pkgname; }' ) | ||
| 53 | if [ ${pkgname} = ${pkgname_prefix} ]; then | ||
| 54 | is_multilib=1 | ||
| 55 | break | ||
| 56 | fi | ||
| 57 | done | ||
| 58 | |||
| 59 | if [ ${is_multilib} = 0 ]; then | ||
| 60 | INSTALL_PACKAGES_NORMAL_IPK="${INSTALL_PACKAGES_NORMAL_IPK} ${pkg}" | ||
| 61 | else | ||
| 62 | INSTALL_PACKAGES_MULTILIB_IPK="${INSTALL_PACKAGES_MULTILIB_IPK} ${pkg}" | ||
| 63 | fi | ||
| 64 | done | ||
| 65 | } | ||
| 66 | |||
| 67 | # | ||
| 68 | # install a bunch of packages using opkg | ||
| 69 | # the following shell variables needs to be set before calling this func: | ||
| 70 | # INSTALL_ROOTFS_IPK - install root dir | ||
| 71 | # INSTALL_CONF_IPK - configuration file | ||
| 72 | # INSTALL_PACKAGES_IPK - packages to be installed | ||
| 73 | # INSTALL_PACKAGES_ATTEMPTONLY_IPK - packages attemped to be installed only | ||
| 74 | # INSTALL_PACKAGES_LINGUAS_IPK - additional packages for uclibc | ||
| 75 | # INSTALL_TASK_IPK - task name | ||
| 76 | |||
| 77 | package_install_internal_ipk() { | ||
| 78 | |||
| 79 | local target_rootfs="${INSTALL_ROOTFS_IPK}" | ||
| 80 | local package_attemptonly="${INSTALL_PACKAGES_ATTEMPTONLY_IPK}" | ||
| 81 | local package_linguas="${INSTALL_PACKAGES_LINGUAS_IPK}" | ||
| 82 | local task="${INSTALL_TASK_IPK}" | ||
| 83 | |||
| 84 | split_multilib_packages | ||
| 85 | |||
| 86 | local package_to_install="${INSTALL_PACKAGES_NORMAL_IPK}" | ||
| 87 | local package_multilib="${INSTALL_PACKAGES_MULTILIB_IPK}" | ||
| 88 | |||
| 89 | mkdir -p ${target_rootfs}${OPKGLIBDIR}/opkg | ||
| 90 | touch ${target_rootfs}${OPKGLIBDIR}/opkg/status | ||
| 91 | |||
| 92 | local ipkg_args="${OPKG_ARGS}" | ||
| 93 | |||
| 94 | opkg-cl ${ipkg_args} update | ||
| 95 | |||
| 96 | for i in ${package_linguas}; do | ||
| 97 | opkg-cl ${ipkg_args} install $i | ||
| 98 | done | ||
| 99 | |||
| 100 | if [ ! -z "${package_to_install}" ]; then | ||
| 101 | opkg-cl ${ipkg_args} install ${package_to_install} | ||
| 102 | fi | ||
| 103 | |||
| 104 | if [ ! -z "${package_attemptonly}" ]; then | ||
| 105 | opkg-cl ${ipkg_args} install ${package_attemptonly} > "`dirname ${BB_LOGFILE}`/log.do_${task}_attemptonly.${PID}" || true | ||
| 106 | fi | ||
| 107 | |||
| 108 | package_tryout_install_multilib_ipk | ||
| 109 | if [ ! -z "${MULTILIB_CHECK_FILE}" ]; then | ||
| 110 | #sanity check | ||
| 111 | multilib_sanity_check ${target_rootfs} ${multilib_tryout_dirs} || exit 1 | ||
| 112 | fi | ||
| 113 | |||
| 114 | if [ ! -z "${package_multilib}" ]; then | ||
| 115 | opkg-cl ${ipkg_args} install ${package_multilib} | ||
| 116 | fi | ||
| 117 | } | ||
| 118 | |||
| 119 | ipk_log_check() { | ||
| 120 | target="$1" | ||
| 121 | lf_path="$2" | ||
| 122 | |||
| 123 | lf_txt="`cat $lf_path`" | ||
| 124 | for keyword_die in "exit 1" "Collected errors" ERR Fail | ||
| 125 | do | ||
| 126 | if (echo "$lf_txt" | grep -v log_check | grep "$keyword_die") >/dev/null 2>&1 | ||
| 127 | then | ||
| 128 | echo "log_check: There were error messages in the logfile" | ||
| 129 | printf "log_check: Matched keyword: [$keyword_die]\n\n" | ||
| 130 | echo "$lf_txt" | grep -v log_check | grep -C 5 "$keyword_die" | ||
| 131 | echo "" | ||
| 132 | do_exit=1 | ||
| 133 | fi | ||
| 134 | done | ||
| 135 | test "$do_exit" = 1 && exit 1 | ||
| 136 | true | ||
| 137 | } | ||
| 138 | |||
| 139 | # | ||
| 140 | # Update the Packages index files in ${DEPLOY_DIR_IPK} | ||
| 141 | # | ||
| 142 | package_update_index_ipk () { | ||
| 143 | #set -x | ||
| 144 | |||
| 145 | ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS} ${SDK_PACKAGE_ARCHS}" | ||
| 146 | |||
| 147 | if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then | ||
| 148 | return | ||
| 149 | fi | ||
| 150 | |||
| 151 | packagedirs="${DEPLOY_DIR_IPK}" | ||
| 152 | for arch in $ipkgarchs; do | ||
| 153 | packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch" | ||
| 154 | done | ||
| 155 | |||
| 156 | multilib_archs="${MULTILIB_ARCHS}" | ||
| 157 | for arch in $multilib_archs; do | ||
| 158 | packagedirs="$packagedirs ${DEPLOY_DIR_IPK}/$arch" | ||
| 159 | done | ||
| 160 | |||
| 161 | found=0 | ||
| 162 | for pkgdir in $packagedirs; do | ||
| 163 | if [ -e $pkgdir/ ]; then | ||
| 164 | found=1 | ||
| 165 | touch $pkgdir/Packages | ||
| 166 | flock $pkgdir/Packages.flock -c "opkg-make-index -r $pkgdir/Packages -p $pkgdir/Packages -m $pkgdir/" | ||
| 167 | fi | ||
| 168 | done | ||
| 169 | if [ "$found" != "1" ]; then | ||
| 170 | bbfatal "There are no packages in ${DEPLOY_DIR_IPK}!" | ||
| 171 | fi | ||
| 172 | } | ||
| 173 | |||
| 174 | # | ||
| 175 | # Generate an ipkg conf file ${IPKGCONF_TARGET} suitable for use against | ||
| 176 | # the target system and an ipkg conf file ${IPKGCONF_SDK} suitable for | ||
| 177 | # use against the host system in sdk builds | ||
| 178 | # | ||
| 179 | package_generate_ipkg_conf () { | ||
| 180 | package_generate_archlist | ||
| 181 | echo "src oe file:${DEPLOY_DIR_IPK}" >> ${IPKGCONF_SDK} | ||
| 182 | ipkgarchs="${SDK_PACKAGE_ARCHS}" | ||
| 183 | for arch in $ipkgarchs; do | ||
| 184 | if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then | ||
| 185 | echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${IPKGCONF_SDK} | ||
| 186 | fi | ||
| 187 | done | ||
| 188 | |||
| 189 | echo "src oe file:${DEPLOY_DIR_IPK}" >> ${IPKGCONF_TARGET} | ||
| 190 | ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS}" | ||
| 191 | for arch in $ipkgarchs; do | ||
| 192 | if [ -e ${DEPLOY_DIR_IPK}/$arch/Packages ] ; then | ||
| 193 | echo "src oe-$arch file:${DEPLOY_DIR_IPK}/$arch" >> ${IPKGCONF_TARGET} | ||
| 194 | fi | ||
| 195 | done | ||
| 196 | } | ||
| 197 | |||
| 198 | package_generate_archlist () { | ||
| 199 | ipkgarchs="${SDK_PACKAGE_ARCHS}" | ||
| 200 | priority=1 | ||
| 201 | for arch in $ipkgarchs; do | ||
| 202 | echo "arch $arch $priority" >> ${IPKGCONF_SDK} | ||
| 203 | priority=$(expr $priority + 5) | ||
| 204 | done | ||
| 205 | |||
| 206 | ipkgarchs="${ALL_MULTILIB_PACKAGE_ARCHS}" | ||
| 207 | priority=1 | ||
| 208 | for arch in $ipkgarchs; do | ||
| 209 | echo "arch $arch $priority" >> ${IPKGCONF_TARGET} | ||
| 210 | priority=$(expr $priority + 5) | ||
| 211 | done | ||
| 212 | } | ||
| 213 | |||
| 214 | python do_package_ipk () { | 19 | python do_package_ipk () { |
| 215 | import re, copy | 20 | import re, copy |
| 216 | import textwrap | 21 | import textwrap |
diff --git a/meta/classes/rootfs_ipk.bbclass b/meta/classes/rootfs_ipk.bbclass index f97f027804..9d63450dd1 100644 --- a/meta/classes/rootfs_ipk.bbclass +++ b/meta/classes/rootfs_ipk.bbclass | |||
| @@ -15,117 +15,14 @@ rootfs_ipk_do_rootfs[vardepsexclude] += "BUILDNAME" | |||
| 15 | 15 | ||
| 16 | do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock" | 16 | do_rootfs[lockfiles] += "${WORKDIR}/ipk.lock" |
| 17 | 17 | ||
| 18 | OPKG_PREPROCESS_COMMANDS = "package_update_index_ipk; package_generate_ipkg_conf" | 18 | OPKG_PREPROCESS_COMMANDS = "" |
| 19 | 19 | ||
| 20 | OPKG_POSTPROCESS_COMMANDS = "ipk_insert_feed_uris; " | 20 | OPKG_POSTPROCESS_COMMANDS = "" |
| 21 | 21 | ||
| 22 | OPKGLIBDIR = "${localstatedir}/lib" | 22 | OPKGLIBDIR = "${localstatedir}/lib" |
| 23 | 23 | ||
| 24 | MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg" | 24 | MULTILIBRE_ALLOW_REP = "${OPKGLIBDIR}/opkg" |
| 25 | 25 | ||
| 26 | fakeroot rootfs_ipk_do_rootfs () { | ||
| 27 | #set -x | ||
| 28 | |||
| 29 | rm -f ${IPKGCONF_TARGET} | ||
| 30 | touch ${IPKGCONF_TARGET} | ||
| 31 | |||
| 32 | ${OPKG_PREPROCESS_COMMANDS} | ||
| 33 | |||
| 34 | mkdir -p ${T}/ | ||
| 35 | |||
| 36 | export INSTALL_CONF_IPK="${IPKGCONF_TARGET}" | ||
| 37 | export INSTALL_ROOTFS_IPK="${IMAGE_ROOTFS}" | ||
| 38 | STATUS=${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/status | ||
| 39 | mkdir -p ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg | ||
| 40 | |||
| 41 | opkg-cl ${OPKG_ARGS} update | ||
| 42 | |||
| 43 | # prime the status file with bits that we don't want | ||
| 44 | for i in ${BAD_RECOMMENDATIONS}; do | ||
| 45 | pkginfo="`opkg-cl ${OPKG_ARGS} info $i`" | ||
| 46 | if [ ! -z "$pkginfo" ]; then | ||
| 47 | echo "$pkginfo" | awk "/^Status:/ { print \"Status: deinstall hold not-installed\n\" }" - >> $STATUS | ||
| 48 | else | ||
| 49 | echo "Requested ignored recommendation $i is not a package" | ||
| 50 | fi | ||
| 51 | done | ||
| 52 | |||
| 53 | #install | ||
| 54 | export INSTALL_PACKAGES_ATTEMPTONLY_IPK="${PACKAGE_INSTALL_ATTEMPTONLY}" | ||
| 55 | export INSTALL_PACKAGES_LINGUAS_IPK="${LINGUAS_INSTALL}" | ||
| 56 | export INSTALL_TASK_IPK="rootfs" | ||
| 57 | |||
| 58 | |||
| 59 | export INSTALL_PACKAGES_IPK="${PACKAGE_INSTALL}" | ||
| 60 | |||
| 61 | #post install | ||
| 62 | export D=${IMAGE_ROOTFS} | ||
| 63 | export OFFLINE_ROOT=${IMAGE_ROOTFS} | ||
| 64 | export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} | ||
| 65 | export OPKG_OFFLINE_ROOT=${IPKG_OFFLINE_ROOT} | ||
| 66 | export INTERCEPT_DIR=${WORKDIR}/intercept_scripts | ||
| 67 | export NATIVE_ROOT=${STAGING_DIR_NATIVE} | ||
| 68 | |||
| 69 | package_install_internal_ipk | ||
| 70 | |||
| 71 | # Distro specific packages should create this | ||
| 72 | #mkdir -p ${IMAGE_ROOTFS}/etc/opkg/ | ||
| 73 | #grep "^arch" ${IPKGCONF_TARGET} >${IMAGE_ROOTFS}/etc/opkg/arch.conf | ||
| 74 | |||
| 75 | rootfs_install_complementary | ||
| 76 | |||
| 77 | ${OPKG_POSTPROCESS_COMMANDS} | ||
| 78 | ${ROOTFS_POSTINSTALL_COMMAND} | ||
| 79 | |||
| 80 | install -d ${IMAGE_ROOTFS}/${sysconfdir} | ||
| 81 | echo ${BUILDNAME} > ${IMAGE_ROOTFS}/${sysconfdir}/version | ||
| 82 | |||
| 83 | ${ROOTFS_POSTPROCESS_COMMAND} | ||
| 84 | |||
| 85 | if ${@base_contains("IMAGE_FEATURES", "read-only-rootfs", "true", "false" ,d)}; then | ||
| 86 | delayed_postinsts="$(delayed_postinsts)" | ||
| 87 | if [ -n "$delayed_postinsts" ]; then | ||
| 88 | bberror "The following packages could not be configured offline and rootfs is read-only: $delayed_postinsts" | ||
| 89 | exit 1 | ||
| 90 | fi | ||
| 91 | fi | ||
| 92 | |||
| 93 | rm -f ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/lists/* | ||
| 94 | log_check rootfs | ||
| 95 | } | ||
| 96 | |||
| 97 | rootfs_ipk_do_rootfs[vardeps] += "delayed_postinsts" | ||
| 98 | |||
| 99 | delayed_postinsts () { | ||
| 100 | cat ${STATUS}|grep -e "^Package:" -e "^Status:"|sed -ne 'N;s/Package: \(.*\)\nStatus:.*unpacked/\1/p' | ||
| 101 | } | ||
| 102 | |||
| 103 | save_postinsts () { | ||
| 104 | # Scripts need to be ordered when executed, this ensures numeric order | ||
| 105 | # If we ever run into needing more the 899 scripts, we'll have to | ||
| 106 | # change num to start with 1000. | ||
| 107 | num=100 | ||
| 108 | for p in $(delayed_postinsts); do | ||
| 109 | install -d ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts | ||
| 110 | cp ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg/info/$p.postinst ${IMAGE_ROOTFS}${sysconfdir}/ipk-postinsts/$num-$p | ||
| 111 | num=`echo \$((num+1))` | ||
| 112 | done | ||
| 113 | } | ||
| 114 | |||
| 115 | remove_packaging_data_files() { | ||
| 116 | rm -rf ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg | ||
| 117 | # We need the directory for the package manager lock | ||
| 118 | mkdir ${IMAGE_ROOTFS}${OPKGLIBDIR}/opkg | ||
| 119 | } | ||
| 120 | |||
| 121 | rootfs_install_packages() { | ||
| 122 | opkg-cl ${OPKG_ARGS} install `cat $1` | ||
| 123 | } | ||
| 124 | |||
| 125 | rootfs_uninstall_packages() { | ||
| 126 | opkg-cl ${OPKG_ARGS} --force-depends remove $@ | ||
| 127 | } | ||
| 128 | |||
| 129 | ipk_insert_feed_uris () { | 26 | ipk_insert_feed_uris () { |
| 130 | 27 | ||
| 131 | echo "Building from feeds activated!" | 28 | echo "Building from feeds activated!" |
| @@ -163,7 +60,7 @@ python () { | |||
| 163 | flags = flags.replace("do_deploy", "") | 60 | flags = flags.replace("do_deploy", "") |
| 164 | flags = flags.replace("do_populate_sysroot", "") | 61 | flags = flags.replace("do_populate_sysroot", "") |
| 165 | d.setVarFlag('do_rootfs', 'recrdeptask', flags) | 62 | d.setVarFlag('do_rootfs', 'recrdeptask', flags) |
| 166 | d.setVar('OPKG_PREPROCESS_COMMANDS', "package_generate_archlist\nipk_insert_feed_uris") | 63 | d.setVar('OPKG_PREPROCESS_COMMANDS', "ipk_insert_feed_uris") |
| 167 | d.setVar('OPKG_POSTPROCESS_COMMANDS', '') | 64 | d.setVar('OPKG_POSTPROCESS_COMMANDS', '') |
| 168 | } | 65 | } |
| 169 | 66 | ||
