diff mbox

[ovs-dev] rhel: Make openvswitch-kmod-fedora.spec build.

Message ID 20160129171205.3896135a@x240.home
State Not Applicable
Headers show

Commit Message

Flavio Leitner Jan. 29, 2016, 7:12 p.m. UTC
On Thu, 28 Jan 2016 15:46:03 -0500
Russell Bryant <russell@ovn.org> wrote:

> I tried building this package on Fedora 23 and it failed for a couple
> of different reasons.
> 
> This package tried to install modules without specifying the rpm build
> root as an install prefix.  The result was just attempting to install
> the modules on the system, which luckily failed since I wasn't running
> rpmbuild as root.
> 
> The package also then tried to manually install the modules into the
> rpm build root, which is unnecessary once modules_install is pointed
> to the right place.
> 
> Finally, the package build failed with a completely unhelpful error
> which turned out to be because it didn't know how to generate
> a debuginfo pacakge.  I turned off the debug package for now.  At
> least it builds now, which is an improvement.

I tried this patch but it didn't work for me.  The module loaded is the
one provided by the kernel package, not from the kmod rpm package. This
can be fixed using depmod override config line.

It also packages unneeded files because those modules.* are generated by
depmod every time the package is installed (%post).

So, I correct those things and got it running:

# dmesg -c &> /dev/null; rmmod openvswitch; modprobe openvswitch ; dmesg
[ 2825.326855] openvswitch: Open vSwitch switching datapath 2.5.90
[ 2825.329217] openvswitch: LISP tunneling driver
[ 2825.329790] openvswitch: STT tunneling driver

Here is the incremental patch, feel free to merge with yours.





