]>
Commit | Line | Data |
---|---|---|
d8fe0a6a RS |
1 | # Spec file for Open vSwitch. |
2 | ||
22c33c30 | 3 | # Copyright (C) 2009, 2010, 2015, 2018 Nicira Networks, Inc. |
d8fe0a6a RS |
4 | # |
5 | # Copying and distribution of this file, with or without modification, | |
6 | # are permitted in any medium without royalty provided the copyright | |
7 | # notice and this notice are preserved. This file is offered as-is, | |
8 | # without warranty of any kind. | |
9 | ||
8c7c9dd2 RB |
10 | %global debug_package %{nil} |
11 | ||
22c33c30 MX |
12 | # Use the kversion macro such as |
13 | # RPMBUILD_OPT='-D "kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64"' | |
14 | # to build package for mulitple kernel versions in the same package | |
391b52f3 YHW |
15 | # This only works for the following kernels. |
16 | # - 3.10.0 major revision 327 (RHEL 7.2) | |
17 | # - 3.10.0 major revision 693 (RHEL 7.4) | |
18 | # - 3.10.0 major revision 957 (RHEL 7.6) | |
19 | # - 3.10.0 major revision 1062 (RHEL 7.7) | |
fecb2805 WT |
20 | # - 3.10.0 major revision 1101 (RHEL 7.8 Beta) |
21 | # - 3.10.0 major revision 1127 (RHEL 7.8 GA) | |
22c33c30 | 22 | # By default, build against the current running kernel version |
d8fe0a6a RS |
23 | #%define kernel 3.1.5-1.fc16.x86_64 |
24 | #define kernel %{kernel_source} | |
25 | %{?kversion:%define kernel %kversion} | |
26 | ||
27 | Name: openvswitch-kmod | |
28 | Summary: Open vSwitch Kernel Modules | |
29 | Group: System Environment/Daemons | |
30 | URL: http://www.openvswitch.org/ | |
31 | Vendor: OpenSource Security Ralf Spenneberg <ralf@os-s.net> | |
32 | Version: @VERSION@ | |
33 | ||
34 | # The entire source code is ASL 2.0 except datapath/ which is GPLv2 | |
35 | License: GPLv2 | |
36 | Release: 1%{?dist} | |
37 | Source: openvswitch-%{version}.tar.gz | |
38 | #Source1: openvswitch-init | |
39 | Buildroot: /tmp/openvswitch-xen-rpm | |
22c33c30 | 40 | Provides: kmod-openvswitch |
9fe4b2fb | 41 | Obsoletes: kmod-openvswitch < %{version}-%{release} |
d8fe0a6a RS |
42 | |
43 | %description | |
44 | Open vSwitch provides standard network bridging functions augmented with | |
45 | support for the OpenFlow protocol for remote per-flow control of | |
46 | traffic. This package contains the kernel modules. | |
47 | ||
48 | %prep | |
49 | %setup -q -n openvswitch-%{version} | |
50 | ||
51 | %build | |
22c33c30 MX |
52 | for kv in %{kversion}; do |
53 | mkdir -p _$kv | |
54 | (cd _$kv && /bin/cp -f ../configure . && %configure --srcdir=.. \ | |
eac9f266 | 55 | --with-linux=/lib/modules/${kv}/build --enable-ssl %{_ovs_config_extra_flags}) |
22c33c30 MX |
56 | make %{_smp_mflags} -C _$kv/datapath/linux |
57 | done | |
d8fe0a6a RS |
58 | |
59 | %install | |
22c33c30 | 60 | export INSTALL_MOD_DIR=extra/openvswitch |
d8fe0a6a | 61 | rm -rf $RPM_BUILD_ROOT |
22c33c30 MX |
62 | for kv in %{kversion}; do |
63 | make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C _$kv/datapath/linux modules_install | |
64 | done | |
8c7c9dd2 | 65 | mkdir -p $RPM_BUILD_ROOT/etc/depmod.d |
22c33c30 MX |
66 | for kv in %{kversion}; do |
67 | for module in $RPM_BUILD_ROOT/lib/modules/${kv}/extra/openvswitch/*.ko | |
68 | do | |
69 | modname="$(basename ${module})" | |
70 | grep -qsPo "^\s*override ${modname%.ko} \* extra\/openvwitch" \ | |
71 | $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \ | |
72 | echo "override ${modname%.ko} * extra/openvswitch" >> \ | |
73 | $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf | |
74 | grep -qsPo "^\s*override ${modname%.ko} \* weak-updates\/openvwitch" \ | |
75 | $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \ | |
76 | echo "override ${modname%.ko} * weak-updates/openvswitch" >> \ | |
77 | $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf | |
78 | done | |
8c7c9dd2 | 79 | done |
22c33c30 MX |
80 | install -d -m 0755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts |
81 | install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \ | |
8821b212 | 82 | $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh |
d8fe0a6a RS |
83 | |
84 | %clean | |
85 | rm -rf $RPM_BUILD_ROOT | |
86 | ||
d8fe0a6a | 87 | %post |
22c33c30 | 88 | current_kernel=$(uname -r) |
c3570519 MX |
89 | IFS='.\|-' read mainline_major mainline_minor mainline_patch major_rev \ |
90 | minor_rev _extra <<<"${current_kernel}" | |
91 | # echo mainline_major=$mainline_major mainline_minor=$mainline_minor \ | |
92 | # mainline_patch=$mainline_patch major_rev=$major_rev minor_rev=$minor_rev | |
402efbe4 YHW |
93 | if grep -qs "suse" /etc/os-release; then |
94 | # For SLES or OpenSUSE | |
95 | if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then | |
96 | %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh | |
97 | fi | |
4afd1d87 AV |
98 | elif [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ] && |
99 | { [ "$major_rev" = "327" ] || [ "$major_rev" = "693" ] || \ | |
391b52f3 | 100 | [ "$major_rev" = "957" ] || [ "$major_rev" == "1062" ] || \ |
fecb2805 | 101 | [ "$major_rev" = "1101" ] || [ "$major_rev" = "1127" ] ; }; then |
391b52f3 | 102 | # For RHEL 7.2, 7.4, 7.6, 7.7, and 7.8 |
4afd1d87 AV |
103 | if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then |
104 | %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh | |
22c33c30 MX |
105 | fi |
106 | else | |
107 | # Ensure that modprobe will find our modules. | |
108 | for k in $(cd /lib/modules && /bin/ls); do | |
56bfa517 | 109 | [ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k" |
22c33c30 | 110 | done |
c49889cf GR |
111 | if [ -x "/sbin/weak-modules" ]; then |
112 | for m in openvswitch vport-gre vport-stt vport-geneve \ | |
113 | vport-lisp vport-vxlan; do | |
22c33c30 MX |
114 | echo "/lib/modules/%{kernel}/extra/openvswitch/$m.ko" |
115 | done | /sbin/weak-modules --add-modules | |
c49889cf GR |
116 | fi |
117 | fi | |
d8fe0a6a | 118 | |
22c33c30 MX |
119 | %postun |
120 | if [ "$1" = 0 ]; then # Erase, not upgrade | |
121 | for kname in `ls -d /lib/modules/*` | |
122 | do | |
123 | rm -rf $kname/weak-updates/openvswitch | |
124 | done | |
125 | fi | |
126 | /sbin/depmod -a | |
127 | ||
26b3641c GR |
128 | %posttrans |
129 | # The upgrade path from the older kmod-openvswitch SysV package to | |
130 | # the newer openvswitch-kmod systemd package will end up removing | |
131 | # the symlinks to the weak-updates/openvswitch drivers because of | |
132 | # it's %postun section. We add this section to handle that case. | |
133 | if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then | |
134 | %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh | |
135 | fi | |
136 | ||
d8fe0a6a | 137 | %files |
8c7c9dd2 | 138 | %defattr(0644,root,root) |
22c33c30 | 139 | /lib/modules/*/extra/openvswitch/*.ko |
8c7c9dd2 | 140 | /etc/depmod.d/kmod-openvswitch.conf |
22c33c30 | 141 | %exclude /lib/modules/*/modules.* |
8821b212 | 142 | %attr(755,root,root) %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh |
d8fe0a6a RS |
143 | |
144 | %changelog | |
145 | * Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com> | |
146 | - Updated for F15 | |
147 | * Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net> | |
148 | - First build on F14 |