mirror of
https://github.com/SCST-project/scst.git
synced 2026-05-14 09:11:27 +00:00
scripts/rebuild-rhel-kernel-rpm: Move code for downloading a RHEL (clone) RPM into a separate file (merge r5672 from trunk)
git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/3.0.x@5824 d57e44dd-8a1f-0410-8b47-8ef2f437770f
This commit is contained in:
@@ -36,63 +36,47 @@
|
||||
#
|
||||
############################################################################
|
||||
|
||||
scst_dir="$(dirname "$(dirname "$0")")"
|
||||
if [ ${scst_dir:0:1} != "/" ]; then
|
||||
scst_dir="$PWD/${scst_dir}"
|
||||
scriptdir="$(dirname "$0")"
|
||||
if [ "${scriptdir:0:1}" != "/" ]; then
|
||||
scriptdir="$PWD/${scriptdir}"
|
||||
fi
|
||||
source "${scriptdir}/rhel-rpm-functions"
|
||||
scst_dir="$(dirname "$scriptdir")"
|
||||
downloaddir=$HOME/software/downloads
|
||||
rpmbuild_dir=$HOME/rpmbuild
|
||||
if [ "$1" = "" ]; then
|
||||
if echo "$(uname -r)" | grep -q uek; then
|
||||
|
||||
if echo "$(uname -r)" | grep -q uek; then
|
||||
kernel="kernel-uek-$(uname -r)"
|
||||
else
|
||||
kernel="kernel-$(uname -r)"
|
||||
fi
|
||||
else
|
||||
kernel="$1"
|
||||
kernel="kernel-$(uname -r)"
|
||||
fi
|
||||
|
||||
releasever="$(sed -n -e 's/^.* release \([0-9.]*\).*$/\1/p' /etc/issue)"
|
||||
|
||||
distro="$(sed -n -e 's/^\(.*\) release .*$/\1/p' /etc/issue)"
|
||||
|
||||
install_prerequisites=true
|
||||
|
||||
type /usr/bin/getopt >/dev/null || exit 1
|
||||
options="$(/usr/bin/getopt d:ik:r: "$@")" || { usage; exit 1; }
|
||||
set -- $options
|
||||
while [ "$1" != "${1#-}" ]; do
|
||||
case "$1" in
|
||||
'-d') distro="$2"; shift; shift;;
|
||||
'-i') install_prerequisites="false"; shift;;
|
||||
'-k') kernel="$2"; shift; shift;;
|
||||
'-r') releasever="$2"; shift; shift;;
|
||||
'--') shift; break;;
|
||||
*) usage; exit 1;;
|
||||
esac
|
||||
done
|
||||
|
||||
arch="$(uname -m)"
|
||||
kernel="${kernel%.${arch}}"
|
||||
kernel_src_rpm="${kernel}.src.rpm"
|
||||
kver="${kernel#kernel-}"
|
||||
distro="$(sed -n -e 's/^\(.*\) release .*$/\1/p' /etc/issue)"
|
||||
if [ -n "$2" ]; then
|
||||
releasever="$2"
|
||||
else
|
||||
releasever="$(sed -n -e 's/^.* release \([0-9.]*\).*$/\1/p' /etc/issue)"
|
||||
fi
|
||||
releasevermajor="$(echo $releasever | cut -f1 -d.)"
|
||||
releaseverminor="$(echo $releasever | cut -f2 -d.)"
|
||||
case "$distro" in
|
||||
"CentOS"*)
|
||||
case $releasever in
|
||||
5.*|6.[01])
|
||||
srpm_url=("http://vault.centos.org/${releasever}/os/SRPMS" "http://vault.centos.org/${releasever}/updates/SRPMS");;
|
||||
*)
|
||||
srpm_url=("http://vault.centos.org/${releasever}/os/Source/SPackages" "http://vault.centos.org/${releasever}/updates/Source/SPackages");;
|
||||
esac
|
||||
;;
|
||||
"Red Hat Enterprise Linux"*)
|
||||
srpm_url=("http://ftp.redhat.com/pub/redhat/linux/enterprise/${releasevermajor}Server/en/os/SRPMS")
|
||||
;;
|
||||
"Oracle Linux Server")
|
||||
srpm_url=("http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/${releaseverminor}/base/x86_64/getPackageSource" "http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/latest/x86_64/getPackageSource" "http://public-yum.oracle.com/repo/OracleLinux/OL${releasevermajor}/UEK/latest/x86_64/getPackageSource")
|
||||
;;
|
||||
"Scientific Linux")
|
||||
if [ "$releasevermajor" = 6 ]; then
|
||||
srpm_url=("http://ftp.scientificlinux.org/linux/scientific/$releasever/SRPMS/vendor")
|
||||
else
|
||||
srpm_url=("http://ftp.scientificlinux.org/linux/scientific/$releasevermajor$releaseverminor/SRPMS/vendor")
|
||||
fi
|
||||
;;
|
||||
"Fedora")
|
||||
srpm_url="http://ftp.redhat.com/redhat/rhel/rc/7/Server/source/tree/Packages"
|
||||
;;
|
||||
*)
|
||||
echo "Unknown type of distribution: $distro"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
srpm_urls="$(get_srpm_urls $distro $releasever $arch)" || exit $?
|
||||
|
||||
function log {
|
||||
echo
|
||||
@@ -137,7 +121,9 @@ fi
|
||||
|
||||
log "Installing prerequisites"
|
||||
|
||||
sudo yum install -y -q asciidoc binutils-devel elfutils-libelf-devel hmaccalc ncurses-devel newt-devel patchutils 'perl(ExtUtils::Embed)' python-devel redhat-rpm-config rpmdevtools rng-tools rpm-build unifdef xmlto yum-utils zlib-devel
|
||||
if $install_prerequisites; then
|
||||
sudo yum install -y -q asciidoc binutils-devel elfutils-libelf-devel hmaccalc ncurses-devel newt-devel patchutils 'perl(ExtUtils::Embed)' python-devel redhat-rpm-config rpmdevtools rng-tools rpm-build unifdef xmlto yum-utils zlib-devel
|
||||
fi
|
||||
|
||||
rc=$?; if [ $rc != 0 ]; then exit $rc; fi
|
||||
|
||||
@@ -150,7 +136,7 @@ log "Installing, unpacking and preparing kernel source files"
|
||||
mkdir -p ${downloaddir}
|
||||
if [ ! -e ${downloaddir}/${kernel_src_rpm} ]; then
|
||||
cd ${downloaddir}
|
||||
for dir in ${srpm_url[@]}
|
||||
for dir in ${srpm_urls}
|
||||
do
|
||||
url="$dir/${kernel_src_rpm}"
|
||||
echo "Trying $url ..."
|
||||
@@ -166,7 +152,9 @@ fi
|
||||
|
||||
log "Installing kernel build prerequisites"
|
||||
|
||||
sudo yum-builddep -q -y ${downloaddir}/${kernel_src_rpm}
|
||||
if $install_prerequisites; then
|
||||
sudo yum-builddep -q -y ${downloaddir}/${kernel_src_rpm}
|
||||
fi
|
||||
|
||||
log "Installing kernel sources in ${rpmbuild_dir}"
|
||||
|
||||
@@ -186,10 +174,18 @@ log "Copying SCST patches to the SOURCES directory"
|
||||
|
||||
cd ${rpmbuild_dir}/SOURCES
|
||||
copy_patch $scst_dir/scst/kernel/rhel/scst_exec_req_fifo-${kver}.patch scst_exec_req_fifo.patch
|
||||
f="$scst_dir/iscsi-scst/kernel/patches/rhel/put_page_callback-${kver}.patch"
|
||||
if [ -e "$f" ]; then
|
||||
copy_patch "$f" put_page_callback.patch
|
||||
fi
|
||||
v="${kver}"
|
||||
while [ "${v/.*}" != "$v" ]; do
|
||||
f="$scst_dir/iscsi-scst/kernel/patches/rhel/put_page_callback-${v}.patch"
|
||||
if [ -e "$f" ]; then
|
||||
copy_patch "$f" put_page_callback.patch
|
||||
break
|
||||
fi
|
||||
while [ "${v%[0-9a-z]}" != "$v" ]; do
|
||||
v="${v%[0-9a-z]}"
|
||||
done
|
||||
v="${v%.}"
|
||||
done
|
||||
|
||||
log "Adding SCST patches in kernel.spec"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user