> 
> Signed-off-by: Russell Bryant <russell@ovn.org>
> ---
>  rhel/openvswitch-kmod-fedora.spec.in | 12 +++++-------
>  1 file changed, 5 insertions(+), 7 deletions(-)
> 
> diff --git a/rhel/openvswitch-kmod-fedora.spec.in
> b/rhel/openvswitch-kmod-fedora.spec.in index ecea16c..62e5ce7 100644
> --- a/rhel/openvswitch-kmod-fedora.spec.in
> +++ b/rhel/openvswitch-kmod-fedora.spec.in
> @@ -7,6 +7,8 @@
>  # notice and this notice are preserved.  This file is offered as-is,
>  # without warranty of any kind.
>  
> +%global debug_package %{nil}
> +
>  #%define kernel 3.1.5-1.fc16.x86_64
>  #define kernel %{kernel_source}
>  %{?kversion:%define kernel %kversion}
> @@ -39,23 +41,19 @@ make %{_smp_mflags} -C datapath/linux
>  
>  %install
>  rm -rf $RPM_BUILD_ROOT
> -make -C datapath/linux modules_install
> -
> -install -d -m 755
> $RPM_BUILD_ROOT/lib/modules/%{kernel}/kernel/extra/openvswitch -find
> datapath/linux -name *.ko -exec install -m 755  \{\}
> $RPM_BUILD_ROOT/lib/modules/%{kernel}/kernel/extra/openvswitch \;
> +make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C datapath/linux
> modules_install %clean rm -rf $RPM_BUILD_ROOT
>  
> -%preun
> -
>  %post
>  # Ensure that modprobe will find our modules.
>  depmod %{kernel}
>  
>  %files
>  %defattr(-,root,root)
> -/lib/modules/%{kernel}/kernel/extra/openvswitch/*.ko
> +/lib/modules/%{kernel}/extra/*.ko
> +/lib/modules/%{kernel}/*
>  
>  %changelog
>  * Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>

Comments

Gurucharan Shetty Jan. 29, 2016, 7:22 p.m. UTC | #1
On 29 January 2016 at 11:12, Flavio Leitner <fbl@redhat.com> wrote:

> On Thu, 28 Jan 2016 15:46:03 -0500
> Russell Bryant <russell@ovn.org> wrote:
>
> > I tried building this package on Fedora 23 and it failed for a couple
> > of different reasons.
> >
> > This package tried to install modules without specifying the rpm build
> > root as an install prefix.  The result was just attempting to install
> > the modules on the system, which luckily failed since I wasn't running
> > rpmbuild as root.
> >
> > The package also then tried to manually install the modules into the
> > rpm build root, which is unnecessary once modules_install is pointed
> > to the right place.
> >
> > Finally, the package build failed with a completely unhelpful error
> > which turned out to be because it didn't know how to generate
> > a debuginfo pacakge.  I turned off the debug package for now.  At
> > least it builds now, which is an improvement.
>
> I tried this patch but it didn't work for me.  The module loaded is the
> one provided by the kernel package, not from the kmod rpm package. This
> can be fixed using depmod override config line.
>

Right. I had mentioned it as part of the previous comment. But since this
one fixes a broken current behavior, I acked it anyway.


>
> It also packages unneeded files because those modules.* are generated by
> depmod every time the package is installed (%post).
>
> So, I correct those things and got it running:
>
> # dmesg -c &> /dev/null; rmmod openvswitch; modprobe openvswitch ; dmesg
> [ 2825.326855] openvswitch: Open vSwitch switching datapath 2.5.90
> [ 2825.329217] openvswitch: LISP tunneling driver
> [ 2825.329790] openvswitch: STT tunneling driver
>
> Here is the incremental patch, feel free to merge with yours.
>
> diff --git a/rhel/openvswitch-kmod-fedora.spec.in b/rhel/
> openvswitch-kmod-fedora.spec.in
> index 62e5ce7..ea89d15 100644
> --- a/rhel/openvswitch-kmod-fedora.spec.in
> +++ b/rhel/openvswitch-kmod-fedora.spec.in
> @@ -36,12 +36,19 @@ traffic. This package contains the kernel modules.
>  %setup -q -n openvswitch-%{version}
>
>  %build
> -./configure --prefix=/usr --sysconfdir=/etc
> --localstatedir=%{_localstatedir} --with-linux=/lib/modules/%{kernel}/build
> --enable-ssl
> +%configure --with-linux=/lib/modules/%{kernel}/build --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
> +do
> +    modname="$(basename ${module})"
> +    echo "override ${modname%.ko} * extra" >> \
> +        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
> +done
>
>  %clean
>  rm -rf $RPM_BUILD_ROOT
> @@ -51,9 +58,10 @@ rm -rf $RPM_BUILD_ROOT
>  depmod %{kernel}
>
>  %files
> -%defattr(-,root,root)
> +%defattr(0644,root,root)
>  /lib/modules/%{kernel}/extra/*.ko
> -/lib/modules/%{kernel}/*
> +/etc/depmod.d/kmod-openvswitch.conf
> +%exclude /lib/modules/%{kernel}/modules.*
>
>  %changelog
>  * Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>
>
>
>
>
> >
> > Signed-off-by: Russell Bryant <russell@ovn.org>
> > ---
> >  rhel/openvswitch-kmod-fedora.spec.in | 12 +++++-------
> >  1 file changed, 5 insertions(+), 7 deletions(-)
> >
> > diff --git a/rhel/openvswitch-kmod-fedora.spec.in
> > b/rhel/openvswitch-kmod-fedora.spec.in index ecea16c..62e5ce7 100644
> > --- a/rhel/openvswitch-kmod-fedora.spec.in
> > +++ b/rhel/openvswitch-kmod-fedora.spec.in
> > @@ -7,6 +7,8 @@
> >  # notice and this notice are preserved.  This file is offered as-is,
> >  # without warranty of any kind.
> >
> > +%global debug_package %{nil}
> > +
> >  #%define kernel 3.1.5-1.fc16.x86_64
> >  #define kernel %{kernel_source}
> >  %{?kversion:%define kernel %kversion}
> > @@ -39,23 +41,19 @@ make %{_smp_mflags} -C datapath/linux
> >
> >  %install
> >  rm -rf $RPM_BUILD_ROOT
> > -make -C datapath/linux modules_install
> > -
> > -install -d -m 755
> > $RPM_BUILD_ROOT/lib/modules/%{kernel}/kernel/extra/openvswitch -find
> > datapath/linux -name *.ko -exec install -m 755  \{\}
> > $RPM_BUILD_ROOT/lib/modules/%{kernel}/kernel/extra/openvswitch \;
> > +make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C datapath/linux
> > modules_install %clean rm -rf $RPM_BUILD_ROOT
> >
> > -%preun
> > -
> >  %post
> >  # Ensure that modprobe will find our modules.
> >  depmod %{kernel}
> >
> >  %files
> >  %defattr(-,root,root)
> > -/lib/modules/%{kernel}/kernel/extra/openvswitch/*.ko
> > +/lib/modules/%{kernel}/extra/*.ko
> > +/lib/modules/%{kernel}/*
> >
> >  %changelog
> >  * Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>
>
>
>
> --
> fbl
> _______________________________________________
> dev mailing list
> dev@openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
diff mbox

Patch

diff --git a/rhel/openvswitch-kmod-fedora.spec.in b/rhel/openvswitch-kmod-fedora.spec.in
index 62e5ce7..ea89d15 100644
--- a/rhel/openvswitch-kmod-fedora.spec.in
+++ b/rhel/openvswitch-kmod-fedora.spec.in
@@ -36,12 +36,19 @@  traffic. This package contains the kernel modules.
 %setup -q -n openvswitch-%{version}
 
 %build
-./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} --with-linux=/lib/modules/%{kernel}/build --enable-ssl
+%configure --with-linux=/lib/modules/%{kernel}/build --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
+do
+    modname="$(basename ${module})"
+    echo "override ${modname%.ko} * extra" >> \
+        $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
+done
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -51,9 +58,10 @@  rm -rf $RPM_BUILD_ROOT
 depmod %{kernel}
 
 %files
-%defattr(-,root,root)
+%defattr(0644,root,root)
 /lib/modules/%{kernel}/extra/*.ko
-/lib/modules/%{kernel}/*
+/etc/depmod.d/kmod-openvswitch.conf
+%exclude /lib/modules/%{kernel}/modules.*
 
 %changelog
 * Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>