find_linux_rpms() {
local prefix="$1"
- local pathtorpms=${2:-"${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}/${TARGET_ARCH}"}
+ local pathtorpms=${2:-"$KERNELRPMSBASE/$lnxmaj/$DISTROMAJ/$TARGET_ARCH"}
- local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}"
+ local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}"
local kernel_rpms=$(find_linux_rpm "$prefix" "$pathtorpms")
# call a distro specific hook, if available
- if type -p find_linux_rpms-$DISTRO; then
+ if type -p find_linux_rpms-$DISTROMAJ; then
local rpm
- if rpm=$(find_linux_rpms-$DISTRO "$prefix" "$wanted_kernel" "$pathtorpms"); then
+ if rpm=$(find_linux_rpms-$DISTROMAJ "$prefix" "$wanted_kernel" "$pathtorpms"); then
kernel_rpms="$kernel_rpms $rpm"
else
return 255
# or just gotten rid of. :-)
find_linux_rpm() {
local prefix="$1"
- local pathtorpms=${2:-"${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}/${TARGET_ARCH}"}
+ local pathtorpms=${2:-"$KERNELRPMSBASE/$lnxmaj/$DISTROMAJ/$TARGET_ARCH"}
local found_rpm=""
- local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}"
+ local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}"
local ret=1
if [ -d "$pathtorpms" ]; then
local rpm
# done
if [ -z "$found_rpm" ]; then
# see if there is a distro specific way of getting the RPM
- if type -p find_linux_rpm-$DISTRO; then
- if found_rpm=$(find_linux_rpm-$DISTRO "$prefix" "$wanted_kernel" "$pathtorpms"); then
+ if type -p find_linux_rpm-$DISTROMAJ; then
+ if found_rpm=$(find_linux_rpm-$DISTROMAJ "$prefix" "$wanted_kernel" "$pathtorpms"); then
found_rpm="${pathtorpms}/$found_rpm"
ret=0
else
case "$name" in
"EnterpriseEnterpriseServer")
name="oel"
- version="${version%%.*}"
;;
"RedHatEnterpriseServer" | "ScientificSL" | "CentOS")
name="rhel"
- version="${version%%.*}"
- ;;
- "SUSE LINUX")
- name="sles"
;;
+ "SUSE LINUX" | "SUSE")
+ name="sles"
+ case "$version" in
+ *.*) # $version already has patchlevel
+ ;;
+ *) # add patchlevel
+ PATCHLEVEL=$(sed -n -e 's/^PATCHLEVEL = //p' /etc/SuSE-release)
+ if [ "$PATCHLEVEL" -ne "0" ]; then
+ version="${version}.$PATCHLEVEL"
+ fi
+ ;;
+ esac
+ ;;
"Fedora")
name="fc"
;;
;;
esac
else
- echo "You really ought to install lsb_release for accurate distro identification"
+ error "You really ought to install lsb_release for accurate distro identification"
# try some heuristics
if [ -f /etc/SuSE-release ]; then
name=sles
- version=$(grep ^VERSION /etc/SuSE-release)
- version=${version#*= }
+ version=$(sed -n -e 's/^VERSION = //p' /etc/SuSE-release)
+ PATCHLEVEL=$(sed -n -e 's/^PATCHLEVEL = //p' /etc/SuSE-release)
+ if [ "$PATCHLEVEL" -ne "0" ]; then
+ version="${version}.$PATCHLEVEL"
+ fi
elif [ -f /etc/redhat-release ]; then
#name=$(head -1 /etc/redhat-release)
name=rhel
version=$(echo "$distroname" |
- sed -e 's/^[^0-9.]*//g' | sed -e 's/[ \.].*//')
+ sed -e 's/^[^0-9.]*//g' | sed -e 's/[ ].*//')
fi
if [ -z "$name" -o -z "$version" ]; then
fatal 1 "I don't know how to determine distro type/version.\nEither update autodetect_distro() or use the --distro argument."
fi
fi
- echo ${name}${version}
+ echo ${name}-${version}
return 0
}
local target=""
case ${distro} in
- oel5) target="2.6-oel5";;
- rhel5) target="2.6-rhel5";;
- rhel6) target="2.6-rhel6";;
- sles10) target="2.6-sles10";;
- sles11) target="$(uname -r | cut -d . -f 1,2)-sles11"
- local PLEV=$(grep PATCHLEVEL /etc/SuSE-release | \
- sed -e 's/.*= *//')
- if [ "$PLEV" = "3" ]; then
- target=${target}sp3
- fi
- ;;
- fc15) target="2.6-fc15";;
- fc18) target="3.x-fc18";;
- *) fatal 1 "I don't know what distro $distro is.\nEither update autodetect_target() or use the --target argument.";;
+ rhel7*) target="3.10-rhel7";;
+ rhel8*) target="4.18-rhel8";;
+ sles11.4) target="$(uname -r | cut -d . -f 1,2)-sles11sp4";;
+ sles11.3) target="$(uname -r | cut -d . -f 1,2)-sles11sp3";;
+ sles11*) target="$(uname -r | cut -d . -f 1,2)-sles11";;
+ sles12.5) target="$(uname -r | cut -d . -f 1,2)-sles12sp5";;
+ sles12.4) target="$(uname -r | cut -d . -f 1,2)-sles12sp4";;
+ sles12.3) target="$(uname -r | cut -d . -f 1,2)-sles12sp3";;
+ sles12*) target="$(uname -r | cut -d . -f 1,2)-sles12";;
+ sles15.1) target="$(uname -r | cut -d . -f 1,2)-sles15sp1";;
+ sles15.2) target="$(uname -r | cut -d . -f 1,2)-sles15sp2";;
+ fc18) target="3.x-fc18";;
+ *) fatal 1 "I don't know what distro $distro is.\nEither update autodetect_target() or use the --target argument.";;
esac
echo ${target}