Hi Leif,

Leif Madsen <[email protected]> writes:

> Update the kernel module spec file to better reflect how I'm
> locally building the kmod RPM in mock and pushing it to COPR.
>
> These changes also better align with RPM linting and uses the
> preferred macros for referring to the build root.
>
> Adds in some Requires and BuildRequires lines that define the
> RPM dependencies needed to build this RPM.
>
> Signed-off-by: Leif Madsen <[email protected]>
> ---

So, I guess this spec file is used by COPR based distribution.  I don't
recall that we even use it in Fedora.

>  rhel/openvswitch-kmod-fedora.spec.in | 30 +++++++++++++++++-------------
>  1 file changed, 17 insertions(+), 13 deletions(-)
>
> diff --git a/rhel/openvswitch-kmod-fedora.spec.in 
> b/rhel/openvswitch-kmod-fedora.spec.in
> index 93adb03..b9e0825 100644
> --- a/rhel/openvswitch-kmod-fedora.spec.in
> +++ b/rhel/openvswitch-kmod-fedora.spec.in
> @@ -23,9 +23,13 @@ Version: @VERSION@
>  # The entire source code is ASL 2.0 except datapath/ which is GPLv2
>  License: GPLv2
>  Release: 1%{?dist}
> -Source: openvswitch-%{version}.tar.gz
> -#Source1: openvswitch-init
> -Buildroot: /tmp/openvswitch-xen-rpm
> +Source0: openvswitch-%{version}.tar.gz
> +
> +Requires:           kernel-uname-r = %{kernel}.%{_arch}
> +BuildRequires:      openssl-devel kmod libcap-ng-devel python2-devel 
> python-six
> +BuildRequires:      kernel-devel-uname-r = %{kernel}.%{_arch}
> +Requires(post):     /sbin/depmod
> +Requires(postun):   /sbin/depmod
>  
>  %description
>  Open vSwitch provides standard network bridging functions augmented with
> @@ -36,34 +40,34 @@ traffic. This package contains the kernel modules.
>  %setup -q -n openvswitch-%{version}
>  
>  %build
> -%configure --with-linux=/lib/modules/%{kernel}/build --enable-ssl
> +%configure --with-linux=%{_usrsrc}/kernels/%{kernel}.%{_arch} --enable-ssl
>  make %{_smp_mflags} -C datapath/linux
>  
>  %install
> -rm -rf $RPM_BUILD_ROOT
> -make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C datapath/linux modules_install
> -mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
> -for module in $RPM_BUILD_ROOT/lib/modules/%{kernel}/extra/*.ko
> +rm -rf %{buildroot}
> +make INSTALL_MOD_PATH=%{buildroot} -C datapath/linux modules_install
> +mkdir -p %{buildroot}/etc/depmod.d
> +for module in %{buildroot}/lib/modules/%{kernel}.%{_arch}/extra/*.ko
>  do
>      modname="$(basename ${module})"
>      echo "override ${modname%.ko} * extra" >> \
> -        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
> +        %{buildroot}/etc/depmod.d/kmod-openvswitch.conf
>      echo "override ${modname%.ko} * weak-updates" >> \
> -        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
> +        %{buildroot}/etc/depmod.d/kmod-openvswitch.conf
>  done
>  
>  %clean
> -rm -rf $RPM_BUILD_ROOT
> +rm -rf %{buildroot}
>  
>  %post
>  # Ensure that modprobe will find our modules.
> -depmod %{kernel}
> +depmod %{kernel}.%{_arch}

Given this ^^^

>  %files
>  %defattr(0644,root,root)
>  /lib/modules/%{kernel}/extra/*.ko
> +/lib/modules/%{kernel}/modules.*
>  /etc/depmod.d/kmod-openvswitch.conf
> -%exclude /lib/modules/%{kernel}/modules.*

Why include the modules.* files here.  Won't that break existing
modules?

That brings up a different question, actually.  Should this also have
a postun which reruns depmod to clear out the dependency information in
/lib/modules/%{kernel}/modules.*?

>  %changelog
>  * Wed Sep 21 2011 Kyle Mestery <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to