[ovs-dev] [PATCH v3 2/3] rhel: remove openvswitch-kmod package from build, rhel6

Flavio Leitner fbl at redhat.com
Thu Jul 12 19:23:36 UTC 2018


On Thu, Jul 12, 2018 at 10:35:55AM -0700, Martin Xu wrote:
> This patch only affects rhel6 spec file.
> 
> Previouly the kernel_module_package macro is used to generate spec file
> template to build kmod-openvswitch RPM. The main package only contains
> the openvswitch.conf for depmod. The macro is now removed. Everything is
> built in the main package instead. This effectively removes the redudant
> openvswitch-kmod package from the build.
> 
> Signed-off-by: Martin Xu <martinxu9.ovs at gmail.com>
> CC: Greg Rose <gvrose8192 at gmail.com>
> CC: Ben Pfaff <blp at ovn.org>
> CC: Flavio Leitner <fbl at redhat.com>
> CC: Aaron Conole <aconole at redhat.com>
> ---
>  rhel/automake.mk                    |  1 -
>  rhel/kmod-openvswitch-rhel6.spec.in | 32 ++++++++++++++++----------------
>  rhel/openvswitch-kmod.files         |  3 ---
>  3 files changed, 16 insertions(+), 20 deletions(-)
>  delete mode 100644 rhel/openvswitch-kmod.files
> 
> diff --git a/rhel/automake.mk b/rhel/automake.mk
> index 82a450831..180419427 100644
> --- a/rhel/automake.mk
> +++ b/rhel/automake.mk
> @@ -17,7 +17,6 @@ EXTRA_DIST += \
>  	rhel/openvswitch-dkms.spec.in \
>  	rhel/kmod-openvswitch-rhel6.spec \
>  	rhel/kmod-openvswitch-rhel6.spec.in \
> -	rhel/openvswitch-kmod.files \
>  	rhel/openvswitch-kmod-fedora.spec \
>  	rhel/openvswitch-kmod-fedora.spec.in \
>  	rhel/openvswitch.spec \
> diff --git a/rhel/kmod-openvswitch-rhel6.spec.in b/rhel/kmod-openvswitch-rhel6.spec.in
> index daa3dade1..7b9424968 100644
> --- a/rhel/kmod-openvswitch-rhel6.spec.in
> +++ b/rhel/kmod-openvswitch-rhel6.spec.in
> @@ -1,7 +1,7 @@
>  # Spec file for Open vSwitch kernel modules on Red Hat Enterprise
>  # Linux 6.
>  
> -# Copyright (C) 2011, 2012 Nicira, Inc.
> +# Copyright (C) 2011, 2012, 2018 Nicira, Inc.
>  #
>  # Copying and distribution of this file, with or without modification,
>  # are permitted in any medium without royalty provided the copyright
> @@ -10,7 +10,7 @@
>  
>  %define oname openvswitch
>  
> -Name:           %{oname}-kmod
> +Name:           kmod-%{oname}
>  Version:        @VERSION@
>  Release:        1%{?dist}
>  Summary:        Open vSwitch kernel module
> @@ -19,23 +19,22 @@ Group:          System/Kernel
>  License:        GPLv2
>  URL:            http://openvswitch.org/
>  Source0:        %{oname}-%{version}.tar.gz
> -Source1:        %{oname}-kmod.files
>  BuildRoot:      %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
> -BuildRequires:  %kernel_module_package_buildreqs
>  
>  # Without this we get an empty openvswitch-debuginfo package (whose name
>  # conflicts with the openvswitch-debuginfo package for OVS userspace).
>  %undefine _enable_debug_packages
>  
> +%define kernel_source_extended() /usr/src/kernels/%{2}$([ %{1} = default ] || echo ".%{1}")
> +
> +# By default, build against the latest installed kernel-devel
> +%{!?kversion:%global kversion %(rpm -q --qf '%{VERSION}-%{RELEASE}.%{ARCH}' `rpm -qa | egrep "^kernel(-rt|-aarch64)?-devel" | /usr/lib/rpm/redhat/rpmsort -r | head -n 1` | head -n 1)}

