mirror of https://github.com/dynup/kpatch
kpatch-build: add support for OpenCloudOS
OpenCloudOS is a centos-like Linux distribution. I test kpatch in OpenCloudOS V8 and V9. It works well in V9. But v8 itself has two problems: 1. no available epol repo, so kpatch can't install ccache. 2. executing 'uname -r' can't get an accurate kernel version. Both problems have been notified to the OpenCloudOS community. After they fix these problems, kpatch will work well in all versions. Signed-off-by: Longjun Luo <luolongjuna@gmail.com>
This commit is contained in:
parent
4077d87045
commit
57936d3fad
|
@ -71,6 +71,7 @@ declare -rA SUPPORTED_DEB_DISTROS=(
|
||||||
["ubuntu"]="Ubuntu OS")
|
["ubuntu"]="Ubuntu OS")
|
||||||
|
|
||||||
declare -rA SUPPORTED_RPM_DISTROS=(
|
declare -rA SUPPORTED_RPM_DISTROS=(
|
||||||
|
["opencloudos"]="OpenCloudOS"
|
||||||
["anolis"]="Anolis OS"
|
["anolis"]="Anolis OS"
|
||||||
["centos"]="CentOS"
|
["centos"]="CentOS"
|
||||||
["fedora"]="Fedora"
|
["fedora"]="Fedora"
|
||||||
|
@ -994,6 +995,8 @@ else
|
||||||
# openEuler has two directories with the same content after 'rpm -D'
|
# openEuler has two directories with the same content after 'rpm -D'
|
||||||
# openEuler 21.09 has linux-* and linux-*-source while openEuler 20.03 has linux-* and linux-*-Source
|
# openEuler 21.09 has linux-* and linux-*-source while openEuler 20.03 has linux-* and linux-*-Source
|
||||||
mv "$RPMTOPDIR"/BUILD/kernel-*/linux-*[sS]ource "$KERNEL_SRCDIR" 2>&1 | logger || die
|
mv "$RPMTOPDIR"/BUILD/kernel-*/linux-*[sS]ource "$KERNEL_SRCDIR" 2>&1 | logger || die
|
||||||
|
elif [[ "$DISTRO" = opencloudos ]]; then
|
||||||
|
mv "$RPMTOPDIR"/BUILD/kernel-*/kernel-* "$KERNEL_SRCDIR" 2>&1 | logger || die
|
||||||
elif [[ "$DISTRO" = photon ]]; then
|
elif [[ "$DISTRO" = photon ]]; then
|
||||||
# Photon has some files that are copied over during the build section of the spec file (instead of prep)
|
# Photon has some files that are copied over during the build section of the spec file (instead of prep)
|
||||||
# These change occasionally, so check they exist before copying
|
# These change occasionally, so check they exist before copying
|
||||||
|
@ -1022,7 +1025,7 @@ else
|
||||||
|
|
||||||
echo "$ARCHVERSION" > "$VERSIONFILE" || die
|
echo "$ARCHVERSION" > "$VERSIONFILE" || die
|
||||||
|
|
||||||
if [[ "$DISTRO" = openEuler ]]; then
|
if [[ "$DISTRO" = openEuler ]] || [[ "$DISTRO" = opencloudos ]]; then
|
||||||
[[ -z "$CONFIGFILE" ]] && CONFIGFILE="/boot/config-${ARCHVERSION}"
|
[[ -z "$CONFIGFILE" ]] && CONFIGFILE="/boot/config-${ARCHVERSION}"
|
||||||
elif [[ "$DISTRO" = photon ]]; then
|
elif [[ "$DISTRO" = photon ]]; then
|
||||||
[[ -z "$CONFIGFILE" ]] && CONFIGFILE="$KERNEL_SRCDIR/$SRC_CFG"
|
[[ -z "$CONFIGFILE" ]] && CONFIGFILE="$KERNEL_SRCDIR/$SRC_CFG"
|
||||||
|
|
|
@ -120,6 +120,19 @@ kpatch_photon_dependencies()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kpatch_opencloudos_dependencies()
|
||||||
|
{
|
||||||
|
local kernel_version
|
||||||
|
local arch
|
||||||
|
kernel_version=$(uname -r)
|
||||||
|
arch=$(uname -m)
|
||||||
|
sudo yum install -y make gcc patch bison flex openssl-devel dwarves dnf-utils \
|
||||||
|
rpm-build dnf-plugins-core python3-devel openssl-devel ncurses-devel elfutils-libelf-devel
|
||||||
|
sudo yum install -y "kernel-debuginfo-${kernel_version%.*}"\
|
||||||
|
"kernel-devel-${kernel_version%.*}"
|
||||||
|
sudo yum-builddep -y "kernel-${kernel_version}*"
|
||||||
|
}
|
||||||
|
|
||||||
kpatch_anolis_dependencies()
|
kpatch_anolis_dependencies()
|
||||||
{
|
{
|
||||||
local kernel_version
|
local kernel_version
|
||||||
|
|
Loading…
Reference in New Issue