This spec was broken for many years and building modern OVS on RHEL 6 and older doesn't seem like something we should be maintaining anyway.
Let's remove the broken spec and direct users to generic installation instruction for older RHEL. Signed-off-by: Ilya Maximets <[email protected]> --- Documentation/intro/install/rhel.rst | 178 +------------------ rhel/.gitignore | 1 - rhel/automake.mk | 5 - rhel/openvswitch.spec.in | 254 --------------------------- 4 files changed, 8 insertions(+), 430 deletions(-) delete mode 100644 rhel/openvswitch.spec.in diff --git a/Documentation/intro/install/rhel.rst b/Documentation/intro/install/rhel.rst index 80e58fb36..78791925c 100644 --- a/Documentation/intro/install/rhel.rst +++ b/Documentation/intro/install/rhel.rst @@ -21,178 +21,16 @@ Avoid deeper levels because they do not render well. -======================================== -RHEL 5.6, 6.x Packaging for Open vSwitch -======================================== +=============================== +RHEL Packaging for Open vSwitch +=============================== -This document describes how to build and install Open vSwitch on a Red Hat -Enterprise Linux (RHEL) host. If you want to install Open vSwitch on a generic -Linux host, refer to :doc:`general` instead. +For RHEL 7.x (or derivatives, such as CentOS 7.x) and newer, you should follow +the instructions in the :doc:`fedora`. The Fedora spec files are used for RHEL +7.x and above. -We have tested these instructions with RHEL 5.6 and RHEL 6.0. - -For RHEL 7.x (or derivatives, such as CentOS 7.x), you should follow the -instructions in the :doc:`fedora`. The Fedora spec files are used for RHEL -7.x. - -.. _rhel-prerequisites: - -Prerequisites -------------- - -You may build from an Open vSwitch distribution tarball or from an Open vSwitch -Git tree. - -The default RPM build directory, ``_topdir``, has five directories in the -top-level. - -BUILD/ - where the software is unpacked and built -RPMS/ - where the newly created binary package files are written -SOURCES/ - contains the original sources, patches, and icon files -SPECS/ - contains the spec files for each package to be built -SRPMS/ - where the newly created source package files are written - -Before you begin, note the RPM sources directory on your version of RHEL. The -command ``rpmbuild --showrc`` will show the configuration for each of those -directories. Alternatively, the command ``rpm --eval '%{_topdir}'`` shows the -current configuration for the top level directory and the command ``rpm --eval -'%{_sourcedir}'`` does the same for the sources directory. On RHEL 5, the -default RPM ``_topdir`` is ``/usr/src/redhat`` and the default RPM sources -directory is ``/usr/src/redhat/SOURCES``. On RHEL 6, the default ``_topdir`` is -``$HOME/rpmbuild`` and the default RPM sources directory is -``$HOME/rpmbuild/SOURCES``. - -Build Requirements ------------------- - -You will need to install all required packages to build the RPMs. -The command below will install RPM tools and generic build dependencies:: - - $ yum install @'Development Tools' rpm-build yum-utils - -Then it is necessary to install Open vSwitch specific build dependencies. -The dependencies are listed in the SPEC file, but first it is necessary -to replace the VERSION tag to be a valid SPEC. - -The command below will create a temporary SPEC file:: - - $ sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch.spec.in > /tmp/ovs.spec - -And to install specific dependencies, use yum-builddep tool:: - - $ yum-builddep /tmp/ovs.spec - -Once that is completed, remove the file ``/tmp/ovs.spec``. - -If python3-sphinx package is not available in your version of RHEL, you can -install it via pip with 'pip install sphinx'. - -Open vSwitch requires python 3.7 or newer which is not available in older -distributions. For those, one option is to build and install required version -from source. - -.. _rhel-bootstrapping: - -Bootstrapping and Configuring ------------------------------ - -If you are building from a distribution tarball, skip to :ref:`rhel-building`. -If not, you must be building from an Open vSwitch Git tree. Determine what -version of Autoconf is installed (e.g. run ``autoconf --version``). If it is -not at least version 2.63, then you must upgrade or use another machine to -build the packages. - -Assuming all requirements have been met, build the tarball by running:: - - $ ./boot.sh - $ ./configure - $ make dist - -You must run this on a machine that has the tools listed in -:ref:`general-build-reqs` as prerequisites for building from a Git tree. -Afterward, proceed with the rest of the instructions using the distribution -tarball. - -Now you have a distribution tarball, named something like -``openvswitch-x.y.z.tar.gz``. Copy this file into the RPM sources directory, -e.g.:: - - $ cp openvswitch-x.y.z.tar.gz $HOME/rpmbuild/SOURCES - -Broken ``build`` symlink -~~~~~~~~~~~~~~~~~~~~~~~~ - -Some versions of the RHEL 6 kernel-devel package contain a broken ``build`` -symlink. If you are using such a version, you must fix the problem before -continuing. - -To find out whether you are affected, run:: - - $ cd /lib/modules/<version> - $ ls -l build/ - -where ``<version>`` is the version number of the RHEL 6 kernel. - -.. note:: - The trailing slash in the final command is important. Be sure to include - it. - -If the ``ls`` command produces a directory listing, your kernel-devel package -is OK. If it produces a ``No such file or directory`` error, your kernel-devel -package is buggy. - -If your kernel-devel package is buggy, then you can fix it with:: - - $ cd /lib/modules/<version> - $ rm build - $ ln -s /usr/src/kernels/<target> build - -where ``<target>`` is the name of an existing directory under -``/usr/src/kernels``, whose name should be similar to ``<version>`` but may -contain some extra parts. Once you have done this, verify the fix with the -same procedure you used above to check for the problem. - -.. _rhel-building: - -Building --------- - -You should have a distribution tarball named something like -openvswitch-x.y.z.tar.gz. Copy this file into the RPM sources directory:: - - $ cp openvswitch-x.y.z.tar.gz $HOME/rpmbuild/SOURCES - -Make another copy of the distribution tarball in a temporary directory. Then -unpack the tarball and ``cd`` into its root:: - - $ tar xzf openvswitch-x.y.z.tar.gz - $ cd openvswitch-x.y.z - -Userspace -~~~~~~~~~ - -To build Open vSwitch userspace, run:: - - $ rpmbuild -bb rhel/openvswitch.spec - -This produces two RPMs: "openvswitch" and "openvswitch-debuginfo". - -The above command automatically runs the Open vSwitch unit tests. To disable -the unit tests, run:: - - $ rpmbuild -bb --without check rhel/openvswitch.spec - -.. note:: - If the build fails with ``configure: error: source dir - /lib/modules/2.6.32-279.el6.x86_64/build doesn't exist`` or similar, then - the kernel-devel package is missing or buggy. - -.. _rhel-script-integrations: +If you want to install Open vSwitch on a generic Linux host or on an older +RHEL, refer to :doc:`general` instead. Red Hat Network Scripts Integration ----------------------------------- diff --git a/rhel/.gitignore b/rhel/.gitignore index 577108130..ccceef638 100644 --- a/rhel/.gitignore +++ b/rhel/.gitignore @@ -1,3 +1,2 @@ -openvswitch.spec openvswitch-fedora.spec usr_lib_systemd_system_ovs-vswitchd.service diff --git a/rhel/automake.mk b/rhel/automake.mk index 9a08bf556..bc06d5879 100644 --- a/rhel/automake.mk +++ b/rhel/automake.mk @@ -13,8 +13,6 @@ EXTRA_DIST += \ rhel/etc_openvswitch_default.conf \ rhel/etc_sysconfig_network-scripts_ifdown-ovs \ rhel/etc_sysconfig_network-scripts_ifup-ovs \ - rhel/openvswitch.spec \ - rhel/openvswitch.spec.in \ rhel/openvswitch-fedora.spec \ rhel/openvswitch-fedora.spec.in \ rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \ @@ -35,9 +33,6 @@ update_rhel_spec = \ < $(srcdir)/rhel/$(@F).in > $(@F).tmp || exit 1; \ if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi -$(srcdir)/rhel/openvswitch.spec: rhel/openvswitch.spec.in $(top_builddir)/config.status - $(update_rhel_spec) - $(srcdir)/rhel/openvswitch-fedora.spec: rhel/openvswitch-fedora.spec.in $(top_builddir)/config.status $(update_rhel_spec) diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in deleted file mode 100644 index 787a7ebaa..000000000 --- a/rhel/openvswitch.spec.in +++ /dev/null @@ -1,254 +0,0 @@ -# Spec file for Open vSwitch on Red Hat Enterprise Linux. - -# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016 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. -# -# If tests have to be skipped while building, specify the '--without check' -# option. For example: -# rpmbuild -bb --without check rhel/openvswitch.spec -# -# Support for executing kernel data path tests under rpmbuild is -# provided, however this is intended for use only in test environments -# and should not be used otherwise (these tests require root privileges). -# These tests can be executed, for example, via: -# rpmbuild -rb --with check_datapath_kernel openvswitch.src.rpm -# -# These tests will use the currently installed OVS kernel modules. - -%{!?release_number:%define release_number 1} - -Name: openvswitch -Summary: Open vSwitch daemon/database/utilities -Group: System Environment/Daemons -URL: http://www.openvswitch.org/ -Vendor: Nicira, Inc. -Version: @VERSION@ - -License: ASL 2.0 -Release: %{release_number}%{?dist} -Source: openvswitch-%{version}.tar.gz -Buildroot: /tmp/openvswitch-rpm -Requires: logrotate, hostname, python >= 2.7, python-six -BuildRequires: python-six -BuildRequires: openssl-devel -BuildRequires: checkpolicy, selinux-policy-devel -BuildRequires: autoconf, automake, libtool -BuildRequires: python3-sphinx -BuildRequires: unbound-devel -BuildRequires: libunwind-devel - -%bcond_without check -%bcond_with check_datapath_kernel - -%description -Open vSwitch provides standard network bridging functions and -support for the OpenFlow protocol for remote per-flow control of -traffic. - -%package devel -Summary: Open vSwitch development package -Group: Development/Libraries - -%description devel -This package provides openvswitch headers and libopenvswitch for developers. - -%package selinux-policy -Summary: Open vSwitch SELinux policy -License: ASL 2.0 -BuildArch: noarch -Requires: selinux-policy-targeted - -%description selinux-policy -Tailored Open vSwitch SELinux policy - -%prep -%setup -q - -%build -./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} \ - --libdir=%{_libdir} --enable-ssl --enable-shared -make %{_smp_mflags} -make selinux-policy - -%install -rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT - -rhel_cp() { - base=$1 - mode=$2 - dst=$RPM_BUILD_ROOT/$(echo $base | sed 's,_,/,g') - install -D -m $mode rhel/$base $dst -} -rhel_cp etc_init.d_openvswitch 0755 -rhel_cp etc_logrotate.d_openvswitch 0644 -rhel_cp etc_sysconfig_network-scripts_ifup-ovs 0755 -rhel_cp etc_sysconfig_network-scripts_ifdown-ovs 0755 -rhel_cp usr_share_openvswitch_scripts_sysconfig.template 0644 - -install -p -m 644 -D selinux/openvswitch-custom.pp \ - $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp - -# Get rid of stuff we don't want to make RPM happy. -rm \ - $RPM_BUILD_ROOT/usr/bin/ovs-testcontroller \ - $RPM_BUILD_ROOT/usr/share/man/man8/ovs-testcontroller.8 -(cd "$RPM_BUILD_ROOT" && rm -rf usr/%{_lib}/*.la) -(cd "$RPM_BUILD_ROOT" && rm -rf usr/include) - -install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch -install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch -install -d -m 0755 $RPM_BUILD_ROOT/var/lib/openvswitch - -%check -%if %{with check} - if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :; - else - cat tests/testsuite.log - exit 1 - fi -%endif -%if %{with check_datapath_kernel} - if make check-kernel RECHECK=yes; then :; - else - cat tests/system-kmod-testsuite.log - exit 1 - fi -%endif - -%clean -rm -rf $RPM_BUILD_ROOT - -%post -# Create default or update existing /etc/sysconfig/openvswitch. -SYSCONFIG=/etc/sysconfig/openvswitch -TEMPLATE=/usr/share/openvswitch/scripts/sysconfig.template -if [ ! -e $SYSCONFIG ]; then - cp $TEMPLATE $SYSCONFIG -else - for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE) - do - if ! grep $var $SYSCONFIG >/dev/null 2>&1; then - echo >> $SYSCONFIG - sed -n "/$var:/,/$var=/p" $TEMPLATE >> $SYSCONFIG - fi - done -fi - -# Ensure all required services are set to run -/sbin/chkconfig --add openvswitch -/sbin/chkconfig openvswitch on - -%pre selinux-policy -%selinux_relabel_pre -s targeted - -%post selinux-policy -%selinux_modules_install -s targeted %{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp - -%preun -if [ "$1" = "0" ]; then # $1 = 0 for uninstall - /sbin/service openvswitch stop - /sbin/chkconfig --del openvswitch -fi - -%postun -if [ "$1" = "0" ]; then # $1 = 0 for uninstall - rm -f /etc/openvswitch/conf.db - rm -f /etc/sysconfig/openvswitch - rm -f /etc/openvswitch/vswitchd.cacert -fi - -%postun selinux-policy -if [ $1 -eq 0 ] ; then - %selinux_modules_uninstall -s targeted openvswitch-custom -fi - -exit 0 - -%posttrans selinux-policy -%selinux_relabel_post -s targeted - -%files -%defattr(-,root,root) -%dir /etc/openvswitch -/etc/bash_completion.d/ovs-appctl-bashcomp.bash -/etc/bash_completion.d/ovs-vsctl-bashcomp.bash -/etc/init.d/openvswitch -%config(noreplace) /etc/logrotate.d/openvswitch -/etc/sysconfig/network-scripts/ifup-ovs -/etc/sysconfig/network-scripts/ifdown-ovs -/usr/bin/ovs-appctl -/usr/bin/ovs-dpctl -/usr/bin/ovs-dpctl-top -/usr/bin/ovs-docker -/usr/bin/ovs-ofctl -/usr/bin/ovs-pcap -/usr/bin/ovs-pki -/usr/bin/ovs-tcpdump -/usr/bin/ovs-tcpundump -/usr/bin/ovs-vsctl -/usr/bin/ovsdb-client -/usr/bin/ovsdb-tool -/usr/bin/vtep-ctl -%{_libdir}/lib*.so.* -/usr/sbin/ovs-bugtool -/usr/sbin/ovs-vswitchd -/usr/sbin/ovsdb-server -/usr/share/man/man1/ovs-pcap.1.gz -/usr/share/man/man1/ovs-tcpundump.1.gz -/usr/share/man/man1/ovsdb-client.1.gz -/usr/share/man/man1/ovsdb-server.1.gz -/usr/share/man/man1/ovsdb-tool.1.gz -/usr/share/man/man5/ovsdb.local-config.5.gz -/usr/share/man/man5/ovsdb-server.5.gz -/usr/share/man/man5/ovs-vswitchd.conf.db.5.gz -%{_mandir}/man5/ovsdb.5* -/usr/share/man/man5/vtep.5.gz -/usr/share/man/man7/ovs-actions.7.gz -/usr/share/man/man7/ovs-fields.7.gz -%{_mandir}/man7/ovsdb.7* -%{_mandir}/man7/ovsdb-server.7* -/usr/share/man/man8/ovs-appctl.8.gz -/usr/share/man/man8/ovs-bugtool.8.gz -/usr/share/man/man8/ovs-ctl.8.gz -/usr/share/man/man8/ovs-dpctl.8.gz -/usr/share/man/man8/ovs-dpctl-top.8.gz -/usr/share/man/man8/ovs-flowviz.8.gz -/usr/share/man/man8/ovs-kmod-ctl.8.gz -/usr/share/man/man8/ovs-ofctl.8.gz -/usr/share/man/man8/ovs-pki.8.gz -/usr/share/man/man8/ovs-tcpdump.8.gz -/usr/share/man/man8/ovs-vsctl.8.gz -/usr/share/man/man8/ovs-vswitchd.8.gz -/usr/share/man/man8/vtep-ctl.8.gz -/usr/share/openvswitch/bugtool-plugins/ -/usr/share/openvswitch/python/ -/usr/share/openvswitch/scripts/ovs-bugtool-* -/usr/share/openvswitch/scripts/ovs-check-dead-ifs -/usr/share/openvswitch/scripts/ovs-ctl -/usr/share/openvswitch/scripts/ovs-kmod-ctl -/usr/share/openvswitch/scripts/ovs-lib -/usr/share/openvswitch/scripts/ovs-save -/usr/share/openvswitch/scripts/ovs-vtep -/usr/share/openvswitch/scripts/sysconfig.template -/usr/share/openvswitch/scripts/ovs-monitor-ipsec -/usr/share/openvswitch/local-config.ovsschema -/usr/share/openvswitch/vswitch.ovsschema -/usr/share/openvswitch/vtep.ovsschema -%doc NOTICE README.rst NEWS rhel/README.RHEL.rst -/var/lib/openvswitch -/var/log/openvswitch - -%files devel -%{_libdir}/lib*.so -%{_libdir}/lib*.a -%{_libdir}/pkgconfig -%{_includedir}/openvswitch/* - -%files selinux-policy -%defattr(-,root,root) -%{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp -- 2.54.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
