]> granicus.if.org Git - spl/commitdiff
Add --buildroot option to kmod build
authorNathaniel Clark <Nathaniel.Clark@misrule.us>
Fri, 3 May 2013 12:23:20 +0000 (08:23 -0400)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 21 Jun 2013 22:46:16 +0000 (15:46 -0700)
This allows rpmbuild to define buildroot to point to where kernel
data is located.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #242

rpm/fedora/spl-kmod.spec.in
rpm/generic/spl-kmod.spec.in
scripts/kmodtool [changed mode: 0755->0644]

index f83ff60c14314e02b26c07c7e4ce5b9f05fe25a8..79e1f9d9f214aadc80dacc800ac93624da0b870c 100644 (file)
@@ -44,7 +44,7 @@ BuildRequires:  %{_bindir}/kmodtool
 # Kmodtool does its magic here.  A patched version of kmodtool is shipped
 # with the source rpm until kmod development packages are supported upstream.
 # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
-%{expand:%(sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) }
+%{expand:%(sh %{SOURCE10} --target %{_target_cpu} --repo %{repo} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) }
 
 
 %description
@@ -56,7 +56,7 @@ several interfaces provided by the Solaris kernel.
 %{?kmodtool_check}
 
 # Print kmodtool output for debugging purposes:
-sh %{SOURCE10} --target %{_target_cpu}  --repo %{repo} --kmodname %{name} --devel %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null
+sh %{SOURCE10} --target %{_target_cpu}  --repo %{repo} --kmodname %{name} --devel %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null
 
 %if %{with debug}
     %define debug --enable-debug
index 01918699ad650862bd4376126e4afe5e006e5ba8..1b0a6f1ecb4f29250d8343ec3ab6a3ce0a2c4b63 100644 (file)
@@ -44,7 +44,7 @@ Conflicts:      %{module}-dkms
 # Kmodtool does its magic here.  A patched version of kmodtool is shipped
 # because the latest versions may not be available for your distribution.
 # https://bugzilla.rpmfusion.org/show_bug.cgi?id=2714
-%{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) }
+%{expand:%(bash %{SOURCE10} --target %{_target_cpu} --kmodname %{name} --devel %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null) }
 
 
 %description
@@ -56,7 +56,7 @@ several interfaces provided by the Solaris kernel.
 %{?kmodtool_check}
 
 # Print kmodtool output for debugging purposes:
-bash %{SOURCE10} --target %{_target_cpu}  --kmodname %{name} --devel  %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null
+bash %{SOURCE10} --target %{_target_cpu}  --kmodname %{name} --devel  %{?prefix:--prefix "%{?prefix}"} %{?kernels:--for-kernels "%{?kernels}"} %{?kernelbuildroot:--buildroot "%{?kernelbuildroot}"} 2>/dev/null
 
 %if %{with debug}
     %define debug --enable-debug
old mode 100755 (executable)
new mode 100644 (file)
index 2fe014c..6b73780
@@ -37,6 +37,7 @@ kernel_versions_to_build_for=
 prefix=
 filterfile=
 target=
+buildroot=
 
 error_out()
 {
@@ -305,9 +306,9 @@ print_customrpmtemplate ()
 {
        for kernel in ${1}
        do
-               if      [[ -e "/usr/src/kernels/${kernel}" ]] ; then
+               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}___%{_usrsrc}/kernels/${kernel} "
+                       kernel_versions="${kernel_versions}${kernel}___${buildroot}%{_usrsrc}/kernels/${kernel} "
 
                        # parse kernel versions string and print template
                        local kernel_verrelarch=${kernel%%${kernels_known_variants}}
@@ -382,7 +383,6 @@ myprog_help ()
        echo "Usage: $(basename ${0}) [OPTIONS]"
        echo $'\n'"Creates a template to be used during kmod building"
        echo $'\n'"Available options:"
-       # FIXME echo " --datadir <dir>     -- look for our shared files in <dir>"
        echo " --filterfile <file>  -- filter the results with grep --file <file>"
        echo " --for-kernels <list> -- created templates only for these kernels"
        echo " --kmodname <file>    -- name of the kmod (required)"
@@ -390,6 +390,7 @@ myprog_help ()
        echo " --noakmod            -- no akmod package"
        echo " --repo <name>        -- use buildsys-build-<name>-kerneldevpkgs"
        echo " --target <arch>      -- target-arch (required)"
+       echo " --buildroot <dir>    -- Build root (place to look for build files)"
 }
 
 while [ "${1}" ] ; do
@@ -478,6 +479,11 @@ while [ "${1}" ] ; do
                        shift
                        build_kernels="current"
                        ;;
+               --buildroot)
+                       shift
+                       buildroot="${1}"
+                       shift
+                       ;;
                --help)
                        myprog_help
                        exit 0