diff options
Diffstat (limited to 'meta/classes/rootfs_deb.bbclass')
| -rw-r--r-- | meta/classes/rootfs_deb.bbclass | 37 |
1 files changed, 27 insertions, 10 deletions
diff --git a/meta/classes/rootfs_deb.bbclass b/meta/classes/rootfs_deb.bbclass index bef055c6f5..b6c706c580 100644 --- a/meta/classes/rootfs_deb.bbclass +++ b/meta/classes/rootfs_deb.bbclass | |||
| @@ -8,8 +8,18 @@ ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts" | |||
| 8 | do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot" | 8 | do_rootfs[depends] += "dpkg-native:do_populate_sysroot apt-native:do_populate_sysroot" |
| 9 | do_rootfs[recrdeptask] += "do_package_write_deb" | 9 | do_rootfs[recrdeptask] += "do_package_write_deb" |
| 10 | 10 | ||
| 11 | DEB_POSTPROCESS_COMMANDS = "rootfs_install_all_locales; " | ||
| 12 | |||
| 11 | opkglibdir = "${localstatedir}/lib/opkg" | 13 | opkglibdir = "${localstatedir}/lib/opkg" |
| 12 | 14 | ||
| 15 | deb_package_setflag() { | ||
| 16 | sed -i -e "/^Package: $2\$/{n; s/Status: install ok .*/Status: install ok $1/;}" ${IMAGE_ROOTFS}/var/lib/dpkg/status | ||
| 17 | } | ||
| 18 | |||
| 19 | deb_package_getflag() { | ||
| 20 | cat ${IMAGE_ROOTFS}/var/lib/dpkg/status | sed -n -e "/^Package: $2\$/{n; s/Status: install ok .*/$1/; p}" | ||
| 21 | } | ||
| 22 | |||
| 13 | fakeroot rootfs_deb_do_rootfs () { | 23 | fakeroot rootfs_deb_do_rootfs () { |
| 14 | set +e | 24 | set +e |
| 15 | 25 | ||
| @@ -28,25 +38,18 @@ fakeroot rootfs_deb_do_rootfs () { | |||
| 28 | export INSTALL_TASK_DEB="rootfs" | 38 | export INSTALL_TASK_DEB="rootfs" |
| 29 | 39 | ||
| 30 | package_install_internal_deb | 40 | package_install_internal_deb |
| 31 | 41 | ${DEB_POSTPROCESS_COMMANDS} | |
| 32 | 42 | ||
| 33 | export D=${IMAGE_ROOTFS} | 43 | export D=${IMAGE_ROOTFS} |
| 34 | export OFFLINE_ROOT=${IMAGE_ROOTFS} | 44 | export OFFLINE_ROOT=${IMAGE_ROOTFS} |
| 35 | export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} | 45 | export IPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} |
| 36 | export OPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} | 46 | export OPKG_OFFLINE_ROOT=${IMAGE_ROOTFS} |
| 37 | 47 | ||
| 38 | _flag () { | ||
| 39 | sed -i -e "/^Package: $2\$/{n; s/Status: install ok .*/Status: install ok $1/;}" ${IMAGE_ROOTFS}/var/lib/dpkg/status | ||
| 40 | } | ||
| 41 | _getflag () { | ||
| 42 | cat ${IMAGE_ROOTFS}/var/lib/dpkg/status | sed -n -e "/^Package: $2\$/{n; s/Status: install ok .*/$1/; p}" | ||
| 43 | } | ||
| 44 | |||
| 45 | # Attempt to run preinsts | 48 | # Attempt to run preinsts |
| 46 | # Mark packages with preinst failures as unpacked | 49 | # Mark packages with preinst failures as unpacked |
| 47 | for i in ${IMAGE_ROOTFS}/var/lib/dpkg/info/*.preinst; do | 50 | for i in ${IMAGE_ROOTFS}/var/lib/dpkg/info/*.preinst; do |
| 48 | if [ -f $i ] && ! sh $i; then | 51 | if [ -f $i ] && ! sh $i; then |
| 49 | _flag unpacked `basename $i .preinst` | 52 | deb_package_setflag unpacked `basename $i .preinst` |
| 50 | fi | 53 | fi |
| 51 | done | 54 | done |
| 52 | 55 | ||
| @@ -54,7 +57,7 @@ fakeroot rootfs_deb_do_rootfs () { | |||
| 54 | # Mark packages with postinst failures as unpacked | 57 | # Mark packages with postinst failures as unpacked |
| 55 | for i in ${IMAGE_ROOTFS}/var/lib/dpkg/info/*.postinst; do | 58 | for i in ${IMAGE_ROOTFS}/var/lib/dpkg/info/*.postinst; do |
| 56 | if [ -f $i ] && ! sh $i configure; then | 59 | if [ -f $i ] && ! sh $i configure; then |
| 57 | _flag unpacked `basename $i .postinst` | 60 | deb_package_setflag unpacked `basename $i .postinst` |
| 58 | fi | 61 | fi |
| 59 | done | 62 | done |
| 60 | 63 | ||
| @@ -104,3 +107,17 @@ list_package_depends() { | |||
| 104 | list_package_recommends() { | 107 | list_package_recommends() { |
| 105 | ${DPKG_QUERY_COMMAND} -s $1 | grep ^Recommends | sed -e 's/^Recommends: //' -e 's/,//g' -e 's:([=<>]* [0-9a-zA-Z.~\-]*)::g' | 108 | ${DPKG_QUERY_COMMAND} -s $1 | grep ^Recommends | sed -e 's/^Recommends: //' -e 's/,//g' -e 's:([=<>]* [0-9a-zA-Z.~\-]*)::g' |
| 106 | } | 109 | } |
| 110 | |||
| 111 | rootfs_check_package_exists() { | ||
| 112 | if [ `apt-cache showpkg $1 | wc -l` -gt 2 ]; then | ||
| 113 | echo $1 | ||
| 114 | fi | ||
| 115 | } | ||
| 116 | |||
| 117 | rootfs_install_packages() { | ||
| 118 | ${STAGING_BINDIR_NATIVE}/apt-get install $@ --force-yes --allow-unauthenticated | ||
| 119 | |||
| 120 | for pkg in $@ ; do | ||
| 121 | deb_package_setflag installed $pkg | ||
| 122 | done | ||
| 123 | } | ||
