--- usr/lib/byobu/updates_available.old 2011-07-24 12:47:09.348399496 +0200 +++ usr/lib/byobu/updates_available 2011-07-24 13:04:49.087807911 +0200 @@ -44,7 +44,11 @@ # These are very computationally intensive processes. # Background this work, have it write to the cache files, # and let the next cache check pick up the results. - if [ -x /usr/lib/update-notifier/apt-check ]; then + # packagekit should be available almost everywhere nowadays + if command -v pkcon >/dev/null; then + # use packagekit to show list of packages + pkcon get-updates -p | grep -E '^Package' | wc -l > "$mycache" & + elif [ -x /usr/lib/update-notifier/apt-check ]; then # If apt-check binary exists, use it /usr/lib/update-notifier/apt-check 2>&1 | awk '-F;' 'END { print $1, $2 }' > "$mycache" & elif command -v apt-get >/dev/null; then @@ -69,6 +73,10 @@ mycache=$1 # The cache doesn't exist: create it [ ! -e "$mycache" ] && return 0 + # packagekit support + if -e /var/lib/PackageKit/transactions.db; then + [ "/var/lib/PackageKit/transactions.db" -nt "$mycache" ] && return 0 + fi if command -v apt-get >/dev/null; then # Debian/ubuntu [ "/var/lib/apt" -nt "$mycache" ] || [ "/var/lib/apt/lists" -nt "$mycache" ] @@ -83,8 +91,13 @@ return 1 } +# show name of available update packages + __updates_available_detail() { - if command -v apt-get >/dev/null; then + if command pkcon >/dev/null; then + detail=`pkcon get-updates -p | grep -E '^Package'` + printf "$detail" + elif command -v apt-get >/dev/null; then detail=`apt-get -s -o Debug::NoLocking=true upgrade` if [ "$1" = "--detail" ]; then printf "$detail"