-version_test_gt ()
-{
- local version_test_gt_sedexp="s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g"
- local version_a="`echo "$1" | sed -e "$version_test_gt_sedexp"`"
- local version_b="`echo "$2" | sed -e "$version_test_gt_sedexp"`"
- $DPKG --compare-versions "$version_a" gt "$version_b"
- return "$?"
-}
-
-list="$(${DPKG} -l | awk '/^ii[ ]+(linux|kfreebsd|gnumach)-image-[0-9]+\./ && $2 !~ /-dbg$/ { print $2 }' | sed -e 's#\(linux\|kfreebsd\|gnumach\)-image-##')"
-
-latest_version=""
-previous_version=""
-for i in $list; do
- if version_test_gt "$i" "$latest_version"; then
- previous_version="$latest_version"
- latest_version="$i"
- elif version_test_gt "$i" "$previous_version"; then
- previous_version="$i"
- fi
-done
-
-if [ "$latest_version" != "$installed_version" ] \
- || [ "$latest_version" != "$running_version" ] \
- || [ "$installed_version" != "$running_version" ]
-then
- # We have at least two kernels that we have reason to think the
- # user wants, so don't save the second-newest version.
- previous_version=
+if [ -n "$1" ]; then
+ installed_version="$(echo "$list" | awk "\$1 == \"$1\" { print \$2;exit; }")"
+fi
+unamer="$(uname -r)"
+if [ -n "$unamer" ]; then
+ running_version="$(echo "$list" | awk "\$1 == \"$unamer\" { print \$2;exit; }")"