X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=rhel%2Fopenvswitch-fedora.spec.in;h=34d8712722d09d8bffb33ad10ad4e7d495e7e1ef;hb=cfc6963c960f55151fa80784b4d4fd45c4195758;hp=30fe43924bd94c46c59bf5c0b947c3bdd118743c;hpb=329cf2328c4eaae3164181ed5afaadd26289d8ca;p=cascardo%2Fovs.git diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in index 30fe43924..34d871272 100644 --- a/rhel/openvswitch-fedora.spec.in +++ b/rhel/openvswitch-fedora.spec.in @@ -1,6 +1,6 @@ # Spec file for Open vSwitch. -# Copyright (C) 2009, 2010, 2013, 2014 Nicira Networks, Inc. +# Copyright (C) 2009, 2010, 2013, 2014, 2015, 2016 Nicira Networks, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -13,72 +13,174 @@ #%define kernel 2.6.40.4-5.fc15.x86_64 +# If libcap-ng isn't available and there is no need for running OVS +# as regular user, specify the '--without libcapng' +%bcond_without libcapng +# To enable DPDK support, specify '--with dpdk' when building +%bcond_with dpdk + +# Enable PIE, bz#955181 +%global _hardened_build 1 + +# some distros (e.g: RHEL-7) don't define _rundir macro yet +# Fedora 15 onwards uses /run as _rundir +%if 0%{!?_rundir:1} +%define _rundir /run +%endif + Name: openvswitch Summary: Open vSwitch Group: System Environment/Daemons URL: http://www.openvswitch.org/ Version: @VERSION@ -# The entire source code is ASL 2.0 except datapath/ which is GPLv2 -License: ASL 2.0 +# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the +# lib/sflow*.[ch] files are SISSL +# datapath/ is GPLv2 (although not built into any of the binary packages) +License: ASL 2.0 and LGPLv2+ and SISSL Release: 1%{?dist} -Source: openvswitch-%{version}.tar.gz -#Source1: openvswitch-init -Buildroot: /tmp/openvswitch-fedora-rpm +Source: http://openvswitch.org/releases/%{name}-%{version}.tar.gz -Requires(post): systemd-units +BuildRequires: autoconf automake libtool +BuildRequires: systemd-units openssl openssl-devel +BuildRequires: python python-twisted-core python-zope-interface PyQt4 python-six +BuildRequires: desktop-file-utils +BuildRequires: groff graphviz +# make check dependencies +BuildRequires: procps-ng +%if %{with libcapng} +BuildRequires: libcap-ng libcap-ng-devel +%endif +%if %{with dpdk} +BuildRequires: dpdk-devel >= 2.2.0 +Provides: %{name}-dpdk = %{version}-%{release} +%endif + +Requires: openssl iproute module-init-tools +#Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3 +#Requires: kernel >= 3.15.0-0 + +Requires(post): systemd-units Requires(preun): systemd-units Requires(postun): systemd-units +Obsoletes: openvswitch-controller <= 0:2.1.0-1 %bcond_without check %description -Open vSwitch provides standard network bridging functions augmented with +Open vSwitch provides standard network bridging functions and support for the OpenFlow protocol for remote per-flow control of traffic. +%package -n python-openvswitch +Summary: Open vSwitch python bindings +License: ASL 2.0 +BuildArch: noarch +Requires: python +Requires: python-six + +%description -n python-openvswitch +Python bindings for the Open vSwitch database + +%package test +Summary: Open vSwitch testing utilities +License: ASL 2.0 +BuildArch: noarch +Requires: python-openvswitch = %{version}-%{release} +Requires: python python-twisted-core python-twisted-web + +%description test +Utilities that are useful to diagnose performance and connectivity +issues in Open vSwitch setup. + +%package devel +Summary: Open vSwitch OpenFlow development package (library, headers) +License: ASL 2.0 +Provides: openvswitch-static = %{version}-%{release} + +%description devel +This provides static library, libopenswitch.a and the openvswitch header +files needed to build an external application. + +%package ovn +Summary: Open vSwitch - Open Virtual Network support +License: ASL 2.0 +Requires: openvswitch + +%description ovn +OVN, the Open Virtual Network, is a system to support virtual network +abstraction. OVN complements the existing capabilities of OVS to add +native support for virtual network abstractions, such as virtual L2 and L3 +overlays and security groups. + + %prep -%setup -q -n openvswitch-%{version} +%setup -q %build -./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} --enable-ssl -make %{_smp_mflags} +%configure \ +%if %{with libcapng} + --enable-libcapng \ +%else + --disable-libcapng \ +%endif +%if %{with dpdk} + --with-dpdk=$(dirname %{_datadir}/dpdk/*/.config) \ +%endif + --enable-ssl \ + --with-pkidir=%{_sharedstatedir}/openvswitch/pki + +make %{?_smp_mflags} %install rm -rf $RPM_BUILD_ROOT make install DESTDIR=$RPM_BUILD_ROOT -install -d -m 755 $RPM_BUILD_ROOT/etc -install -d -m 755 $RPM_BUILD_ROOT/etc/openvswitch -install -p -D -m 0644 rhel/usr_lib_systemd_system_openvswitch.service \ - $RPM_BUILD_ROOT%{_unitdir}/openvswitch.service -install -p -D -m 0644 rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \ - $RPM_BUILD_ROOT%{_unitdir}/openvswitch-nonetwork.service -install -m 755 rhel/etc_init.d_openvswitch \ + +install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch + +install -p -D -m 0644 \ + rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ + $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch +for service in openvswitch openvswitch-nonetwork \ + ovn-controller ovn-controller-vtep ovn-northd; do + install -p -D -m 0644 \ + rhel/usr_lib_systemd_system_${service}.service \ + $RPM_BUILD_ROOT%{_unitdir}/${service}.service +done +install -m 0755 rhel/etc_init.d_openvswitch \ $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init -install -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig -install -d -m 755 $RPM_BUILD_ROOT/etc/logrotate.d -install -m 755 rhel/etc_logrotate.d_openvswitch \ - $RPM_BUILD_ROOT/etc/logrotate.d/openvswitch -install -d -m 755 $RPM_BUILD_ROOT/etc/profile.d -install -m 644 vswitchd/vswitch.ovsschema \ - $RPM_BUILD_ROOT/usr/share/openvswitch/vswitch.ovsschema -install -d -m 755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts -install -d -m 0755 $RPM_BUILD_ROOT/etc/sysconfig/network-scripts/ + +install -p -D -m 0644 rhel/etc_logrotate.d_openvswitch \ + $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/openvswitch + +install -m 0644 vswitchd/vswitch.ovsschema \ + $RPM_BUILD_ROOT/%{_datadir}/openvswitch/vswitch.ovsschema + +install -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifdown-ovs \ - $RPM_BUILD_ROOT/etc/sysconfig/network-scripts/ifdown-ovs + $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifup-ovs \ - $RPM_BUILD_ROOT/etc/sysconfig/network-scripts/ifup-ovs -install -p -D -m 0644 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ - $RPM_BUILD_ROOT/etc/sysconfig/openvswitch -install -d -m 755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts + $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs + +install -d -m 0755 $RPM_BUILD_ROOT%{python_sitelib} +mv $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/* \ + $RPM_BUILD_ROOT%{python_sitelib} +rmdir $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ -install python/compat/uuid.py $RPM_BUILD_ROOT/usr/share/openvswitch/python -install python/compat/argparse.py $RPM_BUILD_ROOT/usr/share/openvswitch/python +install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch -install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch +touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db +touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf -# Get rid of stuff we don't want to make RPM happy. -(cd "$RPM_BUILD_ROOT" && rm -f usr/lib/lib*) +# remove unpackaged files +rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \ + $RPM_BUILD_ROOT%{_bindir}/ovs-pcap \ + $RPM_BUILD_ROOT%{_bindir}/ovs-tcpundump \ + $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \ + $RPM_BUILD_ROOT%{_mandir}/man1/ovs-pcap.1 \ + $RPM_BUILD_ROOT%{_mandir}/man1/ovs-tcpundump.1 \ + $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \ + $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-save %check %if %{with check} @@ -94,129 +196,187 @@ install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch rm -rf $RPM_BUILD_ROOT %preun -# Package removal, not upgrade -systemctl stop openvswitch.service -systemctl disable openvswitch.service +%if 0%{?systemd_preun:1} + %systemd_preun %{name}.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || : + /bin/systemctl stop %{name}.service >/dev/null 2>&1 || : + fi +%endif + +%preun ovn +%if 0%{?systemd_preun:1} + %systemd_preun ovn-controller.service + %systemd_preun ovn-controller-vtep.service + %systemd_preun ovn-northd.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || : + /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || : + fi +%endif %post -if test ! -e /etc/openvswitch/conf.db; then - install -d -m 755 -o root -g root /etc/openvswitch - - # Create ovs-vswitchd config database - ovsdb-tool -vANY:console:emer create /etc/openvswitch/conf.db \ - /usr/share/openvswitch/vswitch.ovsschema - - # Create initial table in config database - ovsdb-tool -vANY:console:emer transact /etc/openvswitch/conf.db \ - '[{"op": "insert", "table": "Open_vSwitch", "row": {}}]' \ - > /dev/null -fi -# Initial installation -systemctl enable openvswitch.service -systemctl start openvswitch.service +%if 0%{?systemd_post:1} + %systemd_post %{name}.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif + +%post ovn +%if 0%{?systemd_post:1} + %systemd_post ovn-controller.service + %systemd_post ovn-controller-vtep.service + %systemd_post ovn-northd.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif %postun +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart %{name}.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || : + fi +%endif + +%postun ovn +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart ovn-controller.service + %systemd_postun_with_restart ovn-controller-vtep.service + %systemd_postun_with_restart ovn-northd.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl try-restart ovn-controller-vtep.service >/dev/null 2>&1 || : + /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || : + fi +%endif + +%files -n python-openvswitch +%{python_sitelib}/ovs +%doc COPYING + +%files test +%{_bindir}/ovs-test +%{_bindir}/ovs-vlan-test +%{_bindir}/ovs-l3ping +%{_mandir}/man8/ovs-test.8* +%{_mandir}/man8/ovs-vlan-test.8* +%{_mandir}/man8/ovs-l3ping.8* +%{python_sitelib}/ovstest + +%files devel +%{_libdir}/*.a +%{_libdir}/*.la +%{_libdir}/pkgconfig/*.pc +%{_includedir}/openvswitch/* +%{_includedir}/openflow/* %files %defattr(-,root,root) -%config /etc/sysconfig/openvswitch -%config /etc/logrotate.d/openvswitch +%{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash +%{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash +%dir %{_sysconfdir}/openvswitch +%config %ghost %{_sysconfdir}/openvswitch/conf.db +%config %ghost %{_sysconfdir}/openvswitch/system-id.conf +%config(noreplace) %{_sysconfdir}/sysconfig/openvswitch +%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch %{_unitdir}/openvswitch.service %{_unitdir}/openvswitch-nonetwork.service %{_datadir}/openvswitch/scripts/openvswitch.init %{_sysconfdir}/sysconfig/network-scripts/ifup-ovs %{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs -/usr/share/openvswitch/bugtool-plugins/ -/usr/share/openvswitch/python/ovs/__init__.py* -/usr/share/openvswitch/python/ovs/daemon.py* -/usr/share/openvswitch/python/ovs/db/__init__.py* -/usr/share/openvswitch/python/ovs/db/data.py* -/usr/share/openvswitch/python/ovs/db/error.py* -/usr/share/openvswitch/python/ovs/db/idl.py* -/usr/share/openvswitch/python/ovs/db/parser.py* -/usr/share/openvswitch/python/ovs/db/schema.py* -/usr/share/openvswitch/python/ovs/db/types.py* -/usr/share/openvswitch/python/ovs/dirs.py* -/usr/share/openvswitch/python/ovs/fatal_signal.py* -/usr/share/openvswitch/python/ovs/json.py* -/usr/share/openvswitch/python/ovs/jsonrpc.py* -/usr/share/openvswitch/python/ovs/ovsuuid.py* -/usr/share/openvswitch/python/ovs/poller.py* -/usr/share/openvswitch/python/ovs/process.py* -/usr/share/openvswitch/python/ovs/reconnect.py* -/usr/share/openvswitch/python/ovs/socket_util.py* -/usr/share/openvswitch/python/ovs/stream.py* -/usr/share/openvswitch/python/ovs/timeval.py* -/usr/share/openvswitch/python/ovs/util.py* -/usr/share/openvswitch/python/ovs/version.py* -/usr/share/openvswitch/python/ovs/unixctl/__init__.py* -/usr/share/openvswitch/python/ovs/unixctl/client.py* -/usr/share/openvswitch/python/ovs/unixctl/server.py* -/usr/share/openvswitch/python/uuid.py* -/usr/share/openvswitch/python/argparse.py* -/usr/share/openvswitch/python/ovs/vlog.py* -/usr/share/openvswitch/python/ovstest/__init__.py* -/usr/share/openvswitch/python/ovstest/args.py* -/usr/share/openvswitch/python/ovstest/rpcserver.py* -/usr/share/openvswitch/python/ovstest/tcp.py* -/usr/share/openvswitch/python/ovstest/udp.py* -/usr/share/openvswitch/python/ovstest/util.py* -/usr/share/openvswitch/python/ovstest/vswitch.py* -/usr/share/openvswitch/python/ovstest/tests.py* -/usr/share/openvswitch/scripts/ovs-bugtool-* -/usr/share/openvswitch/scripts/ovs-check-dead-ifs -/usr/share/openvswitch/scripts/ovs-lib -/usr/share/openvswitch/scripts/ovs-vtep -%config /usr/share/openvswitch/vswitch.ovsschema -%config /usr/share/openvswitch/vtep.ovsschema -/usr/sbin/ovs-bugtool -/usr/sbin/ovs-vswitchd -/usr/sbin/ovsdb-server -/usr/bin/ovs-appctl -/usr/bin/ovs-dpctl -/usr/bin/ovs-dpctl-top -/usr/bin/ovs-ofctl -/usr/bin/ovs-vsctl -/usr/bin/ovsdb-client -/usr/bin/ovsdb-tool -/usr/bin/ovs-pki -/usr/bin/ovs-test -/usr/bin/ovs-l3ping -/usr/bin/vtep-ctl -%doc /usr/share/man/man8/ovs-pki.8.gz -%doc /usr/share/man/man1/ovsdb-client.1.gz -%doc /usr/share/man/man1/ovsdb-server.1.gz -%doc /usr/share/man/man1/ovsdb-tool.1.gz -%doc /usr/share/man/man5/ovs-vswitchd.conf.db.5.gz -%doc /usr/share/man/man5/vtep.5.gz -%doc /usr/share/man/man8/ovs-appctl.8.gz -%doc /usr/share/man/man8/ovs-bugtool.8.gz -%doc /usr/share/man/man8/ovs-ctl.8.gz -%doc /usr/share/man/man8/ovs-dpctl.8.gz -%doc /usr/share/man/man8/ovs-dpctl-top.8.gz -%doc /usr/share/man/man8/ovs-ofctl.8.gz -%doc /usr/share/man/man8/ovs-parse-backtrace.8.gz -%doc /usr/share/man/man8/ovs-vsctl.8.gz -%doc /usr/share/man/man8/ovs-vswitchd.8.gz -%doc /usr/share/man/man8/ovs-test.8.gz -%doc /usr/share/man/man8/ovs-l3ping.8.gz -%doc /usr/share/man/man8/vtep-ctl.8.gz +%{_datadir}/openvswitch/bugtool-plugins/ +%{_datadir}/openvswitch/scripts/ovs-bugtool-* +%{_datadir}/openvswitch/scripts/ovs-check-dead-ifs +%{_datadir}/openvswitch/scripts/ovs-lib +%{_datadir}/openvswitch/scripts/ovs-vtep +%{_datadir}/openvswitch/scripts/ovs-ctl +%config %{_datadir}/openvswitch/vswitch.ovsschema +%config %{_datadir}/openvswitch/vtep.ovsschema +%{_bindir}/ovs-appctl +%{_bindir}/ovs-docker +%{_bindir}/ovs-dpctl +%{_bindir}/ovs-dpctl-top +%{_bindir}/ovs-ofctl +%{_bindir}/ovs-vsctl +%{_bindir}/ovsdb-client +%{_bindir}/ovsdb-tool +%{_bindir}/ovs-testcontroller +%{_bindir}/ovs-pki +%{_bindir}/vtep-ctl +%{_sbindir}/ovs-bugtool +%{_sbindir}/ovs-vswitchd +%{_sbindir}/ovsdb-server +%{_mandir}/man1/ovsdb-client.1* +%{_mandir}/man1/ovsdb-server.1* +%{_mandir}/man1/ovsdb-tool.1* +%{_mandir}/man5/ovs-vswitchd.conf.db.5* +%{_mandir}/man5/vtep.5* +%{_mandir}/man8/vtep-ctl.8* +%{_mandir}/man8/ovs-appctl.8* +%{_mandir}/man8/ovs-bugtool.8* +%{_mandir}/man8/ovs-ctl.8* +%{_mandir}/man8/ovs-dpctl.8* +%{_mandir}/man8/ovs-dpctl-top.8* +%{_mandir}/man8/ovs-ofctl.8* +%{_mandir}/man8/ovs-pki.8* +%{_mandir}/man8/ovs-vsctl.8* +%{_mandir}/man8/ovs-vswitchd.8* +%{_mandir}/man8/ovs-parse-backtrace.8* +%{_mandir}/man8/ovs-testcontroller.8* +%doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.md WHY-OVS.md +%doc FAQ.md NEWS INSTALL.DPDK.md rhel/README.RHEL /var/lib/openvswitch /var/log/openvswitch -/usr/share/openvswitch/scripts/ovs-ctl -%exclude /etc/openvswitch -%exclude /usr/bin/ovs-benchmark -%exclude /usr/bin/ovs-parse-backtrace -%exclude /usr/bin/ovs-pcap -%exclude /usr/bin/ovs-tcpundump -%exclude /usr/bin/ovs-vlan-test -%exclude /usr/sbin/ovs-vlan-bug-workaround -%exclude /usr/share/man/man1/ovs-benchmark.1.gz -%exclude /usr/share/man/man1/ovs-pcap.1.gz -%exclude /usr/share/man/man1/ovs-tcpundump.1.gz -%exclude /usr/share/man/man8/ovs-vlan-bug-workaround.8.gz -%exclude /usr/share/man/man8/ovs-vlan-test.8.gz -%exclude /usr/share/openvswitch/scripts/ovs-save +%ghost %attr(755,root,root) %{_rundir}/openvswitch + +%files ovn +%{_bindir}/ovn-controller +%{_bindir}/ovn-controller-vtep +%{_bindir}/ovn-docker-overlay-driver +%{_bindir}/ovn-docker-underlay-driver +%{_bindir}/ovn-nbctl +%{_bindir}/ovn-northd +%{_bindir}/ovn-sbctl +%{_datadir}/openvswitch/scripts/ovn-ctl +%{_datadir}/openvswitch/scripts/ovn-bugtool-nbctl-show +%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-lflow-list +%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-show +%{_mandir}/man8/ovs-testcontroller.8* +%{_mandir}/man5/ovn-nb.5* +%{_mandir}/man5/ovn-sb.5* +%{_mandir}/man7/ovn-architecture.7* +%{_mandir}/man8/ovn-controller.8* +%{_mandir}/man8/ovn-controller-vtep.8* +%{_mandir}/man8/ovn-ctl.8* +%{_mandir}/man8/ovn-nbctl.8* +%{_mandir}/man8/ovn-northd.8* +%{_mandir}/man8/ovn-sbctl.8* +%config %{_datadir}/openvswitch/ovn-nb.ovsschema +%config %{_datadir}/openvswitch/ovn-sb.ovsschema +%{_unitdir}/ovn-controller.service +%{_unitdir}/ovn-controller-vtep.service +%{_unitdir}/ovn-northd.service %changelog * Wed Jan 12 2011 Ralf Spenneberg