mirror of https://github.com/dynup/kpatch
46 lines
1.7 KiB
Bash
Executable File
46 lines
1.7 KiB
Bash
Executable File
#!/bin/bash -x
|
|
|
|
# install rpms on a Fedora 22 system to prepare it for kpatch integration tests
|
|
|
|
set -o errexit
|
|
|
|
[[ $UID != 0 ]] && sudo=sudo
|
|
|
|
warn() {
|
|
echo "ERROR: $1" >&2
|
|
}
|
|
|
|
die() {
|
|
warn "$@"
|
|
exit 1
|
|
}
|
|
|
|
install_rpms() {
|
|
# crude workaround for a weird dnf bug where it fails to download
|
|
$sudo dnf install -y $* || $sudo dnf install -y $*
|
|
}
|
|
|
|
install_rpms gcc elfutils elfutils-devel pesign openssl numactl-devel wget patchutils
|
|
|
|
$sudo dnf builddep -y kernel || $sudo dnf builddep -y kernel
|
|
|
|
# install kernel debuginfo and devel RPMs for target kernel
|
|
kverrel=$(uname -r)
|
|
kverrel=${kverrel%.x86_64}
|
|
kver=${kverrel%%-*}
|
|
krel=${kverrel#*-}
|
|
install_rpms https://kojipkgs.fedoraproject.org/packages/kernel/$kver/$krel/x86_64/kernel-debuginfo-$kver-$krel.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/kernel/$kver/$krel/x86_64/kernel-debuginfo-common-x86_64-$kver-$krel.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/kernel/$kver/$krel/x86_64/kernel-devel-$kver-$krel.x86_64.rpm
|
|
|
|
# install version of gcc which was used to build the target kernel
|
|
gccver=$(gcc --version |head -n1 |cut -d' ' -f3-)
|
|
kgccver=$(readelf -p .comment /usr/lib/debug/lib/modules/$(uname -r)/vmlinux |grep GCC: | tr -s ' ' | cut -d ' ' -f6-)
|
|
if [[ $gccver != $kgccver ]]; then
|
|
gver=$(echo $kgccver | awk '{print $1}')
|
|
grel=$(echo $kgccver | sed 's/.*-\(.*\))/\1/')
|
|
grel=$grel.$(rpm -q gcc |sed 's/.*\.\(.*\)\.x86_64/\1/')
|
|
install_rpms https://kojipkgs.fedoraproject.org/packages/gcc/$gver/$grel/x86_64/cpp-$gver-$grel.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/gcc/$gver/$grel/x86_64/gcc-$gver-$grel.x86_64.rpm https://kojipkgs.fedoraproject.org/packages/gcc/$gver/$grel/x86_64/libgomp-$gver-$grel.x86_64.rpm
|
|
fi
|
|
|
|
install_rpms ccache
|
|
ccache -M 5G
|