I am afraid that '%{VERSION}-%{RELEASE}.%{ARCH}' will be expanded by
rpm when building the package to the openvswitch's one in this
package, so you end up with:
rpm -q --qf '2.9.0-1.xxx.x86_64' $kernel_pkg_name

otherwise LGTM.
fbl

>  # Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
>  # for specified kernel version.
> -%{?kversion:%define kernel_version %kversion}
>  
>  # Use -D 'kflavors default debug kdump' to build packages for
>  # specified kernel variants.
> -%{!?kflavors:%define kflavors default}
> -
> -%kernel_module_package -n %{oname} -f %{SOURCE1} %kflavors
> +%{!?kflavors:%global kflavors default}
>  
>  %description
>  Open vSwitch Linux kernel module.
> @@ -45,24 +44,24 @@ Open vSwitch Linux kernel module.
>  %setup -n %{oname}-%{version}
>  
>  %build
> -for flavor in %flavors_to_build; do
> +for flavor in %{kflavors} ; do
>          mkdir _$flavor
> -        (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}")
> +        (cd _$flavor && ../configure --with-linux="%{kernel_source_extended $flavor %{kversion}}")
>          %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
>  done
>  
>  %install
>  export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
>  export INSTALL_MOD_DIR=extra/%{oname}
> -for flavor in %flavors_to_build ; do
> -         make -C %{kernel_source $flavor} modules_install \
> +for flavor in %{kflavors} ; do
> +         make -C %{kernel_source_extended $flavor %{kversion}} modules_install \
>                   M="`pwd`"/_$flavor/datapath/linux
>  
>           # Cleanup unnecessary kernel-generated module dependency files.
>           find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
>  done
>  install -d %{buildroot}%{_sysconfdir}/depmod.d/
> -for module in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_DIR/*.ko;
> +for module in %{buildroot}/lib/modules/%{kversion}/$INSTALL_MOD_DIR/*.ko;
>  do
>      modname="$(basename ${module})"
>      echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
> @@ -78,7 +77,7 @@ done
>  if [ -x "/sbin/weak-modules" ]; then
>      for m in openvswitch vport-gre vport-stt vport-geneve \
>               vport-lisp vport-vxlan; do
> -        echo "/lib/modules/%{kernel}/extra/$m.ko"
> +        echo "/lib/modules/%{kversion}/extra/$m.ko"
>      done | /sbin/weak-modules --add-modules
>  fi
>  
> @@ -90,14 +89,15 @@ if [ "$1" = 0 ]; then  # Erase, not upgrade
>      if [ -x "/sbin/weak-modules" ]; then
>          for m in openvswitch vport-gre vport-stt vport-geneve \
>                   vport-lisp vport-vxlan; do
> -        echo "/lib/modules/%{kernel}/extra/$m.ko"
> +        echo "/lib/modules/%{kversion}/extra/$m.ko"
>      done | /sbin/weak-modules --remove-modules
>      fi
>  fi
>  
>  %files
> -%defattr(644,root,root)
> +%defattr(644,root,root,755)
>  /etc/depmod.d/%{oname}.conf
> +/lib/modules/
>  
>  %clean
>  rm -rf $RPM_BUILD_ROOT
> diff --git a/rhel/openvswitch-kmod.files b/rhel/openvswitch-kmod.files
> deleted file mode 100644
> index 357c2e8b7..000000000
> --- a/rhel/openvswitch-kmod.files
> +++ /dev/null
> @@ -1,3 +0,0 @@
> -%defattr(644,root,root,755)
> -/lib/modules/%2-%1
> -/etc/depmod.d/openvswitch.conf
> -- 
> 2.15.2 (Apple Git-101.1)
> 

-- 
Flavio


More information about the dev mailing list