Skip to content

Commit

Permalink
fix the bug of wrong shell condition and contains more distro
Browse files Browse the repository at this point in the history
This commit fix the fowlling problem:
1. move SUPPORTED_DISTRO to SUPPORTED_RPM_DISTROS
2. fix the wrong ID of "Anolis" to "anolis" in SUPPORTED_RPM_DISTROS
3. change distro in function to local variable
4. rename is_supported_distro to is_supported_rpm_distro; print_supported_distro
to print_supported_rpm_distro
5. fix the bug of return value of is_supported_rpm_distro
6. contains ubuntu and debian release in print_supported_rpm_distro, and adjust the vmlinux search logic at the same time.
  • Loading branch information
Wardenjohn committed Dec 12, 2023
1 parent 6137bdd commit 90fa6e2
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions kpatch-build/kpatch-build
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,15 @@ LLD="${CROSS_COMPILE:-}ld.lld"
READELF="${CROSS_COMPILE:-}readelf"
OBJCOPY="${CROSS_COMPILE:-}objcopy"

SUPPORTED_DISTRO="
SUPPORTED_RPM_DISTROS="
fedora
rhel
centos
openEuler
photon
Anolis
anolis
ubuntu
debian
"

warn() {
Expand Down Expand Up @@ -658,24 +660,26 @@ module_name_string() {
echo "${1//[^a-zA-Z0-9_-]/-}" | cut -c 1-55
}

is_supported_distro(){
distro=$1
for each_distro in ${SUPPORTED_DISTRO[@]}; do
is_supported_rpm_distro(){
local distro=$1
for each_distro in ${SUPPORTED_RPM_DISTROS[@]}; do
if [[ $distro == $each_distro ]]; then
return 1;
return 0
fi
done;
return 0
done
return 1
}

print_supported_distro(){
print_supported_rpm_distro(){
[[ "$DISTRO" = fedora ]] && echo "Fedora distribution detected"
[[ "$DISTRO" = rhel ]] && echo "RHEL distribution detected"
[[ "$DISTRO" = ol ]] && echo "Oracle Linux distribution detected"
[[ "$DISTRO" = centos ]] && echo "CentOS distribution detected"
[[ "$DISTRO" = openEuler ]] && echo "OpenEuler distribution detected"
[[ "$DISTRO" = photon ]] && echo "Photon OS distribution detected"
[[ "$DISTRO" = anolis ]] && echo "Anolis OS distribution detected"
[[ "$DISTRO" = ubuntu ]] && echo "Ubuntu OS distribution detected"
[[ "$DISTRO" = debian ]] && echo "Debian OS distribution detected"
}

usage() {
Expand Down Expand Up @@ -894,24 +898,23 @@ fi

[[ -z "$TARGETS" ]] && TARGETS="vmlinux modules"

if is_supported_distro "$DISTRO"; then
if is_supported_rpm_distro "$DISTRO"; then

[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"
if [[ "$DISTRO" = ubuntu ]] || [[ "$DISTRO" = debian ]]; then
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/boot/vmlinux-$ARCHVERSION"

export PATH="/usr/lib64/ccache:$PATH"

elif [[ "$DISTRO" = ubuntu ]] || [[ "$DISTRO" = debian ]]; then
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/boot/vmlinux-$ARCHVERSION"
if [[ "$DISTRO" = ubuntu ]]; then
[[ -e "$VMLINUX" ]] || die "linux-image-$ARCHVERSION-dbgsym not installed"

if [[ "$DISTRO" = ubuntu ]]; then
[[ -e "$VMLINUX" ]] || die "linux-image-$ARCHVERSION-dbgsym not installed"
elif [[ "$DISTRO" = debian ]]; then
[[ -e "$VMLINUX" ]] || die "linux-image-$ARCHVERSION-dbg not installed"
fi
else
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"

elif [[ "$DISTRO" = debian ]]; then
[[ -e "$VMLINUX" ]] || die "linux-image-$ARCHVERSION-dbg not installed"
export PATH="/usr/lib64/ccache:$PATH"
fi

export PATH="/usr/lib/ccache:$PATH"
fi
save_env

Expand All @@ -933,9 +936,9 @@ elif [[ -e "$KERNEL_SRCDIR"/.config ]] && [[ -e "$VERSIONFILE" ]] && [[ "$(cat "
echo "Using cache at $KERNEL_SRCDIR"

else
if is_supported_distro "$DISTRO"; then
if is_supported_rpm_distro "$DISTRO"; then

print_supported_distro "$DISTRO"
print_supported_rpm_distro "$DISTRO"

clean_cache

Expand Down

0 comments on commit 90fa6e2

Please sign in to comment.