This patch only affects rhel6 spec file. The rhel6 kmod spec file is renamed from openvswitch-kmod-rhel6.spec to kmod-openvswitch-rhel6.spec . This is to prepare for the next patches to support building multiple kernel versions in the main package. The rename makes the spec file consistent with the resulted kmod-openvswitch-<version>.rpm, which is the real package with kernel module files.
Signed-off-by: Martin Xu <[email protected]> Reviewed-by: Flavio Leitner <[email protected]> CC: Greg Rose <[email protected]> CC: Ben Pfaff <[email protected]> CC: Aaron Conole <[email protected]> --- v1->v2: fix improperly generated patch v2->v3: split from one patch into three patches v3->v4: updated commit message Documentation/intro/install/rhel.rst | 7 +-- poc/playbook-centos-builder.yml | 8 +-- rhel/.gitignore | 2 +- rhel/automake.mk | 6 +- rhel/kmod-openvswitch-rhel6.spec.in | 103 +++++++++++++++++++++++++++++++++++ rhel/openvswitch-kmod-rhel6.spec.in | 103 ----------------------------------- 6 files changed, 114 insertions(+), 115 deletions(-) create mode 100644 rhel/kmod-openvswitch-rhel6.spec.in delete mode 100644 rhel/openvswitch-kmod-rhel6.spec.in diff --git a/Documentation/intro/install/rhel.rst b/Documentation/intro/install/rhel.rst index f8b2606..6f062e8 100644 --- a/Documentation/intro/install/rhel.rst +++ b/Documentation/intro/install/rhel.rst @@ -197,17 +197,16 @@ the unit tests, run:: Kernel Module ~~~~~~~~~~~~~ -On RHEL 6, to build the Open vSwitch kernel module, copy -rhel/openvswitch-kmod.files into the RPM sources directory and run:: +On RHEL 6, to build the Open vSwitch kernel module run:: - $ rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec + $ rpmbuild -bb rhel/kmod-openvswitch-rhel6.spec You might have to specify a kernel version and/or variants, e.g.: $ rpmbuild -bb \ -D "kversion 2.6.32-131.6.1.el6.x86_64" \ -D "kflavors default debug kdump" \ - rhel/openvswitch-kmod-rhel6.spec + rhel/kmod-openvswitch-rhel6.spec This produces an "kmod-openvswitch" RPM for each kernel variant, in this example: "kmod-openvswitch", "kmod-openvswitch-debug", and diff --git a/poc/playbook-centos-builder.yml b/poc/playbook-centos-builder.yml index 71f1040..e902db7 100644 --- a/poc/playbook-centos-builder.yml +++ b/poc/playbook-centos-builder.yml @@ -41,13 +41,13 @@ chdir: /git/ovs/rhel with_items: - openvswitch.spec - - openvswitch-kmod-rhel6.spec + - kmod-openvswitch-rhel6.spec - name: Install build dependencies specified from spec files shell: echo "y" | yum-builddep /tmp/{{item}} with_items: - openvswitch.spec - - openvswitch-kmod-rhel6.spec + - kmod-openvswitch-rhel6.spec - name: Create rpm dev tree command: rpmdev-setuptree @@ -81,7 +81,7 @@ line: "Release: {{ ansible_local.builder.release }}" with_items: - openvswitch.spec - - openvswitch-kmod-rhel6.spec + - kmod-openvswitch-rhel6.spec - name: Build Open vSwitch user space rpms command: rpmbuild -bb --without check rhel/openvswitch.spec @@ -89,7 +89,7 @@ chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}" - name: Build Open vSwitch kmod rpms (only for currently loaded kernel) - command: rpmbuild -bb --without check rhel/openvswitch-kmod-rhel6.spec + command: rpmbuild -bb --without check rhel/kmod-openvswitch-rhel6.spec args: chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}" diff --git a/rhel/.gitignore b/rhel/.gitignore index e584a1e..a9c047f 100644 --- a/rhel/.gitignore +++ b/rhel/.gitignore @@ -1,6 +1,6 @@ openvswitch-dkms.spec openvswitch-kmod-rhel5.spec -openvswitch-kmod-rhel6.spec +kmod-openvswitch-rhel6.spec openvswitch-kmod-fedora.spec openvswitch.spec openvswitch-fedora.spec diff --git a/rhel/automake.mk b/rhel/automake.mk index 137ff4a..82a4508 100644 --- a/rhel/automake.mk +++ b/rhel/automake.mk @@ -15,8 +15,8 @@ EXTRA_DIST += \ rhel/etc_sysconfig_network-scripts_ifup-ovs \ rhel/openvswitch-dkms.spec \ rhel/openvswitch-dkms.spec.in \ - rhel/openvswitch-kmod-rhel6.spec \ - rhel/openvswitch-kmod-rhel6.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 \ @@ -48,7 +48,7 @@ update_rhel_spec = \ $(srcdir)/rhel/openvswitch-dkms.spec: rhel/openvswitch-dkms.spec.in $(top_builddir)/config.status $(update_rhel_spec) -$(srcdir)/rhel/openvswitch-kmod-rhel6.spec: rhel/openvswitch-kmod-rhel6.spec.in $(top_builddir)/config.status +$(srcdir)/rhel/kmod-openvswitch-rhel6.spec: rhel/kmod-openvswitch-rhel6.spec.in $(top_builddir)/config.status $(update_rhel_spec) $(srcdir)/rhel/openvswitch-kmod-fedora.spec: rhel/openvswitch-kmod-fedora.spec.in $(top_builddir)/config.status diff --git a/rhel/kmod-openvswitch-rhel6.spec.in b/rhel/kmod-openvswitch-rhel6.spec.in new file mode 100644 index 0000000..daa3dad --- /dev/null +++ b/rhel/kmod-openvswitch-rhel6.spec.in @@ -0,0 +1,103 @@ +# Spec file for Open vSwitch kernel modules on Red Hat Enterprise +# Linux 6. + +# Copyright (C) 2011, 2012 Nicira, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without warranty of any kind. + +%define oname openvswitch + +Name: %{oname}-kmod +Version: @VERSION@ +Release: 1%{?dist} +Summary: Open vSwitch kernel module + +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 + +# 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 + +%description +Open vSwitch Linux kernel module. + +%prep + +%setup -n %{oname}-%{version} + +%build +for flavor in %flavors_to_build; do + mkdir _$flavor + (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}") + %{__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 \ + 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; +do + modname="$(basename ${module})" + echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf + echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf +done +install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/ + +%post +# Ensure that modprobe will find our modules. +for k in $(cd /lib/modules && /bin/ls); do + [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" +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" + done | /sbin/weak-modules --add-modules +fi + +%postun +for k in $(cd /lib/modules && /bin/ls); do + [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" +done +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" + done | /sbin/weak-modules --remove-modules + fi +fi + +%files +%defattr(644,root,root) +/etc/depmod.d/%{oname}.conf + +%clean +rm -rf $RPM_BUILD_ROOT diff --git a/rhel/openvswitch-kmod-rhel6.spec.in b/rhel/openvswitch-kmod-rhel6.spec.in deleted file mode 100644 index daa3dad..0000000 --- a/rhel/openvswitch-kmod-rhel6.spec.in +++ /dev/null @@ -1,103 +0,0 @@ -# Spec file for Open vSwitch kernel modules on Red Hat Enterprise -# Linux 6. - -# Copyright (C) 2011, 2012 Nicira, Inc. -# -# Copying and distribution of this file, with or without modification, -# are permitted in any medium without royalty provided the copyright -# notice and this notice are preserved. This file is offered as-is, -# without warranty of any kind. - -%define oname openvswitch - -Name: %{oname}-kmod -Version: @VERSION@ -Release: 1%{?dist} -Summary: Open vSwitch kernel module - -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 - -# 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 - -%description -Open vSwitch Linux kernel module. - -%prep - -%setup -n %{oname}-%{version} - -%build -for flavor in %flavors_to_build; do - mkdir _$flavor - (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}") - %{__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 \ - 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; -do - modname="$(basename ${module})" - echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf - echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf -done -install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/ - -%post -# Ensure that modprobe will find our modules. -for k in $(cd /lib/modules && /bin/ls); do - [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" -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" - done | /sbin/weak-modules --add-modules -fi - -%postun -for k in $(cd /lib/modules && /bin/ls); do - [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k" -done -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" - done | /sbin/weak-modules --remove-modules - fi -fi - -%files -%defattr(644,root,root) -/etc/depmod.d/%{oname}.conf - -%clean -rm -rf $RPM_BUILD_ROOT -- 1.8.3.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
