diff options
Diffstat (limited to 'scripts/kmodtool')
-rwxr-xr-x | scripts/kmodtool | 100 |
1 files changed, 50 insertions, 50 deletions
diff --git a/scripts/kmodtool b/scripts/kmodtool index a79ad0c7a0f3..0d6af2c7f1d1 100755 --- a/scripts/kmodtool +++ b/scripts/kmodtool @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# shellcheck disable=SC2086 +# shellcheck disable=SC2086,SC2295 # kmodtool - Helper script for building kernel module RPMs # Copyright (c) 2003-2012 Ville Skyttä <ville.skytta@iki.fi>, @@ -125,10 +125,10 @@ EOF print_rpmtemplate_per_kmodpkg () { - if [ "${1}" = "--custom" ]; then + if [[ "${1}" = "--custom" ]]; then shift local customkernel=true - elif [ "${1}" = "--redhat" ]; then + elif [[ "${1}" = "--redhat" ]]; then # this is needed for akmods shift local redhatkernel=true @@ -139,7 +139,7 @@ print_rpmtemplate_per_kmodpkg () # Detect depmod install location local depmod_path=/sbin/depmod - if [ ! -f "${depmod_path}" ]; then + if [[ ! -f "${depmod_path}" ]]; then depmod_path=/usr/sbin/depmod fi @@ -163,24 +163,24 @@ Requires(postun): kmod EOF # second part - if [ -z "${customkernel}" ]; then + if [[ -z "${customkernel}" ]]; then cat <<EOF Requires: kernel-uname-r = ${kernel_uname_r} BuildRequires: kernel-devel-uname-r = ${kernel_uname_r} %{?KmodsRequires:Requires: %{KmodsRequires}-uname-r = ${kernel_uname_r}} %{?KmodsRequires:BuildRequires: %{KmodsRequires}-uname-r = ${kernel_uname_r}} %post -n kmod-${kmodname}-${kernel_uname_r} -if [ -f "/boot/System.map-${kernel_uname_r}" ]; then +if [[ -f "/boot/System.map-${kernel_uname_r}" ]]; then ${prefix}${depmod_path} -aeF /boot/System.map-${kernel_uname_r} ${kernel_uname_r} > /dev/null || : -elif [ -f "/lib/modules/${kernel_uname_r}/System.map" ]; then +elif [[ -f "/lib/modules/${kernel_uname_r}/System.map" ]]; then ${prefix}${depmod_path} -aeF /lib/modules/${kernel_uname_r}/System.map ${kernel_uname_r} > /dev/null || : else ${prefix}${depmod_path} -ae ${kernel_uname_r} &> /dev/null || : fi %postun -n kmod-${kmodname}-${kernel_uname_r} -if [ -f "/boot/System.map-${kernel_uname_r}" ]; then +if [[ -f "/boot/System.map-${kernel_uname_r}" ]]; then ${prefix}${depmod_path} -aF /boot/System.map-${kernel_uname_r} ${kernel_uname_r} &> /dev/null || : -elif [ -f "/lib/modules/${kernel_uname_r}/System.map" ]; then +elif [[ -f "/lib/modules/${kernel_uname_r}/System.map" ]]; then ${prefix}${depmod_path} -aF /lib/modules/${kernel_uname_r}/System.map ${kernel_uname_r} &> /dev/null || : else ${prefix}${depmod_path} -a ${kernel_uname_r} &> /dev/null || : @@ -213,10 +213,10 @@ EOF print_rpmtemplate_kmoddevelpkg () { - if [ "${1}" = "--custom" ]; then + if [[ "${1}" = "--custom" ]]; then shift local customkernel=true - elif [ "${1}" = "--redhat" ]; then + elif [[ "${1}" = "--redhat" ]]; then shift local redhatkernel=true fi @@ -230,7 +230,7 @@ Group: System Environment/Kernel Provides: ${kmodname}-devel-kmod = %{?epoch:%{epoch}:}%{version}-%{release} EOF - if [ -z "${customkernel}" ] && [ -z "${redhatkernel}" ]; then + if [[ -z "${customkernel}" ]] && [[ -z "${redhatkernel}" ]]; then echo "Requires: kmod-${kmodname}-devel-${kernel_uname_r} >= %{?epoch:%{epoch}:}%{version}-%{release}" fi @@ -256,10 +256,10 @@ EOF print_rpmtemplate_per_kmoddevelpkg () { - if [ "${1}" = "--custom" ]; then + if [[ "${1}" = "--custom" ]]; then shift local customkernel=true - elif [ "${1}" = "--redhat" ]; then + elif [[ "${1}" = "--redhat" ]]; then # this is needed for akmods shift local redhatkernel=true @@ -279,7 +279,7 @@ Provides: kmod-${kmodname}-devel-uname-r = ${kernel_uname_r} EOF # second part - if [ -z "${customkernel}" ]; then + if [[ -z "${customkernel}" ]]; then cat <<EOF Requires: kernel-devel-uname-r = ${kernel_uname_r} BuildRequires: kernel-devel-uname-r = ${kernel_uname_r} @@ -333,36 +333,36 @@ print_customrpmtemplate () { for kernel in ${1} do - if [ -e "${buildroot}/usr/src/kernels/${kernel}" ] ; then - # this looks like a Fedora/RH kernel -- print a normal template (which includes the proper BR) and be happy :) - kernel_versions="${kernel_versions}${kernel}___${buildroot}%{_usrsrc}/kernels/${kernel} " + if [[ -e "${prefix}/lib/modules/${kernel}/build/Makefile" ]]; then + # likely a user-build-kernel with available buildfiles + # fixme: we should check if uname from Makefile is the same as ${kernel} - # parse kernel versions string and print template - local kernel_verrelarch=${kernel%%${kernels_known_variants}} - print_rpmtemplate_per_kmodpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} + kernel_versions="${kernel_versions}${kernel}___${prefix}/lib/modules/${kernel}/build/ " + print_rpmtemplate_per_kmodpkg --custom "${kernel}" # create development package - if [ -n "${devel}" ]; then + if [[ -n "${devel}" ]]; then # create devel package including common headers - print_rpmtemplate_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} + print_rpmtemplate_kmoddevelpkg --custom "${kernel}" # create devel package - print_rpmtemplate_per_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} + print_rpmtemplate_per_kmoddevelpkg --custom "${kernel}" fi - elif [ -e "${prefix}/lib/modules/${kernel}/build/Makefile" ]; then - # likely a user-build-kernel with available buildfiles - # fixme: we should check if uname from Makefile is the same as ${kernel} + elif [[ -e "${buildroot}/usr/src/kernels/${kernel}" ]]; then + # this looks like a Fedora/RH kernel -- print a normal template (which includes the proper BR) and be happy :) + kernel_versions="${kernel_versions}${kernel}___${buildroot}%{_usrsrc}/kernels/${kernel} " - kernel_versions="${kernel_versions}${kernel}___${prefix}/lib/modules/${kernel}/build/ " - print_rpmtemplate_per_kmodpkg --custom "${kernel}" + # parse kernel versions string and print template + local kernel_verrelarch=${kernel%%${kernels_known_variants}} + print_rpmtemplate_per_kmodpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} # create development package - if [ -n "${devel}" ]; then + if [[ -n "${devel}" ]]; then # create devel package including common headers - print_rpmtemplate_kmoddevelpkg --custom "${kernel}" + print_rpmtemplate_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} # create devel package - print_rpmtemplate_per_kmoddevelpkg --custom "${kernel}" + print_rpmtemplate_per_kmoddevelpkg --redhat ${kernel} ${kernel##${kernel_verrelarch}} fi else error_out 2 "Don't know how to handle ${kernel} -- ${prefix}/lib/modules/${kernel}/build/Makefile not found" @@ -396,7 +396,7 @@ print_rpmtemplate () # create package print_rpmtemplate_per_kmodpkg "${kernel}" "${kernel##${kernel_verrelarch}}" - if [ -n "${devel}" ]; then + if [[ -n "${devel}" ]]; then # create devel package including common headers print_rpmtemplate_kmoddevelpkg "${kernel}" "${kernel##${kernel_verrelarch}}" @@ -423,13 +423,13 @@ myprog_help () echo " --buildroot <dir> -- Build root (place to look for build files)" } -while [ -n "${1}" ] ; do +while [[ -n "${1}" ]] ; do case "${1}" in --filterfile) shift - if [ -z "${1}" ] ; then + if [[ -z "${1}" ]] ; then error_out 2 "Please provide path to a filter-file together with --filterfile" >&2 - elif [ ! -e "${1}" ]; then + elif [[ ! -e "${1}" ]]; then error_out 2 "Filterfile ${1} not found" >&2 fi filterfile="${1}" @@ -437,7 +437,7 @@ while [ -n "${1}" ] ; do ;; --kmodname) shift - if [ -z "${1}" ] ; then + if [[ -z "${1}" ]] ; then error_out 2 "Please provide the name of the kmod together with --kmodname" >&2 fi # strip pending -kmod @@ -450,7 +450,7 @@ while [ -n "${1}" ] ; do ;; --prefix) shift - if [ -z "${1}" ] ; then + if [[ -z "${1}" ]] ; then error_out 2 "Please provide a prefix with --prefix" >&2 fi prefix="${1}" @@ -458,7 +458,7 @@ while [ -n "${1}" ] ; do ;; --repo) shift - if [ -z "${1}" ] ; then + if [[ -z "${1}" ]] ; then error_out 2 "Please provide the name of the repo together with --repo" >&2 fi repo=${1} @@ -466,7 +466,7 @@ while [ -n "${1}" ] ; do ;; --for-kernels) shift - if [ -z "${1}" ] ; then + if [[ -z "${1}" ]] ; then error_out 2 "Please provide the name of the kmod together with --kmodname" >&2 fi for_kernels="${1}" @@ -514,28 +514,28 @@ while [ -n "${1}" ] ; do esac done -if [ -e ./kmodtool-kernel-variants ]; then +if [[ -e ./kmodtool-kernel-variants ]]; then kernels_known_variants="$(cat ./kmodtool-kernel-variants)" -elif [ -e /usr/share/kmodtool/kernel-variants ] ; then +elif [[ -e /usr/share/kmodtool/kernel-variants ]] ; then kernels_known_variants="$(cat /usr/share/kmodtool/kernel-variants)" else kernels_known_variants="@(smp?(-debug)|PAE?(-debug)|debug|kdump|xen|kirkwood|highbank|imx|omap|tegra)" fi # general sanity checks -if [ -z "${target}" ]; then +if [[ -z "${target}" ]]; then error_out 2 "please pass target arch with --target" -elif [ -z "${kmodname}" ]; then +elif [[ -z "${kmodname}" ]]; then error_out 2 "please pass kmodname with --kmodname" -elif [ -z "${kernels_known_variants}" ] ; then +elif [[ -z "${kernels_known_variants}" ]] ; then error_out 2 "could not determine known variants" fi # go -if [ -n "${for_kernels}" ]; then +if [[ -n "${for_kernels}" ]]; then # this is easy: print_customrpmtemplate "${for_kernels}" -elif [ "${build_kernels}" = "akmod" ]; then +elif [[ "${build_kernels}" = "akmod" ]]; then # do only a akmod package print_akmodtemplate print_akmodmeta @@ -543,7 +543,7 @@ else # seems we are on out own to decide for which kernels to build # we need more sanity checks in this case - if [ -z "${repo}" ]; then + if [[ -z "${repo}" ]]; then error_out 2 "please provide repo name with --repo" elif ! command -v "buildsys-build-${repo}-kerneldevpkgs" > /dev/null 2>&1; then error_out 2 "buildsys-build-${repo}-kerneldevpkgs not found" @@ -553,14 +553,14 @@ else cmdoptions="--target ${target}" # filterfile to filter list of kernels? - if [ -n "${filterfile}" ] ; then + if [[ -n "${filterfile}" ]] ; then cmdoptions="${cmdoptions} --filterfile ${filterfile}" fi kernel_versions_to_build_for=$(buildsys-build-${repo}-kerneldevpkgs "--${build_kernels}" ${cmdoptions}) || error_out 2 "buildsys-build-${repo}-kerneldevpkgs failed: ${kernel_versions_to_build_for}" - if [ "${build_kernels}" = "current" ] && [ -z "${noakmod}" ]; then + if [[ "${build_kernels}" = "current" ]] && [[ -z "${noakmod}" ]]; then print_akmodtemplate fi |