--- kernel.eselect.old 2013-03-04 21:39:44.749412387 +0100 +++ kernel.eselect 2013-03-04 21:41:51.557408534 +0100 @@ -29,7 +29,7 @@ find_targets() { local f for f in "${EROOT}"/usr/src/linux-[[:digit:]]*; do - [[ -d ${f} ]] && basename "${f}" + [[ -e ${f}/Makefile ]] && basename "${f}" done | sort_kernel_versions } @@ -49,9 +49,9 @@ if [[ -z ${target} ]]; then die -q "Target \"$1\" doesn't appear to be valid!" - elif [[ -d ${EROOT}/usr/src/${target} ]]; then + elif [[ -e ${EROOT}/usr/src/${target}/Makefile ]]; then ln -s "${target}" "${EROOT}/usr/src/linux" - elif [[ -d ${EROOT}/usr/src/linux-${target} ]]; then + elif [[ -e ${EROOT}/usr/src/linux-${target}/Makefile ]]; then ln -s "linux-${target}" "${EROOT}/usr/src/linux" else die -q "Target \"$1\" doesn't appear to be valid!" @@ -66,7 +66,7 @@ do_show() { write_list_start "Current kernel symlink:" - if [[ -L ${EROOT}/usr/src/linux ]]; then + if [[ -L ${EROOT}/usr/src/linux ]] && [[ -e ${EROOT}/usr/src/linux/Makefile ]]; then local kernel=$(canonicalise "${EROOT}/usr/src/linux") write_kv_list_entry "${kernel%/}" "" else